From e86bb6cf15e8e3f75ef5aa4bc547fa69f76af435 Mon Sep 17 00:00:00 2001 From: Ash Logan Date: Mon, 26 Sep 2022 21:56:56 +1000 Subject: [PATCH] Add framework for in-game patches --- Inkay-pretendo.wps | Bin 53955 -> 87216 bytes Makefile | 4 +- src/main.cpp | 74 +-------------------------------- src/patcher/ingame.cpp | 56 +++++++++++++++++++++++++ src/patcher/ingame.h | 19 +++++++++ src/patcher/patcher.cpp | 20 +++++++++ src/patcher/patcher.h | 9 ++++ src/patcher/patches/nn_olv.cpp | 30 +++++++++++++ src/patcher/patches/nn_olv.h | 8 ++++ src/patcher/rplinfo.cpp | 70 +++++++++++++++++++++++++++++++ src/patcher/rplinfo.h | 35 ++++++++++++++++ src/utils/asm.S | 5 +++ src/utils/asm.h | 12 ++++++ 13 files changed, 268 insertions(+), 74 deletions(-) create mode 100644 src/patcher/ingame.cpp create mode 100644 src/patcher/ingame.h create mode 100644 src/patcher/patcher.cpp create mode 100644 src/patcher/patcher.h create mode 100644 src/patcher/patches/nn_olv.cpp create mode 100644 src/patcher/patches/nn_olv.h create mode 100644 src/patcher/rplinfo.cpp create mode 100644 src/patcher/rplinfo.h create mode 100644 src/utils/asm.S create mode 100644 src/utils/asm.h diff --git a/Inkay-pretendo.wps b/Inkay-pretendo.wps index 75974b1bc37fbaf4a9f7527ef3dc36cd7477c390..71555e584899c3aef0ef3c8448e8aaf131b78e78 100644 GIT binary patch literal 87216 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 z fX-}bfKAE*mkKdMPMkG@##Up{&ANsxxS{^X+!Xq|K-@Et-$dc%KGN=62>=E`?~ zKqy}c4pNQEp!bVCVN1m~+q$re#hLizV`|0|sJZVwm>wyAM z2LfwIg6WvcmHUF9Xj6sNZeS`7_O4HtHEU)XbuXt?elq<*nVW)g;3sYI-Sq5bL_HpC}(o zfsvE@-7Mv2BGg7aIL$?kvoA{raH}#g&FTRwoodiOZU{lmw_~k{$f6t0jTqn4(nKLZ zWW;Y#YzZ=$p$4q1XJ3Se&rFXaO zK2Q4HKfMqm0x-`G-~A?e3<`Uk^aXc*g@MEfZ4uO4#<96uB51V*t4SjGYv@wNm<%=)yEE%bZ9Bo4jh8)tzDw#S-zJj62_&IrdmUMEuO59>|ds;rIYbrjRCOyt{ zE`Xq2^Pu4P(rIiP6Vt{o{IYECJS0ef6C~7uf5&9rSOUjKes33oT563xd@}-&!+c>c z1>{rPZ$*aJVtkg}yU*j7Lwxolp*B8&z1O0<{Lx32Pzu+eK_yTd0 zTZ<)I*ETtOYk2rU_+ayyd#oIi~l2#4bMN z+%r=`4Lz0aBTc%1uQrXfa=+QIid?pwAmlC1Hi~cK8=vvz+DSjbk44e)5yh1}v%I&q zd%F+1mD>>2t1Aa%7X`^3;XmxH69n}2ddJJEP`9u{2|J=r7at~9>C&1K9;tvS&S>xk zn2XG)*8SBP+v+Hk0~UI&rtW`iJ+)W{YD4dmVt_N8paZ@>C?X7pH>h?VN3$gNX5Tpj zE4S2|?1GPxFI(pJ-<=@byTS3xp>X@jWF4%ycojF`Y3l8|ja)>f3Z4@EyYV|MJh=4o z8Xu^*cbe=z@=?D;sK6XP8BB!x6%OfS@)z7}RGUD=I$O>qAWp-TEo*CyT=vwYhV|B=tY=&f7-V;O89zxhCx3_j1Zpf!Z5nxF|DJObL; z6=0AN>21k#fIivLV>Qg3s$Wz^4IWgKhMF!>r{RE;+zKQR?ib_y@cDH^AMBI$qB{yW z`SL1gE{EpcX}M~k^XYBi$Ib(-?I!~7Oo3$>z({qeLA!5TcKkqfzejUcJ@lX|6HMzI z;{dZ$T*F>-#@o~h!wL9>u7LLeDo+xuBs_t5UM9fY;>EOsGg&O8D?GQvJ-a#?w?Q|!5t~$|bqZ!{(LBQ8t&>ndO^R?syA)z>eg79-^ z_{$DO<|^LuJ8~(-gZC*S&##^^2c;_Hl0Yj(hRU^m0lx)B2So(gnx3ti_owwzOqR$*RkC>E?>J221f`$&_4S?+Lz5hqm>?L*QPZx{0qUo`L8FRiNWnp6VF zO#C!P2w4?d$CQcipYz{v&l1dnnPD?=xn;r{fS3e%k%2XKm^2Yef| zZ9gfNd&Rk4+sPcm;d1HyQ{{l)`wzrHcyd#qtRvDl)^LC>5cAv9O`ZKR3)~%Vxm$b} zH1o6B2mFQ}AZQ+lda^zYC8dC})R2>wn)7K2GqB5GrNvdE=N>SSK}nzz6>vhc@W8-e zWg8eldQ7dPISyPZeIVjN1_hu`@GGzocW*Z9K#ya`_al4K`ICam_HmfK(#6{v5x!h= zlIWo2?tquOfF+0bOXmom zA$P~mOYUBOx0i!z59ZVdX)m*Y?Z0zI8A95}lvV6pmm7xz95s)dPi*@_H}yX8FxVC! zY&J5Tr`k|@K!0u~!z6a3eq3_M!{(~s?%w7Q-JwjqAa-;7z!VPiWa}W)Y!|2--bdf?7u=oUvye=+?N_cN_T|kRwZ-uHeQ_dw0SJAB5#5ERWmZx~qpVPO-z$$C@X9Uc6%Z{TFt zr1I(JFMyHoNz|pCt3nb8Rg}-wbev(FqtqL6+v|7a2a$NOz`k|!Y8qJl?$_K42lgc2+3+VvtTOFQT zgHZ5!xDmW=i-<9(wT{8jpi4a{4lL^X5}df+b(!!`viu}4<(Kr!3sAzh5#UR$_-2O% z({xHFK3w*Kep+Uxq$qZoc1EVWFwA#OOXGQJ;7gT#w`*sd=;7ODF zHV7zLd~4i_0b99t{Q%fdg9g!4LkFXF%=!!6SZPEiB*MnK)fDC(Z^QS@Eh} z!B*xZVtYMk?pm4P`iLer^`>>H*CwSF_-I3a=>V9AMr=z-3_M%}5CHq9v`A`c;+9%3 zK(e0uFoV?42OG%D<~8qDP@LA$Q8y*__sJuQgbJzn^xSpvgIP+=UBf@TpB9rM^K+N+ zH8)$BF9s=YmFW-kJ!g7L2A>{@Jcm`CfrmCFU19V~gSXsQ$NZf!>ZS18lJI2tjLKWW zwA4p^!~?CRR$hQ^oNo~)yc1(-X(-v@+tLk}-~lY%E=;LP{Uss3S?hj5K znrPvxg>Z+Z1Suln0P1VoxVy}+p<9(wBVfYLFYVV*^dS3tUV+66N!Gi*W`=@N^R_3C zdPliFG>?;{tC}b9wGh57Z**P+3ERSikLz)Jjls?})|?LV;&!16deC0|(n4J8=;#^T0?$_)dp; zye~2IeIf8U{FZmZ8jkM^nW{s9oZV&?;ms||?w1w$9oD|Pb$A>0=zjw*n!f-m5)}Y> zNF!JV)VcV|W)|$W>7gZk&`EdxC^s7o z4OD$lnSETo_7_MP2Mp`m^zNL13IJ{OMhezJF3>ZwG2UF9d7B|C3Z#Kp^=f+m#ff*tc84 z4PSUrZvb+aHIspf4q@Z^U7-vE0eW8pYG=$dbY$vHHw89@fCSg%gIXKdn1=x6xU$X+ zesi({;NEK~A(>!^<(uP9>T{U3?(Q^!^t=6W<#FXCSYt@61F5P&F9%4L%s~ z?0oc~k&(CX>TS=G%#XV|1)aF?w%h)TNrzjlQM?*&tPtOJqHB~#@0s<@D~CDxHPb%` z?zBl^fRN!qQi{mXn)L60nJWh9bmgV%I9qGtX)2_ZJb)YoG2ZB`pnA{j3|zakJ-$s7 zN#QiF|K0oO(t71^3>&KCccl+7m+smGV*<0CUv_q~VF16W(^^+|-ilsr=RXwO8eR-a z-zp!k9?Fcx6`pmF?X(U(nx*x$K?DX(HgY+}L{g4T4o2r_hFX7K>1Jx5r`9v*Z7t#r z%*5$xb-_;=f><5{GsGoMJG>`HqA+oMXD&Jv}t;X$s~oEknTY3%&er?c|< zVEb+}-k5mdzM}O<3?K|6?c1P2c)T zYvwD51(Qy;RtE6_H<{zv7hoXeIe+Y=3Yg*el{CWvG!?#b>3QQFTM3oQN54(p4J11C z$vsi}?fQq39{3en@fPq$Xqk42;ZN$HLL1k8D5d}G;x^1%4k8Xyne#7VFohQZLIMRH z&1oQFi4f_Xhd@8Pfc;D0L-CyOP^=@}x4A6hzjmuIGEK^gke#|qLLHL};$ z*Qjfa`sc@MUjoc3AsY~(bZh6hwoY-jt=w-JfQNGqQ<*~{ z^WJ+n;_3s)`3?-`ne!$Ei==~Fgnuybq;qc8wlIWAT|-ejPFL{T)_b)=DvO13Tf3AS zKb8SoVw1+-r9k|{dn+L8h_dQ)>pLw#?sq zlL%Bn-LVwpe-n7`lhywAooA*h$v$Oam^0gD0r$27Ij|%;Y3{)mulse6QkOvRPuQ)0 zi(N44&pvO!ox!>hO*h{x0F-ssO>A{{b;ET=3IFyq_UZM8$a!m%e~0fyUj_KX<&eA% ztFTG~9tm->@ec)U`YgWH{YWm`8;7H*l8Ay{wnbygZq2BYmD5KY@c@T_0rc04Bxj6UVvs{&Qa6K-Y+`VW!5*=@GsfdMkPlRM?WzZHkQkLF)kfx z8}jfQxX=abp4n6P$`>eW2vorULj-Y`J>dpiqY-5{%K|%$@X@zR^3;* z7nNt`qKMfqOS{Qy8RMM72Z`alyFxq=unPFm9y5*aDXnn>X*s%nECcZ2McQmXx>@I1 zzr#&i8xX#on(L(U#7Lb@3l2@&u#?$0j=Cozb+37FK8Z$ERb^f69K9(jMQ;frQ^ zOO8kRkQPT^(R7RRI^2t^3$RcYu5lM91txP!3UG$Rkns;FaQNgri-NliUnz^;|ByVG zS$nJ>s!4P?Pz;#xNdH|X#I?&s{{N75R#9;U+t$W4KyV1sNbumnrGo{x5ZoOCjk`O+ z3GS}J-D#ZQ?yilyL&MMc$GGP{+=uLAx|u%4>)yGIl$QrH?g7|rvH#|i>iy<| z?DsIIzx3bedj(~<~x?Z$NBe<%0~K$qL*t_ zan4D}-NTVZMq~&eB;z*W>Z3|;)S*AH`!oA;<&XUb$t!#MxwNv7+jLU?M`0#|OmXZ6l z@EoY|^7I`f!W(p#F=vq_+?p9ua=wB}(<(spxRe)UMk&y5^S?zVMo`OCdg zce18QjaF8_gki6s^e@Du)*B6ZZ=cEgr>62RPs=lQ<>%rqYGF8GTcbW(Ll;@{eZU-@ zU<^^@9ZFu=4;s^7wCb3_K18xYTo;q5@!uFW&95KIi}gW+;L#R0{1MjfnP1U9?zQEICR_tFO-?RUaSG1SVxX>x_%O3x4*dmH4zc14 z;RC;kG%qL9glp5$`gC%)wYVRsX88e818wb$n|9T4Edc}pBeB-IA_bE{sEiu@4aYc| zf2hUNE3Z*!s`M4WXv#Jb)>!x7sp!Ku{|zPmb5gN6OdACFrj9skcK>uo(Ys9&w;uuA zUQ@rqxsLMA7a3Sr$s&1eNJH)?3Rydct_XVIu^d@riA1t`FLzx$goQFUQ>bhnk3sJ0 z3n{_eq!cbLOt3RBDOlqy@RuwGeeOxMy)NAXS4b3FzqN75h?uTS^bxF;Mw#cU`4l^i z$MTsuEWhM|axMY0VaJ#Fo5-1TDA&}|9$3AXco~;ZwbigwOGCQN%pN>b1dDlh!DlqI zN=hcb;Xg|%L}M!oTVLTMhrJ+TQfrtjufxIN6%jLgUG7E@+t<01@9~79bp;qF*lrAQ z9DEho6(=@`hfA-8Lyy2QD(YqtlMB&ZA02&ZSG*7Ck#NcJ#@YUqud&e2NIyc|5_FPg zHhzBIL~)g^ESy~a$V>4r;$7;hS=jVXeg-KyptPxvs(+g(ExC|i(ah5-&Pn8$K#ItV8_Wu{iwIlE%5<+zf-F{=1Rjl~RlXLZk1<97D}mMeS4ss+c>a`-7=5mMxW2X0z8_e_ zS-23wRWR^2Dikq9Z{CVhBS&fvgThQp#=MgLqYteC`Fsm==p}B9%O{?mlyd#&M_KY5 z9f}^oKw>GI`?&T+Xi(z(v4$}l;vQ;p>pI(g12u0&$c5Bq?l!il0x@O2@$g4t;L|o< zw1U&nmBJ+~ku&OdsO*+60gQ@zvt4a!o|sDR-KTAOTQkxW&PA(ud`bKK2-uYhk%x0e zme0LMj)^QSjb99cwWFxXP)QrGQ7mZLf=^*P2^>3G6afNKUIfwQ7q^Q zF4i3#)^em-SrGHpMW})oX8$?-`4-3f`}ON;_YP{ppyy8A;Vz!{p^_JkcHL+)jpdRX zS!kc;*S={oGaG_wMB!IB{o8#(zqL12B^w+ZNFV<@aNaq&2jL%in83>VfhY zTP)KKkt)T#3w5bD*4X=e*lgh?K1y?pr)9*0lekro71>8g3V>VPCYO|9Uc2L+gw)y;vh(#8W#aZA2SA1|JkEJ=Ct@sJN7S>;f z5z4aUl09s4ow`fI6=|$ny|++uB!WkZJdM3cSPi#qGUmu~sv^Uh-3$!sxlK4O71P~s}{LO#$C?*vm=`!%&QNm*g2WZ1$ z%)0nzc{CR;wTo2}H)`YckPQLZl2a@*Ew&2IhJG(Z99oW;m11#ygKa5S7Yf110Uv#T z${epZJ73|D75VvBZ{^FY`e+K9Sx}$vdQN;z`G)Whkw0y-o*At2zDZe6HT6xajg@>s z?o(&#yb((^y-VL)mT){e6c`)&nP0&#&oElf&lEFgJI@r9TePU}XZdsO%bj4Fw!mag z7ngRjQ7&v%-KJT>ZWXriagCuog@O~dlH{tgZ9Ko{7!|fd0?Gu(7WYP~%wR!)zh(3t z0bRL9ffuOu_U=LI^N9A7hBS;M{C0hHK_Bd#=WnE$OdiuF8&3t@^6|gO2>0JnwV8i? zkeB~1TZA*qfrZPC&lhK<&qx?{ug}V=XpWv^J23V0H7{h0ls5xm(6r-&F%AZwj8;uJ zPho)*k)4G0*PPK+{nP3eM>Xyi&{1%%r2ZO1Xq(iZ4r!>%3thk3qNTqGqE|n@-GbU3 zQPD@IN#1o2W?~Gz+PyoJG&CH~(;jhWk#WWlX}2VIkJ@}$7P2iRSJ;Tkq&pHG7o6$> zyPz+pDr^1qhh!Ne-f7w9z3}^W0>iryiZ#16mI@nO#7O1ksxx!$C#qm&Ms941qp|VJ z{#y25>7%EZZJ#~=gw{%PSUnJHqS4ca*g3@#sKID5!vtxZ!e8>f{{DC~5Gkk!QEfRV zl;PIa7OopK?F4|KH`M@@A8QxZeKeY^5^)AZ2V$)6w8Gb)E{qT;fb5Avt z4o_ZUB^cv1lN{>>3}>XCQecew8YU>TB#d!A%J}DK(5gwF`UxG9RR9wE@?xQ12m2v2 zi?Cs`-;5c}h@w1AdE8f>l2OKa|H;8^r0V=+hINi&{!(da!e1??z51>uPcQO(R*BwB z(ya@uG;T~$8E=O2*U9U;Q)owTiwlUnJ;E93d8J=$*a9!X=-13(_Y+j@W3 z(R2-c5m1{G#mJ)K6RRuZL*)BsoT)x0@<+L<#=)Fu0;0PXzI|W$z}BH=_f3-lT+cj* zpWY#5@wLSHX)=*)2cucO<6k!l9}a=N>naaQVWraP_)BCE*^NPqc11%fiyJC@m7=jh zIeD$tSx&ai=AsZj8TAuTH6|RJ^Qc?rHaJ*6A``>D6f2 zHXW9q@af~-)PQzYOR?M6BB$`;Cd}HeaCXUa4qxL-*}&0=`k*d&kA-iNxP7|dhEjxy zL&r6uPp*hJ%F(%FrZW`3B)lLXBo`0YoCTmTw*twn zXyfe7nfDoEHLB!$vz5ifv=b*zq7!wRls$!|Mk@Osy|VOK)`^`OsWt& zcSuXD=CVfKDhmh8Y>Y*zMJ_(SBFJEx4V>#1) zXuGg@()nxMxX$4i{+&Bb1EEUi6+W9LTrt_;E^_P`4L>VzT%Rf3qZ8CA-@FnJk}PPS z*4R?lF5g!>MQT%4#>@zKbquC4#<3#}HdE|eQ*BY{FQ$>1x-a z`B{mVOGr&UVO9pjhv=2sJB_BI9l@WP@01Z|x@~+R)V+0qD{pQ-n{f(;sVp!?^JAUU&-x0^4j$%<_hP1^&{QNH;w-%#LmY?=fq6;v!aH)RE1L%EhqLsi{+PGo(xQiAf3}j+ z=KETH@a>x4idOUec{q5?h#oEDgb)TsTRWz(AB-+X)!#+ss@YhV#p$h(kh0#x4wKqY zf+~ry+FU7*i)7X-hOGfvFk{Xp%-!>D2?Q>|#rJDvmnQ^2nXsRFqm)`xGU9!og0T)3 z-{2&$1H0cjbZBlF&M{M%y%Z=CP%7V{oasf4ZkVFujVkT7N~{&!`_=f5c6v=_A2ZeC zjgu5{bh=1{Pa=DWKPYtJ(E5kak<q6Jm%717`xS|6XMKZ?V1oq0a=V2L?t?3+_MoHoO0=Y!7d@&*C6y z!Nc(E!T$%QNA%y?d#Nt~4(XlpN8JYZA6DG|F8DvY{fAcRasU5!qxkQ4kuR&W1$nbq z4=1yE?X#pvL@+Rx4@d&<3rPLncdn)bwhQ`pPiEWkkZ@pN`fpH_-$``uJDqfRdnL?e z@_1E_ewMQ+SC%B9k@}IBX<(AS?Lr%$Ox%AOYv5Wx6hJ_;Kb8kI)TJUK1g9MRS+Ax~a9lHPX1;vxC%13HVysf|_*#zzOCjdMPT3@v5On&Jf&@O3vIa*=unt_VIPvLS5QMK*4M=n^ zi&~Ym3#(UWG)-ZPE@i}iTxu4VXqSAL{|%ZV7(~~P5-`=&tkmOGZMhi1M{LP!XA*k| zuUgh4pTGxk24C2;dV-rC|5nD9xSLdjh0mDmngf5tLtp3!(BNz|qehqh_p0H(9xrzR+G>sKqN=gl2z_BrO&e@gDgRwGHeM zBU%2|W-etry==ouW~&NqK^l3g*bj)-(|l#eko>oy!rXp4m$xJ2&;Gh`uyhNWX&{jC`%LnTH>_G|JP7KbyXVI9L&xcFg{ zr*WmCoKESm5)fB)CAz(=7nzGxdveQ% z(?L$m&uI9%T5K$~`BP~*C%3=pwg-boY_yvWsn6^2(n;`urp-zVbL$i`7r;7b3jH~o zcuv03=qXCLl4M{C7Ws!j*I(VP=(r+(dOHK8B|+{lZtCt(_WVvwqT8qm?$Ex`6{c=q zQ?Rq((VNvD?Yor|Ki@xgMZ>|r*B;Tkp0R>ozZ>?YRl1vqm<*R~7D{Za2EI*@#UyZP zs#!zM*s}HpePLQ9-sZ@(NBQ*y=Vx!e+R@AGOrRDM3!xJeDqL}|L%%?YU%@w~f>@s` zI+xsuwA-*RUBk7m(V?({5g&p1ZfDpV@L4YO8F(9$3GZoh1k5-hU$h-X!xx4~VDM#N zOz-BY*2Qg4>_1*4AI&(JiufF4cUsgm$(^u(&j*;D`UrY|=>XXJ3Ci2!zCY{L{9kKy z0g~-iDI}ss%e^$1Rw=FT3ai3l*oT-gYHr_pK?56#j`<1BHZiIyg+$KAsBV?&@E2^k zETBjV@AsZTdmMsjE;8ZB78qk+jg>JEE+54ygw>bACU&s{*QGvrDWYQG<7PrZ%Hghj zclHfRSL=P@S!OTxN!oCu)GEnQ0I7o*0i~;Uc39oJUTfDm@JaLF6bI=>4;-||nng#t z@hKi%Y@{!lyqM*B%t7$eTh}GM$?DKmtbOwCvr+$j?77Z-aAcb%7~cV=CAnReIM+*w z+bNx=U__jaPY}foNj*>@PVZJUmZj@Wr2xayV1_P*v^3kVtx7CJK(&phGt33=|Bc>oM zYlPMdkEhF6T9(fuPj9uTZ^v{`(!-5}9q~3ZVpP5upq$y{5_Nwz7}^GcaL zQ7yQVo0XTD&z!#c-K2cp_@s|0TYZP=iEogthI|G7i*RQ?R?r5|@rF0rJ#p@3{XY%f zEnnU!?tI={#cu$Z<`#(^GcIQ=sDF}-qu9uYx;7g%wZcQRnGnbfVUBQs&tcwqu(?G2 zMv$v_;*vZ`r8h+rs2BDazB#E*$nqY(`nhD{s`ks#O5;W)C#+&Gj-t>ufF2!9k+aF* z1f6T+lnAJnZ|)%c#mmjB4YR2S9LVj_WOJW&$>E&~zbx2Q_?>cSAf5YuasSFdaFxm@wp>9zCMi)Z$+DPF8fC>} zmx-(c=@s6a=T;!j#p<_jq>H%J@k(xY%m?k;j;0N@1MKZwE18g0%~UMAN3nKweD*(>bZec%M35X1K-y4 zD&2+34?Eo9Y$1hHZHnV!9^$AMr%3PPS>M0PFs~!~Fc8G)Msi$<*Zkx)NiW=J%;f|i zAE{;VXnH0mwWS?1yspew!KUNd`?>oNOE=Y9b zKADMCXAQ)oJC97g!cLYTaQpjIqdwvN{0)6pVc4>^JN4ycS7{!8CTsG~BEJJLV+E_E z#7IO`>1+C4HLm3KcQ+YJKKIsiEL0(2;lUR1nK@}82>tgj}rTTD?h??Wiz~)lXp&3?>9~%42F-&od0-)!Q_!x1qT(Z zS@1pO&QAHR6}ET`kc@-azdeClRc55y2z_2n(S42xJr0UlQVmgK-ZZx^RW-e9w(4vS zkO?n-cHNn1=P<8_ifum#I!6BN26CKAKYb@Gd)I~%1t8;l3VeU{xJsfaJ%p&?eF|he~7UYB+=tA{}3IO zdG4n!=sU1dFc@uq5u@1{Y|3|+nmOMX{%!o#Vh-F&^7kIBsV>Nd!`uluZ8c)=;XA%D zn)S?Eme)1XJI3f6zLy9$z97~P zYu<^2mtu^Rwnh%-+FuLaj){PapQs!I4k4Zz!gO>V2CA>qTA^w&7O8~Te#@4%2 z=|~$C(Giu+3R_vF;+CbRW1J~eby7Jcr;}e{#V$!N>S?n_LTqI~ch$9{mf-;FMiEo2 zX)g5C$IG65DL8uN+^?C4hGa~#Rr8h~rL`GSgELJZa}$|~vSB=f2fF!**H<25^uRZ1 z8T-73X0HEAGcw|abTsG^+*`y+`a6^Vc%a!4)S2TersEh%In|J{m){R|d5$T)-<(P= zuNSiQ`f}Z zg5$ii?DNe`DE6_EZL1g4U2dk1=H=A7&9RDHezbjN?Me>BJ4zIgHuxp4Knad#n@9nZ{@@Y8J{h6XI;hdX0NX)DTyz2~dDay%)q5zdWV*2;&&kYDJX9xqRD+Cos z`5XG*z=1wUAPjGeLrGyyPEjDMmirj>1)&aSba>^WCwPEJg7-C}o=15)rB!U?l}Zpx zg-+g07%&05@o$Yknv>ASC%G{u(~YkFwS})kkImAV)&f!&8Z^6?p=bescdN`Fqs_iv zdUAMDUbfNidp*7iFx3n-HO-7jptJc6+z#RWYy+bn0#?6L?D%|g-M*(@eS8T5@pxT-W0iE9 zb)naL-i95B>_R^Fs$-du|EZrv0+awV>;#`#Cme=ElH$s~M0(Tqi4Hw?({G48e5@CfI zxgo=Mkau4F`kXU}W~n{p8h*;eSAvX@gdxH;e3C*)sV3FdbhjM#hE}@p?hH0Wl-NT!IOO)m?3%60V#0~CD zL5F3OQYS@h*8ua6)dUcf&APS`A!+IZmp~L(;IHj zKi^M|wda2NWL5bmGYduI0X&`XeAYi4_la>fCbG;)d?I+y7kgbsi#Y3ytFrb4mTzJ9 zS!}@Jbk;FIR)i2LoD@YF9|r^BA!qi;DMGE*id);HJ5@jP<<7Pn3NO>pUCOH;;K-p* z71`PzIkzMih=Q_B4P$VaX5AqZ0T`@Wt!<|vg>71ImWMuk=D+Y%4C#t{*7w*ef3Box z?=yAgt?Oj*tlVjL#URgW5pFW*wd!B%Fc}wkcz^V2bZRO}j}-gcFka{#6j7sWdp!-( z35;hS-jl_$V^&x(ebTr27uxL_>pjJ7d}t%x<}T}6Sf!f8Th4jWgsITDe^Ajhe)x=X z(c}wP4sASPn~y6|s@{Ht^(5m^?sQ5fbKDge#_>jOAzxx$;Xi0fvdNEX{m0wWII66` zzpmTbw)1aVcT(P!i5%paT|0M4e#5cP-7L@ma)_#ADjG^l5bI1A$3%@eLBB94udp<3 zDzN49IXS-Z^&G9BQSe4yz0;~1=;-D$n;!8}9e_GW!6#sd6q_4-Nj`M;il$T9XXp~n z&8p)n8klL+h_Q|Nc#}VUSnMX<(=J42<_(+>SRc!Td7DIdKt=@`r$w6osQPDqF-HXc z>g$2~2H0IB8tgmgDuv{x7mc)LYANn>CZ+PT+?r&~$Mb0^$^bGv;yGk|zYY90N_Yh5 zqIe+F+lnBaQQX2Ur_2NumswFGuPxtHhtj#o67~SRn*$8p)^C!jG<0 zJ~z+TZcXwVJR{AOe)cOLpm+f zy}(_Iev|V?@r}Dua+_(b1LfsxSR%87@QK;mNJOyVd+)|KNWbm45~H#7h2!8@+IOC% zID2U?MZL#aBDFYY#6Yg18jNn}O58L=O1yUq8aBPyFCKXW_-O zk{9Rs%%0EuKJJeFPoZ7i-O(aCpa=+77CPsxnisAjiuBzH??&(jliW$*T#GA=K6-r4 zV$R5zpi2@`RN9G$IY%fjlNOnwbM8f`-+Cq=pli@7<&?-^&M;feK zu@s@2Gm~#-y#CQE&~g=qtSkTC>=Alu}L?z z`Ot@7wd8JOY$d(DJoKP6;z|$7>iBr07wW#bljBI}46&%xB;{ChGi7hiBcc3<#slXJ#7F9Hv$#xL(R-YU191FT@R{j(J| z&8Q7$u7jMr)Co7&z8Kp^Y{BE7kXh2d4yuopQVt_7#9=hTceKIZiyVm^O*cA}O7hg| z3KCkUpZ-wX2A&!vlRpPJOJZkT0Lgf~Z&aPnrp!PjNsCt8VQ7xQ1Fm5SE6o~GZ)#5# z)rFCBLqrgx$-mR9i$(L8%htaBH4;x1Udf%9RF4cojWSSDWHOSfQOHxozA5YTuc$Pp z1Nc7s!M0Fu#H2Z-=EZ0&+nU#28&t~2JY8dC7M1B2u&1sLy_BwH7asq9V zqr^l7FMmBcV$-H4t@7Xmn?-1d|Ssdr1UXVz;^(G zxGG}!?mFCr3URK@pN%$zrlL>55irL;QLX6q;2mFqpWD%+!?hXU{TRM2!HmIy5^u0y zx0wq``j46|D|0G)n==}9a=Zu@#;iYa0HRtE9P#E)=dALyL7J2H;#ZQz%!D%cFa7uI z3Rf>8NqdWz&r)f?xhg2iih0h5lZ@Z-u_*zKI=7U6*1|_rlqabRvKYA8^x2w@Ztcxm zs{p>^Co{q(-yXa7u}=y2qV{UTwYT|W60g3s)~z)%)?u|C!z>G@oRR!$rsCFV^!?_x z=$f}kBsD=}3b^UDYytrU-Truq^MUF8ShZ>P80mzX2yOwz@}|H8V<`ygG88lNZe;bV z<0p_2=E&q5cXsl-+e)y{9p0O*C+~KRcVG4=Oi_##oI&0Ij zxu$^nA4ix9LS0;@FN4 zPt%d;BVID8+3B||?h)-PPf>-E6m>D8tbALc%}P~WBu!t&DMgKr2pD)oO&-ir-jQiUgVNc$ z+n|7rO5=T8r`kVRlAIPRm&!{~%tCn=Nw>njp?y~A30@im&$eY+9zkpcBd7-MKV!!B z%D91ff|7M)te=aFyZ|W0=S&&Tdx$=^4b!OI<`U9IXj#33@}6hijy&0Gl)UCYgwaJpeIRRw2WA{6nr*NL&t;3=#D?nJ2DPE|&v$5^ z=&M=gSKUT}RtA=9AWZySy!^$(uZ!hR7n)@i=cd}mts3)*!hcw*ZbvN0(u-n`ALAe` zMH=M}1%r@fbMryEkp{5aW1G+5l{RfssCQ-{dgpZlOl4xDZhR-rPJYpBaZ%|`UJnWf3Nw>wCK*0F`nY+H2uTa-ZPE${kbk`lw9RVA9`GsCBZ zb`2;a<_7?gDa|P15NjG9;ZtT*azvEkh#7r1l0aLhfW37fY-e?{YT z{+eAtfx||ayIcMAd1G>LlJ^-f`B+iEGAXoftJ9L%8LeZ!=pKJ%wYgD3I%*5n*{*J$ zhu6OhV|viubMGyWJy#=37RG?kbKGI1t2%Ui!6IhkOvUYQ-Yfyzp@L~Yll#s@`%e!H zKNN3w+rLUknUvq%%Wk-oHToXYE&~Nz)t7{Jq7Hd8XOaJ!cdPaHlsi4shx5HuA}vS1bCp+{dQ^ZUXUlX zkR7W6lKa=qDM)CQ?FctFn7AUgt-S%3dPc-uX3D$(`*1ulE(@<$ILiq+2j5Ws1)w=* z$pT>iDv^?NxZL`$(-XRlW>_{EBCuSNQr%xGVAZ@o~h%`bTbx{gZ|AxgSVXPKzh> zVMe@HA^i@1>z_AuEP6|~KBZ64laEaarj@zRR=9r!4}3bD7yJ|}$e#r~Z`@P4 zf=KM*f<7$nu^inqrKrb@NlWfbBD3_!CWnJ=p>#))M}1$xN@G}X^cyq_5(OLmg4E-l z1z(t23D_6RoD{Hh30Lx82r@}z-(InYiw9y7q~&|z1O_9IKXhZHfL#sA1Nix|T(ib; z7rC|`nU~keOuUY%?p*D9-sTAZVGK}%PNx#`6f9Y>7j zH?14#P6PFTGPa5XpN~t^!CZ>-D+Xls*NDYwEt7da9Tg_WL_9s5p2>-OD7}GCHbw1o=Z+beQTOgtg;H zEuq8xME!+cVliU>NDr6yR2au>a$1Km%z4NFP^2d z&*^Qd0OE(W7Sj_~CgYzRHy6CdrzKliU5$BNx!<&QVj1wY!{0VoPlL&%b@!&rt)0-)E3CgP@VFIf2d|UI3x< z9P7nKdk%nj|0#L0OSDgUqoafEAFZ8GP)TQ+9lKA&W7TDcdJugoOA1eCVogd?KL-+X zvnyhKna*2|U7$~W1PzWN=S^E_S3J7gUo|(5jfb?p_{a5%v-$jLA@+k1pB4owtgv?w-={+_*ASq|_#!9AI7;d@d4IdE zuz+vVc-sw!xzafCIz8FDn|!d4#Z1^hZ?rY>Svh=H7~xDir=o64w|vkI`(2NhT3=uP zLAmP8S;t7J(x+&ydznCMxe}MR)Z5@RdhW!6bFQ%IW_&s%SmpkM^fwrebZWye>#2xi zF=y+X(|1mG(S_aiZ1s8hjNSE@0?1gcFms`J&*^KEV%1#GFU9?&8c-$1T$WSf@y0PP zON&i_OTE7C=auw=iciOL2v1ziW?daqyG+E$GQTC7lM&(uBro1-8PQzGt?7NxeIU_< z0wyQIJHd-2l&)g8SgtMz5@qi56I}BR`!k$;k{X2C&RCag#F;*HkM>rcRli;F!nt(R zVNUpH9y!1s;BbJiY0D$;X_zsWvwFEjc7dy>Qn|I_Zz<0vww0K$eN3@(q>d=MTre*o z_1fD3pq8-(2=gH4hC7*x-JlrpEG@c?B`l33LGGj<#+T1!CtG96RTvrQ-^@F?PC@Qn zt1hP)hjihdruQb$sLVdB-<9a$a+mBi(dm?GH8YHN$l*DV%y%Ewq<(s6q^WBbA32jZ zO5=Wp(eLQDgxgWE3^H>?%ptkL71?iEw|YB=xCPiVAv^$}`wlGwoz(EA(@T2Er6>6xn`A{ZjBHrwliL+u#%W|F!89A{;)p`Zm{`fe@uHyOwqvKVUk z)yUIXG17_EjHUs2QPz(Oc1g*O;!a<$3{h}IdKiBWF|Dzg>1b*_eR5Opq~PxN)h`@Y$0L@JFMEHPXt#*+^0K}4IJ}MVZzC=#i^GMXe115*mdB8=nyw#{kDst z-kr>K8YTmIWUiOK(YZm$tzKRelR_D~B-WdKCME5l7u^WXo0?WRP@m)cXb!7t=*NfF z(N6&{=TZyGT=SFE8v;c)e}*Zcr>XTDU~6c!bJ{agg4c(0Du7sM3!E6nM!antC*pwsz+Au?CD8D3FFpB?X(2=QGJ z7}>5a4d&6JPO+6v2S9%`JeQt0t>|eTdBc0PNH5>P?q_c4Wh)Twm&^AN-mLN8>?A@z z_qWm}xAX990j;;=5KN^ycFtjZjlF0ZY`eHSDcmqa(x2iU*=G0llQcJ{6yIaHKWln0 z)C3=zsJ->ZWVz-KlM^dQmn2qc=|gMfr_`U3thdppF>NZm;klKeXWJ>3B!zlQcI(oa z#EWc#?VA(DZvJ&+r11%;LM)SyLGvWE15E-C1t^FMzrQ^#4mp;PDAx-uEIEKvwwZ7d zCn2+gmEx(+evMz(jX+`~W0Z#V%C>A^vAM15>&K@h7h!a#7&oW3$VY$}*=X78>)MnM z^n#|a@TD2bBIzibc|7; zvdn?LSWewOyG+&{6MN@t?MYD;2ubkVZsYSojaFv-t_R}6$gfvlNw~%mr9n6j5MWV9 zI4NG;xZ{R)`HlDtShrEf+8M*jvyg&W`3Du^^_%eNAhR9AYT~oAxQV?~yQ$l^}mIW}`MWWNjP`0L0ofQ?PwKmLF2MQ=e@$Go9& zor%Nu4#gF?LyILs3qRRc%e@3#KI$8h)m-B)l0TR$K50tcIc~Rsist6hY8xAbZ9#)X z-WBXt$Y%?G8}>guxamLsl7MFNaQ$3ZTe>Lb@ei3RRyHdh_HTIVU@t3UHp{dq3-DGP zaU^nWgoS+mr6=&obF$uMQ@F7&vxnhc!yfo?0KwCuek|Ucer?Rz>MG)`8HHZB#7$$3 z(>K~)*WS>2)|q%mz&id?Vrf2ew3{%u&xpNP^hA)TN!&8X&^EsAkkuh?i3Bf_Dp6S9evr z@QBs@@y8=c&|20)Jdn%wOpRmLO>$^bHR8mv@8;2rsbfq%m}u|^JETmITe0@bh#!w& z(Ac;-~f+e2sQw)`keIlgXi0BP_9>gkZ9Fd*9SNP5TX=i6s zy;I8LDTaH7JX7kYQRQtG7m@Gyr`fBHsh1|!o|yaT82v%V%8L_}>+1F@qs|7A{m+Rb zFM-TG#F_UEzsFgb!WB9=jTBI4&ViKI*~KX4+f19Iuy8OHM9i?Rn^6`I=_CeyV@&Y`&wbh0E6E7tBssobg(zoqb`hJv(?{*`>`V zsUjQHU)SoC2}`DKd;Anz;v2r_L|TgA(vWp6(*StRJyC{Em0Y>bOtb{Dxc%YtyP&@7 zrGwH;9A0y4>2_}K!(E7%9-?saSYaNp(`iMy)4UBzOg#|IJZ|4OGZkhZ>Bb-OZgck? zeowShLvSINgW15Co2-IPR`naYLWclnk*!`fV{I3dA!qOyrDCC*`J~-%+d~U~IB0Dh zvwo?Z{rTSJ0Oni18>_}t;{Lj(h9empiteyAaMR>0I=qa0(a;)H2ID#dJNpe&oB24X z>eIChO*~(LpH@K|wM{aQ@N1X;sk~CCHI}Se^`sxuD-qNuru`C0s z+I(;auD;i#Uu$>imTlr*E3a2LatJl4kKC3n$CVyoK09^0lQ*f)#55pn4@%e^`_&uP z%Su{Im@IuCH5N5K7Nu17LGZS-Jwtu42G%)pC%ihl9`XWDE*MJ98M65ytX~$Czq4`E zXwx);DfbYrdOIh5ehwQ?KmEJY{LPaJUSOIa2+9zuUVE*$g*J22z#p}XW(jC!cdol_ zJ;o(>2(Z&hoCOC=h-7Y;S?fuG^AY)#vadC&pp}BmD?8hfs0oTAokg0};bvW$_a*bNrjITJ z0mzga8QPrMp{@K5xzOQG>j0>Xb~>;0vn$1Atld?6;;h^%#-{C{Jofc+Fl@_2n*DUK zso)azy%Z@f%@i`2fSnn5JB^dIVB|yM7@PAi-kkB$E10@TLd$D2%9>sFOuHCMz%hHZ zZt@3p-_O`{>=Lm!tcUR#`(5Jgk4+e^T-pYbdjg}Y!HY>))b^vnM!EXpi%5)*tgy?9~^y68`Jv==tHX9w%NH9cb2~_=rk*!3n+DQX?c<%^N$d}v25Dm zeT-gCN=-`=gb#4=k;_t4nq6jcK%u^0j0vr|gyw zL``~C*Dw^=;^Jo zlfxaPUiiuP)}eAbrs^|8+^dJ%FqquQqGjyeJ~np%^qC_+~Ku(TN}6>DWp_xm5k|alnumLhnNWqd))mH-L?Nx zuS^Pm6DiDE{EA;`j5JFOPxFcJ%9^KA`N+8&{jP2#C2@3y@Z9an5Rf-R)tP#wllge1 zLsl74wM~AHcs^rmG9Fsh>K@D|Bu6?LHUgEtS}kvnxb1dMyLFxBX>^$?4p(?ncOB%s zs3ZSac}w}|ReY6M=@0ULeJ+ULN8aJlo?Y}g?;m>6c{sN1ceVjnJ$y3PPMkj7xr@U4 zsad|FWQ{TMkVuVJy~BHfpI%y4=tV1D(%7#$exE^oIr?cdwaC+Wn?uosWv{Bw2~*m4 z!`7Y|SXWD>WZJLro^AL$b@yRB#$ZB;+(YyXw51^sjZWuw65!a79|0yH7BD|fyZU6+ zOUE^DVA+#9j$3;jfy44A)WvPURCqzyl%>~-X9_TEI4*EDD#;LT3nv_Cy`uTAf&6Hr zb(=v@mY*r-nk)r*t?2&Ys17=CO6UiTe_XNTyU;Z5oZ+(iDYtDs<+gE{#zi>5JpKvS zi*6z1+^Jq?dC08A+`{hxU|zP~Ccn(KpD^X~)b<^k8%su*e@bf0Lud~+cr5`b4s-JJ zO^g{ulR5^oEAG9LLjoY|Hp@)QjbGDEpWC0j-o;K3Z-dYVE9hiA{X6LYv2|YYZ2wUo z|F>GIl&aPyRV}q^Z`#_WR8{RgYwt~}YSiAFv{h6Qdy`nTi5)w35D^3+5_$SuJvYzm zbuNCl-;3Y*o^!tE^Zp$C4%3Z`VvIqf&RdU0AB|;SqA43`@$Ww^Kf)*@!%K0*9bSA)|M^&jSKA)dq(>&?ekgnf>utf9 z8b0p(E&HX`-{%}V&hig60n}}t@MQcteWB$-_HG)H|=+OfD$c)BM z?Ml$c&-HE_!O}z>SN%HxJH47)d^tDT&YQKFg4r>KwGFJ=zhD??vnE39e4$ASz;s6? z;)ozU(j&crj+7x;YB}G}L}*KN15Nec4&j+ve@P6#q7KOzn}q2ktZ##2crpMQAptf$ z?a5QC=w?Kw4}|4&C$v`P5FJCHN^QTU&D%sFDaj1Ug(!r0z}jZUEv0MT>%;vLkKjnp z?X@;)IMT~JiJuYvs0G~T_ee+zT;XLNiK1#b@idP|$(l`jZg1u#p@PlC<_aI&Zn^6f zMhDk6Q*CkY^5X&vub-^(^-EB}-?qH*TuE?|1S5J4;!q4`%^Pj^;B02ioA@v@%l_@Z z+r0+SBgqwPhPT0Q%nVTVe^*){aVT1^D6f@Bl!cjPuR(kT4IHp;^4WzGeC4^4j6$_A ztOx%Gk8EMs{4+578I|lMv0?JXg%=#-Nu&hZw`6VN$-zp08*fVA*=Qq!hnfX!-N5u#V%6GO!)C ze3$RALM^_Y5o=dgpjysjR>(rS2G}|XFXN7j5-#f<6 z7&sc-9B}0a)$U)=tLfULPI^d2_c&~JCX`r%JFjmf>+giRRfdV8OrKlc&AS8pkPBz* z0``|@f7h0tbUG+AFL%p*Uw*>#ces`?CGz{gVf?oGPo*77h8Kv` zZM~-SaHhpOSmPJGu;VxJNbr)lkdjYiBbmK{`%bcZT&1f6#}Ltd2Gyob`+ubeDTn|xDWAt z{O;*M)GN?nh#8Y#QRSOtEi*DR+}d~tqzYn#l84padRyIt)tM4A(KNXZ7GONrvF>wU z9>7G{W!Zh>%Lr-k*LBY&sadN)6+N0{6p~T*3!lOFu{~i~s^R8qBZ68t)O;=v7kIl0 zZWi!%<=hPAP2i0>4y3vl)bs>DI1^?k1~^YuYKe19tg_FKxR+}lcTOI90$u#)jlq}m z;${o1kBP>HCg3Z9MiKAvUD?uHqQ6F3Ud|+JZfx0h5BS$$b!s1YQ%L6~DdaN=RI)7~ zQ9)>!EGUusF#Z5nQcI2CIh4YO3RPrcTiPm@>jwUi)r5>4?-EP84A*$xTbc*NwEwj) zV9HeXQ~OOX&#v*ow#eXLLo)D*1Lxyr+upZ8UJ)x@53-golP;Q1U!PKcEu;Kz_)(^p zB=fNMI~*E>s8yR6LVb33w|uwW<{#jmd)d3f6kz3F6SCEn6KcUPl%kt`k(oH%6`fjD zq2F_)C@k9186AJ=A~Dyh@71Ao>lk$O2I}0$i{+P0kiQ!!`XB5rBJ8`w=|itWtTA$I z1=ltqhzjyt^4{xr$ZjyjWO2Ax4Vwy6v!R{t#KEmA6c~|=E;5D(rF#~OB|g2*^1W2uAaD5@I&b;<*Y)(?E2qm~K{nl5PfrpTHrbbbh?JH* zR86yP#eT)AoBu<2%pP7#X!{*0duGPJl-U|PD${AC*fcI<&q4bM{`0Km*HVV~0z%y4 z{MGbvT{3PW1juoq=*SJ$Z-N`Hupuuvd~U1wI`8TJ#KkzITaGC=x0$+&>o}3R&5<{u zZG+Xw1_I2Rf3aw#TVxQcj~5n+t~GNz1^Ne?k;)FPJ8g*|L7(Q(Pj%O@^ZAo6kda5L zF!yJ`REx%thydloPu^kC^Hy9n!W(rszuKJ15eOZHFY-0U#w{AvV4t)GX#cOwkhDs7FR`+6#ryKk)dyRewrp4$+JEtA$Y*V5B|YA;f)cb} zEc??_?9{12R{qzLX+MFT7?PTi3>F7&W}HjKDU__foiGskYdEVu#$Vj7GW9zAg{=fKZ->@FttEOUYtU%U+0NC~W6)@_XwYb3 zweZ*}#6#^D(I|Ss+OALTu2`Pj1Li9B6=oN?V6izrwvk=xZ*m?Q4_Sz()|e!IV-H^O z@baMS<65>7GEv1h-AW|M;V^^WSnB666x6)~^xUUmn60dus!aXl_wT>;v%hi3ZWT2i zD33Y>9EW77jW}`zI{L_8WY_RdSPIVeQ!4OysgEcJ7p2w;*i%MG=GlIfz$woTE8HJS z@Fd73NlYcTWQrQ9>s&#cTzJEGBk?_-EHmJHHb$=r*&BJy zmofm~j+9#~#ott3J!sJVa;`a{NV!<{^6H@z=qB`6mmKfW%e(R^H)(%$k*)Snw@M=F zUM6Mx&^k8!Ssd&9?`s7bCrl2%6Si$%sodVZoGc!kH-)*evWL4xnp*->srrFsJs;nK_D+71Bd}XxYu?6qtg&)mpu+ zrXC83%RV2xIK8I^*x7zoUeXV4+Za)Q0lvoc(bP>E46dJXCgZg?fx&8NGaBO_wCT+%Ns2N zx%`PCv@oU#pLhfnx7k=)%*bFbDa_UV_;WFpy~Vc7s-A9RdsRYzW zKp!y^Gw10IDhWg@qcrw?J_7f-Q7V7>Su}{{XL|b~b5{H6b9*z2F3%T_{8~Zn;6VJl zhMSwCS(n+S3(2dxzg@v-S~ELZBSHrm_J_R3X@qmoT-9YX1}!-;5*o1TdML4$`xICN9I<`O>?H?qG2+-R6mD0URz}P*xYP(P$tJqAoMlM(##p(h zXV&AH2ONUbrbBxEHva2^Jb7`g^gIOef`-|ekv?Nt$YA`+exYqzfSfdNb6HT&tGit% z9QG_{RCeBXzbtjjgWb!6@d$d{8#_Gq$7q(tuWz;uHaNW1jwkMhN5++)p?aA7YYN=W z#8C<*2j32qQRKOOhr#edk#`&vw!W$BBM=c+gXRL#MOjjJ%CW@ zXRM1q{zW=#6Cie1iUW_f$}S=UY0dmkI=Y%D9#T)*9H~VWGuM25DiA@sJRfM5lfN(? z*iD6O9E~sP2U)Z>Q82%g8SKpmmPuZ8mZjI-Q*ZdG-9#4xm%0ilM%Ccz&p%-VSz?+; zsm>oQ1ded7-qb9MuX$j(!-`#vPKLz4ptsNj1!Wilw$7I45E1Hmk1PwtNa+{D1lT63 z02R;!FB$F>Azxw&A9vU8P4=Nya)c9vf9N;Q3S5Rn+9#dhSPOJb`4zn8O`MaV?o?u!9$9lkD8N?VV9;3K1s)xZ?pBxkB!f=6buQj_}Uvl6>*DjGxXO97ohwOln|ytrp%eQw=H)ZJwHE*Ov9? z;Y(D+)c1!U8vF$QRd|u$__gmXrUD}`-PRI735gIpOYr385U1&vRkpscQw`U*YZi>Y zmx;Jp5n5VeW)}j=cFYl$0LqRew(49u>$jM=f3DtLGpV1x4H5u8R1fe1^*y`j^Y&dh z9}8VCy))8eXXCEJ>}O#Wi5IqyYyq;M{T4$RwR?n#8P~=DKS^-4x9g_}`|0AOI zU9Ho&oXV>X{cVn^?Ck4DSPEI_9rKX3=91xB<7Vq0gvHuU3^QFLZe>?51R?g(JA5}e zzT@T8d_=HPf&#Ysa26)hwCmxF#w`Vh(^;W9?yJ}GJWO)Vp9G~lK4NOODU4Y@cAUXs z`nz!nUz4wjhxMcI0?p)&5I11)?iUPwW_u)JBCxkDD2G>tXD3Ak+c(zPuW6~{ej}^ z3b@C^oxIu`WH8>Uoe<<#3p_`F#;8 z$)l%t|2{h`f+wiS>yfY7moN~q^_t_Nc>9=|6ARC0)#^wbb4c`?8BY}Vb2sfMG3x1; z9$vn+_#d_0Y1^N;1%VxtQd^28hr{FoxktYh?A@Z0{8~(wz9dOV%n6%re8no*8s4qp z3za!9dy)0f>YPCqe?a(>rR0<(27QUTF+Na0;(@P`5Uu2Eo9q&E0TwreE9xcalQ{Y( zWm(wdnAOQF(HjBET}$n=#`$Z0L6G|w%>Er*yYqApY?`l|jNN`tOqRguZyp=kQ$Ob# zum5-vwgyZ?7)Uue5^iw9{G!l>J)yv5^WPYuR-L9|NcJ=AdnM^8$>!i>%2uHd$Ov79 zZ5k<9o1oV>0Wep&QOdgZ=nFhk%vRp71UNEgX7QszV|z(pno-z$HY-A-TW#$K>F(){ z6A0QFFB)|o{D3yj49_t!VqH{E3xU<+M9UKW8aZ6%RQvZE28Qt|&5`U%_Tyh{V`NdY zwe)pxveu>BtxNY>muOq%zMrtN5u)|TN9qddw9>PyYM+1-_MZ+`k8TS49&EL|EaNCI z`#0??&waw-?{x0Yg8fZdTMq&ngNO zKfS(tu-9R!vVpM~ZU2!?+EK>)!M&Di{{ek&j{4>NbIgK@-*dDu2AtW283g=E6l1jv zrtL}Dpsnq_PBKZ9IKsmE8Ep(Vg2xzXogq1;mp@N_hEDQbZoIP1UI7pjSWxuDF?i~F zd_vfMUoA!YM=%s1`k(x8hw7S~!SB60d7n$)V{}S=Y;M*I!|OyG#;t1*pH&;{3O+Xj|}_|-i>bT~2x)y3I68}NH# z7WjOZMS5n9MLxsx9{c_{LrieJc}$W$l0&i%OT*~E$VTH3LL+6D&7or#LL1;nL4$LM zp#hB0G@rF?xDA+%p`%^=LVmcs4Vjo-TwOC+D)Ovy!T9?%;o903lUpVInZRT0QQ#`} zSMa7Ja`<`DR~L2lW*0~G>WZ?>9GC1?W}h^b^VdN|F3KNuOndA_aVzJj*-ib%w2@d200WRDxP4$k57KQDvLS(IQuXpSNv?!3xSX?tiDrxbkE%#+G?3h(ed*btAzM+8^-s)yRO`sOGV2*QmN!>CnRT<(|Yp4 zN?|#LS*c*qEUZPY{>;;3r>%EDw0$wSkYX`OhPH`y9CH2|nR@=c9@^O*^iyG-%?aZl zKC_Bqb5+`rU$K^sk-b~k%igU$IhnF|pkdc0+a~5C8!YA{mt@~IL^_eP|28_d8l9l( zMu`kRWIyE=W#GL=UMI3DtxG|-mBl*SbXUgBk1de@^pBZcEon@K4>sS}m}w^PfAe}K z0)E<`+1K)($?)#x8*4M(1pX+mk{3b~Po<)~&^L;3|G`2ckeyvvi?tx(qYlQvRVsNc z#hYNl$C8< zg0;F4CM45kw!9c%zJ2;^Y|lcvOHDB->dJhZ!}u^r@S*#qxyYem7*f(NYt0xsip;!v z*#ea0gp!%uga#`@y*w0`q~sv_cZ%E|j`(-n4?*{89E`RO-lPia>?iV#_sr9hZxtQC zH0vwQ46CP){~D`!G42|E_4FvgsJot((KTWPKa&2Ns6LguFhwie{z~SUVyZOF`+h zLZHsI5~D^{=Ae*{`Dj_hI-yp$Lh>SU{K;Bhrt?IIl~5h6GR7M4r}o+&Sq7>KHiwgB zO#SNW4M?Xs_$*zp9tZ5jDUR!+O25do5ao85f_M~>EVX668oH=>)zBY|74lPDQc`;2 zb6dVbo+X(o3~azL$PKf71YtfAh;Jou0B~boz%&`Zlq)-(hM*b6#|$%K*_E4*&Yg^vU| z16Es?9K3+G*L<^c`JEtg3e=#-E!YznWa0eN_B6D9Pf4h5``U{bM&_4A%D!s~jyb%g zpdhsV!m>R{hNsMwPgTW?gA?cOC|64>!`%emFj=J1PtF>;Gz&Ey6S z>`ZdFw|PKFa`Cko9Jr)id~_{8AMYAukywEaA6!cxU|#a?&%<9QNZ)=t|#Cj<~^-tBv{Y{Q@ljA68!z*d~dvciAyQ4EvOq8uBqcw5c^7}VU(jz9NOIC zned6V<+?`K{(I6=SgkHx3{BZA(OqbWX=R%;TZ_ATOH;aO)qPy~=E6NCY(!?!LS%8o zA%v@4$kpT5fbiDB9>>Y8Lo6DTqRit->!xQu8=1MRb#KMmi_{=5M=-d23-|N;ODlf7 z{7F@J^3N{sMqbg#MWGc&&8#zrF`-B|Xvdne`datm_&{-jYhcw!>)+z(t)^-_j0os} z;JJ|;%A#$8a;}VtyUa(>At74J`7#^`vvuu32B!_sS*60BjPwx?86gPq2 z9bZoAgR@P>sQBvmwu2d9+WqJ!a#?2ZKW+T{H>m|656Z34ynF&U4GT7tq?^S-9 ztN%vKifsALXl+$@BR2)oU52vo+>0*zm1MI6Ji-fZ#fJ`f^Lu~a2e@LJUsn6QuHM$_ zoHMp1dPyzWn>xwaOh3ezWn6ForI*i?1HlI)dk}Dt>z=~>bU%Y#^kMB zJ&u*smNg9!TyUGxFWhr2DC9mw> zO_ql9R=cD*>Syp0o*IA+Vp;?;5eRy!!-AW6Vaq=+YsC@)%`V{yF5zZqs?UHRq29`x z#?304h)?manhFdtUOyO%-LYX>wm-;q+poE33;Pul)L)~A;&N9T}Xy>8L zc;vMz(pB{p31aftHBj5avfVFZ#JLzijO}Z42~oO^dg5 zbZH#~J!Tvc5@MviP801mdbFk7U&cv`J=yC9PgJ>)>{5%Fq`uxRVc0atE}N4j{LT(VT-h*i;|@Q^@{K13ro;eJD&#a zpUd2o3I0!>_fiAsg9_SnoXQ~7P5ZK6b=06S2&8aH+ew^cm$GJE!sTwhCaVn>K7dj3D&m1E zbL327_#uZ@OOa2q9c8{-SP(i0AIo|0na%;`g9aZB6=oh5hR4X=HciX9VN`beg(5O( z*AT)WQZ~U;gYU|=E}AUV*bQRbC0DFU?5EGjj9ME|T~iMNv%|_FLWez?auHv{7pzqI zZpz2d*h2W&S^|Rl@7OMPxA+K!s!Q$M^SMBfYLm=gi@Pg0K&DLTM?BVgFDxfVAJ-)*?I=R$6jZS$5MACXMamJw6+)mhoQV4yW z2ll9_X`saECUGpX_AfNHuN2Dh$vH%EY6c(r6(RI}^gmq5*C^u1GAOG-LUY5z={eh3 zpp`VgBZzE=p8hzb&{+NEP59&&) zwG)SrO^5fQXAeI%1jW?gi|gI}nrFQ_I4AKmOJ1Q5+pR5C{@Lwq>}0DwfXzx#^)1e5 z^<1jQc#r(<&Bd_$0CLRFB{vP3IY~ip|IwzrVF~&6fog9W_L23+tJ8!6iP3tbT@iIZ z>y=#3xY(1^V7ngK`@|E9!_wVpx^o^Z^uG#HxJyf9NMG7qULX3X7PE;n#Q6PNMz-fw znf%W@?Yq_kam_E>6Peo+g*SGG?*|DTe;+h9VPiy3aBhhu7(Xqq-bFlmQ^>l5iyl2t zJZh``;`iI*>ETAwgG{Im+taEB!g2mrpZxV=z6G(4+L9QF@#wnQyaocz=z~U!s7td* zSxme)mpyr%n4bGDor;(FvH@>VdPRv1D&u7$MO1!iwX;BW-}kHTheNyZD>zaMdK^49W>V}q1>WZRMz6*8p zVGZ!P;$cOWt42#iZ)e)7R2NY3FR+H5K-2qxRXAtBb*n>vtV-<`zJvtLYp|2iguO1Z z=YqoTKN)-HXg_2ybvRx^(@o+4)2f=!y6?YO>qn(u?Tu$9FIaBsZP5A9WzX1u&;Lcg z6ZciM2$`$K6~-{}yl_n^2tpiA2p>N#rzaFvxqSEdINxS1+WGmKLP+5sM9ElZVOorT z8^^A8Ha+ka7`2b0Xw4WaeXBIp;s57GpujuK90e0>(myeTS0Ow4)2rU!1u2+*t06c} z-c&M{e~ul_;rVRo*6LD;o2BR9z+jrFv^4JCe7^*F6-9@GZztn^314L^G_Q4(rVAzG zk%l7S&OovmMcr1vZ-dr^)_dLqExbO11oiwF&j1mJ#ikr&qa+Ai>#uDn9UR1ATlp=h zLjFCXu1dc`ULI*SJ!cQP5nX3dBr)0%rLxHUQeuvRY8oQa(*E;tua(({Z4+gm8^653p%90=vKZQdT8uHZ{SzM5v_tE#=`{Byp5nNO1yV=*l`T$W%_e;dbs z(%!y6*3b<|{3{iXjZy3(rV zqmr{RpLh8SP-x8A^|hhoxE=V=v5VR3%k@VeOTS5AtCS48SV5d36Rcf;qK-BR=Hc;Qj&b_5jf*bt@r1V1`j69dAJh&ow-}!z zqzq?-{#i&8-pw0^txyho`dXwQzOV(%HLxe&67qQ_#QM4Ss#>l`+QJ}vS;}|=xcwvQ zq(HsjmbHYIFYIkU?xoKFU${r1<6hBCp%PN?LhvQ~op4>_G1XViFj7vF;r2BUvNQ@y zM@b6M=U-9H8UNXn&Axiv<=C1K`GN+CsTCN~jXF74F+*#$1ody)A?5052B227L`Y0e ztufYN=}ba+$KnrUV7;a#OFlTON-;!Muk}wK(AVG_afK>r>{^H%7xKXJAO`Z-vq|!) zXsCm)QxiwFVWH_oRaGh1(@j%6F#8%*Myj4A1vxm9!GoO`e?D@YVd9o4roEo`mx1<# z^n51KY5_B3ydThPseG>KYhiea`!^yP<#U4|24Uh#mdGp+Cam@OHhe#K_cbI@JkYf!7JWrqPjD~Vxrk=GQ+$V{X|5EcdKU(qL3G! zDa~`b@-oau!1PktdPXtVfby#4m%msj%2m@xH~tqr;h~|?wuAUx+ilUys=g0AqyPIW1srv0Uj~1bjBLgtXN4O=oYSp$QTHs%LuP9R3 zwgP_*2MLOHjQk@W0HEwS$>;OpMbwu6mVGF`!O~p&CDk_M0i(-3jTxzhMcUs6p6#6E z(#=0v`{;{5yvc#Q2f3Ro#&JC8!)bzwd(~{C+H8;lz;L?+K7za2U5onyJcm1_LTQ%U zg8FTK#$J>ArTTp)d=6+3_6ZHJP8iGD&L6_c*yRh&3;~^sUd#!so80x23tjB@ls5l( zZ8^TGsQ71pkrm-6s>#i{;Y2~r@_6z&bAs=TlVjTbag7!Ilx-qTTT6MAL?T8V4KExN3SZ7ts`1}8JWF!*5@fczErwQGf+SSym!iB#^mIfj0N zZZDt;!1WOx)?>+>Lq_g}Bg(IzbTMDXdS1&H3}5nBrK)eYVvj_^q|^Q+i-X}YEJ^#l zp*!-bfTw}Dk7&A25dGW$=f+D(#Ol_Q8G*mosTC>!FME2z8&wFu@szFA3R%-)@vVxC zS!XTAY8mS8<`eXr@I)*_;S*3rQy)VlohPy_b<3a@Om;m(0h;*XWPGzS1|Q$e({Nnh&2-_Ds(>@`WAXjZh+ZAx^G?3~)2eeazj?WWOH~ zWPLKE#LIhqJB9%XyOBG)J)IAVK(CuB->U~YD~$PUHElXIp}eINe|e*M_>bOPus#ia z63}%&j12Su`V}tRy>|{}EbHPqiu;$*9{H4B%?WqMKZ|DUx>fV7J1P(-fSl!C!HFMZ z>dQxaS&(K9ghX`Y@-vx=+R@JZtxxQYZ(mp~6UC4m!$(A{=l!EDmOB?L5^w)7#(s6< z9ZhGx&^?i)#d+SteRt_LRiUNWy?TS7)tsAqBz)KC#La$aJ?Mg)G_WsUN=wd=fe%y1 z#}^2vj0UCJt7T(u?_-^Ms1gS+&se_zMURoZsS7!kv=c~yFml#(4MrYHDxw2h#!7wx zW+^j>$JsM8lbg{CQmhW>3vcSZq#HUc#>Zl2)?5-0VzCLcC==UQo9ADX-4>aPGC{N6iH z94V*QSM!-y=P|SyqPkT@7BPyD!h=#@w7OaRx}9>_{NjW#3(KR)shnpftSdI{_>95B zu?KFQ?zQdBuMaSZv5}qVpT*7kzGvt0MF9^d^W`E5p;Mg_WsT^=8kh1UopPGKMlGhblP?|C9$v$hWdhNQ15O&bF zyl#Q))X_e0KIuVLj$K z<@#&bJwP_EHsm+G*lw;=vwuYA)C~vNHqCpIgq?1yS6)r_Vt_yxZ z;bP|f&K|Mv6i#M*Ld`u~J=zuB1)rbO?1t3diTM%3FW`D*^u3u;IK!5DzH@Lg#;Y(9 zsPs?Tuqi92y6W)V++E4E2^Jh4W5nU2byy$kS1V~Hb$e8cc=lH%(jh7PbCOcI!oD?o za&6)gz1*qtbV9wyazAe=E)h4uG52?)zlp8sm9?d`SvVgXxrLqFSK4-Z>5=V4ByS~Z zEPw1)y5>2EK8!ON9CfB4h>{}y(@;|pjqCIt$1^MHgE_&}wl;D(s}gg+>K2kr2Agby z6^;|U=1v4ohKAXiZmF}-_KyU<$@SNEwEZWE6?T2LiTg3{(LjmNKAet?^m<|Z4-eup z$PIV}v_J2LPXPKI=KYw1+JCu?NPdIG()?i17KXYvI%&JA*Q9@1E9%6z>DP?{>z|5K3CFa3o(UHqUh(W` znU;mD_HjTxr|mVD=MAE9SoMT8)$wI{MoIYmy<0XnfTuB_J5 zc=gxw)lz}K@U4#@r3{|CQP#R~i%?cMLjFWf^G3)CJ6(_FSI-B}3REb0^m;Ti{_peN`mbou_sY`coCP!Yb!L7maA`Nt zb1qUE#&Ra5K4p1**vj(r2g^?o%TIR4tf{*!{cI^Aj2(6MB9pDA1)iNe8H5_JZ8c?x z5Ezjv7*w&Uetkh^RxvIp9UwSoUjt)^H!X7vJ{l(&s_tj0o^(zWiAkE31?bPjD&BXA z2?q>!#@VyNX)Zr8oHT!<|D9M^JyrI_#X6SoVtRV;Nm8-i)UNH1pEq6Iu`$_$Hi5-ll%?xOI|K zg>1#+_ZN@cCia%$w`A47s3{cPiY4`N3gPcxg>-f`pJSsWJ6Myk+|_+j>x(fsfRZqZ zk{p;IQsOqVbJ%~~`0QdoK0M*=R1dQz)#ME4cuATnMk>{kg^tTxxcG$TNPCU;H&8+J z30x;zEfzUO4wHLxMy2HR`<-_qNgZ4^MZ9}Jw`oRwp^<1J*hR4b)(KS#5PucU<9B0L0vG=^vqMiIFt=z3T2BmsB@n8(OpU+|8OwdI8} zQ-pP-XIg(}l1toKLo0Gw!}8PPG%R`Ax$4P#FrESm2Y3HA^RFztfjI$$8vLI1 z>eR;-D;2=0f)J`8I_sahGL+-SBR`ar(twogqG{x^c_BGLI6kjxmLa1Uv+tL>c9l0= zKQ9FuzpQ(5BapMLM{4BmPt?hsJ$lFFn&q2-qdn%RHAAj(%iQ7mHFz}nPS6%nZ+FGl zEcy8x?)^z@Sa1x%u%P${(&3bjAb7l~24o5eSJ(xrNiGfnzn~lK+~7&al6ep=m1%t^ zu0}>TPhebHBvOOJ?^8Puek2B3@Dz6ZJ5`H~#}!%O}odqm{{q+3!lm zDF5>tYquNjK!aG%>5{jWdH}<0p!5sJ0Vgu2yD!Mm<#K8+-AY2^>f%$~tz0_~(qY{pUb-ZB<$n@s3H<4TR*4@&O zwy2_@!$1Ev2%r3AZ{=h4eI<{)_#}5+HA9!2sx6R3ETic^Lxi z*ut!fe&46qhU{1Z&2TiAUQlKa;mFJLSl8+^_9LNgFWU8v^i3t2Cy3&{vA4!-@H1(f zy1FbE#9P3ePNKmlB~RIIV7C&X2k{2`IJZ!tHJN$QH%tYtC7linf8FmrFF7@D*j8+q zY;|DiNW9bOduGfF6q~y(r37oT^hApdHrMpT5?Q>Y%%OR{=Tk1g>P$if-J(n(!+_8}`ou8|V& z$}#c3tQ3U_AMlbGpLKrQ2MSbl_R5Cz;&(;uF5d1~&%!p#C4H-1&`jYVR#TcrclUNY zb8GfQww!k&LoU}I{pIE>(2bF>CJmaf^dcTp@8>CR0yWkNk+C;kVA;SASbu}UCZtO6 zNY(_GOy8<3aJjFWgezOxGoHtckK?W3U62UEW=DW82%O7lyPWz}cAociRnr+s*GRO1 ze+bf+UDg$^2e_Cot7)q7_oEN2KuWpxTq_=@4-(H_HW?fAjz5#r6sfOf(qVbUdJ0ga zv*Xx^OmFO*igs>zaIe?@3z}YYFCD|bBZu;Gz+#o3#-yNvfvItM{&TOsG)s^mL2j|Y zuKG(s{Nth@A)WF~<_Akpixslk#hbV(kdMM$>ez_UdN|Whu|s;Nk%9RC7F=hfTwl)H zTruK)U|MB#4ur$xs|AnJ8`*%Vq$b6|rVZCq;g4iH%Szn^Xw6ZN6f4`pCSb8-jg6`t z6WQV`AQKhdTYV6=dwtuxh<6bZ)l`m_tUIjR=~4SDJu~R&;$8jl<0`5cd6GQtQtV|A zbx4W?T}%#(Z~<6tA!!2#`R=1*pN)HcZLfpNQq>*rEv}1L%7{3y2u~NDL%EY1%VYXw zV{7vyG<}pQN*nlHCe>rqmX%1pfj!s6Irb8K85y}5%{w5u5LiJoa9&r@+hXlBow{O; z#LXOv%)g$10=LwO8=rRC^3b16@?4%wABM9aB6f(`y)f_I>&c2hFr6(Joqimd*R$oZ z9mN3MqlI9pfNNMDVnlV;Nsv042fnm%b#pu~M|aBmDcg8e5{4f8BOLndik+3COsh=? z#-M{esOqm@(JvA#8kK^B#V#C_rrqLiFy{Y?AaNivAkL?)Ea(^an8N-#{fF*8zkD5{ ztq-En{e%fo3t?zby*Nx%QxRUmq<&~Z4#qr+@OdUVw!>+<7`m3l(1vRmw6{#aUw#pu zyN~@lm2F#eSoQ7dH#?o{af)!(t;;7IO12E$Ja1g>)ZM=O2T#&g8%GZbUEDt(Hyn?a z({xXLd#7{MoB!L^T#3bHhbZ5 zg_|lKJ#j4hb^x|A#2=PUXT&D*?NjXgb{~NnsvT-|$fx<+481}coi58lzXRg2OYGQ{{q71~q%y4JEz`Gf86TdUuFpZcXgMchVbzC=gF_90y!EaY@jfxupT1 zqhjbPb-Prd+v9c(p?az^Y(tH>*~`iUt6mkLSTZXS4FW@(Xot9MSnCfGbt;U_&Dl$kh?Kx=6G7*nBy#rP13mo#1qyI z`4_oby(?H$^0O%)3heS>mM2$co!AV*h=T?*0I zeu222k92z<1iEKfloCaRq4pN0huWM@p*k$>&!Eai#qQ7KE+QQX66iRtt-xu(*n96r zAY=i6HoULyH1q78_@Fa-hQU-BDxCu4xH5YEX>}yDaJk`ygFb(3dfkkrpvo={)G)vJ zO{chHIVsDnGMlZg&~}+-(MfdCiNk}d_8z8~eV4nS`=0xILn{U8i(zxg1dx+GS$`B} zP1xd;0y%ThSbbs8qa`_Jc&me7B%0Qxu0-v)!ob8PLsFOz8AdKf1&7O2O_-*1D8Sk^+3BW@J7i)M_A2w z9S_$m9Non!#h1J$!ZE(f0cC01_VABu4utX5MM zfgiVxFfZL29XI-3MkV*l110|&;`Xh<$4POjIjZv&gsS=Zw(&V7Z z$Z+?@Flita9@o()N_1*lT;<#Fyb1ADd$jmsj%7?FpB&axx`8w&n(!G*V10n=V4Gqu!GW8!h`@y_`6V||sOBpX~ z;RBv7R~rGYa}G9Oz(=M7O8=Q3bDJZwO179o9&mA_)+GB1*@UEpm1ziHN1txUO~gBj zmcg?b=icsK{<0`<)^D<$bFj*TtQCy%YYlIiDKQsJ&;l??mK834?kkkwL5e9pTC0W0 zXH1!&Lfc5*V@isnkV4IX5f zPcjCwhIFcD@^gznGoEXhfbR!3k~?PShcSET%<>$YND4MRPjWKpE$DyDBmaqvhEn}x z`DEMa%%HSmleT}E9ZS42B-ge6k~_JtOWBkEpI$v>EGomJ#DK?Cf8Z&=V_-Mgp8l!) z2!5WHAD>O;^(HkuQbja02wNc7B6`&DjN&ixv2v&NNiJ&-6h1BC{Bh2>j}`Mt+G6YI zpH~qr_^JK1WT(A{y&KR*Yd_g=p9>Rc4zx$G9R$zDc$9e81il5Yy2A?5Yg()8D*e}l zhZ{lP*n0sEoTuhl0?8`J^&zGK`?bOUkJpJ!BbmdG^G%^%v_dv9UT_p=ko>r5qXv=H%dIAU4yeo zB9rFnaD7cEG>?O=|0V?AOFqcwwgR^w^dbg;+PjzNw6~#O!TaS#`)0&Ql1}cWxeY*` zIXgJFKsmLkK$pd26l5Uw5daIl59jj6h92+2URB~&^oO>``%2bFxgYZNH5+pNCAXrV z{9E-g^cB46N4#H#n4i{8(M5gUjQF^$WM2Ecg|4U2^`mMerOT;^Ul*2lcWdSZfBD+( z-v&JCv+4d?!~`OKrL1INZ0Ad*z0Pq(g{U`yxOw`PG3k%cyNUW3J#(zJLLA##DU|Ks6$-vJv#R1Z zVk&({jTm%~Q0jApY1_R**|tEK=zqe~Il@f;6P{hbaV>q?E{oT7qj()L7|>4|tkYg6?8$gcL6CSE>TD2i>piZ_uGsyv>I)_HC}j$+M@aX) z5vJdTu=(g-d2M$$(fJ5$K-gbldKUIqVF&#u`>Xs&_itf;)n6%;z>SXCgx|DVEgU;4 z0v{_au*YC4!X|^=IBu7nBD<_Ui)_DJ-`4gx$QHbwY(e^cYT+bXko;-H{@emw%YBx= zI4A3f!9M6pqxK`$U68V7#&0L~&5~?VuMdYO%h9jhE#>IxKCBP2UnSQbAwM^OCZSu6 zy_Z`OlX=#>d+cIT5Yo`2fo&5jv zDw#uA!rmk9_-!mUiRQKrw1_>#QvK~wz#My=fO||1Ou$`?0H4_Vl>3M$4ntRH=YDB} zz91U7mtf!RY?AdYO7-H?q-!=Irv%}j@b&q2XUq7#-^zQ*4f5Xb$Yk2M!!Bv#)ZqzR z=1j(vXA+HP+NRPE^syQq+EA*WAEB`mO$-g>53w&`qQ3f|Bgxk5^@zM%F^3Mzyu;XI z>8z)D&}T#uw{c7ZY6J<=bF8ltjq`jN8uT#hNuN+U@157xSvjxU`IfE+|K~IQ!t$jK zBgQekvzBbadvqObaXjrkEBzzF^mD{nH&lp$;Hh8vQSWm!EanBmt6m}>cJO*? z*`pCL5Ll+ZG`e+l&bC$DMh?mJ{mu?uM~&gm&GUM=-AF<)Vx_7r(2WUBj(>lFhZJtK0tFc+VH3H+Ac&Hj>@NQ=V%yp2J?nIL(o5--~lxWG6U~+bU*5 zk)6`3o%$u#D-U3Qi|p}3*sHkz7<|p=~aXTy^LVu*3c>`Xl=}Jy>#=jqH`}nWsr_Q2W9A@@?pA zqMxzt*jp;qKeS+flw^+gvbOrT?=m=LAL!OcjIoKycJkm`kUtf6p}tJt|F^M`$i0SG zJCa*{ytlOD6Eo2q*&l-=d~S*CDDW@IB?tX}lkB@=TBptc>J>tsxYskh+N-ENla=`yNMAMGeAL=^M(LvX})Tdhkt&x-UDI(SQ-Anq*QL4X}K1E+mk<;gMru=W2BFB4R|GIa4?xWwHDbKQO;@Dm6 z^>bd@(c0@twls~?;E;o8LB!-oE4x!>D8 zAwL&=@@4YVz2o9xLuOWzzuIlkVRnp%>r-XB#5ailUJY7BY&iKuyrzP6f3oXi_Z^zW zgP6;lK#s>t@5&hd9r|1JJhx>$pGJJrL-tj+^uLuf&^YyL(N5oIgDr;ohrxTBrqKLn znTTls{{>R+vjsgnP|uU$K(ga7$A&N--}M^sDlgUFaZa|6#`aIf@rS63T?OBU{McHf zE=W4Y!}|)<7xos&SI&hDm>k$`5eYRo$QP;7Ck9Z!re*cGIUh6?z${fx=!+Z%@9pg=!|2kYFz8%4}MKpeS zy)T!~PV?EF5r6!-Vvl$r`IM+FiFIJnx z$mie-UnUQ;{vUz_JDl=yUZIAYY(yTXwRrUwx#jgIB%Tr0?%(suJeM| z6|9FZkLzbA&OB7_r>etHAhE=szq5NA%s zEaWdlyptL>t>N>uKP9>T9(~$m{l3k`!dy$Tuxy#RC}6+vc3DYnk+08OxX2*TuMXVC|!?&CMXFgRGusFTGUG%KQWLuGfbCOS0Ay$)Yo!xM1~(B5 z?qwKsA+JW@LC>NafQ3`SVy=G5N#jPI)-nsh!s74-JOqooB`mbl1^)0U zf<>}~g_fiW;uk-|0{QsHb4nPnNSy+U6oSJt`Ya?^SSDbBoD<_YRsN1#{;{)4S^4_e zKw*iE{bM`i@7P;e*;B8Lwzg!A4dV*+lVeQ)re((mPM$})8?x~y6On-Ep&v=tR#DUse|mc4D#dBp_4jN z=X(HSns++%4&B>L^Uvv3L>uY4wn&B8xwvEu=U%tdy;j&b^lWQ~W&ZNT>QV>(e{Vrp zjBXV<@WqaL=9e$-u)=T4#67Ynv%3=KS9X4XUiau$(=WRek$E&{ew9lRTSvs|oX$05 zBZ-Iq5q{r@@QOhA-j@h&TM2);-`~ytUk;5mm-@_s{|DRzRB=;T$^5bPWETbZ?)K)) z60-w#hnM5jBgvKM_x`=`zo6^Uvjc^z^S((eR!^onjZl4i*l*q2FOvr11W za%C>KGNiw_$)K6#pdrvo!ISgOk{#OXDi8^vAL6NQf^UP%KBADX+fr7NPy{?aQnF-_ z=F70=vl@gC;>oRX?etL_7HVs&(GKTW!JK$Lkr`>@<8Rq(L;gUuUH8x!73A)9_0e}9 z!5~xa(U1;mBi<>V$P@FGGVMvMM_k#JGhfVX4hq#BF&)aaGS3{Kv9_`tkIdL!mipo6 zoU?|{t7kgPQs?;t^}d$^DK}NQqp2rBUq>rMLsx31qs*RMgmcv+GeowbuQ^YVt0dD} zeG|(@>(NK49r7KBPCgCTXIAr`Joyx4KW8t>;PY-aXw)+Wo zg~&P9`A_q@kJ7cy_48McZYc-tT|#ALEW_HNfL-zEdXY0Sqa1ZQ+Biq!bzX0EilMU~Sm}RyA^CO-l8Q)I;p}m- zmfEYjqiM&>QYLiv_;Wd2(+$sM+@+=+oO&I4it{rpB%AA<+lkJSTH|n6Y2a>yfw#&p z!y7+KaHeP001ucG@%eta29)L*4VN4AA<7{a4L=X(Wm<_=XSySbL#|6?I+1geo@p(! zr#l0c%U>e?S2<@L`4Os-Ppl(l{+iLp#BC(I8mKR^+G^ETiP}^^7b8N<)5Jf#M1A_dmlMXE*O1@gp!Zg9yG{tu3hN*t zyo8&4chqtKW5qa}x~_Lx=KDJB^E!|Zqp)qMgK$9eU7byRZ6sWmgC>|B!sYVROI=C((Bytc)$ zHI`z|3uxqs^@!Qk&}+BM;HG8_t%f?IIn0;9Qw(@0xnf^JQZ^pH-X8Ba4uSvC+KMn5zmH zVEzRU!qz7{o!;lQ{Wg&*+qm*pv=K7D?w9%1&wb{~7p6dg$Lo5X{PUDyvF%T&aZdac z)(^X1Mh-lh&!vkt=o)UXEjGW|7tjvc^N2a}3{)g3Bk(;w;+0KY`zMc!Tp>z3w*i zKF~_A<)SV41abtMw-f#*;fVCx8nRU~gL_p+seZm(>eeI;xt*Z5=)c(=O&B2kl?eUC z^yw4q6i8ThiXU)R1urWeEexK~NM9brZ+x+WvJ!rjX3x(eGe?y)zZ15M&{{(L{@UXZC*uPCn_!Ubh@aT3K-Y zA2yNQSmka?&f%QHVR2Bi4y)TxTR?~WPulQBdQWp}8M{@c`6;j<9wfY`Wd(P>=*JwV zyqAJJ-l(%6|IhfN(WmYHWyxb9*B{8|e-q=G!V_QlV1g%R%RP{YX&=c97wiz4H{jnI zYI)z!<9>*Ejc7f1=taqsvaj_uCv^&x+mHCP+tgBf?n@?O(#7t12~`xe9g z7u$$Hnx#EwX9>o^H7(9pZ0WSiHJZ4RG+WWgZ4e-&UM=RW3;b52?w z0e&%O*PCQxB^9!Kij39Dc`3&cQ;M27pi8y=(nht(v>Wp=V45h$mih{Km+K_ZJ)*4? z13nsb9F6(bZKRkANZ%AJBzTU)BlVkrM}doT2w`o|7Na$fu)QJkkY61BBJNY~hFk=^ zfscaIx~}dR83g@H+D|msWJ%gD)i3sd24nQ;5!QB=-A{`{kS7r*=d()SbN0>>8}c6# ztQM2p&ZKv9!QbTWYmk*>qoT&~8h7+!A>A)5)h~6A%ea`mvEx#vHosR@qZj)yZ_EvI zC%bqgX4jYMLxaJ3tX*E%7)r15vOId_KWvamf!-(lkV~$PczrYDJ?J{%59b-BeAJ64 zWzcn-&7sgQvA|rIN>&usT$cE4SWU;>qlgZV?KsGZj0ID;7Qn-aW;8h z)h^6!Xan9S_^yL31RIF@Zz0=dA^e1b9K5$$K!&>8KikRUwqx9%v3)^!ZV7J}W(o78 z_eic0PbB0ahlg`J`N5k+8qtcW>_%&TslNXc)S;S?4_Ce+dF$dK@NeLaCk%RJ6k&@|^|rT_8_Rr1$EGdoteqvu<(Pd9(>mZxeM|PNZTQS|= zy4vs$MA)}iuKyVOq8i$8?&Nb_rnq*rFSeuW^n4g?;T^PxHsan1f8m|G;b+Od?-F`L z;K35Zw<6zUefdK2(}cV2+*$Hd3?D^gj@#00pW)miU^A2OI!O3GR8O`(aLPHzBrOgW z+{CmE+dU0*4EoKoi#ucVO!#kz$#CWcUTgY%V1lncO_Oy6&-I4MPvteU_8|vy>#^@( zXWs#~b{>y?{d~^zY4{Kh_KnDoz?vI;3Gkrv7}>tz2c=J;7(Rt(q=Whr@PQyhNPe%0 z+4UGd%jO*;D%%F_7q&w85N*_Aev*zabVFXdvDQZOsiCowOz46=K<}%3uU#L)e|hhG zANWSj@spg!v3UPG;g8b)CjTx|*WrJ|#&Jn`Xyj)-mn-$g1sdOQH{yH?%ZZ1N%o}vB zop0v#@385NM_l{#^!Jp#bg!E0TZVbQnXRty@oKZSGclOpy% zel6ed=hN!eD>?CN^RfR}`{%Xs4IFRRVdQw)hy8hyRU0Gs8o8l}2kI9HGuE-c%DI_D zn7%{mvx?2NURQ7a5!w6Cin?tJkTXx%a*_yNWb0vVmfFb;+^xRktQ1PwJxN8*BYK$b zFCme7*UmTZs%NW-n{T`w3AsUBge0=SC3*N#0gdC$d8U8NfH-vI4_&Y(EjCPLy z=#)ruJw)%NVqS`Md@eMH*!XF_!)5lSKb1YU_JvjY9k*d_0sAHYBwS?k9#aP9L-tb3 zWZVjG;1TsDw(BjtM!kQ^eaGbcWIxRiKXXUM8c^$qp2b-)6P{J0V=V;7F}BHOi2v6e zfgLoqGyWNFkLJN=svaU*3XS6p@kj||8zpSJS0pva{FhcMyox&QclZ;#k*em0`LV^j-8*6{Qooofpk;FO2T=Rsrwo90O$IL~(Beg|=h4#0# zBlfog_KUW%g>oNDJ93}RcPu>5_h;NMv7yc_>9lU6_CQXgh{m2WfVByy>s!K%de}HC z7x?ylw&pW5x7UQ#$k{*bUI}WF08Yq_kNrE&ucU}<)M7Sdb$OWDa6U)(o}|w%VFD~m z_1%k6Zy>Tp!UX#>fD7+AqL#q1Ws5MLQ1D$p#)ENTOxU}LjSKLdBEt_!87^KSoBdyM z666^;)Nk~y4bP+B*2StKv;@>SWBbYCTdOYOoSqZc%)YgmcP>^{z6M`RTbn-YTYKf0 zw*FeKaqe4dEx^9;#m`}xu9{M9)k8E{74SJ1_BdX|18uBsOM zdn~6G%KfIY9CHz#G4=w}u>VH?t%f}>bAGQy9gF`cqBgEH{+r9}{rI0?{5N55%E<3* zr9MK)9SI#2>jz`z{^&X6#fn}38@yNuf5f2uO5_d%&!OI;v1hChFW4HFa;|hMc=Gc6 zIB&%ie%y$*!8^GLl6Qy~+nBBplh{V|7G}D_yR(cjsCeF3&oISuzfTXRby=u@JX#Np;KgOHeZ}4k#dzm*u=UfM#_yP2QI5OtdUlFe!y4fH2)=EG4 zD|G3Mjrk;Hm~(-FN5~J7`?67!=1LH@Ri{YK4dmN23-6U~%zR$|$c6oLoS&jO`F0Vm zHVdWdN3mS&q$g(>xeaH?+=h)Fg5A!W{q&yg$IFnHNyh5oH^=H78GMcN_AZlqg!DVo`I`Qb z?}*69`3mgKV|AY6$#hd-~-2k3PtYg{M+9gDnVa@DNNrzxueVc2A zxq3U+@b!}gL18V}t&h0K_6n>|cwuvaFxSqV*pCjB^uO)9mgJqF-}e5u10}z=1xg;a zl`Y4AlPysHux-Vb@I30LsPS7Y>pB8;_C=9eA<#GVQ5T_s6g(%afw@cl1?AW?Tj}S% z3W@hcZ2!OFZOk2QVxJp*qdknJeGTE`I(nvro+&Az{{Lhvd$6_$ePLb!k9`s5Ml_s* z{bsIX6A{awI8AVQi2S0{s3{}X#qIBBMi%HJ1-h;~Pw6AE+8FqM7jmxCz1VfETS8Wn z&awWjeeBK2avz+0@}9s$D>u=28W0mgw2m6aTQ9={-vU0#hx{J+plXjui0LGb)p(X= zLI&!}(inR~`s`}LVJpYB5YN;c=bA>@s0Rc7p?d?EH{gtX@*#aDo?jgf3Ssc^M(l4t z!RMLvlc6`x`FWj*Yg&(NGV07`L>5oz3f7-=J+yb(BD5#>diDJr4^zSR0N4J;+RZp@ z;^4x496lH8V^%{@*4k-a%l4xm`$^CV=!^V*q3wlUA{o}fwJ%7w4X;37T+f*G{MZPu zk8peEZ#C)=WxIr_+K^9zbeawI2Ac^!s9>8J-DS;g>i2jrvg8Vd5*yi)hb=wO&4lkbztp`jD&x_4#Ir1EmYKww*P? zhP*LPd{-nu_Jk_mW&6|luFUUm)JMoP>LXYi$w$|^ZXcI7WYg-X?;evkt14wK)#>C7 z%b40f*-)40i3h}d*FzX1;kE?1ImBVtd@&1hT(fvlf7zC`ME?k9_hWGvoJSpXt&pqU ztdDTKGWo!vGnf3eXNXSg2nHvmy&B`Q@G+8!WIK?Lj5+|8hAxa*Si+}BFP)ZWVM2#K z@}o9f=tbZikdq(DD zqB&XMd$S!kpXPCxWFEnKa}H|x^*CVr|M(^v2MLEj$r=ZZZ2&b#a4s1BV4&Ewi1>On z(W}?l$8mX=qo;Q~Vn#dBkyWd_&L3V&-|N#?zz(6gGt9Mt5*yKmEs$MeLvF{~z4}PN ztPa;6)kkpV!*}ZZn3m{J5zhmBEDtjca6Z=BWBN!fVtkUExL+B&AKpSTi|&Q@&^O(8 z-9sOeW12Zf4b^#7uA_H^?w=ZeH+T8=zx^J`h;G6%*lh8%!C zuJ2m`-e7$#<<=qQZ8Omc&E0i3&7J5D_^91u%>CHZxtqu?@jy2h%lIUvFHG=34T10( z&Pi{~L+QQD^$xu64(mq!zjKEER|bu^J1HlYvQJ|hm+MpL3j7|kOWa{a!#a$t3;5~3 z$9OqH^hES$BmS5bA$^Ki&l^JEpSx@YuTk5n9yRo2iEY()245@tM{7ROb{f`qLf`tm zt)PZ;Nl5xUdb_{i1jkQtjF_v2&pC+NF=5{P5a~)Ib`J4$h^0f!T%ZK!$nUZRa-OQf zIhk0T+>djazq+X1->I z^Noi7&xZcLi(~QvCDeY&^|lqusC^H$e-pRg>l0*?oH8LlciLv68|2A1^yU!Y+(`5f z{xxbvr7`bL182~F?HP$XcXZ4X4|la~tRZytoFDsqp)vT1Slb`d3_i>u8EVDZD$EZx z&{lny#w36Hr{_`AZSn1UMDiz>d5&~L@*h!0JC-xLH;d$cg{-d!9TZ<%*sx6tx#lop zg(9RMjoMbF`e41R$*DM3{q&LGs``YYMb~m1iRBSH$^N|`ZEDQIdbZf$tPqw08Jm0y z);XJhje3G26Sdyx`Bs8!u`B=5ZzI(H4bO`^0`_ZdsL9+|AkTS`uO_&5WUSt&QO_AQ zoa1XYQ$MJgokq0$2Ct_|`=B9fDcMH~*Q+MEn1MA-OQ2+_|8~ThklqNry39&rNr#V! zv8g}Tt58SEx%SfU0!vD44Nnq}tQXc*ujb^H>Yw}<#*49ro*(dHY(`vQ&fhb}2#-&% zn;t(2sUDGZ2Ye`FeL^f2p+UkCat>I^mWiO2!f~N0&nIUo?1a1@ctTifa)P%4_7|$c zv%J^`I%=Z!o2Y%{ifC4ZHNWpti0CLA`%^?qImq!$bd<+F zp_^$Ad%C%>Pa?&9_P(#ZNTgNgn2~F|fn<`k=G%mulV0!q2gsgyh zN{g1-qlWJO18kEttP`W=Nwpp4dK4#o7}Sg|)o1=zt|2HY+CvS{QoS`1{RHd>ofUQw zez^#B0594C5A}Fq$D#f&*;$rm>bp6JdVe4JIZvm2_Y>q`gijWjt9nVtv#*V~gh0tf z8`)(R#6368;kxY`qQ}Wk*iL@qA+n?A;<-|PVChQKZXVF)dQ|Ye+NP(W&sZPmkNTH!HM>w`?x8aZH5e+UcAU)AUG7K`W3AF~pOn*6Qlh{Xof>EPXNmsWk zm52=vtXb*LoyRt8al|S55D!uND#0)o2Y4W{pBf_-pCLy*Z z(fet#CPL`RYi*IQ$vPN_gN(rhbOHH}YruQKmhm$RxiK6Rysu=aO=BA1U!Yi85@>+K)MC+rT+tfgS<926stQIxnX<{1oe%3C(aCvc4KYSSpV6dlPE$2 zkBzRov0k2R{2mrLspob2-MTmtJ{fFqUZ?Bu?cVsBi)hxj_l4I$yS_bdzlO61s8QqF zmGqkTQKw@?W#*mUqfUqS1E*t~nfCwC&oSn>T^hwKr~u50{3T1lkX8@P{8|UpiC9=4F|&&+4qrvMoPy zYm{hzPU+Z*UGiQ+G3r|oUizp_j+@pVr&!(FFUsFhWDKIqE%@vXavZp_*v2tIXQ4K3VBLfM)_!5xric{i zaGa&_2<2PEFB^&Gt77MENMBT@~BscRRx2;Mtu|F`4OYOtHu4CSXWE-G1qM+{zOcH zM=bbb=$T<*oO|h`G3Ejv#J865TA4isIAWy4~NDrPvxHIFH-hZmh3ZNk%v&pC-K( zxnESa-$}Z>gx8SMsuv>Xfz?;NFq6-v;eG|-@8vsTr#xL9Kzwo!(L`{)U;ou5B)4}C5}Ctiw}3aq|9V8i2-;P5=nVV%Zf(~8-R9v01#zz64?G(L;k*Yo|OkWpLN07g1!uj9ok3=oz=G-C_$Q#gM;JGkr za+KFA;`j1=55YW9B$HhFJ^2BG>))vy_jrK*Bi}W0OLw7;8(@ZYY4;XU&hOaeo+jzo z9)5m4=i%Cq_tZ$rSxFmL*l<>vZ9BqSV}q5A??>pKbFWZxXP|ya za&4%fYX$Oypf8+<;y(UNbQ+T5QX|Q$Wgn?pd>^Iy#eSoG#x2^f{#e!&2^I1D*J;*4 z-bV=aoa1=L;H^;`)+46W66uxgC7ebZq;D;;K0IQM%)J}ECY|}*;8Qg^vS!cyVkYA+ zJmLkPkIMi%WWem@!Ka@0hc>_OpJ*#RD@<}FLh?kbzRn-K;Ya=`$(kt17(VL**~I>o zqSlaHa%L%9|4EMR#J^0`G!bV@^_F(zJHVQyasO$oBg>j5;-nhAA{X>Wb6Jk>ijNT& zH>%RNwHo;}eQfu&@cufDJI5lD%1T7xHe8R)7%B72IvC00JZvUhgI|TZA~i>anb*|r zSxNT1(vUkx*Kar>>l0{4xIV$}L7QbCCw>2`Pa*zcrj|1g^$BKfMBEF}tmBzZ@mOfV zo4h~k>>H=`$4CcOPOiQ2Pq%RGjT4CNz0@UTWy+z+G%)<0k#9Rs;%>w?<^HSEHy&d= z6TZ{rb!8OzjNy&OTvbiBKJrdRNRCEHhDJ&5MoH#IN!~_D7T1tGtsz-jLvpu8a>I!AX@H!Qz&=c5W2)_OcyEw5d7<} zI7dJ7lR&1B?fm;&?YbWNjnYCe-YMxcV^*ntA*bFZL|F=rBZYGg^@fLx{IDeVw$Z)7 zf)ZQgs1e&r?H~@{9ldfjjc27hIx_=vfvi%aGp#(f=vOL3H@?ZW7Xq)NUe8m1G-@vp zUcQnO`hGgsS_pl&claB~mBsl|L~j9K<6I3sYMbj)7;tKtT$kcUqdex+SRH|x0}Q)Z zPFtJIX^XtDE~73*;P4X$oxINZ@5m=4`{^sb@wya2nI8l5BYCqCd{ee;93}@NHUl?y z12;J(Hp~^Z5OB`wWw+>YJ(y96ytmM~e7>4wF!3SVgEWV&fz;AXWoJ+qVTK3zLcVsy zbOrta{&RBc&E&(lpSwDn=)pvA%?2(xrvTxyEN5V>Y+-Vc>%5f+hxhb=*>`GSOdBZO z6zF=w|Liwp{hMmuGfG`f@N>|2vCE>5ArEe-@}PIyBAWMgT?FHIxyBE8GcXf&@n|p0 ziaf5*P&ZMZ;fj4c?^u0?yove@!G&X0P4-w_hVva2XGq>Gqc%8hIw`Fz8Sy+u{$2~o z8$LT>v6Uqo@`mOp@s!Usln8ESk4Q2bGAvB|tl_sSgX_mEbVsi)hi(mIEajRSpcQxf z@S6Fq3H=*#l}ysV)J7p{YT&-a>u^pyUR4?ojYZbF@CkDiK4zgjp8^=D;q${mtLUNe zaLo$T`7p+Zni|K!Q}}Px)aW*9YWyDX;OnWVQ!!%*vY4*zGp<$AwQjnm(zVtKqHoeQ z2HX;z)59(4FvHCk2e%S}+cA>U#{joP2Xs8y|5fxk5L*APzp+znfSiQg13gc3?+MKd zuTUeyT5h_q!Y@)I)=Za$?8Q#e=PDQ0z`Ui%F`Gg5g$eIq-=iR1AH?%GTfzG@cCuxY zIsf8;X42h_(B1u{yW90{V~t_WWVw9qMw!dx;s&$@`vC35^f+u8^zDx5J40RP{NxMt zAtzYC{vWoO4bnWH`iQ_jFb^3vNaf@{KJ7I6;5??VGsfE|`$LVKC;i3wi_J~#qOU-3 z{f7*?$MX!NF7+3Ry3ZSg$k#LaUr z_7C*kuzl!WU%-AWX2ZfR6Vfg-wZv?)QvLJeh+T#pk@`+A$6EHp|FOzgK7=pYW1qZi zr%(8@JHGM$eKlk*hO&6XP`(+%MmIOV$3pqo=fH^~N0C*bLy49~&;GUkx?1-dy! z@O+eDA?r@;#Joajulqy8m;9Pu;HUS9ejaA}A-svkpHW{G4Btwg*Yl{UidgWW?pRzT z+C=^a*p+NAM#T_pOSN5`1xy&1gntQ#v<~tUtbhg6QI|nSo|Tj7$Yan^s=+T9i!SqR z#?5<*t^2W&i}ZXU(~&ZTj=BswO2QnEjn5IZgt`f8`_Qn_Zr+r3ja=NHpF~?U_a4-) zfo?MB%M))y!+xe`WUh=Imv&BRYlYEPD{6qm=u6VePq!UPgE4`3wGM{tu za71 zBzh&DqWc}Br&ZFgl@oSjO3QS1s_wG77h(@y@R%;`Fo%WafUe?Ka^9&b<2aUsFmECU;ZN=8^W)rj z-A;4%5v)(f^tF4(V8%q2yGemWMAm}2fgDqW81m? zuo;QQcY_B}S1fSmNv>63%&8J{!rD3PD7xNNPyI@NF7YhZBsf3D6n#Uu+9>UOMVsK^ zgpSL}3GhCzvHt_tpURsK99LGZ ziM4*8P>KSNnQVc_F4_V&cf{piU+oRp2d&z#ZnbLl?zgpFoo{PLJ7#OUkmr+r@4C(A zd%?)_xd%DllPcl=28v4k@G*QHnRl-0UQnc^to5&YQzPqKjrjImT7agf}SxzqUGr{!{e zIw3C(p9iPYi9b5V=M!))=&a+8x~=4!}ObT64Uka+V0DgOCqlwDVYrt&aRF$Rp&?4&0nM+i{BI zM2XT;zE;XMj!o|~auQpRlh}||yC65_ki5tuS(P~(awA~R`hu(?TWv_&gV@YV-pRPW zu$s?y^~trO0;Z||>X~fUoGB)LO(HmKm`rP<#glP+sc%A0p5ATHea7YJ{^v~hr^3hy zDf360GGpscoV(YC^`YBrkp;2*@SpX?J!`w%vyx_pPnO*qqYY(uOt&*_fOaip6Lw9k zua)X&+a}spc2C!K&2OX)N#i&)9jy_KrA@Ir{L}FrT|dbCKb^deOSE!nowWVtZ6>&} zo`oEcxHwxZW%>o256mUm=^%XU1kGXnjO1z{mVX#+VLc1)fqpe!PdjVYYT%Pyk8_JB z;X}yZ=MI71V|Hq({{AMphWcSQwcpKg^Ooz8ceE;Ur>Nw!xKSb3$L%JvV?~-A^W6W; z&&0m?nUlE3IS|=?J+pO+9Pm$u&84m>v@|&R|Jb_8Jb%eYI5E4DWB*6bPX0f(Zp!`P zDYSV2FeQ5LncUB3-E~6~HBdPxWL{kDtRZR7)xchyBXdGxzX)<3>rqn1f6zU7Zu(n* z1=gZD|D#z536s;6Em`EJT1+prXN$DRI#Ee>k)_=%W|rBLFE;m^YZ0p)t`!+!U1T>$ z%zo|o?f&L=vxdFP=1z0iSz%s>IJTFw%(j;m^K4h9nd!YDV$POlLd;tmE6i05{pQ?8 zx7k9U^u{bR`QGM?M#Y?2s#k5|c<-m)_d6qIL+}3O4a8`Z|L19^cCki|J<#?g20rN< z{nESN3{(5^{FB*VgK_a5t~p#oV|Qkm>*Tpd*)D@L zJ9sa7${82j2doTB&VLb!JnJRwqZv5 zL&O)UhtD+gd55u6^@NKI-g{gk97Ka0CvU_yfF2Pimd>%u?II257>t;MeSjVDUP8@b zBj4Iin#+5GUZ(AAVZ+`ZwP_*vJB`?g48--KZaw0I2o~AMX$sgOzJp`AXiR{^S8H%) zd~k*PS&~glIL?=O8)F5nV}7x*5>2cooEI{FBV+0Gzc~DB;SK*;_(;xfz`JzKfp_sc z?!64O4f;dOb@c)XL$r;xT)@)3W2~d$XTk?KHiU#1a0EQn=-5GSZ@jIso|ybW9t(-T z(UXzFSUlTkFMZGD+)ycEHu(Z?;eE7a#Fbb%7ap(Sj4h`&w#LRv*EfRR0dL5?7_9>z zEPsk(u^(b5#(-GQz{2D_LnajyJyyoxKY2e`Y>n|X>AQa+d{jbiLwDl*3&uBo4yTjP zNuKpP5+Iy=X`nFm9Owx%3=xkSezE(p*T*flk+j>#$u@q zn#o426urBD;%rvs_lOq?p^u?|m-G?Nmu$`}&^O0ofovQLZs<^YzG3_f>iGH7N;`B< z>^URvGM-&mSZ-CEYd7c7Z}ic{wB;t6{YTEq7?`18EUJL=#IwsD(cOGr*d2c zx}K9F#>ghiAeza*`2wOv&|ls&6*!Y8oX!)XJoL!BeqKXZ`UjfRu3hZEX&gs+)`*$! z!27Xx3))3;K^DKCO}vhLcM8r}BPVu&E=-{d!(MHEAL1%CKCk-gkNi)6OXgJsT*``* zioRMaQW3YTw&@*_c_Lj)QIV(0Lb`rG+gCIe;;HwHn7Vz0AIQpFf>9p9tB~XC2o^Pf zgN(1wA-p*Vc24m1)aQ{i_RF3}Of%aqMJ$`!B6mv}#d@7&RQru0&5(CexBr@9o-q;6 zChErH*&Z_D*;qGbLT*>G9O0PpF&E2`pdm*LJJFDTnJlkhANDgHS`B(&StVuCRqbE) zjP^W@D+1hHbtBtaGKWSb;vtQ-_1yMi&>7FIqk0+3lWZfNItTHSIOAcQ`75R|9mZKN zgPsr4^CmtIQbDwUvmrRo@Jqhev!pzvLx)0tu6=TZbGl%y3VJv6T(62apICe}^eoP8 zs?W-pWNB-_HZl)J9-wQ;)&2UQH*kY@JpPen<^ad<7=29FCduXfHP2GNuM$tcr;p&g z4CFWNm+C`r7_m?m*h!cN&u7Y9kaG&T0Gs-W<`t2Nvsz7^BE6_1q&HQFw1?l;^(LH` z6g(E5XH7_0iu%H$sa@Fe+b)HW`wMn&Xydyak6P{FHJhE^woL_GG8Ts7EgHQMfrK3HMm(S+@iG2(Q=8g9N55PDE1A?ij znQP$XS>R=?FG{eC612T%R8vpe@cXx-q7;$dY&0nm=`|`MDgq+XqzMQCY0^s|vCyQd zh#(~qQBdh1A~n(ysS!~+1QH-pLkN&S%08R>zMprUcRkPfaN38tGFO>vCRvkNzuC#& zBT=}&M!r?+#+t1CQ7L&(c*PTs%BR~JVPWxJf-oN<{^!kUx<0O;K0J|>4KFoV(-?CT zS6-D!TTYlw94I zMu&Vih(Jwq9MR#&m%~#ev5aX8es=B)!oJG+ylB0R*1z6uGSnjr`M;-`b}muc_rQmy zCPwoV0B=^6jTiQ=M?OTQ-&bXw&wYI)O0e@T_L86>UfTZJO-ACX0MCR?{0)}Y33uVMALZWz|K+9cqO*MXn= z)1W0<(ZtCVQqNDm0b4OIi4Ze3`CiIM&)XKE^uaBCG5UjwERu}W%aGJ)ZILYMvNbDj zApCp3d)tonJAR1mv*?wVTtLWORHo=?zrK7$^MeuES;8h?zut7T^7=e!nYUkQ+At=I zB+Al6b*1J*J4FXa?0xeV6zv`?l7h#7vIEI~UEPOS*Ry?8j`x$P_RlYWG1+k`AdJFa zC%)0=t#;spzRJo^eBR(w>}|`cqrm? zci6qc6^I$BVf z(T0W;1+x5t8y$Zry-D-c25xJ6wy~;d&^F8d3L>r-*P&x8g2LwTO)Cyxf4OvQWRBm7 z`K7z+9Pt2T8UM&&Qb<1VX-mxSy5Z+>Bp+y1sQ9``jf?YzRTHxbX_tML`zs!=HH-rb zD~p$MlisZ*w-5`pLw-Cj`1MFqOw4il*0q!Tx@Yf4#&yU(H~#tZk?FyL%a>^>JO>hv zOgf5Dx$-3>PW^z-_GxFa@8cPbmko$=wT^%az6!!m8{*YMz|mf%%AdLCsmT%`}L z*?giqH(Q{}^CXwuN$$V{^+zA9KHeZ{)yl4m{et(EzW9eX=*qC)8OoKqz#oUZQh%t0 zmVE-Q`E%%B#TG7=Po!QruuQ(-Zg)myG2jQ0efHiyC--1z>V3JILgMoNZJ8x6;jb^5 zrXk0Uu|pt7p>?s6?VBNO9*E+5A9Q8XY(-o;4bN6k|E?QD9v*&BoK;uSSs#c5t`R-cXe{cLQIkX$d^ z5oXjcQE>_OcfUb_bQx1 zC)6zDSR5LeQJm?|*^wq6i@;wAxCwA1^)n7b<4;tamEG6mq1*A|()`pocf53AWbg%u zg1d)kZplY!zu#ih8PldCVz3&|tTIny4d+5K)s=N<@%Ync%WwW@B(m2Lk0Z}8F2n(+ zd_IWJzO9t2^8Kw~gg9s?i&ed9IC7y{adDh`q!yC*e8w%gZp(kLseJy$t0ysDgh`^o zYif)4w3OiA18?5v3eUIRaS8D!P3%KiZq?0yo~lWwnu%|VQX+4r{L=k1KB-A}wx@T$ zKDMo`*A}A{m|*v2dyzIV-gzk?%eYSKuKrx+56zsV8}Kyi1Qc7ao4e<)v8S*O^l|{K zC8PSQ_z;}3C@YHF3QKJX*eC^54pC|V6y-*Dn z#Zl+9%OS&|l3A*!!He-J5^7k9ASW54AV$Odw~jiAAsMwGNo-)MBTn_gkYhrk2xiM* zn4L$9Hb?$uhVD3$b%*N_1Uh?KO}1A={6X(Wb2N2Q(=((}RkjUwbvyBC_LE(Fs zB#v2Lp1Fk4*2%B90nF186c!=N537{M)qnOa_yxJ0qm1P-b#i#ti8Sbx-;(Tb3pi^g zA6%2PZQw3&g)v6HC;6vAGZ{y5=o`XJ5m)Khvr-coUI*GtrpSjMvBnz8_}LrvQuj-f9W7a{l)!R{@Kc;=wM6JQT(Kbe9~m`QV+X(u+kS)TN+~_r|aCygPXZyWIJ%1x;&5Z&mV5MUpu>_diF-3 z1oq~&BiNgXNznT`K~lHl9OHa%H3{nQeo_sKe^qA0F$y~goYH#%JU4Ls`Yaoli(5Gt z&ogxNcz6|-s-yAx$#Zm-Yj&~w8UFDR`3^Nr9%_o&WqtQZsW%xN!FD8VlRwt(y;81s z+qq)vm0RjN`g;2Terrmg)IRgUg2lPO)dlz+C*kKnRm_j=k)G@`?iKE7Da{_s(%*c& zM25D!TV>wk(f!cLuu%F&}II+rOIB=f=K%WQ`` zox2Pn#~~)H0`>CpWQ5@GoVw4?@}ITXv}+Dwm1w^Xy%*y@Cw+^l0u2dlZ8NoXi3aqF z`Cz<$dZEFRHclsPtDSTlAKBX%_{ok7>rvQDn!h(GqQ&bcot3O{Ut(^y(o0@0p|jP5BsRLeuLx`q#qs> z;pi~K$;9;7g`=$Ct$9Y& z{xXzYqm3W2?U2j&`X0NJelWQpE>Qm6KBh$gv(TQ{HBz2wj7}9TPBO3 zyl6|wc!9ylP0=Cd%eV9omnc0~dRz8(OqZy(=)I@#Ty$@o#)Y+~8~829lt#WBo5D7o z7gJSwCGkr%;uJyA0EG+7vEr6Nr{3dzrlfRVNNtLY%Q}FB{9gW15WIKzcKM{uR5lvF?pNtx; z;SXA1G(;8ON*zB67~N!szVY(Hs0bWG@53eV*D=`e=)Iiwr}i1f68&PhFNU~4*36dx zY+&z9w2CC=rFPb4TJkh4O{62*M8b`Skep4qX4D&g|Kz-$*JMAxUfH;gTX8M5?q7mP zQ^Fa+YSs+XaDkYlgnl@sv3j5*q#O=Sd^5jJzhXpwEnBQ`#$T4l%|Aib?M+p2tWTxk zmAvn4d14+Bu@-yeubhNcSZH0&!vhjJ!z0aY#v_o^T7hupv$}_HNn7!nR1JZ~`sOtJ zL%7qZzly25-ulrUt=mD@$ZJ2GH$rC*Y*98|IuzGGo-lu}W|y>fpud1*2p0VgC^eRt zF+z|N9g&j}VIt#TJMP@Pr;8dd>f`jEQTC$phsq<;B9B9*xh>@8BguiHZm28tZjZJS zYbUt%(e}SfdV>SPmLbE8J$0%{s|(O+P4glE0z-AFr_bgE%l+AW#IWZD!cn)QQ{9Uq zL&$u%n>Ve_^97%PsvRYm_R?k32Qxj@qOVG-%}d8x3{Wi?NyI&~$RK`H$xZ+E9L;(z z!$PCy8Gr3k{&+2%X;3tV1^cFX`>`McKkM(H28`1WxRSo8c z9Zi3%cRG=qO^t9YjX+l+&+M36Z|N^K_uvp-gmBG@QqsfD$hF|%3yk{YF}PKP^m?>y zu_{Jr)dTnvPUxidxQoG&JvnyIPGx3u;C15eR*6QV&X<&^+Q%lJuJX7YgSu1IKZ(dy zi3dt0mL0VC5c~rjOMBI98JIzg5mB?^b(KcnfK3t((M8Uud_2YzLH;dWqHNfg{#YUd6d zQsU@jrAoLHDRQ}y*gmkukY}W)8#NMp_#L8U+>%`qMu=J;t82Sq`RjuzoFqcJHp$^9 zgj$xU!_jt2quf$;xfQyp0A#UX%XW9iNlaB)foe0TXZVE!zerbSvT_C zI{M4c?BvqxpXUO<<$p`V6_6w&gkF3Rz@J{7ubGI==wOvjk(At#U4|4Dn;hdCRt4&; zCZ9HMqUVsd;ahc99;{7==s%>rYAN<7y=&!%UyyLt2LqY)s(pF6 z3d^$YmK7zOpjvDr&9zgP9c_=~Ctx7pYKs!k+pXQCQH9?XY%{p4C>uC|>u|>-^f;2Y zPYPRW$il&-cgNcyrCD~Xti!D$0r1wFMvfsm^ve!Zndzm4nJry(DB3Jg9xOk{*7)Kf zmM|Ap*3^4g6mD3RSrr+}utNc`uMxZiozWY~G&rxFarf;~%cJou)*YrabzID_t=HPF& zj^lWbSsm*+K~?71;;H+?Yv$KbLW_44}FwQLf$PzoV`h}mcHQx|DkddmM(2N zdWK~fB}BDEaIG*5zT#z8-Sns_x7>j@Z2TcPA@r~v`g(N!o7FaNtxWtW&tg$m*}jys z?v0&tlYWh(w>C0)C@x?TvFu zbQp0pGTqW z_K4aApL#PhfjvmP=3hwC?sURB6GuG51cH6lw(CE5pPlN8!Zl;NnaOX26YYVECl;eF zZX-`#ry_oDUgTbknpOhK-o@^Bp$n2juz`jRo~4@V0(?&K#upow{l7)ER;@r!3n{z5 zJgBH!*RvPiODKpu(S~R-qRC%j-9kz8ADhG(#d?=9TxM#qT273QRGDOHUEZ@bXo|W5 z`~1eJIv3P4Ml-c8-5#CK6{ERA0nX)|>3H{vyluMl@N4fST!^jHDG$9ACq)m!nb*~@ zl*w~jH66al=U6;slyfo_?UH2BKXRpNP!}za@IQ?oHTn^(IZ43Gh)BJ!aV&n7e_hEi z`S~~(cq^HfDetd_a|9&=yH1V;AC2aku0?cSn|5|b$V~8{jMdvRlvzD>kc>k1#m}U15Ak4KL0iZ4cDKF)41O+HFQUS0!t;C zmn!oPOwmosmrgZ6IWLx?68rU&jjcSQ1+LU2*{RoAzD|>thf8^o;|rH3uD!}P^#g7# z|K8&5bbi9Z`>7gk3%U6#R(WkH9P7N*lartje|O-h5$$2N>U!GxjK7rJ(+(DAlB$1K zfWzz4V#@Sxd01VQenc1ye{dWPwjHLjV!!gv+iELg4GlLRWoE{RY*FG`In9WsgziGUpz4SDRpZ)qk((WP z}pgWA0UEl_wDBBu!zh1j>^Y&ZXYcXInVKz$Cl<=?61LJPiS%Ly}-Ar%+)w-FI#y) z3YXn`)|@)rb1f-q|pBM zy<>W)6Ga+pq5WNZ8)$|KO-D(tdnmaAR?lp=hgH&tKQ(B6Y|tc)ryQugVO60H&%D~) ze)l`RR`ypj;*v19%RAb#V*gNxKvR0Ffy{cDYp_gvBIZr`b=M%IasQk99~%73BNT=^!#1>&G=8~ z^*BwBFsoXgXO?z*?->oFfoSZBBB>sFtq#6N~#-@EAa zG9@bO{@W=THA~7%-`|aAr8iaVQ=_tcO`1)`Zc$#kf1W~ES42VT?_b--90LSDML1ik zCb)B-LE)-&oV}NE??&Uva)Nq4Unk{znRaRb+3D}tU!Gt*HW>$}+-)WiV(8Al-^?t&cqdiS{*lJ5i6lyq1;u`i_9HPK8G5 zA?8bbeS6#nZsqm8D`>8^R}V4t6*@LK$eS2Xgq{>zghW;}>LkqcyH z?44bcGqK!~laz1tmt9_}W>u9rUe!18X6VH#{OO2WCIrfDAoUJ8qZ3%A6<4IoDlSWx zLAwpZ`NJzMh{qIPppPv!7Gk*f02?AKVB-ktaKJOo`O1fThW;RxHiiYQt~xGO^tc<6 zD+u#ye-vAx4v$3;VS7W_z9L&?RY~|$@nz8v#=>DDKQOvE8sf$=n9NQ#q~+m}X`x%> z_sD#M4!i9kV!ixEPq6CWWU}_x+K_~(a%b-_`9AZ`vT3sIJ7s*p+^`+$;XIPJ&15ld5RVuzHEhKSBFBXlIs1{utrXj z-9vsRPND3?8MMv!mY4(G{w|a{C?+Snr~K_EjOh%;T=VJN((ItUOd@|sU8CJT!)glo z2jQ%{2fC?&Ks+AG*jZWIrs+@Ei^;YkjV`dX?ictP?O|!%`HpOVz?f*wi8tyf5ge8` zJcf8PoX3|V454LjXzwSiw&b8 z=awx=*V8skZT_ZFAVyHB{ARyy@^U;`)^n~vf`!4}WV(5w! z)2Q_u&wkxew84g>n+;YH@P=N{@~BkB)jTfEll}X0`N)s`63O3rF!O&T+zn zMPj|o!K&K#r@p>E+A(y2%g5MMis-9wIZye6oz~rmG$3bHPx)A4*$3$uy62IxO;54z zmN$>Xn(g;P12kLlxdtNQ0iQ#sZ|zl2_$#p_Fy$IORbyh>G~S%Ny)_=-ov!_Rd8+e# z-Ama-4RTeO=F41T=4UL zodBxA0BLDCVKqG9SfD-8CbZZmKTg|$b|Oo`jGO3ft@i~@f zU!->G_)_+eP<@ZYe87b>@(Bssxi{0d^?DE8HR8#to(z;3&zI)#43hrXaq(!0G2t_w zg8TYjXt+V&5xs4x8}FPFARoVOJodIf_IEO%^1a1)+d#43_74XK)%78p#~PJ>I&MA= zaS>x;e8};`9TQ>4Dbr*9ic+@`{_XhjkgU>ak*T7_`v-7qVdqq{V)WV>tAc$u-3Dg) zlZ$>bei>WcRLb!HN%X={qNiY$*WV`BD@IGXO|~()Lt2p)JDQueuf4()`=maMRxFow zn}@#^Qy4E$ce-H&uZ#AfZi#+auolayIZ&z-b}YwTt3cBFg)7{1<%$xrt?J&!p&J-TgBT@xOEI==s*yNl3# z01xT!(a|?gMs(G#o#`daz{QeQU=l_!IR^Xm>@3?O5n$JX<-rIt{E*-Fq=GxzWA$Z3 zzW`0^xfJYev(u=TyD-v9%;8cm{YHAlId2lug<3RsD0eBgDEV~91G1TEs41Qf z8rMFy^vk!~?Ki#p@lV;&E!A3Ym!;iXh12f!I%=n>(p&_8Ix5|25+ZH6ox!ejidP~p zhkrC{>r9-7J3YX{D%{^&#Gf2y=)1hBhb`GXp3z+cVGyD@d{(MnZ2`g zYG9&cVmsteF!=&TF6jep#-rtoHplAd;*LOS*QKps8E(I(+wmfti9$QJ`RoIU#pawR zQ5F4{F)mIYBMexMlOM9@bD}9BndoL*{@MAa$kHKl$pd!%=OHq_P1OdP++oK~L81l2 zld^&Nixb{%oU+%jEJl7lW-x8()Kp&>5uq`>Q}GDOYn7L(4Mjg4F@$tT08Q5yOzvUk zjWCYf*81E#kh{}BvJC?uCb~J7xZCo%ko5U@J5J;GUH?J5cw}Aw`9WZx=$g)Xt3Z`` z&PBs{4)74=p2bfS363^60H51Dy8LX|JBF!(3ywkknpHGAwnbesn1%!w0Jj$~r8sBS z9M5vS3y%Wx(6ZKF^K+Oz+b#{<8yA4MRYN>C{gfQCK1KiNZDiS8W7kP`xH93=K@W*v zIcg$to3MwuRp?6mC5{tJe{%EScDO*=WZfN9b7D4T4=p=b++v%R#8g2AaRll4u&kCs zRhA$Wn(kuSOZqv8Z`THraPN!lW5Z(pxJ9oslPl8rg3IIQD}g<3R8ls^JEif8V^0{) zHYGA^oEdr|8X?JrcEPJ_wvP%VlKHq)!DYl-sA^J`GE9}}2$jINa|~?t%K}{L-le)o zd!*L5*lzK6s7XAFh!0k!CwTPhI;TY?l-#1Mo%=fI1kWB{rTYKgG?Q^-7Tp*fKKV6Z z(as1~7Qkq{m5x8zAJBigKOp`UV*kzyoi%9n;i^>MRuL)7z_i~51e3eBwki};`es|0 zOIO_&W4#G42o+ zEHa8I6paus(KZc~+8~r)Z6^4~;seHC&F2wKleqT!nniubXpEn5H>fJIT7aBmp5M?^ zd>-thkYEza+_zoVa^^AhUW~~;QtOV&{`urhC!Stmz0ar5bFIiXxl|T@Y)Te_M^T<1TR8% z8e6jzsk7Sin9ynJKl42ud>!Xi#Z_;s-73EGp!0~^Y zFIMzTb}bKQJ}LOkXFT>=Z$+#;Snj(MPNe4e9DYzPbN_NiVsMdJNBw~8x*_V?(#6x1 z9w}M?uYeqXz`aKI29vBL3-E|^fk;+L_nGY`?0l9qpb{JDf*E zaso1L$AsN|?DofGP@ZEO$EL*int#C;c^*Jnjo#5;`ud666^%;LG>1F^7C>BlTdv-4 z1}fV$oDF!Q_>V^n-G{wuB_EwwT1oM_x(W$9NRXC(5MADI80 z=y-O>aoXqTp*1zn(W8H|Yie>|6&b8WfA4>xcW<96IztlrML;LoODl-+Q}tD-_cV+r%voqB zaOy@%YNX!tj7a#2x`Gv2!!&`tb%`~*d_=#lPAB0!Ca7Pu2a{iwzF$<)XZnn4HYEM5 zYm0sm59yrNWVYDMACUxt_`$&-H<#o6M*7=6Gjf=N>`cPjjS%t?vdFr_GoAQoUHp~g zc%+*6<;Z>tG5mB|qadAYDt*Kx2CIdNF}y*qpf1xaACM|XyaRUbX0N){wuK0f%ioMK zQ1bXxfe|XwyIb~9XCcn#yr)zrT$=e;W@PgC=`ecZvq#{`Ea3;HI!E@-6+gl-k9eOo z?Dq?wC}2pe-};$eO*^(sdpd(-uc#{ML62_sqvJFla<2CB)9cibiqTUer{{6+1}N!s zZ!0G2cB(a1uHjgBpFcGih*?r$-U}4Ml1V+4MFxidm|a&_m+|O!F8p@gd#tkVbza9e zB$YHUX9}4U&Er_qVygmZ;sQHQU zkV*2{ixK_eQTCXg{&m?4JQ+rLiI-(QsN#H#O;r8~nK}{^DWpEP{qvRZ<(jicb7TU4 zDqX*wBlV%aRNc1V(@1=zoEi^2C%0q=*F9W{!zOJ{`n(2Fi|Qr z3I`M7_jy`}{icRlV2bCRVt8s`PkzdhLM1x#>df*fo<4orWUZRnUk|zNUo$@xnQC{~ z#`mG{;nSLlBfpdEz(0<>h#c-*J^)Xgy;4eXxE}1CbK{WP;PZHd^b~%rAG(s@y1q(- zqww_YR4q|Q_BFnnv6t2g)iPTD=v~#|!bn&}L zCZglDl6b#E1<=RZayuS3(_+rQ7>+hP1eDGvUt*kZGCb5amjmH$qd#aleTb=1!7cms zH>;V`+IbS(l2W(9Kk^$z^AFXRAC4fGGA^J9$}M}pl9#3_of&J9)Psz7+VKRzx@lu- zXk`?<@9H-`g5ZAP(tgE`aIP7o6-|S_ztvO&$`=dPjV>{GHK501k(RWyldPp2UM&Qz z_TK3-w6r&?fBe$7lKJqbmDV)orH2jkyieEgGsniUn0iuX@XcoJ4`@?_H; zC}A)Hrg{kYIxqKhZ6ycI)5hgv2=-u2YrW^@)Yo%q%|b)^$P?i6_T0&)hIxp%MzmyX z-EVvXNvwQQVt>MeDY01epC&W+PmypwiSkGsL#tv^G&X%0pL~+_*)yL?c;I}f4f!cj zH9OJAMhI15PiFVzgie(_K&Tv|eA>Rphj6ax=UnPbc(R6kz^Swx$6Z>(Z_+Zckr@9b zwWDpw3N-rAlRr6lb-PH`J5LWX(#J*$Joe}pz#h)YY{gXAN9tJ88n8@ml339fX-*ZQ z9K~|#h4v?FNFROzeBAE4M;yx` zNX=1)Es_b6)P6rAJ(BZ*VZ?aLaA#Oik3?T&DX{Vwb|g0Rdk+!9h*@gS(jQ*U-w{JN z=*L<-vsi1{!vFrnk5@{>e;-q}f|;IoW#gT2w71L2n+k{HG#uG_;fH z7B<;?P!+s3B2=^Fi8>J=0w6ld6*ZGbLnYZ|e|1sgddm&=n`g&5f+r;hJni5Y#%{24 zJH{iB=@ELRw5xTkx&a|vzMCxY{Nv{g6_k(Az+@^0&Rc4Kh2ENDyzx);H5OlKqf%5X zVM1Z5wO)P6OD_7R#Tv;ubv>G0AA6&VnVL8cB)=0)3*V7!6=Gl|;klf^k~uc<}&9 zv=$a1s;F{=cX+`3KkII!0G%=5V5Im+$O5GfhKv4bEI0stFd|5Aw|0tZMDoQlT;!js za`4@ML;%>_gA|}9NCOMl*Nc&WQpZ#((xxW)U&05_X#BS2Qj`3Ds`!P~0-B9u$XrQI zxNjJPP&GP(#CawFlK<}vK;Gusok9c)T@%%>xrhVG!vdmPERidiDB>EX1i1tXLI{KK zhsgtwXP>nLIx7yg6y%Cs0-!cl1=_xtN^rRUrYu zWXge~noDm7B1@zJGB5anIs>U-ivf-b2l5vY!T@5!p0oqTlRi8E`j$C3dPNcsKtJcg z0|=KTFfhXt-vL~$v;>EeNdrw^1SB}n@_ew5itR@Lw+%0cQiCD^lvgeZ0Q1$Q1mMHg z({|vOek*XBc?uNv*VZt1*oQe;-It#L9}rN`w0&a@^D1E1WD1%tWKJVLv7dut>^KWj zEB(KTxrbmx)NaJKEW_o&D%dFK44C4L*&5Q>-gFIVIeHy@D-W;$YQlUCBbOk+q9}wP z=ForB_5<*4%O`+AjFv2eP=kpB40K*kBP|GTK<{iY=+Jqyt6J`=4!dzCG7OB1iVTA= z7=Gsoz|1V%575Uc)4tO<|VH*ZOIodbMaj z80X1yd0BTDe0JBUMG7Z8{ffWb{AY$)-xp)HkFI<2j$-}rJI;;O+BEg40?v(KUrVG6 z{qApOYp2B2CO@aQXsRr$GTn6DrXwg7u231;X|Z(gLBVGu;*Nq47JI za%#6ZXc~THwreMK1;_vf+w3cb@O6iU@m??@{G%KuGps@mV^UjZuwAy{G}A>%Qr%wh zv5iCwAR$P*^FNLR(D6T*9wdNWzLEpeZnB>f0rZzaaA-2<8cU0|+}~*5-x+IB ze_l@>EBU&N!s^kfja2YLFnd*>tqTcGT65sR=K$ z#Pi$HO}Auyk#xV22XJAVmTJ1|oFbDCtfafHB={ZxD;BPkkWp1IPIK(=OltS#-Ip(p z-7T|{pnbS$-R8?FsU4B7=7 z?4gF)YokdE1x*&WF;STT)AiMF(!(x)Gk(+Upl_>5Te|0=CcP57W&?)_;4}N8)k=Nm z9bDlsaqzV;pYLmCA4}72w3qTIvrhsTUxcLre%ojg(t$%}VC-Aw7|=4&IR@c%fDWf_ z&SBU2ngsL(Dd7O`K6y~YsLlS{OHhIavjTeRnzjf#Pl53j3K8(sgK#W-iolkkm{|t0 zaPtUItg$2k)H(Pu2t#yhFk4LV90TKI-%rJqF=cjhMius%5?%`|{=ueJHcfsD?I>u8 z)AWBj*S;gY0RWIgh^X7qt{rvIb1nM`dZLbMt$O5+EE+3|sOSnu2(q3=7(`#vKj3m) zZVgU6q0*_-t=Ee9iApiqs2@39ga_dXjN0OfL0Mb86OU*y zZ8|WN^3LHSaFANo1ch)8@3K=n$WC$~JLMsnl?-A1VWoF2nw-_BbtUJ#_7u9*@O zW^6k!L@iindXP$=ZcZFj0D8~?8s3WQq*dlU+iE2w_FP4xo@B=T6}78LL&eP*ZRnTQ zn?Sw?8AkEHrVW@@=A}CqpaqDwGd-OZ?d!@>`&w?Wgi4jJFkD6^sF=!n5K?%XK#o%0 z0>!q_4AQm6!H4k(=u`$7=GCV|Kr%WJ#3m<@YVtt~Ld9@Yo3a4nuumS{k<!-xYJZRPu} z=n?^vnVldo$%B|=5BAE)+%=DbqFxdlr=$o}zuyz&w+kZwMM>pY22|13orTUU`7fB# zXatGszeCfmh2Uw+45%q#*ZqG3O#chI@bwhdCu6fHdyZ z?FusxahfS04WYDI=)soIP0nyyC<9t33DSyr40j04MN!O0gLNspbWl2M8a>bOMtN;h<`RkmOK)8O*H#b?Y57KocvF z0S(wB0jv^mWEC9@j2BWE5DtOrvXGbcT4#WFs~QP_g?upxS($+e06Y_t03;6?u?Rl? z(*S9V7euLUknFg}4)Xxg!~KCEP=QQ-po9yc+vBM~cy~oR5Yzp(9mJ*98KgJrzhFq| zEW_n9XFp)-u}e`HG-!{OVYqbHfu=c`T?7It>NjGSuKYkM8sq)nM36QZ(YzZGEx>|+ zdsM)*{sow#SC#>-Cl zXai6ZrfZmDN-yYL*8v@QH+R*KyQ=bTT;XvR0g`o`MOn~0*9x$Ap^Lc^zJ~1DNe4_p zK7@?c|3?W615pWFV|{~L0gqg64rJVM4QU^4^#qJl<3PH`L4XR`5(+I}P*PqjowZBW zRn!@ZDx~s++T_^&OL^CS1LkW9bAgu{=VwazSi(NkeEAq`=D#acYCqQevcLN~(y`v_ z#h}LAJ7aUO`RQVxt^T^yD07gHiZk;9VunA0(^D$w?x#BCT~TIAiqh99yHhMzoEi2C z6kG3iYo)uQ5EK%$*)LH}H_a9M#xe%2=YC`i-ax^FqVCkJ&4w7W>9Zl$Es;SDpJV2_ z7C!G#y1YNw!-MX6lR?pCVPUQqx!SdmbKx&&Zzgwn%is-k*jJ{ag6=Me_kx+iKm4aJ zlUlTaPT2-~x@#dxRcFOVE+S}b*q=VT@eS0L($;3bK)|LeKDa2*p0+vrr9yJ4%Nt~+ zps|0mQq_NBrMmylN?-nqm4yHAuo8QDmzC0YS*h@UV5Q9eft5mcSt;v(u@d(G7gjp+ z|AdwD|1VjIeH=ui=G5?2a{YrIsaR`=t@EX0)gVrpja7{n>f8E_DuFtVVOHWQtOTo$ zoO&U?OH%18Y!H(O)x{AeOnrDfd0ij=)e=ujjdFhUr)0VFssTh}G4cS&O}4HpVL0+l<32*E3`OQFIwK0V~#(TSi}xfQnctQ-*nTi2X7(>~ch5^>gq= zTRE$`BEkgZtYf=QA<&s03qq2*Zw!YArfofx32sjDEb=RL&Yc)f_8C80tk5Rt^;DwRZuMDp27jU zUchtv4ait6bG5*bG>hO5E~8rG;P&;dTHk+2NW9DzL@#@AftY;I4t#B?0JAOWfjz8r z2Z7u)2?5g~IY4k`p3y)5T=R{{TggTG-Wkrs5zZ+2C0=(H$oUofp7k(QRdZ_uRRz;` z$6_BDa8AKJeX&?gj&X<0$LiB}JW9S?miJQ=1fM9u|3M+>ojmu8j4=g2g%1i21@fP7 zW!iYho%>qdAn&Gl#WMEvovHyuDJ|bs>G9>PE6e`z7{dl#%2Y6Z8x>4wl+rIgKc~GK zimN9-A)i=1?h;E+gtT&{2|BadLGNm$eJ@9Qg%Uy)Dr zpt;Py1B=>ZN0bMOD4+@6qqT<7>EDaBZC=sw5gub038$_|D@ngriM8$KK<}+A1$R7H zsloQNRkD!x;{wA__NgW_z?VoH0!c?EPLuQZ#Dr&4p2%yj{yB!r`fDnw)H=wyiL2%G z{AlP0tjje~*if^w;eCAhwYIxHA7FX4T^`$&FC{Y1K}y=NqPf5F#gJI-aQz;O9?#7-|{A&f5lJIsxH4^LG5!LN;6+%#Mtz^0= z49(X5=HfG;*p2Iiv|5lyW~+&gK_^fboJ~?+p@jw;y9xXmgGanQC7ETnoGJ=|J0D-0 zqT}hJS%M<4p`9NQw`o=+!Oyi9c3eBHNtEtW7$WoKdq!<=OYBY_*;woG^#paEcl#YFhQvlF-OY#oRS0)gUy%TagNSP3C2-$ zOEBAiEi)J0TS^|v&JW+~EO=>PQ+B>wm&XV5XZFj3YbjfwWmDN+Z*MgJKw^VGbNiR- zrDx@sJ%W{3*F2_G5^anu%7=6uXhNkeclGv{R1BrT(_BLN-=o3n5%;PBJ(ZDVSZZH| zv)Frcb`FxSqe7=M=}Kdz{9 zD}>=aP{t;^vq>gi* zx|voS>PawXJ!55H2eEHpXBP2Jf1$*zzDstsgiiezuBpp~=PA zQ=QCjXHc0uCD=9Kd?i#;E`Bq~f%PO1>nRnUWA-Hc*^VmJl2n?ybKk97Td$n{xZ^Ns zf(ocwJm??9js|X)pKY$=5Cjv1UGodB@5~;wB|+MMbv@a)_S}uZ!@^fb9_WvB8GFn5 z>9ohRZqm#5X~=jgR`W-Kzq*ih>DTpDvCNpHY?ILP586HN7H2*QVBggGcOFYywh$+$ zAxleZF2ubSld_5~O0ChXFID@JHKKX+2S@o|v$wy(u%8$&{eWZtFLg?}uHZvF!JFd) ze#jPkUD(hci}-PEocJF!ca{jucRujPpdFOQSk(`do)%=6+u=OPA z?w!}7-|qk04SHIV^*?d+>6672daD!oQ;AyTYRf_1i2kdSe|TH=EtLl`&F#W5M*5AG zNLw*Pmv+ri{=>my4YIdg_+~rVm0k9LAy%qa_u_mh^VbW5N{-=$po6c`XUO;1Y_HkR zfnjAenud#_nhKp~5@0R;Zc} zBN3Fdr7+ATsk*;u8xDW4qSEtJnVRdu;PlMhq~~w=+vQxZ@vn)#X7SyUdWy7M)4*j) zvZ$Fd_+)U%k%kPE5@6#EJF ze|5@oXgbRd9{}TZI9{jHx4k$H zE{)%^+JCkC2;b{mGYM#I;6=CG&#T4H#dxY2O%OBO9-J!2nDp`i-*!fNvjewA9c_@g z1<;P*)on6c^Zy8>3S0H#Hu#pm6L{&vx$@bYb5$zO|6ABU_A&FV{(k)tabW33!*#PC z4L2UjbDr~@=RD^*&w0-CCy_T^x;fALPP`TCK5FKW=OlE`FvGWYVww09tZ(O;vv5?* zcWy#=3qPKKb+>Sw@9u=|1b%V=*0=f3lCZwDPw?%Zn7-jd;)IR=9G?4$?i`=o3F|jM zzrcs2?p02uVBOE0;+r?Ad#YdZeVWww{u>qW_>KARh@Y}Ke^u)_-PepS7kW-lfw_yJ*%pJAUpT~76nLL5>T#AiIG*M1-9 z-jDWrHRosEffbX7Iz6Y)?laxbPQrGd={~&2IJ4F~w*Q;setws6?)ZnYV)!UA?918v z$HLdO*7L@h@on}yK=(0p(rBz6rb>%!an%F z9Os^Q;V+B-3hxzPh7TGqTmZi!ei(j3{0RJe@#FBj;#Kh9#YLX;#rwr2@G9|oxKaFN zxJUe5&nc2`_kI=rs`xPcqVZzo{Koik<}CTMcrW~(m}l3mH~s=XuRCnKq6gNqD<6dQ>`G!%syM8| zx6&_(*;nb;#V^7~#O$&3busZNeN+4a{3qkp#I{T^S^X8bQp~euo5g6ROffIy1*uFr zDY_q)PKt<6nf6u09@p0!uQ>vL)42Fg@XN+)(MGxSQ-XcD@>RlK$^+tW!!hxGcu!QFkOoS>4(~TEV~-WmXBqje zP+rQ=aK-z^>jyo@_qZ4ze2QT?KKK;Fa@O*F*VwliRvdgCu=MF8wm#*>H)k(B`(F2) zO8M#g3oOm}sPRha!AHI-<-d=7RZ1H^@?I%z_}+&zKKvclT9wRGrTAC<6xN*8_+K?5 zCMH#igP;9YDewL_J*WC%;{Z0*%3a{ku>7e(tJSLan%}_EWbFtnP1Zi?Iez6Oh|c}m zZ;;;N4~bdVFC7NafM5MBNbdZqoe&!KYt9g{@?SQtV?3Z7h0#Mmc?r`)0-7gG%?8vP zBji1x-WZ_<1JX}~Tm+=^dg5I3pz#K3wnlSC*-MT3Z3B7;N~wxQtr)QlssF^tX-GM0MKdAQLMwR>Nn>sFmXKK2HpyE@J3Fn^uut{va%RCn#{t4@1qXRSKzrTy2i>aP8_u-0myn@4MP5c4|irGpv_ zYcCztR9NeFgka^mBL=IlcHn>bD`IjTR)2E?uwv+b304d{=rduh)ycXM)k_z8jz~XU zXf>j`Sb*Ll%C$T9e{-bmF0>j^uH*PzFF)hNus&{_p#RiAAtu-L(s_d3UauaKKv(su zodmI}mzI)fyIwV(M4ub9_XP)G<<$KntekdN!isq}@!6o5cN3otnzNhuMCH#`dTdno zDg2MB-c!_gRCSTUw+3k-g>Mb2lRBlM*v>3IY_H>o#{P-{(^e*`TxsXvcUYfaMFC_SM` z?*pS~xJf>Yakg&K+4lssut~MElele?uEvSOW@&Oa^}bm;{Ms9yv!%p%FSWl#&whhF zZjnB}h32;?cWHW5vwCJ4{WL39Y36L!{Av1Rv+|Ng8_mjTn)#cRqcpm0mJezATeISj zMkg)m=lkYZ`q|H%G1*Vh6JoNT;EawbZWHJ~rkH$(v#C|{JjeS+tMd39{;kh3})KHm!A-__wLg{DAnhYn~&#A9iT(FOc6(`E!hCJC(a*=%G{d zA0uB~>f2MCFJ0;nQ}n$q)z_=+t4q(m`g_lbE6%Uc2jbexkEoZpYJZyi#-;fg{ESQU zGw39)el^2>eaP z-{Zt5p?v*>no1~!KjX|wC_X31Q9?TZIXOzIC!D0#lIjV+VBMtjd5WHsl+I5Phooxi zm+U2}T)aWQN-8G5qPKUe*Igz@J$m=MjGlYs^WW&zJ&M~EeCSc!t`Nf>Y5qO(wbgRr zF5-OOYI$@&g_gFyFJ`Tj#m8Md$9BHE_tF1Td&OuYW$&?W0WnEgZMsWXEA_6JKG17D z-@TtW_iCQc(2IKI!$X{*eb#f_&r(x;)^ps4$zz{=3%H*r{(bWEQT*)tK+IXQ&3e20 z82jqC9_6mUhyKlC;?r-MbXVeY|C3^T?zcR;tLVc6cAmPcsmDRfqZ?(vgQg|70p4yk z=r&TD+hwx}pNA~J?q>SHP>Gm&AF?yoZN`4cbmF$~tu&-(TkvyOagMRyVavPQN=!!N za~F9W*)L|!5j&^c1bZ1>B&O$#nugsZdK=Xqll0zE#V1LwN40Jb@f?$%DReky+ID++ zry6@*Os^h$Q%r1kn4aA}YGj9mrGa3Rq`X*lWV1?+v3lctNO2SZK(ba-s}AsG75jjx?z5IRUJX<)??}m$lm&r zx^9?SUqOD&Yr07wpVq^kPxrnt-vF>4R3-ob0L*xtHO3(lf3p)B8dip&&`B(V)H$vqnLg5eS_5TWYnHJPhfh(c_ delta 53114 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 diff --git a/Makefile b/Makefile index 6da1339..1ae0b48 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ WUMS_ROOT := $(DEVKITPRO)/wums #------------------------------------------------------------------------------- TARGET := Inkay-pretendo BUILD := build -SOURCES := src src/utils +SOURCES := src src/utils src/patcher src/patcher/patches DATA := data INCLUDES := src @@ -33,7 +33,7 @@ CFLAGS := -g -Wall -O2 -ffunction-sections \ CFLAGS += $(INCLUDE) -D__WIIU__ -D__WUT__ -D__WUPS__ -CXXFLAGS := $(CFLAGS) +CXXFLAGS := $(CFLAGS) -std=c++20 ASFLAGS := -g $(ARCH) LDFLAGS = -g $(ARCH) $(RPXSPECS) -Wl,-Map,$(notdir $*.map) diff --git a/src/main.cpp b/src/main.cpp index 1edd5bf..41cc333 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,6 +29,7 @@ #include "wut_extra.h" #include #include "url_patches.h" +#include "patcher/ingame.h" /** Mandatory plugin information. @@ -48,22 +49,6 @@ bool prevSkipValue = false; #include #include -//#ifdef OLD_WUPS -extern "C" { -OSDynLoad_Error -OSDynLoad_IsModuleLoaded(char const *name, - OSDynLoad_Module *outModule); -} -//#endif - -const char original_url[] = "discovery.olv.nintendo.net/v1/endpoint"; -const char new_url[] = "discovery.olv.pretendo.cc/v1/endpoint"; -_Static_assert(sizeof(original_url) > sizeof(new_url), - "new_url too long! Must be less than 38chars."); - -// We'll keep a handle to nn_olv, just to ensure it doesn't get unloaded -static OSDynLoad_Module olv_handle; - //thanks @Gary#4139 :p static void write_string(uint32_t addr, const char* str) { @@ -209,69 +194,14 @@ WUPS_CONFIG_CLOSED() { prevSkipValue = skipPatches; } -bool checkForOlvLibs() { - OSDynLoad_Module olv_handle = 0; - OSDynLoad_Error dret; - - dret = OSDynLoad_IsModuleLoaded("nn_olv", &olv_handle); - if (dret == OS_DYNLOAD_OK && olv_handle != 0) { - return true; - } - - dret = OSDynLoad_IsModuleLoaded("nn_olv2", &olv_handle); - if (dret == OS_DYNLOAD_OK && olv_handle != 0) { - return true; - } - - return false; -} - -bool replace(uint32_t start, uint32_t size, const char* original_val, size_t original_val_sz, const char* new_val, size_t new_val_sz) { - for (uint32_t addr = start; addr < start + size - original_val_sz; addr++) { - int ret = memcmp(original_val, (void*)addr, original_val_sz); - if (ret == 0) { - DEBUG_FUNCTION_LINE("found str @%08x: %s", addr, (const char*)addr); - KernelCopyData(OSEffectiveToPhysical(addr), OSEffectiveToPhysical((uint32_t)new_val), new_val_sz); - DEBUG_FUNCTION_LINE("new str @%08x: %s", addr, (const char*)addr); - return true; - } - } - - return false; -} - ON_APPLICATION_START() { WHBLogUdpInit(); DEBUG_FUNCTION_LINE("Inkay: hewwo!\n"); - auto olvLoaded = checkForOlvLibs(); - - if (!olvLoaded) { - DEBUG_FUNCTION_LINE("Inkay: no olv, quitting for now\n"); - return; - } - - if (!skipPatches) { - OSDynLoad_Acquire("nn_olv", &olv_handle); - DEBUG_FUNCTION_LINE("Inkay: olv! %08x\n", olv_handle); - - //wish there was a better way than "blow through MEM2" - uint32_t base_addr, size; - if (OSGetMemBound(OS_MEM2, &base_addr, &size)) { - DEBUG_FUNCTION_LINE("Inkay: OSGetMemBound failed!"); - return; - } - - replace(base_addr, size, original_url, sizeof(original_url), new_url, sizeof(new_url)); - } - else { - DEBUG_FUNCTION_LINE("Inkay: Miiverse patches skipped."); - } - + if (!skipPatches) RunPatcher(); } ON_APPLICATION_ENDS() { DEBUG_FUNCTION_LINE("Inkay: shutting down...\n"); - OSDynLoad_Release(olv_handle); } diff --git a/src/patcher/ingame.cpp b/src/patcher/ingame.cpp new file mode 100644 index 0000000..473cd38 --- /dev/null +++ b/src/patcher/ingame.cpp @@ -0,0 +1,56 @@ +/* Copyright 2022 Pretendo Network contributors + Copyright 2022 Ash Logan + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby + granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. +*/ + +#include "ingame.h" +#include "rplinfo.h" +#include "utils/logger.h" +#include "utils/asm.h" + +#include + +#include "patches/nn_olv.h" + +void RunPatcher() { + auto orplinfo = TryGetRPLInfo(); + if (!orplinfo) { + DEBUG_FUNCTION_LINE("Couldn't get RPL info - trying patches"); + bool bret = PatchDynLoadFunctions(); + if (!bret) { + DEBUG_FUNCTION_LINE("OSDynLoad patches failed! Quitting"); + return; + } + + //try again + orplinfo = TryGetRPLInfo(); + if (!orplinfo) { + DEBUG_FUNCTION_LINE("Still couldn't get RPL info - quitting"); + return; + } + } + + auto rpls = *orplinfo; + + /*for (const auto& rpl : rpls) { + DEBUG_FUNCTION_LINE("rpl[0]: [%s] %08x %08x %08x|%08x %08x %08x|%08x %08x %08x", + rpl.name, rpl.textAddr, rpl.textOffset, rpl.textSize, + rpl.dataAddr, rpl.dataOffset, rpl.dataSize, + rpl.readAddr, rpl.readOffset, rpl.readSize + ); + }*/ + + uint64_t titleId = OSGetTitleID(); + auto titleVer = __OSGetTitleVersion(); + + // "always" patches + Patch_nn_olv(titleVer, titleId, rpls); +} diff --git a/src/patcher/ingame.h b/src/patcher/ingame.h new file mode 100644 index 0000000..7ec5345 --- /dev/null +++ b/src/patcher/ingame.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Pretendo Network contributors + Copyright 2022 Ash Logan + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby + granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef INKAY_INGAME_H +#define INKAY_INGAME_H + +void RunPatcher(); + +#endif //INKAY_INGAME_H diff --git a/src/patcher/patcher.cpp b/src/patcher/patcher.cpp new file mode 100644 index 0000000..1bdfc6c --- /dev/null +++ b/src/patcher/patcher.cpp @@ -0,0 +1,20 @@ +#include "patcher.h" + +#include "utils/logger.h" + +#include +#include + +bool replace_string(uint32_t start, uint32_t size, const char* original_val, size_t original_val_sz, const char* new_val, size_t new_val_sz) { + for (uint32_t addr = start; addr < start + size - original_val_sz; addr++) { + int ret = memcmp(original_val, (void*)addr, original_val_sz); + if (ret == 0) { + DEBUG_FUNCTION_LINE("found str @%08x: %s", addr, (const char*)addr); + KernelCopyData(OSEffectiveToPhysical(addr), OSEffectiveToPhysical((uint32_t)new_val), new_val_sz); + DEBUG_FUNCTION_LINE("new str @%08x: %s", addr, (const char*)addr); + return true; + } + } + + return false; +} diff --git a/src/patcher/patcher.h b/src/patcher/patcher.h new file mode 100644 index 0000000..4881854 --- /dev/null +++ b/src/patcher/patcher.h @@ -0,0 +1,9 @@ +#ifndef INKAY_PATCHER_H +#define INKAY_PATCHER_H + +#include +#include + +bool replace_string(uint32_t start, uint32_t size, const char* original_val, size_t original_val_sz, const char* new_val, size_t new_val_sz); + +#endif //INKAY_PATCHER_H diff --git a/src/patcher/patches/nn_olv.cpp b/src/patcher/patches/nn_olv.cpp new file mode 100644 index 0000000..e018130 --- /dev/null +++ b/src/patcher/patches/nn_olv.cpp @@ -0,0 +1,30 @@ +#include "nn_olv.h" +#include "utils/logger.h" +#include "patcher/patcher.h" + +#include + +const char original_url[] = "discovery.olv.nintendo.net/v1/endpoint"; +const char new_url[] = "discovery.olv.pretendo.cc/v1/endpoint"; +_Static_assert(sizeof(original_url) > sizeof(new_url), + "new_url too long! Must be less than 38chars."); + +std::optional checkForOlvLibs(const rplinfo& rpls) { + auto res = FindRPL(rpls, "nn_olv.rpl"); + if (res) return res; + + res = FindRPL(rpls, "nn_olv2.rpl"); + if (res) return res; + + return std::nullopt; +} + +void Patch_nn_olv(uint32_t titleVer, uint64_t titleId, const rplinfo& rpls) { + auto olv_rpl = checkForOlvLibs(rpls); + if (!olv_rpl) { + DEBUG_FUNCTION_LINE("olv not loaded?"); + return; + } + + replace_string(olv_rpl->dataAddr, olv_rpl->dataSize, original_url, sizeof(original_url), new_url, sizeof(new_url)); +} diff --git a/src/patcher/patches/nn_olv.h b/src/patcher/patches/nn_olv.h new file mode 100644 index 0000000..f31c773 --- /dev/null +++ b/src/patcher/patches/nn_olv.h @@ -0,0 +1,8 @@ +#ifndef _TPATCH_NN_OLV_H +#define _TPATCH_NN_OLV_H + +#include "patcher/rplinfo.h" + +void Patch_nn_olv(uint32_t titleVer, uint64_t titleId, const rplinfo& rpls); + +#endif //_TPATCH_NN_OLV_H diff --git a/src/patcher/rplinfo.cpp b/src/patcher/rplinfo.cpp new file mode 100644 index 0000000..f5b7e4f --- /dev/null +++ b/src/patcher/rplinfo.cpp @@ -0,0 +1,70 @@ +/* Copyright 2022 Pretendo Network contributors + Copyright 2022 Ash Logan + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby + granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. +*/ + +#include "rplinfo.h" + +#include "utils/logger.h" + +#include + +#include +#include + +std::optional> TryGetRPLInfo() { + int num_rpls = OSDynLoad_GetNumberOfRPLs(); + if (num_rpls == 0) { + return std::nullopt; + } + + DEBUG_FUNCTION_LINE("num_rpls: %d", num_rpls); + + std::vector rpls; + rpls.resize(num_rpls); + + bool ret = OSDynLoad_GetRPLInfo(0, num_rpls, rpls.data()); + if (!ret) { + return std::nullopt; + } + + return rpls; +} + +bool PatchInstruction(void* instr, uint32_t original, uint32_t replacement) { + uint32_t current = *(uint32_t*)instr; + DEBUG_FUNCTION_LINE("current instr %08x", current); + if (current != original) return current == replacement; + + KernelCopyData(OSEffectiveToPhysical((uint32_t)instr), OSEffectiveToPhysical((uint32_t)&replacement), sizeof(replacement)); + //Only works on AROMA! WUPS 0.1's KernelCopyData is uncached, needs DCInvalidate here instead + DCFlushRange(instr, 4); + ICInvalidateRange(instr, 4); + + current = *(uint32_t*)instr; + DEBUG_FUNCTION_LINE("patched instr %08x", current); + + return true; +} + +bool PatchDynLoadFunctions() { + uint32_t *patch1 = ((uint32_t *) &OSDynLoad_GetNumberOfRPLs) + 6; + uint32_t *patch2 = ((uint32_t *) &OSDynLoad_GetRPLInfo) + 22; + + if (!PatchInstruction(patch1, 0x41820038 /* beq +38 */, 0x60000000 /*nop*/)) { + return false; + } + if (!PatchInstruction(patch2, 0x41820100 /* beq +100 */, 0x60000000 /*nop*/)) { + return false; + } + + return true; +} diff --git a/src/patcher/rplinfo.h b/src/patcher/rplinfo.h new file mode 100644 index 0000000..e5a622b --- /dev/null +++ b/src/patcher/rplinfo.h @@ -0,0 +1,35 @@ +/* Copyright 2022 Pretendo Network contributors + Copyright 2022 Ash Logan + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby + granted, provided that the above copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef INKAY_RPLINFO_H +#define INKAY_RPLINFO_H + +#include +#include +#include +#include + +#include + +using rplinfo = std::vector; + +std::optional TryGetRPLInfo(); +bool PatchDynLoadFunctions(); + +constexpr inline std::optional FindRPL(const rplinfo& rpls, const std::string& name) { + auto res = std::find_if(rpls.cbegin(), rpls.cend(), [&](const OSDynLoad_NotifyData& data){ return std::string(data.name).ends_with(name); }); + if (res == rpls.cend()) return std::nullopt; + return *res; +} + +#endif //INKAY_RPLINFO_H diff --git a/src/utils/asm.S b/src/utils/asm.S new file mode 100644 index 0000000..67a8fe8 --- /dev/null +++ b/src/utils/asm.S @@ -0,0 +1,5 @@ + .global __OSGetTitleVersion +__OSGetTitleVersion: + li %r0, 0x7000 + sc + blr diff --git a/src/utils/asm.h b/src/utils/asm.h new file mode 100644 index 0000000..d944c2d --- /dev/null +++ b/src/utils/asm.h @@ -0,0 +1,12 @@ +#ifndef INKAY_ASM_H +#define INKAY_ASM_H + +#include + +extern "C" { + +uint32_t __OSGetTitleVersion(); + +} + +#endif //INKAY_ASM_H