From 6fc737cf8f61f06bba8421adba79f162cd3d3ca8 Mon Sep 17 00:00:00 2001 From: Thiemo Tiziani Date: Wed, 21 Oct 2026 21:54:37 +0200 Subject: [PATCH] site 1.9.3: new screenshots (wide 3-band waveform in the comparison, full-width waveform tiles, boot screen 1.9.3) Co-Authored-By: Claude Opus 5.5 --- assets/boot-mods.png | Bin 12883 -> 12899 bytes assets/card-boot.png | Bin 5894 -> 11596 bytes assets/card-wave-3band.png | Bin 6538 -> 6849 bytes assets/card-wave-rgb.png | Bin 6134 -> 6447 bytes assets/mods-full.png | Bin 49514 -> 39769 bytes assets/stock-full.png | Bin 46426 -> 46625 bytes assets/versions.js | 9 ++++++++- builder.html | 12 ++++++------ builder/py/bundle.json | 2 +- builder/ui.js | 2 +- datenschutz.html | 6 +++--- docs.html | 16 ++++++++-------- impressum.html | 6 +++--- index.html | 14 +++++++------- issues.html | 6 +++--- tools/changelog.json | 7 +++++++ upcoming.html | 6 +++--- 17 files changed, 50 insertions(+), 36 deletions(-) diff --git a/assets/boot-mods.png b/assets/boot-mods.png index 80bfa2e6139f08d91365ebb48dbdca09fa9e383c..1df5d6a32331cdadd5378ed27470abb5e53b93d8 100644 GIT binary patch literal 12899 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 B=J)^r literal 12883 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

^Y}_Yixkl92?hRXgbjl%54dAHx)Xkoq} zy{Rw9^zX(O{Qj#t4wWS{u^)P8n&e?SUFpWw)4Zo=G9JIm{Dw&+`|ZrF+~?yvBH1rQ z?f&=c*V*}ZdQLK4ky~B+`uzT<`+vN?|Kry+_GrV4SC5M8na#^Oa{v6gKS!rtyS?_w z-Pv>gmh0@kzInlnqYr!@EX(-*|MIdJmAuOTZ?CHPiAb&#si?M(Je2dNyJw&GJpCXp z7tViK_LWNc#|x*;P1QXiF*!H))VJz~h5d%d{%)E5(0J{d|Bbcl-&e*RTA=lLql7HS z?5)~4+ZG2raA#zRIPhWGf9Oz8XZG@YdD}r1!HodJ(1y^;Ek!?%o-XWcX^eWmW!>E! zVqcpX7-qEHPZD2HaL>MK?f&fAKlOHYUr(%D%069WAL+`E7O_ipR@?;o7`=Ua)&G3(myDA`x{@5|!lZ|!gL|G(b;tNtX@8rHRI z*2U~9dC9&1JL_kCW%i6&`6mBgy^7!aef4*?X2y1A28FIWg*jjB-qb#izQ3}5+rK-T z&xiVjJH-dDzM8dl*7u3qKYnw2etqt{_PcTG#e;l4PY7NclD+lT&-3%jr^y~I6WUex z_}3BEg^UaWrV$pG=Cse*y8K$0{eCHV>B#K8`_k85by(bx^ZMR2u_ro~X_ZcMH+`RY z{ZHiPpKis+-byfl#uyhC+P{sfd6;x>tBc4@w->ioUr%}_%>)`^OJ4nvy?5*K>q$}T zmS6qdelOd;Qun7*I|D<9Qn`%r_kaKHt*`sK`e^;eh=1WvTU%p78_JIV`&0kt&nxZl z`_=Dl%XAnVQZ_6Qw%@<#U&Y@`-P4VhZ`!si`g&eW_Ws*qmsuD=1Et57v9Gh;eC@|y zx0;W;nU21BUB7wXzh71hML`2%0U27SZ6C)~JabwbHv5Lzk*M2s%m3b5dtD<9H2TRn zYsRUlzkgmGwcnF5&By1_t6QtDo87;qQV1S{o>V0B{1W%{SN_*}4cWVHnwy!gyT2n3 zHUhoWH}$IA>b16;!)!yZHoaN*Hm~%0{@U&L7tfFd4ca~7-n=S(RbSyA+4a92rymg= z*b#ZU+ODvb{RS&T-!y-_pDOPbeLKK>P+b1U>B$@F)#{!e`hI3hdFiV2{PR>+n!RC} zXQpw7X*a`xi8WR{yMNYxI;lRt<`d_4*ZS}yZ`yw-d_CcMRrv7Y5cOjdZ(Gjr2TcrF zqy>tbpZMYMaEWX9Nnyme=bnk6M!7{wSAN_$*O zTuWF3n^_rxcV+vnX^`9d`ha$G`TYxmOL_FU{~h`GLF32wlgVoWe+EusP^!%Ram03V z&2xd+Mh0$%zQhxvp^UW;^qcj&yY6k;tFz3=*8k~0jbmOCv8s2B7cwSIx?uLRd}itn z=L}Xu7Y>G_YFdj#J|Q(8^LyjnY6PKkk zk9BsnY=0|UQEorMZPv}gPN{=SICVKTFg(cUsdQahEF{Jt`+G(9m#OJunMapD>e#5z z#=+>I^Rv81Nw@8lLjx-VL$)L%O9aD&_wVWsefBx|-RBU8rbQ<|XmW{xfl-Vh<65kS z@Ux=6Qwt()&0Dl^z0H)R%bG>Mcm@?dxuK9I$aJ8lY$4Cz6=(FVovPJ-oVrjd?Y#f% qmg9-Z-^@Oi*d)U+DT3R^odOEaktaqI2e_>P$C zbD!_;%AR&PM>?;OCA5b%w3~I;A;$Q`_7GwHmr?3IT`vyi{z;JJ_mH($`Sc`l?#TnU z5+&!HIjrIpac$E~-(9TPSK{1!ek(4V)9bul(arRT<8>9MRJS&*j+?vIYzY>>lp{YW zX)piw)ghtZ{qGjP+xvC-@81V4jNkq$es!n%{P#Kc;~NB=I22n55;Md5&facdQD9(> zc=iAOi~rRPEDSpw#3%f%=TK~siM9O5vY11{VV}NAQjDFNf}(9^VT0a-pjZyYCofKP zGEVvJl%(;>T_!V=iBDf&QDtdwzUABVcjRyVkmJ)nz42xIRHgzkjV0=ei906vE@0hJ zBgLV}Y0!A}&2%0A@EDKtJ@;SUj#7E5@?p}9U_qh%D@+`@B@|sIO9jk&cgQqipG~oM zw%{4v;7OC2HZVyDB)RRs+`6Sv%(Yd3DfRT9S-bqrzXo^D`91d|^ND-AzE;G07tL7s z(m34BZ-KkJt)fe(Q9;(SC?*AVjwgOf;V%9RdKav-ijo-q%NZyZoj7}Vy=~(i&oA$o zs%u<06hHouNjP(yi!DKN=j0PlFYdOkw|>lSWLi*L`D)&zisMt}vAp}Jsn~MlhOj-~ zlV@&zzZRdGJ8OUGo5nX=mdwgxDOh#!SiZ^Qos-#f*M~+H((BIboyH&_kglky z-XhQv9m(^x+*I-Kr4`4YsPIQJoH{9XhHHbpy!B)Dp#I0dj0$XcbtgLTzi@oFP`&m) z!`>&?&ZIu6dSO^OPeAB|=7KdlW?4>n-@^X;%dh_)3H&?Qw=}9Te3^DZI4V1eZ>R8! zyEB_3)=%+QpL%59cgI_OxAmPA+E3Z>$qH>`iDdY6a^J<2Hf2SXrH8aWIY>{rf0e=N z0N0Xv`)@XEP>^o-^z&+1xqFlMfyO;|?G;a*2#1IeWZwFuSn%_fAVM_ib_;*zYh}y?A;t zI!yk6;g@$GE-JS4Br&=k{rZHj>MhIt9qeBkHmy6EoquiF@AFG6zDh09Qk0(1Ym#(V zCV{=+3U4^ud}*hS_ZdMU_2Jqdzi-BR`b?vuUkl8KePw z>CA%l{onJ2T_wk3% z1~yKXmrt7T2^GEXzwp6!Z?RF7!Lsb8(`9~7k1%Oz%0|tau>0o8&V_dG=jw1grzF+hQ+0}a{L(DL=FPky4JS9IHwKzwX~n z@jj{#-(9VCIsZ!R-Va4M`#8541!pj8d_TS> zHa+-@e4zGTvD1s}=P%0>W-%-g^^#bkdOD2FTF%g9a%S(f)k+f|Ww2X?`z&7XBE4zf zhN7ahGQ-%Du?l&Q3Z8e^`Wk0jUR-h9bcQ~6(ud=Xp-Y6LV~<=gi{H)t_eNCAIfZG9 zC*){$t`i7m^f|$I!K?Im6vLS*VbcyU-uKv0ZOSjA_jlD*)sCS0_KBxzx_(#9`IK?= zMaJxte$35xBchz&FmTT;G+I4lT}zQtt=*rZs&kdU9#l_w0J(o|!jJBrt?M>bfcXTH&g~+l7m> z{w%#Ib$3;|)qK4tzOjLlJ!Y@@ia6KrW6(L^Q|gt}i@&a`6W)+~Tj*%x?!YB;f2iJdeYdwGGJ4mR@coAW z=g+)%@knpEZ*eepoy6_ayBk{OBu-zuEnin#<6NC~O4=C~v%gPHZ{ZYC%-6_Uz4^vc zCATvtUDg-XCv46<@oZ+w=?T^!&HincTf5;``2Cp^rzK3(jcq%(Y1+P}-nUI|eXQ-1 zdHH5x{l?^7FN!$34tKPqtEQjewn~jTA-&jZU6nfPsjb&LH<`Tl@nT-Ybz|fAe>d0a z2v6THdZI&M>(80zrBafE3{}^!C`-JySl8i7!(7jsv0-N6Hr(z^%OWCNOT}lnu2{9w z`g5{$O!bq#sZ17&f18*Z`zGtW-eN5I|Fm7&HPw6br>&pGetXvSt0@(;dn*2MW{X7` zZM@&(VK$$6@AsgxPs%IhoK9P*D@U!6`fM5%(m40T#k7*6cU}1e{r0Un`=mugB2;8X z;PX|t6ZWuPo~dnF_$yPG>a zBgtV}>D}LKN4z}zW-^@9I`vaQ%JjpUn>G=%t{&4=IP${rc+eEp@Idcl_ii(s+GxE> ztl`iLskJ6iH|1CP7~HZ+@v+r#zG0_+Kl1A#kF_^yJD*I{RGiaVHY>_Yzj5}=xhzxG zOyBwPcuBA5l3C{#9+@X{eYNc6)K_Vb&6DjH={@MR|7TaFV||{3OC~_JQh1YL=7D=V zD@+}aOD_M@v@O-{yswie?ImrH6n)!@>9-?Yq&Z zCD&$}onKtabZN=LDYLI0o0#xynqIJWb1YNYnO3LauX=y%P_VqHC*QEe**mq#_t6x|d0mg3dbi2*_LscQ zdeC8Z+UxSAPzJ3FJ15VPNR^y?<^8LaTXx=y?NYs;E-};5t(>15%QE*7dur$IsO3e@ zw#!amtkwS&nh^Z*@5-zqkzE^Y*ZrEod)Io2z~k-bv;I!oXO;YPr+lul`xws@ zZeAlfP2gJ*Ps_CbrS3}?_*oXlrJO1X3hC#3xneo1rQ_=bCyq^y_nEL);+yq* zo>@Mer8P6=-^FbV+(levHu+l;C*E0g(A)PxN5n3!SJU*wU(V?&x%>WJi_1!cXoa4gH}U&VgOX@wj@;PrTgyFMyW3yItzSB0Yru>DbMDr$B^fp!GP}3_ z+pf56lXXKE+22wNXwgYGyXCjvJzYyt{nLqvU0>#WFzTI=@HR_?_vr1Q!#et#r%l$J zaqpRp)dt~|5}~fAKTm1h+q~h9vr55A%}AZl`7+Li32PQd9P@REn9#fMMCL{R&pL88 z##vK?pI-RSr=pV9exZ{whppwN{*jkojBSs*X>ZB;aAKj^c|-ST3#qL^&+Mx=E}8w~ zjqWPzSJ878g)yv}J$Ft`Z z*>=IA@v+*Gg8Q2j>u0O${?$16d!EF@%l&^Z=J4+|`5M;qB91$$;@{+cvt<=3nmQW& zJ##WDMND*KJ*y`0U+>8Bf6B5fT+C{E?0eUA#zoANe>GaYddbA*5~|&Maksc>R}!y# zx0ckYDd(p@P1(IiEMR6x`SSZ>Rtx^rxoEgga#C>H@3&MsU`~zGp=B?QH~3X0HTc<+&F0Hz}b;n-bS&H>0p+*PTyEd_HQOrMf zL%e(6($Mvbend<+Fh2b`)id`j*976p2WkD67d$=CXHq!9sPXpV8|N?a^L!}hzw>6} zsRKTVTb|aHt$KXDA9&WQ~(L_H~KyYjI`Y>l6B<=2mp>bL6d#?#w6KtMp!5{9gI+SNK{Jzr)7@ zo=&w%;CZWhSS#zs#?$Un0;?r^wn>E4ES;(&^5I3qE)yAvqbD+EE!2AOa!DHhr}igG zDu13EZ8A7l?=yYURSlXx;uJa&dQ0h$hgq3&@Ej!U(xpRp|dI0{A*|E)gBJgTRdakxre(Z zFRJegI{V?nl+uZLA6D4U3V3h;3*~Vk2r$aB<9!zS6e-1$?exe*H%83St#)EXVQgbXXeHpsy~!+Fy>Vw zW07Fet}WV^-1VRG9`N1f?R#(6j=9HPI$nLWa7LzlIr|m1m;}~MCcD$^>jFHbCmgsr zv(GHi_1EI$ms;m1&#G9qHtd$$+)dXmx}@o2nQH`4aa%1yjy2ION(E*vRc+a@vNlms;J9*-$f*NUyoVQA^z<8Jn82F zho-UY?3~HcuD|SbzgDCZ-vcIOJBdpS=h)tC4HmM_AR@5 zwxk(G?N2QdTEY&R*e(Utf;8@AYGnWn>XUdV95VqeT zII3M#pKHa^N&5oAcJ{4m&wIc8WY2qno9o|1H|TsfpAk9d|C1LyySojd@^e4+Z(C8c zU0%?8y4#zarl1$>?1kIsM^9VXqGI@R`J{bSIgehZcs_mnZL{SL#Zd8>IL<#FLL5gv@mI8laid3$tn}*$D#OSLWXDP-E5`cqB#xgDx5ehS!S^JPB+=L)yvaT zu|+_Mf!ko~q?vaXm@S?n?8IRiRUvs~T3EE_7wyE|V1Z2{4C^cWC$(|-t#TJW#i`hm za8CHg(SY*ji^8^lb?$xYu~=y`+jy)n`H8=+Mc-jdl_`^NPHg_Uq4M9&&&yJ~=5*ApopR~lfqi9vqkca& zOYd9a{cz!-^8ep{+)jNc7Fcn8BRee`A@iyHsx~*f7$Uopk_scMc{|% zY|Gx3BBN%_H8x?9^@+9*80Te7v`CEEQ?T(@>#Ji|d3U|wRGcz-vG>Z5s$VOYYx{>B zdvhgAzG&5#PxV!m>E-Fa-{#(015%>w{&w}&t;?^O@Tt}v*|cKr>bbRF-fZ2z?(M$q zr+2Eh1o-u_Jj?w2h+EwEvd{NqZgp<`+TTlGWtBcY3$a63=G~9eTZ^-=s;?G~d1t$$ zzToM+DM9Z}*Os3*6*VzaUEkj4K$m9Gu6Kfg-* z95&h5pJU;i2NzgAt&fjbAEG6=KJ$L&_4{kz|0z;edVIGu_Il}TdDGYS>!sTQ{|0US zma?|M=*I7)S*{HKBevRAiJ9pRZuC1+p{#W+g`=EeNNqGnSj%?iRTNr4nh2al~L`1NeBUT@}hU;9^RHlxRhT8D4{CI8sY5}F|Y zH&H0#Sd}(QfSi=i|F@eYAGdQT$p3O?II->#f9H=~2j?(59g$d)D3KKTWcue;C&m0H zd!wB=CYpZ|ydPS#qT@*4;TN(~?@YeCSC8R(>F&Gh9$Un2*Irr@8@_l_=A7(@XG6wAN0vQC{@9=fXJ?PL_P%70Ldl?Cv`4SZ22$kC!i2XG?H;!l?X2nCAdz zy@$7hq*DEd58V>8N;k0VaA40+%DTopyHIDsK{9fPv z-FcUT@v#YQ_utfp-HuUi0Z7|w=1_k`POBq!{PlsAelki@pb8*uOT80 zObJY7Z!Wi8I%XE&EpsCFemUm?ra-@6&Mmx|$A2iQCa_wipFAb5HGN;5X4?BXKTlrJ z(w*-0H0WvPsb|m9{yzWuBDsq}ha>oVRL4FMQ^nl*a^{T8MQ;wX9^q0*me=ueoW-(W zVd<%bb0!1?-#FSWzV`UqwcEGNk~jU^-z#v)CO2%}iaD0GZXAj&6N0=n^Y8E4`+N1> z1KSnYUkASav-x@OdL7OMi+Pe@8Rk|6*PES%`*d1z zSfeKR%K2)jpDeWM6L|E%^8CR~I-jRR)-T^zTATf2Mv{!VUhUtYryslO%eC zmNJFx12^twJA^d8_3#u>jC$l?wn8-_C0r^e=5EEuOWj}RUt>4Z-l%hJUgYnSQ|E{5 zD^QTTw)k51|EF8MmI|%9VtHj>(C>p!aEw;?Fq9Em(J+CGdcSD_I+h9 zv%k*2Cfs+EVUkSQnULuT{h~{fPZ&4n2Q%H@BGY5^SInU7wd^ziG-vUOr% zGKm`v{3QJCzn0uMwtvpI>oWyf7j)ijEU9Hma9Gn8FUxqPX~iVd>-B%C9ycHR_4)PEqLZ`jAGdtGRA005qvPYW$Ipt-+lwFf3DgkN`+Ie1_Vx8w z!?Kk-zuVr}znR@^%iQnfdU1PZJkgq|_RR4eLYiacoSU!x?X9Bmetf#-0g=Pp*jWlYRGr|0BEp6z4eo-`x{s ze(l<5xxRLzSfJFo(!1+!m%iT_7ZMt=F8k-hBB#kKKUY70)^48a?>5K2>v(sia=wJy zjmT3~XN>x!|2dVV?YPDk*X?*Ge4jpB;`UwtqjntNJ+bP&9gocg9>0xlC)T>^E}XNZ z`R~NH?{>0l|I2?9ZdbRoY@OMMncRwD^CMzwlT81yPdl}A`u@M4B67}L`?~hw<^JmP zx%V>FBBhwV9(b$2yXev+*&i>qDZH&<3};PH^$6^0nEU30Xh!!9&X1d(b#)*}@c4E$&JewR+3EGc&MPD{?Q9b#!6?KU5x z7z!AqH$AHE=G@_6JWbT^UP6jNZ>;8}E$;JDu9t4Vcc<#(Y<;u3s~0%7d{5VZw{Q3F zt@$;%zkhv;_%i*kwDrkN(mU2wozsWJVbx8cpk z*DKC2H?ZBY*!3be`LN6ew>|4OE6$$$>`skE#r+MXwXZ*Y*JpPxVBy;_y+nGi{`cg) z>)Ok9@2xET{PlV~|Bp*DXM&g27rC7HWAZ4rd&34R#>5t`&t@s*Fg5^8^ktzN1d-nj9PP=U~jK<}^D zmrgf-EVx3o>aOF1=}7acwJ*FmY`T&nu9@F)IHnAfhc-fdm{ujI|1{g1aW zEb#dFp;>bi|m+C;3Irl zTQQXL`_1h_8J+8xQmvmiE*JjJ->s$V``H^^R05NwE{O5>{0la)A#N} zSim27d1);8|LWf7_kKK=mXf#LcsgKb%)F_d zvF92!547EBTqB<{`Q*k+5mQqdLq0z%<-c>fn_WD@@6UdZbGN>SahYR?V9MVw6wO?dWHE0$>hzNp|70$7QXU%p(`@wRe;8s1>t+xo(5U^ z{aeqYx5|vyQnTgD!a_c+6!!2hMmxR*`UNcy(3v8y=f3~gzuwxXz1oFdIXlbmYUjsf z-plfP^V!Pz`?b1`#X_%KrB@4>c7%3>c6bHURr^RWHZmNVb4AIg?a6KKqgAuqrv21r zNC{_)vgU5Byss+G)!JNEu=vOCO>dS5CR(jIRok+q{j2ELSxGn9W3Mww<*sd57&m1y z&x+cmW`%|Md+t|&ipP5KIPX2}Zi_#z-T(92kyD?YI&Ot$8UNYqcj0hkSj{Kh4yXU~ zja(!Ton9@@DRNXY|Ffy%qFst#&ph58cWBq%Qz6C6nGc^mx@pIkLrW{eL=GFwtNyq1 zfZmmJ>V5%xXFe!y2zVJF5awl6r}%0kTX)=F(f>ENCa#s{l(@OH{cGgunj1ZQM?T3d ze81<{+*8R@UuA8L(c(X}cg}9V*N?BA+im@=y=;zf&(DsTOE#qx?P_TGGSxyP^ue+*_C84_*<84mm7=X`%}y!`x{b?eyf ztq3}GZSFLC2b&F6UW|*l?(`Mvo@+6gQ+9Z%?FNCZ`zLjU*QctkC|x{zN4>_=mY(;* z+5T5&-JgHwsK>jLcfXgF-@m=KX5*u+F;i?SpSp*?;eY$1&?x))wY2J5nFG98?RgG7 zUUHSYEniNa{6eUj(>R=o`)B1z4I_=dNT#_Hj!n7Oc=Eq?(!Xh9L3*F><(Qp4&!%&B z>Exx|=i`rjo=_e1&$DW(2vh9$6ALShR(`L0duP_y4$+GF`nvj^a|BL1{h8TO_G(A0 zdBOXuoR$x&+#}v*3tlTc!1HoRCi`8jTm}9JNBK*_rHorZpK@aCFkN#oVT`Q-S%UvV)sLPm&f55 zCbeCMuicK;pI>FEblpXVo3YVmQ{OLNDdtOu3ueFCcx7qQ4q?CdQ7u>R8a8@)G#^c? z$l3KlbHesW#@Fi`_Dv3v-@JT&?JbLWxjWofhD23o>E3elKq?YCQwNNe)$lTE4T z=ss4+zw7d8k@^#7c`ki=d;i8a_HT+6L9@<2J6CO;*nWDpV_a8@>7A4Sjp?Ey;WuV& z;m>HgKT^d}?0h zsm`p;I={;Uwf&!Vo;u1cZoEGaGYFFmsHaN(Trf1kB?zkjzZ`jB=B|D-a;n%~U7r|z#zO*-Nw zykdEw?kmSMJ;p0)twp{)KRCE$*98W?unxSXn74m#Ze&;s=k9MIXYUptUUT@?^GTo2 z&x?A~wx2NcbCk$Fzh-XzzZ#dlI+{VO{TlbR;s4)- zzCU{Z*SGDr$10H_u^%Pi}IS9ExAEcHG?F z6ke&=^0Q;*$C*NxejiwOyEN9^^Yna+>q!NQOY+XGycg>6aj}NF`>accmwx4beJy=) z(B<6Q`#v2Lt=~0m(wr%Bda+dxgRZD;Y(K^h8th1nci~Xn{FKqp@k-|R_`Ao}OMm}& ze(z-dxiNJGl8RH`+kLN#4 zz4aksezrAU{{rhi?YBGlzgu11a!pwH_3PL7|5>WvT`!%LwPJtp|90*F1+TYnui7i8 z&#uT)a#Y{socg)%aew2UexCY#UhTS)RU$v6PH)mVUG#pJ_51fG_1AN1FBQqCAK<9F zqcQ!|wA8gVbw^J~cl6x3zh{@_MjsW$mWF+kTMt|0t(hCW+Agv;j7f9p?b4-FUL-2m zzqQVNlAt54WPfn>t9zxd?blzwztZ1QVTOQ{hI;VPnj?EE9wxcX^?1Yorq|qDDd_-* zVoOociWRk6w|%=3+Tm1i+AS#&#C_XHkXT2v8BlAoqX__%g=tMpNqcsgzbHh*Kg+E zx4veV>=Xu#lm3_i9Vc}&SylXgmvnyKn|<3)JA*YYGT=%6d#LJZ=cx$aq@C*JW#wk; z^Sn;(yWAphinFuaXQSNKYx5$t=j$l5@6?Zed+poT+}~oc??AGF;!{7p+@#1;em=MM z&ZC8cZuEJe9MoxXOj98xtmfCt<$?UqHzxlR@BjNz?_rTQ)dh=p7df4{7&ImMc%SUq!(KOnb`)IO@0`DG$s7SEG5^37s>K|& z>Mc4Ss-E26+-~{dc-+hQ>q)=z)%TtG-+MUe!T;(SS4j(oM>=PP)79QgO(zFZcJpf5uz9Uqp4;v?Ft7I#~K#-&yOjW{OFf zU{M91c4A)Ji|I$d+}GM!d06a13-{{pWudy9(kVx@pC8$|H)5IDJUS#BjdPG>f249&%1hR-+z$bYOi(qV6Y#@!mny2tL2X0ED$kC`!IR=8g0$Gqaq@$ z$Ml>kY-agpu3^18HFH+~ffIU89EqZHTBO#0d|35<(Hwz8Ti*oFQ{0lSwoL9!S>v;p zpv3aDMPSp0+XZ_Ud!DKNwa9`e#8`|u-f}Y2lsfzRIq!QvuX`yIEqT-Rgd%5xuMoG$ zkHA~{(FY2z~JfX K=d#Wzp$P!C5H8^W literal 5894 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 Z|Kz7HQCc|Bo&6n1g{P~Z%Q~loCIGc`Vlw~$ diff --git a/assets/card-wave-3band.png b/assets/card-wave-3band.png index 02778a7caca80bd5b6b53a652474ed0b7f926a68..78b46a701461be1778f876bea29ef3977b64892f 100644 GIT binary patch literal 6849 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 literal 6538 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 Jvd$@?2>=F=zDNK7 literal 6134 zcmeAS@N?(olHy`uVBq!ia0y~yU`k_PU})iBVqjp{8e34yz#zWY)5S5QV$R#S=d+d5 zXC0q!p0SY0a>_z>ofoVpEf~!wH_txj==d>Q&i!6P=8K_wD+>Y!BGCXr(?}VG*4wXG>G!ZP}UY#JN<8h#gvqYBXeNgB&oz<(B zRC#|5+Z+0;Zbo3r*VWtaRlUCYd(Zj)@0FeR{?B4yU|=xl6<;si4ugySmmJCs93_DwPr`+XYc*dPElYxQ3K}Eojn}LDBWs%5Q2?hsF zt@occ*srzUpcBP%K!!11jiFM>N6#saX#&%SRHg~We=Z4r5^5-En8xYwPh#rC3DX&t zux;^SDB^jd$}qF_zr_1{YUW!TrweHOH9ube`u+dyFY{HO&)K+QA@3Xy4KAlOMH3HY zSpJH+mm%o-?t(9~LSpC`a|NV>K_Ri{m z&7+!^|E52Cm3{sAshUr_`AvL{@71lZsr>jN^8BAK!ne2Gzq#u*=b^g$KcCEvzxTH0 z_t}H-axbQfo7exl_xHU0wq4hfmSzddM(!OWV^cjPwjlKk}Gf5+%*!@dpYmb%c&Pla^J4?jlI7A=Kc7}($cqU%iq<1J9)^v z>ijDidH!|luJy&)OUZoAGQVck|E)K=E%$cV^^HfS>93!VdsvH`fkC02^RripH2#U>MPk2 zzJI&o*RGrLwYB~K?}DdWZ@qe*{VS>T|LWgM& zu_LB*)!r=|igH6QZ+U$1qdpVvyvG}-+Zyz6gknvFGL%M;*rv36Z-=D0BUS<_^ z?Az71HLqLN-QVG*n?E|mN=l;J9uiy9S?7@Ax*7r5SSA8k3zVP0AuRj9=gTl!- z_Rrt@y?BxTm-YDUNV}?6FY4!6ys5cuc>BBDpX;{nw|<_gh`%0tHfVp$GU4yhs#QPK zKR>?9-;wck`D&MvFK^p3yzxm)OF^W(<{4{V$Jzxr8p zZ^qNBQ)f%hHa9o3Reu^WGj4majl`O}QPF$DqIYk7`C{H(zPT3;Z2SFpU+(Q&OIttx zy8B-*EKEi*>)=FA1`nZqG4j8cWX4&Tuf6f%>&M&EyArqEUUozDXVvVkC8@XGZJQ7r zdx7`=#=9qOtX_Y0-LAFhcCG{Klq1V@R~harkxS3S#HbD{NwNX<3(rY zu^rj9+gB#{(;NTVmJLStW>3xD`f&cO4`(A!emlLp;ZyE5W~WrazqDEO_WtMZQ)4xAyv5ht1Pf+gru; zt;25Gt=Y8TMTn2#(&Y)WTIMgityptYV0X!uPhShTA0}RC{*adIcQ5-;2N&BuJ)4j} zxzC!+F6Foj#+wzXSm?W)u@bbpo>g{o;}N&|Qklu>ehU1owMI4ezh2d@i`SB`wck)L z)4zqab$L?J=?T)@e8&teS-)1^&dHPLJ@BqbZPQcj9Q_9c3vWJr%~mSgul#yj$`yX2 z#{8={-~D9HefQzmw;wCAXXjQ~#W4HYcO5pky=n&b#AM2Cp{Ofi3-^)!^jv=U+IL^^iS5T~ zmrhmp-B%js*7w_Z|Bw2Lx0~e`FX2#-dw6`_Lj&o1TbH=Y%lrd5xxrAusPUD?3W>AK zXH^#I@vG*0&+XaZrIqgRYx`~$(TX`&njb_5uC;i(kZX78jDP&oR!{rO&M?83`1g}$Yh~D$^X*OQE1#cp&bzG7eZ1?Vz(et)zoZ2B6_@7ehR_dg9EO*_oJ<)y%YWvD}sk{#hcfJbwcYUNTj_*xQwK)h~E+1xu|*(CsAU zoSeB`P?cTc_tV1Ec6E!Xzt66nd0_hkmwpw~pH*gwC-3C2>+$~Fb%eeB zgFGmM3kl3*P;pSbacb3~RBw|o)nB$M72Ab28c_g$T`_9QDy zP_Ie;F}vr_d;}f57~|87_NQ1F9enf7$N$K+EY&^6V#v7 zoabJ|`NBA6u?9yCq!L|_%4E>5Qh(~Ik?8v3A4RGLf{puA&T#v#xf33tm^ydUZNr&s zuW{=J&rma)+@QcSS-R_I&ZJX^7cKG*D+uoGsWjVgZiC(PjYrKi8&92mprqX|>G*>m zRIP7U3O;FYG;)Rj|DrUXv~6cDsf!-Ha>T~S=iaf)T?~^-Qrxq?vd0*9|GK>YY)jAc zm1ffWd=`kUx@q>D{pzGjvHly|Zn_xETk(|ZtmcPQP(8?c$tY3JyDRM??@mLWhQ#OL z)!#lG@Y&F?UfN=cuc_}`@zWItuD`B{U8}OU@{&<{`K{KowNn>x-1s?@Pi@J3v8iJJ zgvCDpESXlX_P=Te(~+ZLRHV zVLj8DOfOYW*#I9dL-prDn)lxDY*zg+N8+2v*VMjcIlLxw#3cMTESlV)6x_5FwQR%oltbm3FavYxw>E%SGfS~_QV+^VO}TPB>ZIaU5?<;f>krgJhd zFr;)Zih35(9O3#&ao5fp3KIG%T1f%@8E^cL-u)W-m8ZC3vHU`{nPQ8YEkIN zh(~KY_CKw8Uf|U6Pse@p(ruqK(!h~A!Q!Xz%+krn&*d!Gx3*O7#H#}jyKee~9ran z`#N`CHe%jtl5f9T{;&(C`NZJIuRJ#5q5Uzs_k*q@lN z^K+^iNBp`o7Bef)?WvgA6I8Z|Yo{^uVZp$vyV_R98^5dO4)tX9J$rb~)K4Az`iq%v zG|lXsw=kqaaK>B_9xc_QTYU~cxqneSxO=DFer=b~DzC5u>lZndJU#cKU9J58pQd?i zlJYg2!9T7o47RL&v44xYVO`nAqN-cUMxE~hzVq3dzVvO5Tc&@)=%sadM3~myk7Z## zd4c(_=FStf;}Kowzu0SQS7pV~otlZ6zhu9@$ebFd_N(Z|rwyWQ#rvK4&ZbR$cOk#t z?cn*0H;1iCb)QF;=!YCS`>j1i(y?5MBi??=^wlCe^VRu|zTjU`TNvO{DI=u&wr1y{ zC!F(Al@laXTdtg1sx*c9#MVl-e?1LRE2P2Eso~mr<(Nstlof%eZ%F(+*Lv0Jw((x` zukmwV&pcxhTl{}@{(4d6?p=?$>~6<$aff`=l8T+iudSXn=U@4H(?8dDMHo}St8 zv3o1evvU_G8pIneKc|!Peb2TRroW>~t2jT4x~oLoTdn=JN&4CE<-vj$aXL3Xh=pxd z7hil`*exM>&c0iHH|>|l^S_J}yBDZ<)*^n5$Dyj!W!Amd-zo@PvyGK^PuVe#?Px=% z4)5c}jz~}~^*?IaqYdj!7iSf$$~YDjarlb0=N32L`)o7nGp_lq z>Vgj^-@dIl)_HT?yhE3w=P7YC?JhiWz4&4A&Z*HCxy4H}R!SRY`^{c#TOQbRGU1Ba z&Mmd?v{P>%w6%LQTP1aAh|A)4DNIF}UVm>R~F@u$Xf#F$nN|#oI=fxS3rgH*yjkg5>wfSvz;z{h4tr z=#-wb>2=}Fvpb^Qw9ibPEt>erh)w*Ph3C?a#TzGl5)~13IRmPpCeEev zk#9yF$0Sm9xExKnAjw;W+hti)MU<<^>(?QlW3`JK?gz>7G&t27HKvH3t!T98yyM-G zH|taL8SfR#ujHLP*zZ1b+UB=QPu{+h+^)KOTezwJzBAJfwiWyC>9J(p{OH){Qr9`_ zU6+@h_PsQFN<#4d^RAyoJEpN0Gkp^JVeGUy_Nk19r0{3@9itfmOcC{b3#J`Rk|>HzuBa;h9&u}K$hsHvBwxjqhjj6OpW{;| z;2~5RtmTh!qr{cvwps_RPnSZMi&>yUi+0CvQP7TVw{sw zOojJrMA{V1Kfdjhk<$OrOYRd54>VON`?_vsiC1GN_IPBh@LJ1ov%0nZ?oaDg*GsoP z`^EE_N8{qYw8@s4V$VYwBzkgxeev1-(MaUi^n1c>$aS@gle&Pf7PTg`R48jFNn9Uw>9|x<7BIp|BDyD>$V1Mm6P|_ z?Kq)2;=0kMyu&h=45G@XX&Z-anv%In=bGuyO$Tmt&PaDRSuXT?+m7|>H_KMp8vk^3 zG0)4F=$Y-O&dPP`@~vId{?`dNKGjIPcWUdcXVJ62%iG-ezj@{BU(fX4N#yVUesTZ* zTY~K_`oBc3h@V_0T=ipWaGldu_ptX_YnQ#;Wh-%HKdABPFxOXYt8})z{TJJx<`O*b z{=bZSf1BC&^0_1LRyMu*Q~T)eLRZ1#*EY|qb-Lz7RSjA)UsZabV)aeb0ptxEi|b+5U1 z*-6Oo+i#RBm-};bOYZH-6VIRD_v%WhQty`M>!wxyJ$82Y|8LUo>!;3V`>B)r`^Ltz zhvsr}b&IA5pH?~Tc;gxGwzr@EpR`@A9ag1$pU1*S#~?UaXjVje`9DMTj$1wVmQ3;8 zEv|pp<9AoJ+H0<<`Kd2Y&w228OMBW4#lDr->L!YKRKW>%T{4JrtM&dUG7+Qdc)as z)m4@X(q2JE6e&VOgiEugGj>kDtlC zE3W!5r~T#9+NW2qK0bKhRaA3bzgJ1=(T!`eW-W_fC->jr#rNNF4gpi%PTQ6%FZ=cM z|A?bE=PphL(!Ozk)6_e~`&vbn=w)p>Jj_HPt!(6)RX&LIdo| zZKNe#*JNwGNaBC&)NzjGVdaMx4Ia^ZH@%e zwW=AGzvhH^%wT6=U^rtb0PYAE-K+-C=tAgviCNUN)1(TD%W^A(d_XFGugY8gCT{an^LB{Ts5M4qt2 diff --git a/assets/mods-full.png b/assets/mods-full.png index 1dd17209678be44c35631dec908d9a0d230a45b4..48467aef919fbef8604057d5df07911ab70a7625 100644 GIT binary patch literal 39769 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A#K6FCDRtf=28P)Ro-U3d6}R60t?iM% zKKD6yy|w?(gAZNLHz!?SJmJW$&^(WQ(E`~H+4G0iZj|3){V{1-E%P0Z!Um1mjBcCK z1grNR*gMJi#MWneWxDqrlPdK$?EIu4?0InR8d-&HCgL;HPbu{6YWCD&H4Y1&A?U(* zTcC4xo2LTr#t%M+Z6d_==G*f{+I)?x$({7~?}Ce26OSfcT^anm=Joe71}6^176Gad z6PVB3IWs@;-3c$Q45oYcFRgliZAt3U{7moDt0KSdD!=aZMC`Msv9gQTUWM;cTdQ2} z2ff|AG5zZ5)W6NGOOu2fwye5+>opr!d)Taol5OHj(@!oJTeMGUvi6eaXB!T)1vxlJ zmHyTCIMVv=&%15)&%2g1d@AD%VtW@bBTa3xzkbTxaH+7h`+_f4PnR!NoP74lY=^y3 zld6p#1;qY6?vSQ9{anh?nq7BQQ#NmmUim&GQQc~{NWi}G*>@9iIw~ig6#e@8MNHMs z@YUg~8>O$m63yOz?=^3pUdpEK%H{b7^2~Hr?+fO8oscsBcUz`dpG8sqi<*~Pyi*GWztZ{$$+Ghp~X=;mFv{ z;gG)6uz}Hd?tK5#t!_UZt4~j1OkB1(ElNB>^0G+UEfa;eC8f(B`P_b1|B~;HhJnT(@AWb(#&$xq`!KZ#@y}txh2A5w%MyThLjr% z4>{~AwlN5>*rfF=*nmO$P{WqQbIV&S=ER|TxUn=rBGjUlf zW8yO1(?w@%+D_;#S<1UH{BWMW`Hsdz6GMybRJZP9oam*$tar8RhCOL_b^=QzFD>RcZE7nMD^LWZK^$KWs3Y0jn3w%O%86JVsQ4* zrA;Obowv@_W?!Fl$>^+)*<|swD4iwT?qR3DnQJ{*!Nu#=icsyay^Hpl&(@srS#!qAGf4~g1+!gXVNq!C`f4|!>2AwJ zrd#ai)x+(#&dqaP`rJ2hS!?gDJl}Vw2}=^pm)_0W@+XNg>&&K!XJxag8>qFLWxcK7EvYkhp41!-}yuRA? zs`QzY+1!&{6SZ_iPk+w~uSr+WHQBP6TgKs}N4o-}N3?w2>{p_k@6TMnx5<|IP<8X_ z!jn7C&fT|a%J!L)%$8hT5vqM{o+`_kpFU+T4I2JjN>mWNC3@0sm3B!>H?Q&JuN*qX zikHL8>s9mF2bm$aX9Ohd{IYw> zrR1*Z4rY_Z%^uv~pEBorZsyh3t?Jj7=w40>^WFG!>7rfoSy$Iq9gj|bdu{FAs)rtd zGa@hhq#CvU^4pnrb<@s0TN2OB{@QoIYxd1;fv3dM)K<$dz6uQOG+Wwrq$Y}Ydf!*? zYp*YD;__c}(CwDVYwKL)nY#>a+I-ysKS!ym^W>4~XXX@n4;Ff%z zq`7x?+?m5|ce1CvpPJy!P{d!fKI-0Tak=>B-Zx2VC1J)v3@y5gR5zGRc-6C3^K!`b zT~+IseBbqDkLL5>Lq5OH>+PQ~&1_B8(XKDylP3Bv(qne;D&t`*vYQ&Iv%`r)p+zxq z`}3VD<`roh6`lnjayz@qvexiPK`aIovO_1&aiWtS!uj?ZoW|l8_R_APjq#))SmiO_OY(cz0SWi!82+@)f3^( z_nY4)sA^hm4iBGtJJ)z+Ie*Zq?X%iul^ZA7sWu+VTl<42?01R#a%IGuZmpEBAR_?)FDAWxtOp)Fv#S zvf7p9h{w~bOCst5npzAdyp1{XZOyck+|dUd)<(7I+SV=$+pGUws>r{qQZVhH5SvPp zn$1GqEZ^O=3tKPeGB8Zd+8MU?$|}+SH@D7@uUz>3cGJ^M4mW%g8MbX$!A?^bfYoNsm0$IZ9#UxW8f_3W!%ugrEHwb4Jmq%+^a!{ObvD>}(~DPJ0FM3s`> zn$ER6eS5vonTFoGvu^F%5c0*RK#yCjWeekCNiCMjgBb^%I_kuiy^IJ*_m-u_=QBm4FDyHVFCrXN^!y(!K2=8esl(zx8bI24!WL~Jcl%kC<>Bs!+Fal-I-}w=Bqq~($uH(minx{)OIKLgaUKu-netmJ~1^IR9dR} z*LY_xR!j{uds?G4ThqeQXXeqSTPqSnKYeajZMm?eZ;K*tiWqn9;}zd--&$*7>nJgy zy7yL`@_g$zM$>osCNVLjtYAHzQN4weHLQX4w8`aG<>R-KgUzEhM80&{VI959ccRs% zCcjC1JRLu`gaoaLW1S$jjHQKFv$BXs(Xqob&CLn2z+si@0_E!L^xLYEjas4Ofw7*ST8+Y;<-|Wwt&o%v6C!3UM$;6YqF0;eS0)Kfrh%bz8nxZvLr!T*kZT6lXF^!ijCkfRPBm>75B zmA~qxZ*DDV)A`cHKmWY*Fh_6xdD(M%&r138C$MV2lG^HSvfDa%n*5Yg<@r}vi9U^; z#KzKMu=%I*X-iS57qUC9-rT7CCV$q9l2~_T)!mDBYOR&Z>F~K`GIhEC&5d`&bf!wL zSmt|J^o#<7WL|ZFt5?HM-pLtvLv~hwt%{9YbGCJlS4jBx{Jn93a~*f^_&I&$$~1kF zw|Lw2fcl7P-b~Xi^VpW_U)}Egwr1{9C7vZby8G^lYR=%A>-LgoA**&l%EV34*BKl{ z4bJ-fd$EbZXs468&Xu+)XK$6QOl}c>=47>Z!t@D0mp<*j*b)wzexDyHM8KXU%SA_`fye+^TIV00Bf0mM}HJ_%e=uw_2i3d!Km(BFm zPfJv;&)E58we$;@8J@F6z1TJ;?3|OaY-Zp>eg-c0uq_voJr2a2*pmChti|Ef+WA?x zMW;Sji1ha-ImQ1>~| z73Lhd!Dwd9hwEpTCpzEq-Fbale6OuHgVT~r-IWff?tT+)OTBva%Dj_LuV%cis4Q~t zI;wuX+kaj8TY0lJcdJTwUs-Y8Wp~~*&IKnWOA@%J70jM^=4g(!R;At2S9u)9y3cMa z23LwoFq(YJy40o_!w+IQbZ!|{b26Q6X}k-aDI;eYOjSCf3{6a z^<2x+k$QFGb(RTnC#ojxWO!2K%E7Tvde|m zUaJ?f-RYSY^5~OziO0_W-oG{`IC8x$w9ieO`gU*8_pqP$)}Fc>J+(S|>hA4RwzYZ8 zT*i6e*2)zwS8CS1cyIPrD(coe=2r=lg|FPb<3pbXB_4=5^J~6-sNRzAFN0H8U$o!x z-Y{a`M%PHOyXUJ-r~sx-;2{ zqgZjVjQ@tMPquE8T(jVKnDze1gFBZ?=oD}KyCeQ}icrbZ&Opr>nW8F*k*cRREeRD) zyEeyPv~SIoRidU+tDbs=@UGQho;p#;Y>DF8);$JGpRbCnp0-8j={}#EeHZe%mRw2` zYqwgumS;wqT7AaOyIXBaovk{%LLw%IvaimKED5};xAg29f!y}3_T2_euly|cPMG+4 zS{7 z=@Hs@$m!jN<#j8k1V!-{E9y?vl8Ia!dRnXC@*MNc-tCFbw+?N}0;McRMuE>S|4iKK z$K+=%?0#cI%H}BDm(gyPn|s&&TA7o-a%s^f@Al0*5C7_7zZU0gtGYwpF#DxX*o_T2 z;iaWJZ%^p1{JKHuyVSbd3Dv6$G9quC(0dxXDPsGpmflm%(Jw@vghsa9JX&KuXN9Z~ zcV+|A>g5t^-Z;fgt^PVCByV-x)T~`I)`p$lkowcnvYaE*So=)LKaZ#vQ<+s8mYDz9SAEEh5DJazl~UgHe)z=^3+ zYD(P(R*hHOQmeJ=Ga_$ZpWFTJ&V!3(zdkhw)vZ)`c3Ek%u3pMgwKpNED$@$*f00=8 zO(A&V&OK5rS0>55laBP*&Z@n8#&;gsSN!QWrtiC&zh>^L)U?)_-&iuHZTEKF$TU$X zZB;=^WLXbW*1POCAxvUVRM}$_-kK(qce|GUZ&>rjY|Y)Q@I&uSFGR8n)N%jWGjo${ zF5Buj{b=c#F?PAnS}(3F+I@Y^n`^JFMg4DjGE58gmUNQJcoTImV8h+E9C7`X)mkT} zKUw=HDQ-sOOf2}Zm2oohS0W?{td%EPxzcQa4RJhhkY z8`CD<3z2E+dndH=7T?>l#wsUrZ}=v$tgP19blpR@{MPOZ7UQ0|W+v}!sinHNWBJyd zUVcXOQl154eP3$ayU3@zrDq;>vYLGL%C?+{b*E&1g|FC@<@5h$xS)Qh!#v|{7T1ri ze~|svtLokqvt9j(msUka{Rw;FkUsVOy>mLxE^$|$DL+*#;dD)VYSo!tk5lA-w}m+O zPPWlYP2N6DXpv&-_fmDkGC z-{qx=ao_ZD+xGT#LvPfH4^Ag`JbLlmJ?7wffn_I^8YlNjx`ML4i6;T6sA=R)^iw zbM`V*1r2L?*fVKwo^kpa-}e8>3}wI1M}4iUU4H7C3P|5e#{|yHXY@r|Jv3ugc|4?< zCa~RFrgL+JjmBx)?p!a>uo%}G3!W!MM|0FxZ<(_7`iiUBMdzEQ2ppPYetG5^gWGb4 z-S!5pohEx)3}h7ttJt4|Z+z4{lATOiT%u@ z>UQ@w>o7QVv>v_x^UI_6694b!-z+-6Etg?tjN89E(s@bN)!#+uPs!V|NjIc` zJ=Mab?UUkpdQ(DV*xq^eA!qbu+kzJ#Y%>V@c_%T`RO@@*_S%k9t1~({t-KQ-b#6W( zrnt#KC5O?&foBbq?QW@r_A+4)#&ho%%J|1u|EQQ?%X3E|H}hT1hU2z8mwLV>T)#NY zz~y`S`t-HCQnwd>yHVK_^8I^*`?{;!UzhXm-QKWYkmqK)QPGFGUwf5v4rCni%iM2x z!&jSVQf zr{~5cH;R5GZD8PF4l=WH@(wFI#WdF{g28IP_SH?o3sqBtGuL}2+OG(IFgBgcB7|+Jt+EDzVEvJ6v!=M zZ)4V<%iqg7>5BvNt@P05jy!WSq5BKpzJGfr?$zzD){ENH_p9-2DHWCJeOhwyN$;C% zljl*lf1Op@^7>vj^RN9*uMcG1DgNqt@$?S%>#Fa{ivDI)=SJr)FbN@NHRr`1dZ3?^gqlzuXtp_TPZbJaNbS^$p(& ztNJd;*=^mos$Z^=-Dc9^V?8W8x5u{33NcFbTKspH@OeIICyv@(Q;(@^ee`&_qR-od z8$Y}MR@`KK_-OQ(CE2F}@1Cv{c=^s(Tx=rqc4K{~YL{#B4|>uTHS)hGt19*QrJQ!= zpho7>EmMviKaebY^=rhYg?Bc_-u&gfGb>1P{rNdNFT9IUyPa7ed3DmZd-MFHl^mtZ zo@_GST0WbPv+qvvjd$$(^6EP_9N~D&7{2|#WA@>U%+_;9`nN6HV(RR@TXxa%`F{3= z%jUfMe#(W}#EO5%1=HT$tdH2kF76at^!r6p_BEGiwFy$2cFRBahxy&NugP&X^&WrMc(=0aL;R6@JfCMR z+O*Yu)3=R3-YWumz#+w$J7~VDA zymRRu-tgz|rEIpGm#W(Dn^xQuZDmnke!q9G$syCnQXlT>?~-)e@phu%Zr@7Xh_}|) zb=h~nU2`OFmG(KA>}eCv%v-))YsvMR7q4`GW$x0o?TpfSV|MXr_wg^U-*2q)pRjJ8 zK!M7l_CCS-oJ*z()$hH^%S%O8{cjMgIN-GV_aF7AhACa!It$ZSr|}xje;3DldegUA z8!m1OyeYu8=B}H0;)RCHB})uFr#YnV`&6}W;+u)5Kd*by*K^N9`TpdMf~!vj$L{w2 zzWu%8d5;8Jqn6tX`x-6?TL)>|EW5pK%l&i5<-4~oI(YruK1tO_f~O4aCFZHC%-?GN zAuu9b;#_e4ZIO#T+0OntP5-VICQn;pB_50)Kp(rcz)vh0b7shtf!?fF}^(*9{jUx3G3+z>)JD?f19*U{H@3P z*=sH1b{}GjJ(_>SF1U1FP0sOSYtC!Dh}u>X9{$I!HEmsUnMYmYy8GKMeO+1c^8IGZ zm+!(orvE(HR{eaUp--ITTKTmlwv}bhnn}%SvfN@Z-<%GAzOj-$WXZ1j<8`g~<}2RK z<(qyq_Iuvzcc1cnII1!X&o|F`Zh3I&=R3!l`}qa$d9d9!U-FyT^}_d!j?xF6dM+36 zi`RW$m&b3+RNczKwezCCSIN;|ChBKumGZNX2Vy`vG(5unbhM&-ve*w zHf(fN+T1AD@U>8#;dS!Os}Z@Gq8Z00t-E-q(qyCUv>7`No|rJJ{bKRw(+s@gIeaC@ z6}R?UU3e2AI8U?uiKF>7m8vsEvyJyAE}T_(rDO8@d5S*rHN730OI~hDwhUf*F;l?W z%1Pr$-Lv{f{YED5mqevgDc+5LKb{<6`{b#vsN?sJwE z?e5cby~#26N6YnWf**oU%0%v5OOoUTo8T=5RftZ1di;C*|GknlkoTMsKStVLEW-TDmP&_C;E|JvvE zGju)c=?V8XzuS`X@%n7Ra_^UywL6V$|C*`)C}uEK4trwPy;Z0oXxoKajkkQkzvO2< zv^nW$)jUtzl{xPGn$7j+on4!h%eS}bTbx(sj+t3o@Ki!d&Us?S-{PhHH#6RC-;~Ea z)A&lpr|p-QtgVlEU-zMWefC0yxf?Hvt^NIa-Cy~A_magH);-Uf_`~nV{^HXX>u)T& zZCCYT#=^Tv^DG7T<@iP$>%Ml=IsEpleAvEMExR}v6CKVhKik@4*AyMb+K_rRR`El( zWwG7WzO$2ruWB^@+*mNPGD*4euH1oZS54<9p838Z&!zpst40?`F&!6nNssNz)jYza zHYRG@$-dm0pjsgKD(UD|g*rj8<;}KlS0111V#8QIH`R_i%-m1=5ZmHziHCB(_vjtk zd6m0(wfG{XnK>`L&NOmtciLHdN{@f;=QC0dm2$GuufNe^IDY-j#)O-K=dUS>=^W0j z;wdhy;${99XxjMy&;|L3t;@^&bv)KEpDSQbdOgkH`o^PG(}V6l;k^C6`P#C|c4)Ron$!~s!qw)9sM5bOcUGQrS z_pa76qUG}1!FR4*V>my{-Q)$DS!@4HcQ~T@6lxsS= zc9+`Dx32oHxQCN*UQ7JloHs?MxX)I-s$6z;4ny1VzNda7v#%xX zsG=4RR^x19S!K16QdnLpijO-rY& zNOP(?f4Xltt4==8w0W5l)qe_(%c)LgHEY_;!5c3nzKD7LT{Zc;&!p~7ys+}jlJ>bf zFKv1hWd4W$`#+0$E25oGhhLqm|7%@O#NwSiFI|6q&VEz3#9aPVHs|DZ3G06d+FU&w z_;uI1FS8;FK81EqUAN`Z*>KsJrMKrAy$oBrEsgD4h}#RFmZkpd89Gb~Pc}T#oL8ZF zK0$PL#+vHSxhyP?UOaux^Z%@Xu^>wTpLPy2RfmHAxvxFV&;_>fzz`SywD zE0-|LpSo0ib*Ps0_vpy)#Z#i!zN(G$)$_9a`>r%RZsETN*DnSYx39PUz9~BSUXI_Yz==V zCeJ)N$5>^nwkZRH(axBECpHBo7p)K6x7*NDOy~REq{Y&Uu9%j0pGYss7tjCA-gqs3 zE$fklqjwtjT_{!meER45-X&9czAmqc{ZZaqtfXeYB6o+Ahgf3COt$+BZ?`8LJ+`~# zvwM?HgrQ-CX1wFv1rlpi&KEF#trN0gl~OF-z?8h9$Af#?cA=>~ru_5l1y;t+!fTP>Ag8&XS#m*scq-IwX0V9K3JRoq;u-UJqBh%JwgSpZzSh+rS7s2 z>*$|dk}g;_IqqR`nf1xpFP`OB$p!ZwS^Mx)KHIOwcm26{F`q85Z&UruwykukIqP}Z zd+VyNmCT-C&*aHn`gX-?>8N0Di4Qk7PGU`vG%{lI-qpsWtifVwpndbP*cEMMwj1k= z{@Fw(s%Tc5>@D5!ZOx~+&7-PVipqFB_)9GX9*FTREuU^~w zcI~ITw}qd}e~AkFQ|g{FN1bn7yLZP<`y!KThT&0*&R-CHclDCo(UR%Y=5Fvo?!%+|g&8!WWl%GKnwTUp3+Q4xvA9jqKPj)W=IGimhp|ia0d) zuXrwZiMv>J@e~trw;a1Q>d^vqCzT$RO)WZ}VA?Dd*6*QnCnEY(cs4KFmQ)_&}nIM1T~*gnN)ez_|=)?AC1o&9@puiyPi zp5FPd!w-Dzm|WCrofmRr_jfh>pUKm?<8yy57G9UTujcGlc~S2FPqWXZ702&sJATVB zV(tEaSqHY)d|Z1XXy&Epn$Z8b?fQinGrh8w1om+XWdhYeyE&uDD zE$WI3uV*g!cf0Or@-m~AeU9prY!7|A#wV2j_fd^Qw{7XY{r`Mki;M5MU7;Is$@-Jq z>xOlb3vRC6mSqxqGOR3yBkDu(^7V2vWb+Oh-6^!Z$0Hf#PR*XEsvuSb9H-~LYCU*y9(TOt37>VN~)5w{W!bVZ+=^J4weg^}A_b_dm{ zzw_X7_Sk#rrOK=G(I36MNHgcc(;NTQYC4eRsh6>kqVL zUd`&gbB@pU&rLA{gYWL!qv}h2esVqkm!YhZtaPsFYHfhCdBZV235y!fRw044+vn%* z{rl$5$?SQ$&-c}wEu6LGp54V?7diWn1sP?(>%MOFRN|Ilgjej@+MiN()A}xN_FaH&D@=U1@^fA3RngF0_liUvKDo|i zf1#qf{LVUU^-2Sct-2cQ7v}3dv8g+t%G-OwDuS`HBd;^(NYn-whk4WQiFnL&eKBvl zjc{l9ZuQejUzP~&xTf)iHB<7Uf3}_RZ1o(&3oj*C>UZzoxAxHHFP}pA)=c%fnbc7A;zm^0e$DbLQ%lk(sPZu9w_Q2myYu$7 zwM%(+C~5Sh^|%^u>6^|m;X&Np2RnI}T8r@tGQRJNT>bU@)}0|?-KkfKzJEzM*5{D< zck%7->E6@xFD9S9KrUux9-R%Y(00P1iZZ;NHWbd*x!~qmr7|cT*;_ z6yCh6pL@t->%XkEs~0sTZD{f`<8W9N9+f};!>uj5RF~a)rrqzmdhH^)V&Cn0rAtE( z1YJ6ndvnsg6gTA+d|@>^{nj4wPT-j)7=3cD@YB1sI)0f^T2DK){>!iZe(vQ##@y1Y zl7&;YT=F*lF*lF#)u{;v2H&r=ZmTQ0GCMr>Bm?&}If>_`60S$)o8C3Dy}I^_z^g=& zgQxes%Dex>FoH4gu-#+#lARwKQrsSDt(vr~>7n z?Altiyr6kncG_?45_NyYE7xl;edf92XS5~L4jx#*llX_KM=gz9-I!^Q7UhFe5I=uPFqz_NS ze(;35MSOj`A?w*M;SFXr(t@nJTqf-0U3XwjM#!xM_4jIZp zv)pxbTK8eii@vx1dd1fdc5OQQ=_JqhaKHb6OrGLzB;_lbdmHnswtH=f( zH(eSzV^-ejF6)E5oSTF0i0SN~={xyK-|6-9J2?K=GczmZM4l3hZ4CZ+)ku}+;zu5_ zJ)w(j1QR^9cD~*hz9YQ$o!n-*up1@E^HsCE5?1#-pC+!z{p#hrBFVI^L2BC5*A?CV z^Q=z$cHQ;Kk{8yN>xMjBz4QKFxe41-empu5bJ=&xZIyR*FRvZEbS;wK)Q`J7knQ}8 z^^#Y2^>#imn{)nf-nQ7pUlX%kSyYcWZcKP7cerY=mFX)j1vc;ZPcL%nD>?Z8Slw_S z_OtRnhVmsBw%%PBb@B3M!H{2fu7!Vf-2EkEf*^N)>9@}_;@G`QbR+szIZDkBZRY5` zv6VwmXt8okr20oOo!CRmnznfg#Xgt3e&mj^pqq~1B)gY>yEeKmC>HqFI>Tn^lh}{T z8?yy>^(=Vz;z8Ud4qL`&Rd*Gn3%|v#)LpjhxKL%5awm&-*$F$=t0$2?6Ze&euF$ z9l0oJ!!y6Tm*l>u#xOdcFHX@qkUwKXP;=hpYj00h=|yj;eV5#Le9Qd_6+SF4Hbm&x z9Y1s7*X;FfH3{#y!=2WMbF6)m=aMG4>)0a)(c3;7%4UD?YxKL)I## zZLpDiu>_thEB_vAlk*FfH|+j!ZK}Z}p60yW3ELg?b_M43SzenQ^kB=*Ub#23 z)>Y`}N}rQn&wE`c<=@5=A6`AXW`Dh;bm`Fq(`R+suh;E)U?`iZmeR83#J#K9cTZ2; zA?6$t)bUT@Id1^>n)HW$X+^r*1tQj5wOz5Q&v5=n+feV7tZ%%(Oj7k~+VEpH1Wx?7kQTYjS z^ISRlFI@^(_Yul}P?)q!+f?FEbYeXJdcTz1SNGflx2-#OZtAXAPk0V(w&|;Tty%gs zO7_xg(IV}yKN15@E44i9DoxFC@YcDI-Mfrw+T)(ci>DVqZa$S(wKg&@eY-AGmIZqy zn{CzU*Vl{JuDZAK+=qU@yamfUwD7v+{*mrxS;wh@cl#bc2h zdKT=uvFo6kPWOe)3ufCH-?YT_jDcngq6np;UYu_^M z!1a?}B%Ufit$%ZEN$&y+8~;C@&u^Z8y!cA4)84A;*z9t(H5VE36FVAKz1yb{75+Df z(_;p!Ls``3n;(U|GOO4AJJhh{>6d3hbxiC`4?pu%Y3)3{gY`N?$F-};Z&f)2Lrz^2 zIJwC(NKSd$Yf)>_EvMp|0aUk2ZT5_@H@@NfBF zqFUM<3T*aO7j%9!U2>=YsOJ49bwSNLhhCc--YHI;6sopsale^_qf6h>eG)q1yMMNc zS{KQ>*eZCO8X}5RusDO>8jSw-&(pmnKBh0FA{Rr+WDH( zcb?QXPc9~Fu{C+Y&c!Fx&MLiG=kda@?^cv#xw2BXz~1AFJ>I*%xhDFVRq)uV)j5J} zUh}m|)<&}JIl0_0^po?M^HqCRE?oOGC&MgC-P7#UN7;QBW(tN#Mu?mIQ#!nE9_M$< zs(hCE3DvLXXEPeU_Y+z0wvWxZeBzvI_Hx(jx5xiK{`K15$9Ao2tIr6#?Ps02evj(2 zyQ_^}Kb6k;{^{GgX(j4f2b15v-tyKdZbcN&+z6|S`+hk|yp@bBxg)jdJku(Xh{xxY zt{k24VV$eQ-d&Oxc2%t@{W>H6-FK1N0{wL|secMYZ-uc+O{o`fD}MKct)Z__dz(Pz za*=EO^Gc`x{n}--d{f4Od2+AMILmYA+m@#1U=OQ@aOvZ_Z z)Ud^`YE5<*PpaDVzKvxm)3sEtbx-t~!h~FU&aQ0tdZ%l{9gl~3e0 z{0MrZ^uo9N$-dk6FXA3VN_uTQS|B99q^@FKj1BWU(e=OeuD(6%sCmun=&iR4j?7xZ zoVmN>aK6{Q86kUbt5}BE&N`K`>$J%W?he!4Q{8P&zd532Td}(2m9BowcHJ*mWNJkj z1^29(c1?*8Q>ZdAD5`|_{Z;?ee&Z{q|E9K{x{Ugdf!`$AVQQyUMLN0;rV z1s-a)vlP>UzMP%gwwrI7`4dZ^}d(bdIp>tvzB^egA=8|ESg$19@0&Lz;l<9FJj)ll zZm-t2sm6BORvcpHVKlyL>2=Z4B{Y?dY3{_!_boFI9$Jzv`0I6o;>_1kZDD%6I_pLE zZwNPkl=ZH^?oQ{LTQAm$Bsy2`l`g!hsqt%#dG*rRhA*@3Y2Ge%&rP3Q@HupM%bFP)J`8q?+Hgn6a#>WuiKv!s`A1&_ zuqxMt%KV*p^jB7u=d>+NW`8q6-7c0`e%UIqW}D#a{dup-*7T)s_?s7ABBgYoG5hp_ zFWl)_;)z?`Y=c$?Ykt{w+-W6i?8$GNEVGQ2KQi3dxoN4tWtmP%IQO;i1?H1d1a}?w zZ+2$8E2g8oK`7_R#A@Edv!XWDHYTm(nty3;&64jk9e*+kuhx!tl=o+}`QbF{%Z8}; zlXm=DnqS>}kW1^rgZM6{_XxAHCM=NeKRZ zyD>rX-3Egln>pUz*vgSQ;ps8)*`kwOS3LU~5@6bRLHb&u$SbMU%4<^&M76~2&aYug zSj5EJrjZ)nwe|MDtT%5TEt>15k=lJUO0&T7P(xDwIuFMwn_83B#{BW!x%h?)zpCGt zE8*w4`eP@D28b;T+O_Iqu8KD2vYk3}9-G&AuV4+4zINHKR&zz|gHBcch%M~v9+*W} zHQ)bh7{R#IylT~xcPE2BRerZwtyJ~Ox`NB(#X^g!S5Nn7@+{Q#d7)!*L&VMNmhaXB zh6=5`oQ#WwKii!>EqLzizI|53>MGp=`=%N>3(u3)U$|^t)1#(jul(xk;qQ;BDHjOd zeDU{0L($cHOBoiY3;H)L*{>6JJpV`Gq+-rhGv=q*YT8ELo$VuDot;^DoFl4L{Ok`i z9zDl-HL5!0JKEA0bY6P*&M2Yk!ixGeCWl@n{1m$LVBWNz9g`ThSs%D_zqh$Ro^44S zTgH)==EeI3zswF%@o=4@XCCn2?>qa&E|(VyUwyYT`r+Q(uh;rse*WP0^GAO4`OfP5 zU8^q&2=u(Uox8|OkK=Ci299^0xhA`{?@7G-mt%hSXl!li-Cq$Wl{ajd{NLq|tGjLP zz1NfKx7oKdA3QEx^SdQowf$bI(oFN4vBkHqswI}IHZ3x%EwuQ@H%D_tu)wNgQ=_ij ze5WFGYu}l|wMQ0Q2v_e}=k6i?a9?N^hmL7?Mtx&J$<$vTf5rT1{Je2x`rRF+YnuW$ zuxg9`uSw&WzW3nlBkIB~4=w5(ZcYq7m#?~WfdZAt2V7wH`paF@VGx_SJ&>UWuDH_wfZJ^+}R}ZV~);Q^!R6xp0Ps$Pgsp=d4;== zb9Z&Cwb{kKnC=T7*6w<|%53JENxQGld3N&Wq(VKXm7@DDVq z;cMLYq#yzn8!jO)A5ttii=X!E@XcJIjivhn7- zAEN&k7v%IfnX`F6NIqNkRI~nT#1@B-H<)bw6^(92vaEBJnCrSIU2vCk$}WG`vnSrS zR!dFG3ss!V88iRn5m8Q+Vgrd6unXGn;vH-_Bq zSFgO_agDvnd+Mvpl_kGAN}g`nbuDn(yH}Ss9$(B^zF2ZWNQ~&Qi#rpmW4bTwp0sYi z&}{u~gO`W4&)dXQ_j=87*`6Pw+)k4}f1Mdo<^1WbieZH2^+Qk0YErZB7)JCx>5W|O z_#y?T^=vLnwfcLwWeF~iI=emv8(TA$unH^(aCEw573 zky7Kf^?YG_Og&1Ht^bJWC|e2opI5r#WHsmN*+rW;TC<(XC-?aNpQ#GC)d!P96 z%0aJXS|z8u%5@K&i@xizAg$@bH39Bv_rsRl_x)9pr+!9B#BR4jQ}9RObEoRKrDu=V6T(|>B`y$-zv`#*=8eYFJ&*2K zU%C)%JHyrDVPwlaLyzs7Ty|VanP7f=|Ce36xz!@O1!j5P**quadXwnedqvB)-1v85 zs)`-!%`!eaw(YFm-3NbJoMU)w^W^5m$QGk4Rmt173nXr72Tog(cKzrA_oGs~t}l~R z?&tabseac-9kabxE?lqY*plEWanUrVcB|pnU0Z)0((E{`^yZwi-~O(cfBH(@7b-7u zOfH{Tx*iH0E1GYt(w?_f#wm%5_x>tpkwRX(Y|D8G{id|`jw9SHT@o!*>_6CNzWBNGpV5hX(!O896obq?%esv! z=7lX&-pI^wn=pVv1uit$390~d6a9gNPF!R`3!eKD%JFdB*1KC{mnI$BpCh=3ujb6e?sr0mIFmOBWF9P9J8R9) zy8^P!PkjP^74391jPRJ|dZU-SQG2=Ot(Yh0m9AtT7EB9Yx0u-ml&X2QNKO$WU{z&d}R_ak2HK>HUvZZI}GcBPMWB zwZ_wIU+DiyGRplONY>88khaqFA-&`h!mXW_>%KD(B;WN+WY~nVPPfXq>63J}S-em0cla_o)>V z+63I5vrG|OExhXKoGC938vAXKk8DZ5mu@WJ#G%+Crqgr7+k*qNez>uJ~Ew7?T zgz{-6@Dk;P2blgggT#;+hjP|Wc82J1)mH@R)Y#wvVQ_5b;DieNS3qMN&~XA;D8Qvt z#d-3}$5WTp`rF%0CbzqAB#MDe;b0YmXg9hkv7ml}fK%G6aIwO~lV4B$%-yrixTUxK zlcSRZx7Z7Lm6i!BA6=aj{+(gRhL-T+<~*Az{6a>n&z$|IId3PkN6q{1l^Z#eC!bvN z>DKwRD=p523QN21{=e2^PF;g0zsu!?aA|&L*At{#sRw?&@$*rW-UrT;J4_Ws2)M51tRZ{))j;y-*?{?*M0WO_1 zK_Mp&&IhZxcSN+NJ`Q0!ZhYcDSF!!^tyX$vhj#if|BQb)dH<24syT0x-aWV2-mBey zYgUhdLASsePyjPAtgyNGxB4(s!|KwQwcF!&CO&jI?iPB>dF$gwjae4EJIu>Iuo(+; zW*me>LyU&^)jQ`4e=%P3k%?z$*xbEiPm6W`<5LS8`seIuKP9K9xA3b;p4?K_ZUG;U z3BP~musLxYY+>EW{C38w&D|AWRP^*8zEL`-x9F=0LrmPEvy1Q9&N=nq;$(~6C$_09 zVC4pR`-INIrnBtst*i4RG&n+3=G{Nm)+*k7E5_^Y-?{du#~@OwPvWskbDEDZWqz zWd%MKvupb|%!@zsdVOwA-kpC}-=1-LwmSazD$D#;;@Z|zx7U9#W61PQ>Euh+`&3BAAe@UfTncDxUI|G(wcRAtb7`b+#8w|A@d{ry2}!!$QQTqwh#Tky3y zeD43X{}28;b;@gL6l1}!GnqTp@7Fzl`)O~{!+?iBijVu(J$-UjK8Cg6)tQxFYNB2m zTsG;qFaNVT{^zTu`**0k-4?jGU`4_2=G&+4ghpsJ=s8`m2YFvcqD8SqASsSRk*l3c zTU%Rtw)EAxSsyb3B_5snzCL7|c2eAw?WgnqK3H3$H$VE!Q?cTkt#6|3YqCF2pUv=U z_t)3&W6XUwS8Q4FEi*FgU->771m*oxwtv$RlX{z!R&=Og3!}&CIR1NSipnh$%+^$e z{@2ereQRq|xyI71(d-F&GYotZ7wiizjm=a%vWL@|gE@%p4f~b^K_`!-qIk>FA7{FM zX@B2ezVg@M)y?^!ob1!HIDn(@&(6nFvs_Ou`}6*Z_SLS`$fURxHzO^7Y?`^IYuT!> z)mksSBo@W34=>ZY>2o_dLT`F_SXhhV65Z~jNjpR0DzjRdPH+5k;?1Q^8v<8{>#%UI zd6RU{L&QGTEc}p{B@o$?lp-4kVb{gA~s{!lN#k-%?cpXyRaAZ$r+NPgA zaZ(K~KkwAX-L1~8m+l7H zP2d0No+y{j-A~F1&QgYPW|`&X$_iKOTYGcXDJ-2bD>T3=e8uM`lb{U?SFf(o(?7F@ zWy5uy`@7dZdi+9FWwY1M_VvC~rp#RNSn`+R+M17t9`xGJTr2W1@9Xb;wdoeNxp$7U z9}QCc{B`r)|Ixj__}8C$Yt-K484&(@e*F2gP2v0MT~{(Q2ClzqeAB0T);o@sUz~P* z@mIYe;Fg{jYP`Ee;LxhbzS|o&1)tP^wscC7|25}72^Jd+BMvdVIiX|2%+Rtn(}?*{ z8_SUzt;c?z0)6Lrh3uAPKAX;!q{!{?&eW^iynV?!aQYT@`FgeZ>gMy|=k4-sHB$fm za5X!jvSRh2AnPw);Z9StROg?b&An_g&y3Sg&s1*SczeawY^|QVmEIf^zO2 zc%Nb;0^mCT5dULp2YU(CC+*My<=Ooy>FQ?9s-$(y{6n*V@ zvg=a*m46vwZ{Pwt)#mlF7 zdBpy`7pmx@HhJas*Fj!WjaP^qx&3|*uk_BCbDMNdZ@LnFX&NX2@07~_^Tf^C=U&@q zB~~$(mY&{&PS%f3B~M{WxcXW&@Z|GP0xRz*`;d;_3zoQ4Zgao|23PhPM^Pi|L18DXRI$qwfHPO5aby6 zQB3D;>|14~hC7?Ht{S~r#~Ua?Z#%v0G_L0hKxZVC=m{QUFICavsapoZ8? zlWXSh*5u!jJhb_}@M?x9%|dpmr|!=BdhT}7?|nb7Xff^ST0i^z+?;$KkJZOkI~bgG zd>8a3g5CRf$LA}Fp{u6;S$O!As7CJhdpsV}ert8Iw@;fVe&~#oLVd>4n)2ZFFAqrQ zIB^`*Ihx=ZS^r!&V%nbC(|;Z(z3V+a;nJ?XiR;#NAD#1W;xGR7Y5R&!)g<#ad|l03 zx&27moj*UHy}G=b{o5V&{|e8Q?w!_oHsvNK+aD+Qcc!Px^Tp-jOm~isR zrgpx=Zj0kqmSr99tTdi{a=G~C4T?MwVT)_Nn>8GIyxM6AOTq8ycRO4YXZ?%`JhPl7 z;bhv+=0@p{XJi?E+)J-C7joiIWce-MoVwk+d6kDwdmWZF@2=bba`et1s5% z-1xi3V9!14%*d@-oMpjM2CiD=OE`Y9gBrO_Gfyg+1l(N7>9Nv?OR@D?esIvr#7L)T z9(RcqSF)LcZuxHCc{=M&RIjbKgT+mD-qTrcJRb@>OiP{meyY*TH7x?p6Wqa#Kqn4K zz4Uimpl$CN4O=U8rVm@-a%U5vl3RUg9x!gtaoZ`<=mbSm@EitGck3?fg9HW z35{`1PA38~w??fE>wfFNvG70=v{3|UT00pWTUzA6EvCpm@6L6nxg}TS&upv(Zwpju z`QkOBYtb&H76G=Mmz!Kq7?_G(6;*5rNN5z(acWz!5o|wGw_!vJPjGTzte_Kz#1p;) zi`QM-U*^SsTI#=iZ~XQA|9{x3)rWW0-%;c%JV4rw0<#OicpuOkw z+&Ms|CQjSLp&Ib(!MA-f?LXOHUvjHmehMmecFJ@ED=F_8%QiQrMh0e`G+Au^;az0M zo8?ARy;#kvWkDT_#@3mql%~k;EdKO5U3Yca-{0YkGXEb3FPpjd<6-Ui+Lt;EHyRpy z=ikxzchB&=S^oc{(oP*;*UvepmzHHcRocEL+N<)@(#>9GS6_p8zn@$`Kka|!>My5# ziw%qa?7S>p|2eF5_pFmoRRdOs-FOZPd9F1#&nSsFE%7zpn=oq`r^0;g0}L$IQuDo-g^7ZdP~>jg)^pzb5EG`&k-D*+?!)kuQ24KOy_#L{q479PwRKZ z{#(Fuz{Gc}Z{kXYxw$PT^hNXjJ~{R_J})XP`7QtTRsn+m&8gny`OiPMu9>;->+0y% z`_YB_HD zmtSMN^W&lD*4~*Xmo>DdE)_rXCrQri)ORlit?ynHX|{W3uq%jNYCYcV)X{cz!>g~S z%69&!)@C>*e}`?t$tO!2xggy|R2;*ES#Vl+8y5+u?O*U`+A62*|{O9~r=KuCzH~)YBb&%J8vsaIwCCN4HoYBh5dEmg> z?|FN^&NXKc=@((VQkKQAX08-NqQcy>7iwHN6k8g^bk3BBEwn1lG?kjh>f!BmRftLB zPq&lWWY&Ox52n@6K2^3eF*5u7nyD=sc3ZD)SaYjP(o9G5_19fff^?Sb{>{#iQpC!z zRf`#%Pr262>^sP`pvV7fmFtQRWxMxg+J&EZ&cOV&>a6BIhTU(urW`nSf6vx`cV2GQ zm&y04d^}fs-37gy9`U`Bu-D1mD|@r@?#)X#EjC9m1T3$gFd=dE_MMjNYiMAYvW z{C@4)+uLu_L9S*MOS9=xR3Y0@VPDEdpFRJe9hj(upN_TI^}%2<}XZ_yn7X`M*Elb=L4%&$fy8F8+O6v&ibemhZ=I z?pO$F2hLpZaQE^?)1T9_PQ59;GH=3VnY$CeENuK`P~N*FGHyk0qLiF#_#B_fDe}>3 zIe(h}JUFQ1knIp*^h z=D%mp{P1J$_NcvHhyQMx;vzHq|JoP5?RKix*E5!g?P!^Qb?L)>r>FemTV~%a4jCXx z5t6lH_6xiyFJJJF@6Vf@Gb@`79y{7e7+Z?sF;TkDb+jMVo6EhvR>R7oTUjntZ?P81X+l zr&iO7PwkPxG1=KNml)d~ck|r(`JyT9+eL>N=knN}zbn5S|Lbno z_ToUT_)7MGUc>H!u2ykY$*+3LZr+|$u%$F@@kF~;_3aaSm7FpveBt?|*x;d-@)8wVY#ipI8o;Nq>7Hx$XAN$?>47 z(yAy+E@<)Bn+?n6x=j4BIKS63Ab;rJ$?_*f?&>VI zShX@N_KcFs6mj;yKdNtd?pVBbe`3{~zC(<*Ue0s+nWgu<_qObMuvzik;@=XM?JIi^ zTPv7)r{7CHq2qM!`(`zLrCT2yOyB=Fyg}{Z&x$#$``YEo?+3R86fF*1e|FNIA51$w zI6P@~U;npq!aw^v%JQ+FypEV9PyQ+rv7mm!nQaA<(UcF+=~tgRJ%Y>)!njxlvbT zG_lR{Z~A!+*GATLt`!IV&UkEpNO9K0MdhXs#Cz}8&r11mj76$<(oVl$=Z?v*^pU*N z*2uYfsnM?H_trHA3vIWm&ooNd%o7-J?tn5ctJvO_lpl=OC+lDNvs-p<&aL&!W=v46 zVE-t@7c0kmH{NpFgt?AW-2L0{9*@4bo`2G+ZThOb}!I ztcp$dzb~vj^w;jN=<&ai!EL3z@BTkuDY>g%I@XSpably}nvd7jmV$;%FH7u@ee2(2 zu(9Q*e0$Onsq~kNUmR3@QzA3-YJ5-Sq$a+_8rK%+y?F4ey5#V$0-3TrS((?fB&QzL zzQi+O1Fv)cpVnIsQfF43`u^p=VGXnA^RG9KeLVmD-~Gj}&)1gB_-7~dRdX$``tyC# zHT=SQJ7>6Bq()`AWEXr3oTGWM#M1PuaPRiSHZNZCa@~-C6d%XRlp1(hA`ZDwO#90Ty ziDbi-?>ipPv3i{Rz~=7pe}}K-O5{}*);?DbT49^oraq^ls%)y;nYhX3s{JJ@vR%3< zpR&DtLqyIAcvQ-ud-T5TnzJ-y!oq{XeHG+L|eMW-EvC8vVqJ zO|@qpHCNRCnw~l_^i$0C;|DJ9-|wpwrMZt$*yET%rbXD~()hPx*+-<-ea^^v>0x_* z+23!w?9Q1KOyV$}`6Iu#Q|q+JJEtkmg(7|b7?YPwyZi4~Ws$CFKu+YH;=3AhA!_$8 zh-Mx%a=GTy-MVFl|L^-g=VvD=&NbVe|CCSkv-jyFMP3Jq-0Lw`llA3dUwfH2a~RK! z_24$18|N`Q&1&z2u=PufZyuVMymKiNUyxX$%i9U_dZI60eDv?b=Xdp2dnX3Sx3Kmxi-D_rO;pdly6nD4)0plY}>CYzI)!Z`5#ObtF|XFUSh~OkoW6;u9U#G zwB1oBmKaAedaMqt+)(=axw+Q&ysKqeObrfonUZeqZzLu_PWhZV_c!FQ$JFJEQX;J; zU)POe*Y3V>_qmYWb+_dkj&iNPU?Mz!n%6sl9`T@C=N4an&wPG$^^?YxhWo^Yr)7rS z7u~k;|5wgE8>@{>?%7Z2y?;-CC9{4^lg!e2aq_2*ZB#UEOy0X+*>z5)zxm6CoxRO% zYk7_aTwJecaEo!eM{?`WH;?o#&)8D2{;aeu8(XcGXHuHa=VN!5H{ZLGn7+jCnq}(S z@+~uUH~jy;>V$eof~Ug`CWf9V|L;!W%`Evp`|OiMXQ>r78j-t88K$LP-F|xOU8x)n z=A?U9zTdpD`s(VZRa>L(YhGV{^;g->jnR|MSQOfHHmKQl7jy)2?BWQh=az#ExDHXgV$8&bA*4`Nx55EKby{Se$rD9bn9`{`@KKufL55|_Od;x+6P}Ru3a~~ zXy(_>h)|`s3EW}A8Lt&pmy~5+V&j<@YZYU$Yf_}vj5IbjozttrSAWfl^m@rM$6Gon zZpO0AS<8N@Pd@pyxH5Bb;?*bfTAL@h-gs?$`E+sd{QlXE!u9Lrz8kzxyrD2pXMgO^ z&6B*29sFZ-I3$1Z6~@E;(_Y*SF{?RyC3tVM-KJetS(6#nwkf)osasE)_h+`VUC!R; zE%HAdw(X5uAA93t%U;t16J`f2|MtegM=tASy}|4ApKKXDIcJMEplq(jB_cU-TR*Q%V^73hFKKp zRKM7;g;DzJTO&R{u|)av?3{TI9P|4hX0Ay*n``J~;3IyFZ+C4>_rWumT#=KUh~4_wTt%OyBB=j%kCD>-rFyH z*S=nRqiDLLUaMVo@~6w5MatjrK692i^V@iZd(ZR3vPJ5eY~IHrHsm;PA6}I=J->cK z;O&(WU!`)sI?njK^3B4-t;(yjyg6_3_1@109VsVOv>tp6qzGHWf`SrP*X+h@a0@-f z%J9+S!@UWulel`OPudixd!2EC%CpwYXP3Jr8>d*#Kb6Aub#Bpb>)b14ufJy940hJu zzeUGIYx9itb{Y>AA~xK6WA{|1E?~F(mnsE8Y56*Xf|D};x3|ll_lWP$XfeMVsAF4e zbMSTG^+#vlbXXnux8>*Tn|1T}YGdEk$>-kA_Ey`WIVsO(O5Kh4<-R-G#j`F>KX$uk zBD?Ul`H$n@uiw5}+5g7YN&RNE<+C>&zA)P=C&%-``Pj2JURTWfQ!?q!iQ4Ty1=y#> zxr_dHFu9~CKKZfIme5P`0wMo{&n$O!U&wh`$8P7oPfx1UroVnQ%Qo`9X85~%VOqMm zvvQ9vGZKDSY8~~}Dkb=qhkgpbi`c?y7wMX&i{FcXIO<-s`x|d)Q)>D>$u?(4|IcF! z=E~Ov%&y+}?rwS#>x4bLO3z--`1|G8QsMmlS(+@d+C|2$?oEolTVk$ zPybS9-M{2@U$)d-Gx3M>mTKuQalMuN%E(ukO+}$x`c%PErhAvUf3gTZI~dtwz~aIs z=-JJF(EG(c`CE@CzISD4{~ufMU8_Fb?=OqT9K$c4>ULLu(XIXA=sWk~f=y}#kM|v0 z(8#vl$mXAqj>r}S0$ z@6w086EaRG&b_!nGVHqSo%RdQ8z%2~trqmedE-gm4vTDO<}xhSfj zdZwgKajjR%N?q1~%~{v{Lf7-nKbNwZJ2LhMN9e=a^^te=9yY9Xo$)8Hr(zGsmXA~R z8@Erm#OAefOB@I1p%0~hcZ$FM*DJhI`~1fvb`y@y4gY>(vTg6w{l@M8?|2z4SpELf z^*dhc)_oJdZtAt{MDn)p?MrxWe>d5&>s7K^8SAN*yXDT7mmBw9{oY=OuTJJK|KgD?Zl(R3FZ@6Em>=Am zn)gd5Vng7*-I2FfCal+#wM}z=XR7smTZyX5Ql0t@k+)Ymm?b((IJF+|zNwLafBn7e ze9hbwciXl|6>SfEog%oZ$!S4gMC9TuT&YYXZS$^p?>sx<=uQzYKE8jc)c72QIw{7tc z`4<1Ycku1p$;rp${_X7f81+46x0K1Q!cV(g{_iR{qxM$OwZm=a3FYXzAA!xk^9}|T zt%}oK-D7WNa@t~cjew&`Zcm@pYeEX==joB^N@+CZS;1%)L$KE zU)j&mwppz5Kr?+qmAWnG;tEEQ%%#O;m(0plLskecwvSOaT{Gj?LH2_ickr|&y?XK3 z=lA!fo%6q{-(obG=y(?FrYs~mfq}jfW&)`|dcEvtXXUn2~dy_X0Qw}+A zvTI~M*b=p&>Z+2U-I`jPRW0Xq&a*9Cx1}!s4TtsvjdNA+j_&&9cK$ox$4fnWoF><5 zM1NmZt_`}cAAjJ3zgFadPY?Kcf{#_GzmMZ>U;HAix%{Q)>p!(8s{C*B-TH6%H?n1O z)0}mOd%t=1#>ak@I(hHDhgHYC7b|^_h3`$eGF>xLbYsQoY5Ga)_lM2uN-T_D^3cV1 zX>!47HOp4Jri1O(J15U@VB0D7*2}6{=Fk4w9Z$YA9($7LGPN=(`OAF6Go2z4nXP!We_a9l7~CuJ!#p6MlG?Tl4K+HLb=4^M5D(pYvX@tITFG3ux$R zj)Qw>%hSvWk9!KtTyK}AALxG0KU?}pf8@V&cN(rI?NZD1ak%q6fbDNwuS2aw@2|3- zyt&UGcd@-bf7WWz$$k6NWLjN5L~9Grdv@WV~=gD>IVC6ldl=e|AKTh3EQWD>hBD zMQ*b{{5stk<|92_Gj+n>BjKlu-9q+WWmnCJ(pUJAQ-pujx_AKAE#&!BP7~gw4%lu=T|K@n4i0-!|?3puP zoS(Me`1<6=h0D_x{d_S^;-$VtKNI&EC6y4x%hJDF84o%B z;!BZC*ZK1zOaJIO-g){`(>@lJgzc)`xU~2F4kI)9McOG<>$ieWp3PKVt7>>e|COg9|5GVf9ackcvuAPrS*u(n zHgiZm^n2ldXa4esEzardpRE(jl=44&qxQPP-fy=LY(2@oo#|UT7nhC1|B0)A?Rp&f z#O~zI70oZVs#d?1c?Y4EzISG@Mu z{;tL4UYN=s#T&%@g_|aT=Qr*@2>F&?vWdcjvR`xkd%@ysP#knP+ zG1QGykzK7g_rOV=u)jRDo96f4+-}eQV&4pjfmd$-=bab*ZamifdS!Bcp-5ofIa8^0r}!J`zs;WZU9m9F zI(?sUOQ~dnnBu}W4>J4er2LeEx%7Ll{RysEd3AFA+7Cgi`+r*eT<*4nyZUaf{PLT} zKlU7&wpi~)L*SFdsQC8=zw3I{mUFaTPMllj-60sdwtTIdh6!go{*a zpQL}$vUXdlVkMPPv}gO?RU0SDed|~kC@;3MS!PM9LHC4)GFhX{r5l%jHc?OSn%glu zZ_3TBk9BUIf3?7-PUz4~Ym4IcvkoU_WNwXWey^CL-u%9%Bp_|##Czh#dp;lXUK_cq zmTwMg_TTK~3y$vXf7t(fdw%%#(=uTkjJ;(o0xmbL(_elw2mB%(#Y=|p3dg=Ilxi;zZbL3K|2oMuTQ*BIi{`p(+3ef&=}J`9!IoaHtu?RJ&0l@}bxMAXe01dAZ|APQ z+H2G>_56DI=-ArV*7+T+Z#vh{Y2lR!*nhg*+x%YT?XB+8Tkl`_ytC$OT<6|i0VfW= zOS@KxL?lcNT)M8W{^O5h&z`-Vf7ihG^AGv`JN`|*9R7d%^#o>zQ`_f@sN~%FbrdAq zaU*waRAgMF;4)3!ZrMHorxlGAPZo3wu&+Gz;#6?<*1Nlcyr-q+?kV5<$zN5`#l7Ry zy130(>s^EzqwcQskp3An4{S4|Zp4g>I)@y5F8j<*TYAg)`|5kz+Vd9#g`7R-uFAm7 zw1|^a`uMyk+izD^Rh=$W-o-jE=g+cv=S5GIzXY%E(%6t@(k);+Yv+>30xss8xF%>W zNqlfEt*2YSVQrM>`ZY7SC9|i0Jp!8fz2Mrx{77}mw5uC*E}yYlzow?{@0-YQ> z&u4qLXIrpmdbrWd81O9Xibf8_79Y#>d)LLQ!?Fe6HJ_R-etdt~svl3Z^f?qIDmJD& zaWKZV%vhpx=&#eelgILPsyHDYx0oDv=uVJhSxWek{QsxUdT#6d;e5*NltFR#&aADc z=0Rr{r)}bx9v&w2a^XIe@Hg+@TuS5u%?GzIWiQ*rk^kp`)_N<@6z%~Dot{+i%n*2z zs2tAp353j9gK8`l(CpH}15A+F@r4IwZP<#u#Pso!(zaX&4n^>Y`vk?++MqRr3lA`D z=HQgv^|ni@TfhlyO3IIUj!-Gxh!!5(cVMXlTRAG1a=z@}`F_M5HL!5_UzdWjuwFnP0$suh=r~*U@HtEYwZNMbfAo;iz$L#pnIKy9fU8`AD%WX zbaUD34ZEdhbI;6CyU+6K>ZCibGo%!YX4YgWD!Z)GE&C?5wd&}q>wnoNMV?q{9BDW| zZ-0`x^t8~m(-c)flQ}H{M%t-TJQGbXUuxK($ipFRkZ@}P+a~VFna)2C>SjjDnobkr z&b;h)H-lTsFkh@sBymZC!;OI7jWf@kU!J-wa^LosFN_WI#rQ-OgCI91fiFGU#C`Kq zvu^fwKYj2j+_V*Z(|9vYv#L#RXiE4thGZ!=|D3|W)!sMteeRaGp=H8euBC5Wy^J}f zr)C{p6+UIcDZOWBf0~>L$=evPcG^`%kv^GbhMW_3qf(bE>3W};y=>-L{ijQNLDvP` zjSh1^30j~4N_`u<1tzd1ECyY_b@iR})uOzW6V5$RoNyj=g%ESYL?(qCMQb-$Z|&8! zXbfY!#2uM<;8wQPt5XM8g|BUWbAa_ZXysLlfKi~Bjz=Ox*{T0|hc|sni@GK7dD)aw z3C+y%y@f$uJFg$9IW@;$bbdsBgz3)P8@|0N^1oL8`o)ounQ3edTQ2f+ZpxZ{{D2jx zxaOEC$~`T}-eA_ha^2NxZ}%`9sgc_KwU3pXDOW!+^>z9$Pevnu9FW*jtnzWMDb?!3KEH;PB@ zE`4+DwZ`Fw%rqb4*>PvMq<<=(ej1hB zT)Fs-{jNU?Q$?BV8xAD#fY$;WXnH?A@j+sZ&pL%?moGJJkt#aR#9*z;jFdX@{F6|n=YEVRlCowE!++}yH3!aBasSwUAa|SRBQwR8GiJpXyKSFO?|RFj#q2A+((mMj zw$RnrSFbxd&v@n=Cpib#=r=b_jMLO+pG&zK)v|$6ns;^Bea&+5mNK#GIGq%6qbyga z)JItnVSA&dG3$M+dB(?3^M3Q58!0w6OqbX{9g#kuep9XUcFP3E`A>cRy!VcnXJ4Sc zZ)F`yXS?+blG1CL{~R{+yr8eeK z`o643ht&=5I=(x6WZJY;&G`vB&9l}hC2t6u7qj#8_wuOVLv#1<-~8zb*Kt9oWl;sf zMqHcN%=njxreAit_TcM$mUDM9t2w7W`TybY)#c&K-Im+${q?Y2{@cfcF?!FZXD>fD zhpFJ_?&;BM!}O*zU&z|}F6XY{*>}zXtFP|*d3iQNmwPv3Q~v9|&7V)--}~n0rFMS# zs%_u%iy3qymOGhgXWgFh?*F!i%?u6Y&2cfM`zzF69Cg1HF5=AhK<5HeA2WkoW_`5< z-cQlPAD{Q#zsXh6rz@wss`2T= z!|lH|Jnr#6y4aPWalUQovniRg{y83#oX+EH8L z2CocxW-{-;`T5|7`3%eQkJ<7~Y0&)=5VM3ShB2(s_d(bG)eNT{R8_861#F4^l3RJU zw#94FU-7qkRoBavUJAB%RPD>t^J7-MpS#82Qv7`G|8HdYwm5%yYF`_9_oev$+CW~l zSNpHu-^rJ-dW-4vWhL8}*v&ZqeEr`Svo_BUPWPMpZ}R1JeyeNCcJAO=upvalF7C|p z&(HT2`rUtiG(SE@Pft75ZQ1nM?uE(X&$sVhKj;3j-q<@fT{qV>n`#?$3otx;_H13< z`>X{jK~ml~waeys=MUUm?VW|T~1-TNU56>}Q zZ&WG}_Bb16x^w5f)Cr3>K69wQKVhELz1tDhX>Z@0PM^B*&!g>nc~iF~*-!ObezRor zsac)T{g1cGp831y@8?^5dA5C~lbN!)Os*YV^o3v5wCiQtm#gR5f4FJip1L*t+NYg= zjvaHGaqQCBPZzCp=AV~OdH&$Vt~aI+s*XP^5nRFa+(wuG4tv*u=}kVtwreFy`6|{f zUU%u;`8v)S%+DHxokMMYo%dK8+Tzq@*A}+pZg$Rb`%)e8=~pv8ytt@*K012o+T!~b zHR-1eMPs3oVYpt{J!6d%jf==tAF?7?EHIIM9;i>9-ja2%d?Nq`&P$R*2Vq5_WED` z{-2j;r^nk#zisx`+VE~#iFTFU{P5(k2ghdH-~Myw)^nfBcW&I^xbwhx{?DEw!DDsn zA1f^>7I0j*t7b{G!J^aqmc5*Po{?eQ51A&-1ZE4?Ju*rSE=ISnN;~lFcvkkGb9?s( zDL2tgZGy*-omI8yaqOEfb^86Y-%r$;y+ZeV{3R{@J~!s~#jU5xp7vh9&+&VW^8&_s z0$giq!^0OEd*AX|Z@and@m}dy=|4ZN+nn=u=GHBeSrhA?&R##K;$6$)V`lemYuLrv z{O|pIxAT?s^X`6e^Lw`o9?hJSzw_fg-mfOlewHza@2~whHGiMc56ks+b*5)hMAc4A zIo5S|lHQ@X!doSglf7&sH|Q~mmRtN>+_&=NdC><(8*WZ#^}e~T=m6V<`4_)lTG^=9 zE*x)nF~h{>Vz{7*6tCGWmq39ZFFf;8svewQtUmE^m)4B0I)}nmKQ(lDxqihT3sK1j ze;z*nQG9&r-Dt^0Ut%>EUtejw{7ZlP+f$$4GUWaHvh4VrcQ+TPH$HWIsp~Jc@RVeU z-~We)+h0vRVEZDnMea(vt^O-(_RSoEvs`ybE!rr@$j`WW@~P+d-#+yddsrBsm3VIY z%pYC>3wBL*m6+CHx-qgv&^nV>zuVwjG+&XJ;+>Z*RZA*M#1`5WY2EvKad(wiVnR|v zgxJHw?feII4i$8L{<~j#Z(*U_>NKXtsSDz!-!eMcZ9LP_axc^CzfYLF#hnG2UVkdr zx3Bv0;#0YPb>5qHe)(15bL^``BN~q%&bIJwb^E)kz11x;d&&es&NZdN@~+pO{CVNI zMxERH<9n~#Z>>iq8cVf=_kaH0pLA6HYuK}o{{p9F9_UFC)RMfiA&KYW@%h$uf9Jk7 zuPalYfBrRpuK2${PImJ_iScL6zeDrmUwn1&yOfBLk=Q#~iq zgmpQ$`ZBG~yjfC{u2pq+fA6M*YMto1+1q|i`S5n#n!xhdbl}j`OgWtm%L{S z7-ex!OLmqjn7!ewP@UMxR|%|98}j@%v!1qi5ZS^dn!xwqQhZF1>L;a$`ZQSwyXp47 zKi%|NTJ%X<{j10f?)tiir{d#2&R)On&(o>f?^SX~6|(%jZOlFMa=PF0%P*fk+7#T~ z@1q&ddXH%n`SBEb5Yy2F&d{6AXKR45kY`HaKX%QWmY_zUwv z{U=tjw0rh9gw^*K2{k-+TNAcAda3T$M-TRVd%oUOs`vAK8~Y#Y?)~5WJ=pEl(faR6 zpZe$2eJt@>0unm><-Wjo$nw932iCb(e7r6G^+XAS`aJ86AMdrr<$QiCzi;iH7TdR4 z1|@elttqar(wl$2eQLXhpVri0AN}ii67&q6I^_R9IleMvh5U!J@Ap_9*$Y~;+!Za> zSKAQ2rHg;P&Z8UbJ5qhWpIScSuZ|PL{oguPo|VPL#Z{SS{{-0?Se=SztNolld-eSI zwK?H)I?=AZd%uPzVo?iUxH_V|6N`sB-Mi!-** zw4CUczE+23eAOpiaIu#oli z=Y!$J2|QwaeqxG>5?Kr}B^#m+?bz%g6TLEn8b{d?KAW zwr<{K&YFpa5j_W!c*5paSO1M(|NC%=Uj26?hRY^@^KGlXaNJttJa6yao4Xd9U5Nj< z-n}IKb>C)}ON-t6ZGHz@f3Hc2cy2c(ZT^#v?N5%IJuIvS*(lWr86a_ZOi_|2&po?&Dv2F+-$&{R;6t7i@Lr|9PT5cl)(@k(ae&V*b5*`t;Ez zcde(zKi6KmrhUIg_0jF?^CEX|Ef)Od0HD(x_-PZ?*IQ}=8m)B3~|3dUpK4YR{3^rwtk(h$;s85Vk6_?@*;X?OPf!w zW&@4CqzMZ7?C3U_f8JcGxA(i*rI%km|9@8bBc>((*Qe=!`UxO)9wspy>7SFguC zUCEoh-T2Of8}Gf|$t~ME$@;pIim=z#sK0k^J@4ul&(FK#BgeONn)EHL+`S)vN&kAi zzUH&&=}liAtnI$P@5d?g_|AKupZ~l1eBGa?qW%ivijxnY?VWA@@7b}R|1Gl^FMt03 z`KNS!@#AO5eCOSIuzT)9w)^pQ|Ml{I2g&BYfB60Vrrd&p%^dD;m1I=9KeSGdbI?z% zYpeKE``$NI&}tW`o{nC7ZSGp@SQ~Sr*+V@%~)AQwy zp0fF)s&eR60`Jo$CjwZm&23iOAZJ^(|BPqbeb}$=>66y~U!6Y1 z##Vh6;%RyNR$)TH(kU&odlS`v-{zZKucvGUDmp;pU+Y|7sOBzf|8Y<}uIl01|Bu(k zm4AKLfA8&Y1B0iU6VCs8xH-S>`B@d|{XgfL&;NTk-S(-vN?)FBbQ=ZQai7ou_F&rGL(! zQzxI;-TeB$Zg2nlxhu?0>OQTqeLB-};=c8=u`MNn$EF3;o9yv=*SNbX)v#`3`uX&~ zeurn42tIOH<67~7WZJ1+ZCQTU;M&xcFgYyVHH>C3DAa?!oE=Do|-lcy$Y z@16H)rSWpL4=%rUl-17XU=?Ex+w(|%9{2J6t0!|CzViCJMt_IhYw?Kp@<&hY@m{@m zQ^(ZGJ?9n5(**sN9gw;f)$+KACy&Gkqn>|NT36YO=OO?@xmZ1s2|6hYe1@ zNO@QGAz#LeeZhf62c)JQka}2P+kb6xC(AW=|3w!4FE)G+FTUr$ch>AX#p>+WT`l%9 zy*|uuA5&XZddceItIMn9>wY}cIMbfkc6jDSDZcH0j;|=Uo&qy(R!yVnL+)7Ns0|t$ z+6wjwmnJx$yflC2)ah=qi(fZP&#d_W{$6~g(!FiFJ{>vryZ-yXlCN_F=iX}AJ$D7$ z@&ige2NxZHz*(nW#i#6eQnd5x`Sn#|6AXNVbp!n;8YVwKx0T~$Nx|pk=An1L#psD| zoVjY(JIAX9;jIti|6hCkYsa%aLV;>^Y`1hb@YL!}&)ynkUSCzbWa^#c{h6~~t+BoH zCzC&0&-Y@L5ht(KLGJx5rdL{GJ~H~}hUl6dIPO2!GIV8#*}dBpKRzUW%rK9B^eH~> zSyc?nmV}E@2NWY|6obUk;;+>>S6zjrwi8?NyD`tZpo2e6))x5 z&->QfZZeR&UZ(DQwTdTy-pcQb-4z{l_}9_=*fk+qKWqLqd|7mf zeQAkRZlqYghLPnQyW(G<7G=3=Z-hw1gQ%92HLqUne*1#ue3X*-{?fw7dwa9CcCoyU zoB#WAG3V7ANAu%re)`AH+nZ+defe`xvHW!PboD5O6zsQ(QlecBa_?$jFXF}kHpPSFREiU{REq=f1`P%S(KTmBfUnklx7XRm0 z_vzE8k1lpCKA3V^*nmyj;9XWpArHGH+v_VcgBuG2kI%PW$DX|MhK^|5VF?`;)|(df zb83ICk-IG?+ibctvgPRFqZ@u39@=?EVvXnNv>AIP);vBhTmR+7#IDXWPm4ea?Ca;% z)Av{Jj6J*KyT=+8QM;?>Ut2OnnC@LK{yb4?UAUe+Q^TX01Jgc)me&7ZIj6@ae|xw4 zhj$YjuJ`LN_*(K|lJ&C2cKDPJxkXlJ$<|Bozk3*I!^7E>x-lg zXy31Sdh2WUE1&eO&!@bb_UY%JTgKV*xv7<#yJ!2ty0pdoKFd<}{5$vc ze9bfC?DK1CpBc}${CKCc?dpcIwV=SiV}5S#k58R7diEYdZc5s-TDwDYeJUC*%`2bH z9V+rX@Ydm}yRJEZ3%GUob=1{@j1I^A`F7O1zA*F8!v=l5q^n0>vhUc| zJ$?0#q7!%Xb7NLLp6a@UHzvj@wCrr`>CYPH9zWH3R(J2O=YJty>wn(+OV;n*n`aZe zXXE9&w@-)8V4LM5U)ptE7UE8Mf`p*1$)&K6>*gu>2_t^b=9B;zwK=p0I z+ht$Q-ZIW^WSq!6Ez_ey$@wJ%=gzO)(Z|F3TvuNLd2Qp=_g3D^zKP&p| z%WZO(-LLq|%OL$eS4VvM`F%CtKnE_&x2%1PK z_w&lkV67=PnwQsndothSP{g9}_-fN{+HtjSLtCmRs9$!qII+@o`)vhXvj@k0FMs*s ze7x}f@wqovcL!w7E$=T$z9B3AaIt!#)Q*}HPmdb+Zey$Z!BTYSsnVC~FKmT^a`6n0 zVkTUEp)|)@z%WAK$G!Bq()qiR&M$x0z^T}xpz=#AcbRSLdZu`pJi#^Hp?hME?sng` z@p;!5eZ~bJRs8N8Zfk9`-s!)$;f&}V(LdLy~R&XpV!==cCd-n0$eNC{JZkm{NJ}@ zAu_*z$*+muSM_sy{qOCT27*o;7k_@>OyOVUzgF$z?fp#Ly-7@~ddhx3_`H1H{+h2v zX0zw^*@dhw6lHbdP^_C*-*DP}f+^pf&g(fg{~NB$3yU{{HvI`Or3p4gf{(aac!23T z=l~Wc4%TZ2I}d_)-XR@v137Jl1EFf+0mwA2V#2~e@X;qN38!*JFMUtCp*^qM_0AWa zv95Bl`4v^-lbM$@zXK? zQ1_eaGrc?;op^^59_^4R&^`2VGUK#H-}?*Cob6GY zIoDXS^VlqwQdgxnp~(T^FD~YLa4a+470I_p{^h@g2WD;3IW+q~szsyGj+>ooMRj4$ z+YB3LJ8mS#Gc=q&pvmCCw}bP^E&k~Y1-daa&m3A~ZJlnU)oaT6DvNL0 zubH#9S({z|xAUsh#A8zXcPU+rbNcG6c0WmRX7jPF9Dmm^F1N0q&wS0QKA!O$Z9BbGLs-GnvRDb5frN5O+e`{5hdD8C| zX_xx^mR*T`2Z=)H~HtM|JojM`$c{Gynk!Me!F)c=lbJuh>i0~ z#M-dcR~Pwm3O`Z`v7g*_FH<=$qJI6d`5GHcnmg9CsWzE0CvRA`g74a@_fxkwoc)mN z^T4ElX$N0OL-qm7x52L+q;@dHu=p_^w|=kn|3P#@($RutpFfp9tNNR8!(HhfSIza$ zUH|TH*w1c%^F?CR-q$~~o*#YUTvLBsMt6x#uBfik?-{+zs+gp!c*GmW*og6yX{r(r*H*OKllj>t?W97x>F4UO1VXlf`$GtM=0Hud( zuWiv@o0J_A*;1wS@Q3mp=G|3C)(UP|YHB|DvCz_~Zvy>1cX6a2_O4)#U=O=-|!k2uO{q{}nv zMl|162%Qq@9PIRACx`9r5UXjcf{vGkzPz!*>wwq>witFVh6Y`R22LI3@Eh0FB3AS! zeVMaD@aG5bUd`Pm_H$Ow3zM2zs^%$s(cyJkOSdGa%ttx@5+UP)EmOa5xM^!}ck9}J z*ZA#zRUbB)_Wuj>*RUIoLCJz#Ywjg&kdozH^7(4t{`XNA%t8~mcks+%)?pmJLa6c%1$8$!KIZNCxyhY{VzlCoevYT!@JVk2VpZ{-XZ93$%EJydo z>AcfAsYjURt`45=`s3=yI`hx${C&A;`}rmn3#lFUwz#Uc`r{qhFOH8Hju&w{m%I%X z6k5AkmG#<`qY1Tbd*{epVgFV5YJ*|+zTfSe7}|dK%Kcq(BzT7Kh0p8$-H*6h>Tqc1 z71LRdi;wm^idc0hX~QkU(6Tuy8*e8@OrEiqLrlsxVzuX`1+E-!QZ83trwInFdB0xa z@(MN2^4wU;yIzJaj8EQV&H1Kf*X6TgVM&{BZ~3vaRJ<0NpI`8>cVAKH$*#3VT`xZ<8nJcz>`J=*U1qgi+5(4G zlLaYnUK$*FCfdJ9>W`zn&kL4)LfZ;k{=B-XW@s!~SzA7J;TDG(30&QiZ^!@6p5$*S zbZY%WwI@1i{KKc||`np4GGoT>L& zxON+UziOAa^ohLZCH3mFiXIxHX#ZKGdw-FO)3r zxL)wt{1-FrPOkeU@mD=SLuDpMrMu7X$v#DUMSqK2j8}46!#S<&^2?_p9|SMVnlZn> z;Xl)w2E&LiLVo|9N)KCYQ#rh1-wd}KEf4v#dAV10@HV~E=S#L(`2DfZR3+nIEK_BZ z4Ceo@vni1EH;-e^-GV$L+fVqu4tn;XIqJ)~(%_r>JXXI9aAmg3wSM2$`{v>!|Zv*?3jyGGXSAEKD^ z%Hx)U7P__PP3QV7`pdlRU*7R`W&fm=);bkE)k|fNsS^<0Ybb7>uerAEW&E0ZyFa%m z=YR4%WT@=wZ|OX9Rkcvut&eAXj{2=yZMd`lu*?71HyiSnot}GR_W|Y3D$_e{tjpQo zsqCzrQE{yP$dQED3r|G&E^s+~5%Oz(_3EUN$&{uOYrQ3HnUoU^TRT#2|6alJS1QJ*X5ZZBo%yA5;qT44EVmTZ*8YFtzI6VH8)@$jzFWB>`bM!;;$Qnt z*K3Oxz1XHK5|JRLcx;PA_kN+qfA?=(-TiInhajQ93+H7_KF`a%OWNlC)1Tj7WF9Wo zOMKUPu=IS(@9TfU4IXW3yQ!tbGXMFa7e!hR>(mS;Xne9L4bQ15sVs7QnYpV&PVRQk zyw|tOH=kcIEr~(?&}VjK1I8V?(W-Atxpa;t^d9~!s-m$FdVFd-mN5UGAS*jV{NA`!ba!oR_1v6bd&ExUe}#0)7v|uchKm>29o<^al;!(Ox@ORH?n3i& z&09f64;0V-Q9e?kvqRsnw&>wkzo%amtJp5@`|+LagIWNa(SgGFx!(^gK6EAOYg&hK zIYa0Bzx$Lo+>?4dU7lI$z;wPfpXUjsyz1a^oZXdem9TC9eSxdNQ!WYg+bG#g^x-cq z4z@qJjzPRJd4@vwtXs3d42!?@4fr?KD^UYzU`fk`1I{w(SOd~Z~p)9&8Kuj z=E|hW%S7Is<7d6L1!O+RiPIZpHZaC8+X;Wy+*-?G-oPDIzx{TvM@S!pwC38{P>` zw_a~U;scJR+*j+#6FK!i5;jU)-sLN})EA2Z{M zjczV@+rQQA;^gjt%&puGf`RKg9$i#gocLq*{_nPI-4i};{`KY6(f=hM@BA;x`}}PrD`@8aZ_NW6{&-stDeAT$mYG#9kMz6#x?OPX=sc~ohvA8JljikEk<87(XWyix z|2&zxpy}SBq}K<;HrTnY{wCnWA*s4E=G~{Mr=ypy-FkJa!Q0ZOucmIjy7m0Ocj@+@ zXP&>aulo0+`du$HR1EdE{mXp)<+>k#5l{B&?C7OyPlxNhzO>fgW|#Ux9-}P=I#L@A zF1Nb*GxA$AhMG4fop`;|uXOda-_QN-%nPryoODy@21ic&#;wk;&y+-LxFMgmOtwWc z?l1rPZ8a4-5&C<+9Qs}Vec!uJ#sBuzJpEMv)BfLSZvDL<9{&IOP(e&*ZutMhtAB-m z$vMa+93d#Cb37}xpQ3H*Z&XyTK)fFD8uXc82`UvudeCmt+d_qZ$@%{uyp7Q-|7jmz_j>Mj zhCQF`_Z5A#kFELn<}^d!fBxg^|9;(C{Qut_h2zCfUrps+AGacGb@EiXZTerbo_#rS zr?KN;(~<9W^1nCU*gQY_!2V|p!s5w}>AbfSm%J57Tt6$K_vk-^$!{l|ej1`;-LUnl zssG)U$??{eKQBGKlE0K8=kMif&;QxaH}>5ev{FZW`dlVndD~wvdf)HaxN+ykjXNLK zeE3suQ=k2L+P_n+|0^Dz|Mz$PLgD76_io*|V^RC6q-TrN#URUhE560;KRS=)x`^fH zeR5CyB#xXaOR(M`dxLMr2CInjZSQ`ZHqqd6?{?M zKJz{IdOp#J(w7I;U1-#L;Sd^dVCiGa9aelxrv7-4cf4Klr&Qh&3xP@_gGsjS8;`M{ z^EjudoXTfB?cRilbB!l06#JeW_H~mx5pnA2v#83>#bGmgmKF$=&h8A9bXze?`k~f6 zlT~MZA4kQAUpf8jMz($S+x}Z$Z&ruf+CM4!x^D0Fxazn4U+u-#%=k8iNE!Je|)2CkdG=pYM=f07*`)1Yw)6|)7 zW4CXOZI=%Fe$}dmx%{_T#60Dzzr(Ee$mG|0oj&SSrsEiNseT_P+iYd>v!{)1Kn(-%s*)3QII>U*RsHZUTOD`J-S&FhyK9T}3{vtJ_66_#-|**L#PWZyvk#V@`o3OF zrqtJHhkkr_S{RYJeb(*m+n>z(l=ZpJ^qRiT)QF8|cdK4(|9G|Qs8?m{_W2Q$ zJN+MtXmzu0yRvTo;%jG~bChzaE@xm3yI8m)Sio8<=YH;syxWmFmzFZU{nWm!;)>PP z-`OhD`ER;zjIHjbCxRE z2e)j`x~R)G-};Z`*7adp(^59SK0hf~%VKHS>O_tV;aw36yjhofM_GD#RQx}_{-lg% z#n*>T@Bf+ZI-$?0q;+Q3k;pT_yY_Dhxmop_Em7xJ)A#8Lms_5#D3$xUvYhKrj|J=X z(%yOc?%v+4b^FR@r=(Aij){>zmo%?2yZJ&*qGo)AR_nJ}9#Rj?_uI_wt~{=}Yu(2K z%ci`to)s_pz;od=mzrOy9rmk#XGQ17Hh-_X_uDhvxy)qG@y-=0c2;bu-&n==%M`b~ zDU-71y>xbROnb@aDU+NwI&o_1Opnt2|F!Q~$L`Z_8LNCJy`C~ntL2&O@(`VAPo2BE z|JG{%X-ZyF`F+~%$41Yr`0BNvoFd9(zi$7@dbdNbe#R&Dm5b#UUwOEUuTtHj zyYKWBS=Fne%1f?h2{>u}UNz-eGbk@vV~uRouqDW z{}FrnZHKi>sNDUSW|Q~7ctazeBuy{#EM9)H?Dn3QyJWA0UUyF2>Gi~TwYS&PzX$bJ z?O7icq4%-Ow`=&qs?yrL2FJs*22x@(ppwIWbrJ z+rA^~t5Q`IH|uX$;*s7HxvavC{IGWe|T70Ju-`5&L z9)`-DE%q#8pZ}zCwh0J$758{+O!~s6uNVGuQNX>t;CShr>08RS-@P05wXyWreF3et zviIZqmM~TtO;PpS;kB(eI>3AC5n(s!2@g(Ajz0N2O0RwXwX8k2wZdWqL=Vrmo5t#W z^Q*FM#07&km50nJ*8;D*IC!3V?Rkq|BxoV~wUnNd^Q|7KAJ@F(`mZMEy~);Hm#*Aj z*?ryX-sUa^?QpvbTt~ZZt$+NXdxpUE+{rT9I#yZUd1oK(t+<^lVHTYz)HpTsUY^PO zds**RTzzs^gZPoM>nF(5~&Z$+p*L-?|m=7PPVY`cG;Xx4L-crJ}u*k`ryk&ofUyH$T}=p^URJ3fUgkK`}E>-RZt?<1K7J8fc1Zmf$g>FU|PO{jdiu6NO0 zv+bTb&%)(n@^|@eyIfWtoiqKWm|!7ar9Bt_h2M|f?RsI+uY5gmVcHTIO^(%}x1Xl( z+<7_R-+k9rd)Kw9wx3pB7N?{eRlfbV%ibqDetp!HNj$;rZ~x)Oy3;Nu{%;$Z-{tMz z`*_#xKU1gNzS@wrwSS<>DKC#L8`Tw8g5baHm#y z*6!X@kLuLowr;)lFx^J|+QeglA6~vQ`7-su@2z*sinqsVzBfO!beX45OrXxCCRJI- z%NdhqCVgX__U5q6@_@bn8>-BHUTm7%CjM~UbsY0~Mc(zN2mfV3Imrrruc22+kbZ^mggH!WouZ^9q_wn5vZ>9Cy z^K$Y-zpeeWBJ^cwjMmg$zbmKjzg_bFm)!h5@uM-j|1*594%(RSB$XfUem_9w?w%cT z7021+<&P$X#;FIL+qE`rX~e_+%}JsCT?#Gvr+Wno4nN%_|4PN~?zI0KxHl#ojk=rq zg1KCXGphVGtJh1R{*~n}3rdzo3yP<2zM19peQ9OMk54o>Zg;pRTfH$$aE#L zWV*a~nYKDm>;3cOusz!?Bz-RJyZxc&)W2kx-7~yX^D?F%-2JP2_w6gwJGZoL+xGg3 z=F~Y%{E>yT*S-GK=UgTC*5jZ7x7aVwwxn;dEtkyBRU`!8F1;Od`u!Hp*B#v2=R?Im zJm{EOslzS*YrBfuuZ|sJvlgEXyZfHI^}Ony>r>nWFD^Y<)Vgn>&AHl%<$Zg6@*<5b@o6*(h)V7^|l^?r$|K^*|Y)$w(#NIEcX^DFJkNMW5IoA_=9`S|r zxgI*g_^tE3`{zuZ)~%%A-z$``d)?_B=Izgu81hx`Jju-6kzb#=Gf4Bj{?wz- zi&(2F4(mh|KKH1s``W7hXX@AO>pp9wJ&YBy%k%oFx-n?l!p38ISGLv4PCW5MAkE|A zzkkdwJzs^lyvzGszCmx{Q6YYN0qt(>V_OnVZfx9idy1U%dX|rQ0-4nlA{sw?cm=%w z6U4kV>Qd6#X5k|arIr7?4E+zeW=PCgu}5ph?KJB<4yyZiJmTJQX-Q^R{=Hp$mmYh~ z;hq>*CRtF@T9woiz2QJ;i%M#oPDIboN?s1d+lS_bR3@}`nHbkaXw)x%W0HURyGLSB zyq3r`t)301_DyAbd~LzEbc<7$>RwK0I-!x~^vcHLw5FBc$_;07W2gQO+g4ZUdROkzR}teWJk9Bk z8^v^vYo5Bm?&J|V!T#b@r> z`|_mb?WR&?CDw^tx$n9r%r&TxSuUfL8x=j#*4@?aq#SbCexQ+s?}D0xlc_b^w9lRJ_FkA17;XHT$l<-T@fMlJWW zDIX4=(7K*mcvAnXz!otBxyy(CKi;w}|GM;c^U#!yKI;!OU;gYB@+s6G9iz4g4zlb3f({-3pdz4qgqb-;2Bb@r>&#<-wmAYJ2?d zIxpGUSw87NQ>v6&d6IR|izFsf!(uZF=4}37>{x?hg_yW%UAOZI!OCG+@zbDM; z$*J|}r1a$n+h)bQ2>2(ap6oDN>(R9Ku20j8_a^RN?R4l&h28geX7ZJnRi~!P1xjf+ zc5DkUUS7n~nxUVvk9FFPwi1zU|30g3o45%3NsEq27wu&YYAAR-S>keFgjQtp&Lca1 z%-V2olA1)qiLxKL%EvfA*`6|#J+(u1&Q#U*``&l%Es%Yl7j0M2oe`?_>~Z2q3TH!EK6x^hiPQ_B9mUVra{-gwR1$;E$U zq82(7P>w63`rb6vyou{pC z-;QILHg)wemSa9Utk)iU>uVXx$DbwU<#E2^!MklwqnVc6eRNXl$ND>^9Bj>Rw%jy2 zU#{gAv%UBBgKueH_leF6%8qyC6Z^c`uf+55+}A~C`^@+9&u{j*->#(+w&d7BO(V9> zgIco}` z|CXo}A3Quo$@0>UyBVC9HIMK9AeEp0@#i58P2H(auCyCH@8Ef|>i)je?+flZxcXe) z(Ej71ZsX^q3#xxs7TxFiKkxC+t81if_zZtFp8vZcV!_cMU!Le|hy2o<4w<~m>^~^< zfrmTw-HYXxrc2u^m9_O3)&+bhxBPrjasP|s`%({1>T?RW*|dh??60?LrD9cWo+-xf zo$nv2)XTK#efE9RX9rv-8L%^TAD{aBbdI9J~U(@&e834huWRW2QN%QLYq<5}^P_+{2^KW%ujm+O9=V0z|W?$&KL zN+0To_j^yB6z8L|C-(d9pl4>~A-kS$D`9RSA;pbg%>^c40cvpyyrI$_X+gU5U&z-)ucK-*% zRk7=~Ee#Hees*(Rbba>X9WhVag5q;O$7CB6v)^g;S>1NH{@WzI$&8i1ZZ10C-Mag7 z);1{{ef#>mOy)bdA8l6>xPGknQPIu~ArCh;Ygt;Pu5B~QP}E$a{pm+VozTy$yZ17m zX+E_)TO-e!{cg+AhQhxZ0?i$^r!{Iy9HLitNwBSdH|f~hwWn%LcP`{lj?RzO)(iJO zs#I_M<=8qiWjTEgBhiY4-z~;Jp04Qm?Rcq2W}WHYyOw=3UT``xT|cIDp0oLFQ_q(Q zM*$Y8HA{?tK&1{knB$-_>2aZNK++f=A7aIu0!AJIotyqF*X{R`8nY6oF~V zr=}de)m#25=lanySCI2l&Uq?qC|VM;Zfck6%B6SimTkWJ#Hq{BY31e@B3-JlH2M>F zU%hc}UG`})@G#s7nM>{omflBC?Gw%0dP?w+$K$!a*K=LhxwT&2;4QV?+z{fl2|HE& z5-z$f|Mh?|Z*o~j`-1aGh2KJ2lYZRWDA1~}E_;XP& zGbjJp3T-Ej+o@;YMu)g%6z&b3S0dW2 zuFLnn-nF((B<^U@)-5rKcU6`ufedasV^q6DK-|ajRz-HRm0xCMedfwbJ8rL-@;&%e zy_T-1*HNYTpfv)s^7HN|?aq7J$gFfi_HQ#przU5PZ_mzk-Z9s6w`zUAs`dMu@Z80X z&$Ca2pZY!XcHW*^=br*g!wua%s}}J6yuul@N-#>v(rwqCcP=sqGoD7d_68(uclMYk z@YizMFP_jtzZXw2C~DToTxTw`p(SwEM(bOZZ;U1_{`WlLwoqy0FY)INv&%j7-q-g< z6i>LHcSDFRzcE4i!}-S39eU|Eted7^Q@m^QLuK*ZC4p0A{uY`vPBvP2X_4ODK)uI` zuinRhIBZuSBxrH*;Oooz=RHFdb|tB-@>PmDxo`He$lDReicI}1*}QjhL`K)8_n5xB zwli;1<%SlU$@6>P?&`acv_^SrcvOVWWOcoXryMs$e6Z%1>(STKUuqzH%CWN2Q&!Xb zyIrc~N$JfTslh4s~Wwwp08R?Vq!n0!tl_eJQu`RrbKlM7xTg?z z^iQ{Cq2;dcld9Xxk1)Kill^!^Kz!<+EkDX@JJs@2Hn)AKyFN8!{;s=hxd$HT9bna& zUwzDU=AVZOtGWC()=xZqi|^L9O%b&(XXR#?=;u6V*}j>dd$s+ZD^EARICgzEpV_~L zv#AVT&A&gL?^q+f<8j5^GsdZN)(2`OhwiQY7gsgU1Gm0ZC^*VGcUr(27mu;!^B$nJ4CsXfk{q3t>_kMHs>RZpa z=hxdFiAZ{~^YSaM8HRt%dNM64Gj6SU6l;0w!lGM>+x~s3dHL)2^b#Tc{pD{@ipT6- zo8@zX>EEe~t}BZbUn{?6Sksv${;~DM>GNwk6Z1CqEDn5;?N;{3Dc1AxihZ72Q@u@# z?)TlVxjBKKt2E$&%+Kew7uZ@V#Ft!pmo&3f^+oWt{V6y8{bIek`$VYfQTx*KYHPGA z_D;#wkhXkMDY0YaSg4s+;z6M>y$?Fe zLR4gZdr!Vw%>H9}>eQ_!yZ<+E>oU!7{yO=h)84s9%2ynzD9A2k*c7ld83J>Xo1-ey>v39qR+4Hhl44I6Iolv;LQD%>Hum|GMlFOkZDb$~v<` z`jYXDjMjxEY%y|Id+upZuX}cA`{#ep15bM`;CXO*{w}!%8vQ%g)tIh4D)vG42d}6_ z*;VgKHL=u#pLld%EnjhVZ~KD66W8h*f2wc#_n~6zvX4?>``MjO`*Pe0W?srL<>kFh zuJxUEN&%rat$%g#Ry94kzw!$!v&gEdw->MJR93$dZIHFvN@PsD43v$?0` z={xzVy73lqecd-7>Xt+5HEi-0N9BL~yLR4_kM|q{}4!=Dhq#Z>FC9b#?bL-F%N1vkU)hU6=d7?aTyK)-%h?GVa!R z>(s=vKQpWOJ^5Xz;UFb-k*(_b-+7V0JOz0o4c1tE@Msp(Ijz7oFY;HQbRAo%{CaD}+?a{c zo`UjQEqQP5&Yy7klkFCk3oaMzSk^o2mw9h1(h?_UR>j!V2p{J$9cWg)QSJP**Y4R`SH&{A;Uwwb}EPaEI zsZ#5C8?C&V*=jz2an^j)-72PYVb!fEPvajNEO6SkEj`2Mi&DzHNyoAqGApm@+k7~x zuOhKHzWX584NT{Q6O9kk2A}GQp(CWdVoeuDoBp+P5rtdux8RDJ}fe&3Ke; zJ=cd9#Ey@iTeJ2QJKG&udaS72`s?lJU*YL1Pe?oO;=9aL z@n)6(+KpSzTfZv3X2Vw~_$4kfeERgjHFYyDpWj+%$MJt+V%vp7)1O&bPpj-bv|U~_ zV#0wO1^fH#58ui!c~bis{-fzU*VE*p| zx5A-1v6{#I#wQt;rj~OiPFwB~(Q(#u`kHswSnAw5|GwhCzr0kW{=WN^>m?ufu4;vO zYM+l-Vf|a>n#k#zq}%J7_$Mz|t2B>ew(ykw|IS{$&h3BZ-gTpIFT!^}TokpC)!Vlu zdqG~h@gv>LZ1&gu`FfX2ax2)*hO7NAU|P2L$&Fp|`+^Q_>-rY{OaIb^KR!9a2M#n8 z>i$}LW79@SwuFMCQL9ep8(y|Lw~+~xh%;}u$e?Qa?+@hv#^s_crDdtAS@)r;A$H{Ijs@AlP` zbPSxRyZCH)T*B|)%Z^R*KGc8Ih>6{G`OiL~Vh)2DCy#e{zWV#b!hW57)ybISpRWs? zZh9(Ny5+YTi^OBs>ijuRp01y3_=um$^nI-L+WnuW*0M(?G)$G7nEs{sAY01b_&JZ4 z+Lm0}mLPeN=b+FTyST+t^83EG=kX~Y(BYmY8YCRb#8EZ%`}Bny4^;2eFIVzoeY3E3 zF~^NN=2>mqRPHPmzp;R6qvQHaY0c!WCNUkMNA020oIZ1Bthlv5wmCI7^qRx$!_BPj zZ?~qr-F|GFShRd>@7l60XHOQTtp4S~k~#CrtUtO{t3$rVd;L8w@`s7%xu@1j`Kn_A zyq{Hr+l798-&EH3ef`dxQjHI6yu~Dxe=qnedXMjwMD_ms2?ry81f1M5;iWt8g#B@o zzy15VVE@DY`+1xk_oOFJ|Caaj^@pq9;{9U8Z}NRO$2#$c)t~tLMpd0%mV7N;zuMXy z=6f(LHvP+H-W#!tZ=1_(Pw|Bu8y9u6rgNsGy%)Ov^t#ym=>jn~&lTN_JhS@7nj2f* z2dkIV=yc5Lx*t|6CFhWMd=pP{tP=D~E%_1j*~c)fn9vu*@u zOiNYqjibN%Iv;R*X{3Fbk?7V{X?*#aZ9;5=n9k4O`4eO{k{%>j6-P8DB);vr5Sq5N zS!~S$L5-N*%~=w1R)5b)JyyEn_%14K=DxJkO`=yhk49|Ra@Xmq!4^i{)w3U6hs`ug3Kxle_zNL^pD>(;6@C+o8k zAJ0lW$d%{} zG+|fcFPpLw6X}kk%}KQnc3v=ySoQbu+skR$64NA%XPnvhukrPrPgy_tH!ifccrk^Y zF`~}9>eZ`jic43kOuOs7?-h6H)(!tp9r|}VDC*=|mRfxw0r{13*Qcr9-Lml@BjZ0$ zewGADze=t(%dc7M7BC%X-y=2Q#&+qm`wmPJHuF9hvNON+{G7!vgHl(1DwvbB^h|I{ zp~T0!7!=vEk`-8-EY`ZRKE81L%ZI6s#_F1D5c=>eR!`YsPk~Wmw@wC|0 z>6E--PifMfn!3MxPe~X?{7q@RXQqgU5M|O9X1wa5_ZO&>*wsa$|b{H^YQbRDHlRt#hICg8F6OV{4H^57i~_h z`rqv5lbtg`EIL*qLTtl~SC238d70jmKeo2XI_VgTSn`^G*GjkDex}UMx$;i^f*mno z`%lI!j*}KW{q)pd?V#R`cgy~4xe$DOPxO`G+dT)nY8LZatUaQ-?oV^emwo&BdQLtl zRe#6F)3WaM#Q0z5Esjs)tU29&=)U>6qb-@tkMFQAb`w0dJd?v_L9^JJeINDy{g`OL zJ#A}WuVku>X!F(O|1O+MKbr7$_x8jBpZgMP3VNBWLuPcYdavQM;ZDaB=3Cra%^!Xo z>M(2wyOVuqZDQNkAN{cjac`4PG8gK)-6?snlvT>r>6D?Z;Dx5txncGn^tNc!zGh_; zcyS_o|4LhHB^{MFKAFK{8xm&joo<<8{a~r@jk67>PljbqyTekn?SJs0-|u#BXL=mB zcKR+mEtVdoFYJ5S4(d(4Zu(g_f%~jA6EmCc0q!mTdloB|bzT1bkI{c!<2i+Qd?vrE zS1w)P?QMJf_p)lkX7;z&<7>Uy?@KThd=9;$aY*C#)KK>IhdZQQC89g>V>jeQ3EiIe zz;=dt@`0wO`(L`fy80-o>KrcYphVmux-TS!Yc=`b|Rh!J!wA&uog3e%2oq@kP_? zITMEk`(L*3?s0 zywC0<997f$b#Aun&PciX%w=Dr@9kMBY-zr*VZ)_*7Us=oPQ>017x-lIAvEO9y-Mqf z)sgxJ3St)~SIv9;-e`wyW0%pDZ7*dcZrorlnj@umWy1~4-%oGuxx7{8Ou#-m_U-N3 zl=4g|orq<}J~eA3E0^}nYtxgtJ7HqP-uLnks=Q;PYmY9S*>{lZ)t6+!L%k73Z|*j^ zA9NPq7ZdEV`}gabhm!*PdRqS%0XYowDmvyJaE!RWAi{1xp#=YHO6zUOJ|qJ8#Nes1eezpsgY@4xkkQSj4{ExY&k z2^OY4lGlIx_Yi;G_wBVWwp5BN`n2C7dHrJV&2ub%9qPEwxKHxH>zN_pENs!Ox2wO1 zpKfJwLNIE@y0K4N`}752Y2Miir#+y@6yE6i5uPbDJXCn9KPQYpc^E->)JJ!}89mC8$`R3+8)y`L@L{q6SJ z4Og=s{r~Xw@TrRqS^Fm+d~fFo5+Z0u80xkbv?zT=cahE((GRrM?V#g7Em!91H zo1a>py|iytSIYZU&k}aeefCz@Ez5DxN!_tjQ&Is-D z`tz_?Y09gv^=FRrYXyhBclZBR_a$YF*yY^~($m^MHV!>a($-8FoDo+U0)=gQvNXdKI!!$GPoQo0ieZGBH zrfM zTe`G(s%P^AJK2vVN<~kc{&Fo><4Gy|`gr>y1KrDQZagYqxGwTu%U$u_<#iIDWl-+5 zSAX~IoFFdcoxl3{yMqUN<~h9lyZYtt&$9lPwrFWi_xH5Oe71968TtpYvE&6n@PosG;hvK^1tN#CrN{;6BPmR5_=k|*K zzoNRXUR7Ak;VfflVief^{n*OdRyUq$e;2gO*yP#O95b)InA2rWb;nOFomA%iaZe}R zTfJ`S(6%8BxFT`8dbwZ`y@=!pi^rBgF+HeGV>SK@hcu<5L5Utd&r$HA`d zRwhHqTgSDMH#}i1`a9+NBCQ{;EA;N4U4Lcj_ahT8aV<+T5SZ@Ou}kP+3O9deZhhgg z@ceDNk`%>sBqY+Udzg-|>%abC`HO>*^DgjwH#nrW^-7Mb@EkgT0rG5OQFY(H2_WCF5)n1icnH3Zp+E^?vq5g;C*Ar)shkN`J zWV0{u_k{YskZ<8nKmCyPy>+q3aw`Gti#_(A-R1X(zW;tGZt1p7F|Q1G^Ive=bhv+c zukg9;(&~f1R94KWEVuiqq`1_`bcW;xC#SnxML1G?x5OV$UMv2gkGJz+*ZCz^ zk2fv7rr5dob(4OI;ek7`(`u&g%=(g5_>CukH<@M8)C9FRH)`7#NUEf?q#upHaqwX3 zrn8R!zIfdBS4VqNG5U#nGN2bz{%S@l%1<=E7g z#X&yYVHeJ@scbF#$=h+2eYU^W>6157V>}KXSXp5+yXCp$np=^JzxefrpUqfv!t8Jg z$7`O$Tn`UCJmM>uH8(b% z#G0LTpGqX99gNcMG%Zc+*&20wW?;CYVZ;Zme)$hcQX3aE9+djXSX_66cLrCr-i?bp z(pH4ke1DTKZPss$6@T z(r5KD{~!}Lujp(Aez6?q$2;A`<$4X1A{m7be9gI0m$9Pw!UoZk`o}n2WCM88)@<&J zeShnO!Me%u>T<3btTTR#8_QU!^s6pnxxutc-K|R4W;2Pbf6hx>v&8K17xfF`QN3(ZUeEUh#fSKxgRC>(2+4@b6lu7VhX?~k#weoO(cenaa zU5O9-J}71`Ox*YF({I@e?5*=V47jHyo?7F)Vi%a)kBQu{$*n+Sp=h({;{$v%)-zdpr|?`m zbn*3rQhU2QDl^!%1@cmlN*-azy>(&UntoM1&%G=n1YSq-Op|`CV!`#_`bO!0n}`J;bx-s5?DEJscuDIrM|!7K za~jVy`A*g<{U6ih>vGvYF-U68Xk^v?bgf~Rz?zrROp}jvxI}DNpeP)b@;GV3meZHE zv`R2;_H??t*5_T~Vvf@L@;xkF(h&k#?iZsERs_WQ%a-}3+Eja72o)*wk=D5L`9B!aDzwbcXmB;U}m3FUw@}YF@~l_vGC-=eY?s)5`9#KHmCu za*RDY(?!2ydM;~31Hu*9R-fH3JyTrgvY>(D?E}~SGNP25pConU%KSgqI(?~S+x2bi zvzuquWKXta)L{JBR}_D1%YD_9jS>~B)1opzzOO2rmb~GaW5UdTrPdcjZOWD8I~pUD z^5;yEapkxo8uD>t1*5Z()xPhwmbvF%FPZ&*@2-2l|0Q#~$MMS=NbI_xE&S%X(G9mn z&reRAuap(XXYgd7)7*xTH&!Vb3%9ZVNIotmw?D)B^sj4<{ZGtI#CY~~ZcmswkM(qp zuvv^k(2`rsiNEH0y`P!U%WHDF|JT9E7H+0K~y8kqJw|_C0pJtI~*2DzS_hS<|*Ho8`#{)7;wZzRKm9Fg2bwoyZ`)H zA`ut;Gi`~1?uxe#7q~R6D?)Q7ZLj=q*R{E{vemovX|Lp$k4zi>MEkGO-njOq@CVn< zl~;b-vmMlMDm`&fPzc@An{QA5aZFhAh2)km z)81Y;P74j+9rn-B&P+f{BDO^~o8L`vR)06+mg(DUUq`E@{aLVYHWTC7eTy$}ok?PR zJgxlWg{Ff4D=(|p3Ew=uRHu33^pnYEmyX+T=mh5-ZeR1?Dv9^n3+d*i>m=;0n*|>V z-sjageE87B-g~Q!Hpto-{o#xgx#rTM_*rO{v6t$w6S z#o({HjH^U?{iN9r++C5{5{Uwx=^h_!SB3S>(P(9i+qyP_*Pg@5u6cTV$IOX}CSBX+ zvz|UD&nCC*;lzk}tfyyP;Qi(^Z5LPP0;br$i7OQaeu-t?=jFa~;jMtwH|MsfCdEL?*o!TDEEdF-Xv^BGi&(ABPaxd@vHGi0%YrblqKbNtK zGvQ#iQpQ%FC-J_+r6O!orEa<=n|5}DVZ=2Jr_a0IxJhlS zS}zk2EYRkY!*l0qty{4~arO=GKM8#grgLo36$t%W~We=X*?%2l{`?$k<;q3^K4LxPtHetIqel|F?@m)bfVhZPhphwZ~*G4Rz5!jL#7;|i~*guwLS0_XDoy~df z5+2eob>B`uDa)7fN&fH08H=G%-1`_xtZOk2Aabn6Bvaq@DhrC;R5_YsDWcr~QBJm^gjYyvY}m z=NbGuyJFkJFFmuSN-oR)aCTkPj@Q#n*tG;t-+I3Ft^w-68hcoaZhqg)W-;I{+qlJp7Li-PJP@X@3ts+<^soG?4Ij3 z7qmRD{m>I#D?E|=_NUeTU+aF%c-Z|>ztDPfhKHvS^R%AhlYY#+Q_4{j^0-0ZWx^Wi zE%rzE$2uAZy?C&%V2=e)#?Q%?oDZ!&N~{z(!`Epbc~5R0*Xb9Z&dLZsI)6{!@3RWu zqc0~vlwF=I(Q&XTe3|?s+17LM`Ds}noSP2h98qjw*SO;LEB4xo=qt}Y2+CMpIWg?<92%>Oo@Dqw0~SaKl6qEnl5b$aj7&$XU{ z`plgMy9+idPkj8Ut@goPM!6+gorm9Vdov@X;-<<s?sebYP=| z{R_vp9@Sb2rw`lY#wo8@XsN)&*>}lc-iNx)M|c&t7^FFwC>;_1w|Bf+x->xc6_vA$(Ky)5t^`dk?W+zkEFLJ zboN@G`D|H`9BQu9Se^Fxj=jNp!-!?9r_Y~BR6JHMdFhn)cW!G3~Zrs54 zlEY3XiO1mJ_qzp$gF<}wELt+{k=N->36+<$j(BIxa#*u4<=4H}$@P~!JFlD$et-OU zwY}xD`{$osSjA8!W<2BSp)Cmq*$XRJ6ZT6>_=s;$j8GBoN&9e`U-d%yA@}+VyQPe~ z1fK1gmYDv5shfWz|3>?n&i@Y`f5)1%;f+YxFIn4@50-W8zw21j^PvKX|3(Zr(o^E5l+zC(qn3?-GtJw40$Fv9Yji?u}pb z7!u;Yn2O2xwV#1rU2R=X7w=zcez17$d ztut{K*R7Tw_x92&Rq;iZJ7jAPBx@bXo%Cj3FgvT-x{sxsHQ9AtQ-6jgx^%6}y3Qk5 z{9}e!=D|;^G&Y|R&^m2+rfb*H3r$nw_E_IP*DNaGD&gnyr6>1bQ>NnM_VYgk!|!CN zJ_ysc4R)E{@U-s8)ad~tY&(r7G+a4-TQ8u}eeXWsf0B9of?nP_`uum&A(^~)RY5#j zS8lD2e|+F!tRr`r{B6;WDeot>9*+;2{P0H~&mq<6v!vT!=qDYLx!-j4_sNq5++isl zZXP^h=dHP_l4ky~HJZHJ#P?;&k~Y@v+3WY*&=FXkDzS0J&-50N4Q+>xo^f5F6Jelq zV_oip56*A>4Fr{V+&tr$DxUIwtWllUec}CE9n0JLdrrPu@n^ecanxap2G-N%_YY4{ zSj+iGLMQdeFY}jNTWp$Ng~yjjZ41hGciX|VA))ePP2f(qvt<`%I^{=*c?pypy|Tr! zXzPjc4Gzwg>1D5#Z}qXJaesTu`|+9Eg%X25CN?P-wj}&qwK_jzrQRtc9_FnnM?_Cf zO>FbO@$caKQ~Wa`Vqbnb`yx(aW&-~a=ESW!WB}CC}Og zhSAG~{;xdr+33TOx34^Q*&OkD6V;M<(#X-J(aP`U)wIc#97XNd{3NWhtnU6*&vaSQ z#V&8mp+9%RN0E<>D-769_w2hQwuYlttzC?bU5M-LQg`)E)%XhAIz1 zvnyZueevO#u2Z+W)NJ($ z3vBLL@bZLq%G)_pKWUZClX)5x6JdRMx7waYwYn$P5lYK1Y@GHXf8q4hijrA&dUF|1 z%eZFvK3rrQu&`Zz-aX@on#}3;7GKVD=$gOZv`-0y% z>E`-q;hijQg0oaJ+!e1x%-hmb+E8?@#_Fpy!wd~a=f1qDVcBP;59Ykl+PUI7NAyyu za;Y|7ca05?wj?Z3IDb7L`&#z?)zw|ReeymAtuY&N-~Q}46&G^Vdu#?5SeF%*S3ccC<`uTFI3-rAhvt*TXk0 z3zwMoAGSG?5P9o9&-;#^=qu7iVtsMb|ND3sMLgJZXVv+)>b#E?nge&RYG?hBUNL*# zWe3X*YaMHTN%dM=o#)q>#i}Md)i9zqwxup5dqL}8!KRBpI_nQTQ~DxWpmFa?wIcfq zOW8-8a$diRoa!G`{8xlybLy{&4u%iyE=*?9)qa+6>_ml~MTmhC+v!)LO~=>WpQ@Yr zEO1?=FZ?!Lu`a=4*3;|VC4yP~Dm|H#=O1Vj6k01}*x+EMRwDST znceYN;7`e$VS$ZFX)UHaGcP^7Va3M1!%t{tu9H#DOVKSH%yAnk(%b5tO7ppvE{S7G z-tcH|ivb(APrkemsAT1cZJGGlge7?|^E+MbC615dbKJf#X{Z-ok;-AoZYVgxV7uY_ zgmU8ok$*q8HU*uLxU)}m^P`hJ30@NaIBsiIOlFIJ!~EXWTXf!>*sDIZf}1?+0{e{& zD+2B-*R7Rc+qrzU!*@>mzdMeu$UP`-ZxLwKbGF>E{@J-7Mtd*#{d9V!exDVSIHMrrd2=bUjbT)*03zby}yr99Bw59((HVnRa?3)6q3E zOP-1wM>d#t8N58QJuIqmLFu(3_U~JF9OpULZfh7Yq0aQzv4oeBbJt3&=?H9z`gCf( zQaR(?*#R0XeMe7SOpyGx=I6hj_nsVQDzbY|e_kBs!2KgxYE4VTHD;}X8O#iF7prW1 zFC=B9KjV(s@*!Lx&+*Ir8n^Uz>2*hbz2g2q^Q45%GuuU>(*g?vMA)XKUbeST7t_g( zS-nR|mpklAN&d6jGwO0)Zuhy}o$prO7B6PyC%k8Z&I{Mo5Uxwd%smZsd1zc&Bv)6tCiwvrrwzsz2V68J#mZP%j$bit2rz2Vn@&s8;&&(b~3KtoUmf<_q$QT zb&O_lj~^z*HP!B7oNIl&IxFJx$)93tD!xy%Tyk`VJl8&sW4}d~uwR&c{pa5e5;~cW zxEN==zH-lZ^6tEdjN@F3cpg7vb}etO)$yEH?#2~XU;JWgXW#7$`nhfjf(G-x%ErCA zJ!g?l!~@^!cH9fzZ+ZN4L00Fh&CH8A{?>WKhZ}xWy09m)OM3sUXW3QehyDxc9Q1fO z^GIT%-6>t=i~^CW9ZiOZ8+sVUrd_u2Z1Ga~a%zUI`i0l-W+6u0)Ap}@mwnhx@Ynm6 zkGn4{>*$!_WX-m7ez!r!SHoW+2Jd*b733|D(Ajxn&ZHClM>ZvG_;v1!%!>W%71vDf zN+=SzoS1II^`LtCRcn{TR{xo|T79G^1r)#}XP>vA>^tkzMSK>}Q1y2a>~QyCtN^zx+Lo zf8UF6`JDzvDRyjce|*;A{q^_8e-^$49uHQpHA|f-w)LNxM825QQ;jQ<8ytAT9~#4#|8M)mHxr?rXHU!}`wKui$f#+PEh`w>F?i@uZsP-4l^+bH2W>ty;gj5wwDO zStr)o~w2Gsq4Bj)qPvIl265+I3jbtXQIvj;2Ui-SI(X}b-7yb zwKbI+5>&TO2QNW3;+vN8W$KoMPRFJrf0T40be;!zom5)7#bKwyWydHcNj3e8`>ymD z@QbZ^@+}Cw$k}aK#Ad66my#l7I)b&T>c>tN&V0(g>*NX@wW3td@Zh*jihQaG_CVpUhmq8Js;(y7Wl&r`0S@=)zuuqEKfldRO8F2zd@ za%7v`d?z;F=D4(>@^R@^y}y>L`-p!QXr4NAGB|i{s=1#GI@!PPQDSIPR(jsSPic)) zRzI!q3Y?{Ulz(E90Ir9eca&>qmb>`9?TEgg5lj~JVB z&OF*1@sI0Qc;=>0pKLGjf4Y*P)NZ|W-nt;kdz&r03jA2Y(pdCC>(x`HF4f}q4&T-F z(SPQbh;FTik|JrV_6P*Ir1z)3FYZ-68&#vdZ`p~Tde_fKwfvsLvh%Tq6DTHTT3lJ# z)bb@{Cu?zK+LCPXSEnWi1l6Am;k7Aeo;un2^qHkuM){@_4D#NsH!S-ErFgT-W2<8#Q8=v=qHhjMEa#+ozOrapKPP5$8fT%YXWGODV|C zc-!iqf)N=9odj4MC!BPe{*Aj|?tF~vPZNu*Y0jy;7deG@o@ATa9WZ0P%e%5Z<-@l% zm-SaTVbL!z- zzgLBveR%eB^28WBf2*hcA}JlAjT5GxU$brIa{-Zpg;!I1<@b2(wz17@`_o*kwBdqx z$C4?*{MPC9?)W~?N=d6)etNNN*0-8EDR@aAPp0}2 z!I@G&8XN_e9}QnWjq6&<`L}x6f99F2JY00hTf*nggrouyMNo_=EPfag$`&Xv-8nRg zwQu?AKPNe#?l~uO{=55Clk@l9w6;wA9(qaV<9zefM7J62++xQPz)96*v$23(`vQ)= zpY}g*IVSY+rL5B|*<<&X+uRpbd{QfS_1zN>#p5!9ClBvha<=2Q-D4-OUt*lu?I&;UPL8P5kye_S-l;DBb(8UmC2!BX zua$fo^!-*_we#5thbPAdI@x)g{GIaj;?-O3l@ejQz1RKu!Ii!J=eOADhHA}sB#Te3 z`=M7FS{9Uew)ub)w^)yREb$iTdx4RQLre$y0 zv1-w+-H(D@;tjXDL~Kq`*=@gKez*3zGjp6$bKf2~&OK$qulFaP{VzTGH@A6*@4AgC zeQbgyM~xE-^%u&_nK5%?%jblHPWpHO-V<Ix#d6Rf44jA8~O!j_q$BciUWt2*L*PTsUKNJ_ObUjyj@RMJk{+|!~ zKd4Gu|G7SS`^nbdQ`DTl&0D%^*2S5-nVyPI{N3donlNp~lz?R=;`L354UfFtbsqoU ztG{GwlmCpx*8-PEcj-^kN&HK#}wVz9GLr7D_u!( z$+HQ8D@BBq== zquraP?R$7m1jqvuwkYU^a@#)_eD|8qa?26%c@fX-4$kH;Vh){fIDhgnz3s_g<il5zXDV@3;Cch@AELv0XQr6QaJ9b&AZnD{P>yh69h1)$f|74e* z%<6t3(U!QhaVgi!XGhPR-LQTtGaIvkC%Km_#gA*=ZdE%3cm7ApA+{?Q+nR6vqvv4{q1~h z&u2}!=C4h#}UXI&*u?49?VG5k~bLza{^XY*o`YnCkR zIQr=2dKaBNCMldxEL`T^XIy^DQ@TQ5iKA(W9^2}>PsLW|y2WKp^!AR~zIFGLL$O7h z&P)}1a>M#g>5b@T_x10nPA~tq=w1hB>=VX_o)2fZZ<#!OnxPPs`Sb631DDP%5qBI^ znKwKsva1N-6MgckD?MGH%3IS|a_Um9lYT;LEImzrso9^t|NBVXb!JfEo7TG2Xy^M4 zMb|5x|0gU8R9YLU)DwGBU-0m|ba~N9-Rmbz?%b4;v)k*b!sTgI)|Wp&`C;t5e7%@RUxukOXUgH?0dRC3~juW~RgH<`Wf_^CraI*#F!;4qO5s`OF{1xxV7U z)HCH*P19F?ZvXdkW`T{k;)K+=z*`#2+!YQ5w#?i(BgLJIkN=!&hr$V-O}`Gy{rP-M z+{vx=zT%S^KZvp1K1G7{xGTIl?ad3P0^>t&web^nfk^nV#6L)t;ps%a|3E7 za`Z2p;o-hg&z{XYe-`7jgRV1rjloSO$%Ks>&5K+lrb+RiI4)FG7*cgkCTT|D4*3bv zyY|>mExs^+Q^5ZNi+8t#U2c6Xp_BJfNitE6B`ocV9;otMBAdA{sQ!Ztm)3^ZRf`;A z_`WLLOx0pf=>D`jJ@dsUuP3XeIqz(iY&PX*;@;ch;kB~vqll+)=4$>hPRAhWhNr1P z4=x7Id+61xy2Mhk|IZShxE)jF{50-1DI9I)>U}<0lq-6=NpPm_Q~wV=Vr#B6is^t_ zHImFF8#78*8<;lFGiYD2C3N0KFSWc0m!ElXi%I0ah}>*-X~)yEt`Zv(J_eL;Nm$AO zZJs8-3eG%O!1J^sNc-^p=g*7N>!iw=f)YEQEIKkN_0QqoCr?j$`t&B#GM%1-Ucxg2 zcY~8~R?(Co_hZXnr`AQ4eO#VD@s*bSg866WE*b=u z=au3um&{>w1Xa_;r*xg>b^UnBp!nP!+z7bY{F{C0>3;QPpMs17-ibY_T=i+q>B}*K zD^{myv74&)`L(K=eY`61fAR+joq5L{Gx_V|((_$svY+;ko)y{X%BlS}dSUFP9Mc#f zy$xQcMUQK4(7P$b)cqtQ^?uz;+uS{yHCv}F+m&yBTJYJnr=KnrosE2ASQwCS(e=3I zG_9jt=9Wf5^}m0eINq_CW8#-d+je}~a+Q6xiPC?)U(2N%m7!zrLxPt~qdDJ$a|iltm>MS5DEsqWRIZ-1_VGd;?Rf zL>HsvK$mB|zwGC!u3Y%*XzJhDNXfBSUP ziIYMu3ur!A|J9a9#r6Y(&b(QSRxGI(rb_)%H;yf}*800^4qJP-?!-@B>^ncNn?H$f zepZ10^Eau5;>?`ZH9d;c<$ab`JYW`e{StazByQ%pC+lKcKC*iJUwtVhYNOt>?$cA> zmT!A=X~7~USL?oDt?-q>4_4)EkFEcG?8lh~Nef|)CWYkm)(Nkbj#o{1y?Cw7sWwrk zCAS~hC{E}2S&;M4W7Pvjn^R>=b;J#B-R<9c%JZ@JJngmXPMlPzu3x!PL;0@F$wGI< z`x~^kJGuY58(k#5RA&CLC1WJ5~E?EHg5$8074-&bv28dSJ* z&GoNrahDc+Jsqhv?c3ECNsVQm)ypI6v-iB>(v9F~Qds#|Ns-k_#y{t!=A!;8?{^*c z?>R4Dm;D@`lE0v@z-^}GwPLLcUM@+6&LWSeY034tX3qQmW@po!LoTGM@L`9XQPygD?h+V7GD$Wrt>~u9!E9_l#VaB{C9*^^wrS=|kymg+jN#R7zCl$r# z9EGiERw_Et+=rHxo{K&x$ZfAP?Zityf1#p-ms3v2IdC6xSbAlWkXwtSAQ{?r>6d+Ely z@b7Ck$Y@T@e%Dv9>G#C!U4Lv&Pdrtt?KP+H^urs`yx`!~T*SEV^n^9xN9<3EI`LKC z-);kHaJik}bcz%CKf%^nQ@VPILhGf~_Gj9$3y#4HPKHJFh+d0cOemti8&iCJsy6_vT@4S6> ze}B!tjmPDqU~EQ>vow$W!dhwHZu72IMR2ZE$4?*(tansq1l!;`fp@%z>v6R%u% zc*2jh>t-ZctMBPby}#Om&&c=@!%Xu_VuABO9ji3a%#~3Bg701*DsyeAu+o3@RKF#+ zDB{GX;zO<#qPh{)ttT2-|4)0>HG9LHOUwJ`#jdb9_P_Sa#_4f8k6it%zg~Fz*Jn>Z zukoJu=lpVUyG=zu{QIuITOar9U*)#TD%QQ`>-U6dg`fLVe@@hE>eQ=Wx82@X@>8jF z=Uwl24?a9*mn?pnbWril#^dtAyQeCCt4%s_`JIx;tL5)CoFsx(FW;-SJaT95ve(-x z-Pk01u5Mj+G|X7c@LJ}c%~yBq)jS%OTDd>?$;=%gHrIYAZlAS3cUA4PPfj)$e4;maC~=GZ5Y16idQf)v zS=ro@%DihqGjB7vwoKc<&!_fcMf&N|*vyZU%GP*Qw(9k5e0!m(RpEq9k@u2cHF8J# zPuHLCe!9IaHd0SMPhUWC-9AT;P>B`ugzopZudO`p9kENWz)0z`@^ST(oqUH*Zce-W za#MZ9$0Nsjef4JV%6Yr+*0J8RZ)4r;qn;-1irM?kTP|(yC-$pfw=%a($o^k6ciL(b z_qj=_*|+!p>wdlU_v%XrOP{(=m#_X~cxu*}T-l#@7Ixe3%6Mb`SWIW;jM4_1hy>x* z*SmV(wwbS=AmhQ|C9G^&x=yEj`N=!WWHv_b%rEsh+in=a(R4=hzaPt_`FuL|y3_ve z77UY1J>0hZz&Xz7D`txNoex_s{XJgmeaMG(;<+R9ZhYJHqy5cH*3&O$?X6@kp0ekD z;@V?Nr~hm%_;LQ+rKenpI{P(bI&NM0=x7)IH2`2XXp8&{>6Pu~6E{>L2d(@UKKTbE~6tXj1_Z^a(* zyE``MZhO7$y&3mu)rZ1Ql+N6?lwZVgyW{Py-rc=k=N5KXwm)0VzvgPaZ57w9FY{Sh z949pH{MdToOt4wK;y+cDho`s?=T+z`#a&@b+qdrsH*}YorGGzv?=c?6U+jV`jshtu z8S@(Mgl9$iSuCElwz)pQvhK@9xHj zqvNX=g#F4``ET~GYx%EQCOG%Y7v<-F+_(Q~fyeU$&g`%9Kbx}t46iTwdEz;r+@CuO zUtfP9!ccW<4o~z3kH>kF)8i&A(=>cNVZLm*LaA zza86uC0qXN>B{_=Yy19mUt3%C`0MHV`j7JKV}2Yzy?kHAizD;pcYc}NEB)TYvoEIR z>m~b|?{~EAE507$*IQ>__u$B8ar64(*N6V^c);8CI_BTUsom>iEWWAx+kLZ~ySv$a z?`53`f1$`3o6lZ0|M~p;BDIU4;V}UfMt+%v-lm4?3+#;*`qh$hwz`<@%Wr=e`~T`% z_kT}Tw`^Izujt(YE&mEnj>^C4()EANc!sSBI>Z~be(#?@5AB0~is$`(b}c#nM@_fI zn{Q$7|DOA`xc_d&>udIVirzgq%>I8mfBlS-$o1DjW&5|Vx##_Eq#pV=IqsQDg5jsV z{_jg|K__OY9KOKbH!11pckYuN3UbyiC-1I}+WKhyEzy;;ZoRd7JWpf$)gq7OW%a4A z-|o7tdSzwDl1DxKg~dM~Y}4oe_G85uID(6xcKFkdWRZvcgrk$_S8#2s=GASe%6Z9 z*C)=Ly@%zotlsh;DNTn?s)v0zJVnBPrlwkZUU%lg)>5yd#oeZ^IlJe)4)9!EXSw9t zoGZ^KN-$e=34nU6Zf?&x&(CzznddsE(0baIv`R_li0J{xgcG|=f66p@$r&07&NuJu z)^b00?)aCOi!G(rA?H3R898*G$j{y3wROuZ`Nq~t&?tpKN=SyE+j{TYqSJ%tsd|3h zIxlBZmgkK*Uz|3&^cFofTD`dKZ0S=6tBnDx9@kADL!Ee-jAng`Nvj9d97Pt&i-w7-lIJ3f7LlJP2w!I5ZZ->Sp)OPr)Ht`iAe zlrNUd^HirLAvJQAR!r{dqmoe@F1e(g0acS6lcE~lp4gV~b2Cr%NpX$sAy1cbJl5%pkh*6_=kJ>z=%x2R_|GZd$a~9UbhT5KFFV{Uro(bl=&AnKMgQ*nJ1Dc{o%4h( zN|V%nJX7E2;k#X@$i$;}>F4Cqzh^>&v_4*avcASbQQmb$yMWQegN@vp`y9?yoN&H- zl`H95^3GXO2WGqzS^Qaf187V(rSq-4PK1=V{{8M(3LHtjN-PIo7sNU34eJxSwyed% zZ(oSU2ED}n`PbiXTk^hNAS|-X<9gug^2p6sMKWDAlk;}IFnG4@4&U2JUON|UjcVU` z?JnDd63GO)B+wwTf~4|_r2(;uC*~dQ^=S+C$k62c{)O@C)l_!7o%R2ZYa5kTe|01^U$#KT-Acy$^wg$ck%OP|o<6>swDF0>(xi=B zit0=MZf1A22}_e{ja>0q;zWb4prb%^U~T-(jRCQW9#RQDyO>x{$*8KG4AgYkJF_?< z{p)1yxp~iz_3FMnxBB^sUs-EoN}|?jU%#{J`pny6UEQ)V(Ym_R?`)4sDi-9>SH91= z``!p=K>|WRHHwRTOD0@8py2m-s|2CGzN*fH=xE+mnR%x?%aw^SlntpPwfB9kY zT}g7%d)dq*1%o1%T;DF$Vm0NNk+l<73{Osyb>rT0JJIse%M%K^x-%sn zCq}HhA-M3$L;JUzqPI(He-AxsV-vUPQpx1m+XGwJ_m^CeaJ2fW|Mvd2ygz@uHcZ%|@9C4a-8OIT7RrP#JL_fpSz!YYx0vdZ!1b?PgMTd2 z4%C^(#kzcBZT6w#-Jo$HVTW^Pb>4(l+Fy$4efjxKMAj@PwKUNZ4a*M~R^3^(_wl_O zx0Jf~2YgSzTx)R$CDw_kVv{UYqIv?+@otZ2$LV#p5aK z{yc6~pKtr{_oVuwrQc36U$a_Y_uSR%#xb~bkAcr?bg>;xh3JHVqJ|( z^Xss#rG9<&njFDm$|+wLHm~NFRcVR&d7QgQc6r1p;f?1e1xK!%pto}WS<#5cZ*@Pt zIC!Y2ReX2I3cHBKQ?}jRc00>7?|Sz9Cy&)$DJ|F+v1WtJ_THmciWVepZ|=JwyXFHU zJ3}(KNGat#lA?dtk$ZlG?}leLo~7`=?BZFF)RLeh`)}gnl8OFH4hv_Tyt3d=@VR$) z1Sj*Xs$8&i*CWG-n3<(1v)Ja%a`bc52rA$_zu?E2rk`1U?t)q~rz)?zty8z>RK)Gl z*{l!QpIBbLqxO65?T>2T%kHMJu1TIBTKLX$x=ckz?-P&o>A9S5L;qjxJtchg>{{uh zdtO0W;V0hDyq)FyaRs=kdS=62wX>mL;seqclil2PzfYO4CFG?4#zlVL4|oTt>1l48 z66&L^bu~ZTBRun2g-GIbllt3QA2ikkeZIdV*K^*kU-_@X|E)iL{a^p-7-`mP6K7i= z%6h6Z{mG4xNy^vn?#iPAKReNBr9}QdP{VY>7w3i3C){4- zv@2Y~J?Po8iT-_Etu z7kZrRaw5t9<`gDI~_j+u7Np1I~Th6cVtSg}y|7v0vP`C86@E#_g%k z^NrqwEU4LQcao!6s`;p3`j)F%CxZ3tXG-WsXntCY9`c&G6x(zbg5|Ry%c?GbOWv{yH|?9NKSi?E>P`(d7J4N& z{nUJyU)pkhiziR?+I!Ub`qg-y{mHOFiE;lQ;br_&>)EbPyglt(=6%{*S+G|J8?iF0!>to3)_X%q3=%l05!r-kj-lePVo! z!Tr9F@B-hxMTIkevq!&>cbU-B{EFAnVt36JvG8ykhHmMZ55DZa;O4qTuzS7onOMtJ zCez$*Y;^I`O+6?yS3^Ec^dc}V_MoX$Ap{ei@!b4lK-jcGlkPW^;N{Y z?aDcw|M={m7NxJe@@MYp&8tCE+aBK@uDrVUWmbuj=h}54%V!HWdFqJYU9=_EP?^Eo zlDBoCw}ye!r!Cs1(=LS8)LJSpOuyW;Y|WL)vkwQhEX@*)aCIL2g;Kt5d@==RNfLt@Lx! znIk*TcOLlUe=Jq7p%tY4gn{g3iQ*{qCiAsyWo}1qMdW zvpv&)s%zF<)!H-8a%*(v@`I)cJWcbweZJ)gNZ5ER3Aq$({n}pgJ9CliQrp@f?@r#& zaXiz$IKB$}dGFqpkjpm{VJBv~%pBl6#5l^z&P^eSB@Ecx5i0 z)3e~yzc;TgXiEmDwln@x=6YyQbJhPe&-+KK`wo8EK6Noix-OfxxZ0#$&kjAXD%d$) z+^cqb-K-sdPM!Jb0P3)8*?d|zLg}g1=dBaxv|f1qdZs)Fe^0QIV6)*3fhAf~JEi~R zrifLnT%C5XNpy;JfVAU8kt@;HtO_d4KiGa*-uXfoG|6&8C%AUndCeAu%ZGD6-eh(? zRmyp~ve<_EzWhh!J73L$(w^E*p86wn+5S(MfVnbWQh#r~WDMMrGA3vOnI(b^esod_9rV>`J^I0r{-5 z_0Bh@HEFYdjg0?%!@x^h`8l)WguO4k**5j5#0QtnY@QVtR5WAq>XQOe863se9kkVB z|Id6Tl9M@khlu)7zr)3!e@+aI`==EjxMC&S(uLjnQ&!4cv2Zj!5D>W`WE%U@wY-v@A)ybg0@bc*&~k+qHy)w?FXzsNH|pWa;^fF1iKP+;=lO|80GIbLo*CPN}CB z)$rCQrA<9^w^%%jdzyIj(_W=18OIkLDi=&!V1B(u!SCIXevKZkU9WyiYRyji5_Unw z?8XFVP~zm+#9p`J$65C)CJS$;dCWaBVd~-uFWq)N?QC(`5uE%h{Zwv9QIM0R;KJzw z-j-aI_V+#>6MA()`~2T0?nS?aeU?it3_A2F!L?UjMvq177{A1-y-AnyB2V%B6A9m_ zGlz%8QH|ltOP(#EPV5&7rb_-km3+r+-;F1J8#$-S@49+ne_zn1tu0$@|Uaxup{vCd6F%>zK!jxV*dJQcI1JuQX*=mXvee&Ryxr`Ln$vy?y8U zT~$dkJDW~ie6YOmd&;yQ6L(8pwQ#iDazUR(<;bF&97X0aEryAq3mN}YI=4a8LK)hN=-K}=J=j+rXcFwD@oSbT()*C$r;&hFp7tmnl&sqoD{=lV=vTB*eE z{2nC8wf4%yqkiQq?GI;v+W%9I4?b71;^ZV&ZLOmr9lcy~iX1P)wNI!91$K&lSsur<-+@(3 zf2Yp+rB9W%96H)_rYyTEPb!x!1Ll8^7Pzv_3E zu6eQ9p!31zABQECtF4#m^R7H`%xAjccGX9#_ndiSnU|9EDg5Hy)d_24mQE3hTF_nT z^m)p&opn)5TCD!GySmpsTj*oM9aiuxZ7a(ug_ScK zx`GaQNNqguf^kRFp=_z2cdy6YTOOxtl3J4?QWJ6}Oiy|-N3*~AmtRZgJ6f+=b9&{J z_Qc+EFQhVNZGU^?@w>_S(Y4#A-^nn^*sS8e&!Cz|bElf*BTED8(#&O_bRx2N6do&v z-K%g&?3>ip71XY0b)|4c@S<+kS0Z1;A5A$@)NbLbw^K}Z;V~|i=PN3HD!SczD;lfq z+w7vPuG=uhl1uH#^!iy!C+CN_>j_RaTGd)4yknnOV!#&0TCvHIa&=|Dk0mb+jP-qY z&^Fxm*Bpa&#a4R8$ENf~c;-l7-stVSNUd61?c0$&lg_#C5{=#7{hFC}UwN*e=FZ^f z&sOW5f3?o}E^CkqNB#l>7tYvFC2!STA&=r^+Vw;`5C1=@-xoY(zm;F7h__R9;Zj#| z&Xbm>`W{!xUG7#7^wE6r|7qpNE!O@Le{H5JCtqp!eSSu{M;_~=8w(UZf9G8jcIVOZ zP;uekOh=twM+G>wTJdg9I5?^H%%Q@0D|DSpy^H5=cB+uJyR33w&(|^br2gT#NA^vf zdFyH6>wTC0mABP&uD83rx;{Ix=V^b?%##zJ7zCfbFx9_E@0VDf=%hVH%%Rn8SEe4x zEu5%gm2vlRkZ8$KQ?aubFFkJWIvQl>{(_yeQl6tNfrtOai`%i!$}%7CpPzD9?dH|& zCAYm_ycC$g?*04ypE(?9??Uc>WN%uLGG|u)f=glAKkxoYIvTrjmBYd`$?Xja$`?1k zXgN38;`L&V=cgj3{!^Y?$9p`(txG@ah^+7ZdZ|>i8MC&k%{!5$QvB=4_fwCpjydL* zE_}Uw$-&1Rd7n>)*1h=PnEkoL^!+)t_ZzMj*iS58xO$U81)rhZmbhO6D@8p@Cx&ou ziAwnM*?G+`#i+jmhW|uo{Qs%=$U{`oO*T#W#NF<~Pb|~)XEz+#xOn9jQ}0(=vUaIQ z6MjCr`tMOSkL_Mo!n)z+g zg`?fs4%r0Us0QLoU9ikEhOSzE-eo zPP1Ij@^hQpUQG#)om&#(XMJLE?W_Ib|I2QM&AwWHe%q~(noq6KkJR_=(Y5J`Uc z&lTE!v@GV({_Q9Hx_3Uh?>D)l{+(a*4&P_nZsv98AH5Z`IQ6JxYD$s%!kP99wJ%&T z$>Q9Q`SR);fA5bkrfyYZPSdSFlBDooEZooG#!LN$mQrty2(PqL^=wN$x+ChFO6fI| z?-K9*eeN0kI{zb5vu)jT2}zB5$14vrW}3$IR8DH)o9uB-pnmIe#dEbbeAdD2-%Hzj zBi_!iVftw5v&m-Dvqc{qv*+2Y(c0np!TbIv<<2b0{L1^sIQtkl>du|n!8?DqjiT6h zp;H@MVxMY@v}sJNow74$`hQ`g)o06gwmfpm+Wxlo;iv9&J<<4%+bX+d*R5Of^OVQ= znMpRXpBN3Q7i8LQO1jGXSoqB6b;%p{IIWq&+a~CJd-a+4zr0&N^0?iZZRx#MjqjE2 zUrygt51o&}PyD`=+Ef-TbNTyDq434xk|#6g%q(TOqG)s3C+XTbLJMAC7oxc>58$$6bG zyN)bgb2zqcckZEEEr!Q@gY|Bk?lZWSwp;d}f5h4yYL6eC(GFHCJ;fo<&=_{aM8WV; zK#cd{Vw{mBKeiP)?`smDq3Rx~7xZ!UkLCNU|INSP znAvkOWn!OG@6$D3-bSw!-}5*vMr{2{pDL?=Q&v3^lzf`DsXz6`^UMvtYHw9}=6){a z+Wf6==aUU=?{~kpov1na-P>dJ0nU<3CtXtsy?K~Dsbv;_VPDhiBin1XxrW}j(vtP; z;5zZ(qx(xLE==uMGs&Lw=8+@wKY6#WsQ=@i_gzSP#k#oFtKYcnI33uM7N#|KO`_)s zW!+9O-~00aga1tClv<+cou!#86dZh$gLRw6G;dS3;AsdUcY*+hJQ@qmygQf@s)eOuQvO?{c2tQXg4*9`P3P&_jz(tAD%sPO5;%C zZl&BC5-a9Ny!H2dhc+z;RIP1wf`x|P8Yp?8Q6!ti#k!f*t#jAz4 z)~*-K-Z9Dj?SAzK>$vV7xu11obzX-uujx{knLbV1kIgH2l`NQ&yy9nsOzX?)gEQFP z>Bh@3rg(_C|5&hO-6x%pPt^zRE?FYMA+V_^Wts3)y{Eqp)y?vV@0_=G2talcx($cAD^CB<-4%$BNczHhR5RuYa8N zA^dj^P=1%Q$&WS5o?H^@FdfR&Lm_ z?$wXW&njL{^SK|{K55UdtVo|9&lDzbW;I+{lyz>8%VI4RUWw|4tVBgl!6|=2vdd0h zJTGhc=R$JJgtPU#OMjg9*So^?y8hdZo#F9HEh2VP?EjnBzt^!cn!ftUul4KZ*Zn** zbNcy{{yWtapFElP`03M0MW#}gabIQZ68h$@IP%WmmhE5l#q)nOtZvPku3;aTp`M&a_4M{{FKS!ELoyw8r`}P#5%1A>=yCh~cDd>C#jDRPWS?Z=yZKJ|l~V_wYSw(> zOUc+%8o%=YFGo+=sz*-#E(zr)r}w8m-KS`}u&wt&t4Q$@=DSOj`*LMWbF@Fs*!|@6 zWND_yvIU(cVN=epyPqjF*Cjl*>uhq)^Jx+uE0!mmtoHIglGYiTvi@x*-#jtz+&5pJ zCC!r6-`{qRexe7uO%>VV%r>JG84d35U9*Uk4We_wq+$M*MJ@%_K%Zm#lm@>r_En`Xt{ za&POM*n}o0@6Wd;i$2mg#ObE!AgHjvUrKlOgOw9Kk{jC-F08%wy;W2$yhlyqFRRHu zX73dn-MS|CzI0`)ZR-DVr2j(bWR4e-vB|uF|30XyWZXDe`mIwU%-dD)@hKVc=C(!r z8)UZqf6^K*b@Qg!#kX4X=4O3-lF4bC-gn)$+(lu}ex~n=zdBhrr5$_}P%N_0OuUkb zRiA<1 zdAH4WYL;Kai`;bXh|{hsbR+(K>fwkx(Xc)B%45@sg4#d2WFlTXzsx;FIoBYF%ST_n zaow>U%28j|b8cq;TKS}PolQ%b=f2}BvQ)&kdcHCX_&Zr5!2Ml&5>MCS>Gl^Q{k~jY zP`1pGUu#F*pB0B+NN2@7+j!xx+NIWy*1f$u-|T<3qc7u5&+AKfwQro${cpXcSfWk) z?!o7s9&=N_e2vTUv1dDd>gJTJil=*h-rc)z&~j&kY~-Y)+Y&Cmj=ugh{`tR8XU>M- zuX(tCj^&oJ3z18%*OmT#^L@wCtld{zyjFy0t-Z?kqW*l%%O4+=k8>(cU$=K(==#+k zXYM;4)NPv`vrxRv^^i`4Thrx`OXfVR|G4u+r#L41pA6_VT^D$B*Br%ob7$*+j>-!b z?`aR@|HyJa^6hyqElKy!r+FgJam+2bH2+xYk*@3Co8P4VnU$&VcG4LRsa>9no;KfG zGP(PWU)bcvKeKDSBo=L3xXa+!N~?>nEtlB^+N<7)t@4?AvT(cR>khq`8S7h~o;1!V zd~(DhZqXV6?rD5qA4a;F&fJ*LnqKtXDE8(xwPNdv1CN%6*L_*lw>awOkAIWh`{I8+ zJNj+wv$OL1Dj#(pmpvZlbX=~!=<(C*U-wV{H|hAc?e+I9f1Z85$3fe2{``Ls~K!l6jgq(wp6=v4ZSixP{?bI#NW-wWH-a^vyV*{a)~b((}- zv6OnmCHdl#*S{^EpI$q>KD?~2!oSVM)Vu0T&c_XNbuTJ^eo;D;E%;dR=LMyv>RYlFT-39gM<)tPZ+0F0bZMb?V=9;6yMN4VT9y+odEClW`~9h|>fQeN>umP@KXdxI zUTpQ=zrVM|?D+KYFDUM>PG4_j^tmZKXYtKDH+Jp&xcc>{$<_j{7Jr_tHqVw{|H-uC zm5#0A7WL&JecHurF9MXq44zwqMr{=?CtiOldApU>`vu#x)^)*_)B84Me$=m-p=kIi zfzf{Ie0FVRF`fK33ock&d0T%!^;612-X(J*%Ozh!ryms#)jCTf5_ezy^Q!#ZsrOg2 zzMeSDKELKq#L^H@^a#h>e7yR8?$zknKOb8`GqV;e&s{t(yYs_!eNnq9_FuoOJYWB_ z-|=0AHiP|yES(u*+;z+DG@0I+^Px!lr=M`B(~F`F1^=zjMt80j+`MUycHNTcs~+5A zw^~uC+n>pD<3V%YyoAa-J0;$6buM~u=vVb~d!w?oWuy1IYXZ5m*QicjufP7!1*v0K zmjD0sF>VW|cf~Tv`m8r;oojure7#fu^TPSVbzk|zjPg7`#V^(p4xX|mt01vqMVjF( z!>4bq-2B8i?^rAk+mz0`Uvn2AeyQ)R36I?rX02e{ZTJ6+rmcDL-}|rP|DNl9UH`2k=Jf$}*JC>T zX}*y&9{U}0n;f6=n*Y?DsIZpZmR%RF`&^pL!FMJg{H2`hjqk_W{x?O>JpJ>r+`lIq z3-*Y{WPIU09C}_S{lE2DmsGZLL%Y(a@+)`VdB-uiH01aFOg)+Wo2hPsYF5HRm;JwM zreB!b7Z}^Sdd`EVclrMtxKEz9@aY$Qn=gyH(p$n8EZHrQ_17-cD{OK?w`=VAz*e64 z+={0z*J~JLWp;HxIi37U_-pW?yNqsDb6y^f*>w9$n$VZY-KScf{po(5$K)ybMEt3n ziP6sD(ut4wY!eQCifPe0-?F@-CFjnn>$mqmKeqSQzFCh&Lii0J$UR|=_KV# z2i-e7t}S?U-|-v!j_VTwTeQ~PE6iA`qAzZ-aZ9+o^32_HCVQ+)NXzBmJ?6EURlAGv z{hSrM^+IBAT65X;H(lzT@b|yvo;km^i#^#d&}nQr$!2X*XZ@P@^~*K;HS(@=p5lzJ zbnp~hbNj&UBkv12X5V!9>VL_*_f9B}<_tF78lzLC3WalCENFUt{PoTk(pf*m8zg?M z-1xz(?VZUkL7}yl>y)L;AMYypK5wpWzFd;6ZQq9QnaO`tE%&SMPCEM}(G3o%~g^X%8}mv>qp&39nO~JX3zn z!KONssbY?PiDz?N)%RC!DvQs3`uKOa-M*riv$X_QJUi5{zwguJ@TJ!*zlHnf?kUmSeEIHNh?M2%^{`s96L?YAnLu5Ng>xX(nQMR3KE z`#Oeo2VS(+)&AP0^-Feo{O7thmj5w-V)ail$G+2^QLMdl*RAND;w$`>0kzlo+m`g) z{%*2sm((J4vqkBP-tFEf^YX;KSJ96xf+8kwoU_2uHD%9Ft%i zRR1ndnoq7}zIa{D#~b(MewWAp*z$VYj$OB=vL0Y;eiqZ>c$1}c>iiwrYhP(;eal#J zTg^-O$epDJeYY&n-(h;uJSc=2zA5N{P{8Z%R{h?KS#pXEUM8)QL z7Zf{+KONh??PvCi9p+gU9+{WZjH>1D-m`RbyYv1>e`;5Hjl%7#D=zjjUsIX;J}`Mf z=<^^?sdZQ8=q2rQ`q!#{Fepr0bS+ET$;p|#n?#$RP7FTi<7TttLPV@vjFZ^R-QN37 zJ>T+EOL0rs+PuHfcm4gR3MVtoxL`PC=emt)zrVlx7W>|5V)nBaVSE3bxOlwhL)qVx zYwH)Sh&@!k_KC;`p+hwrtUjFex|_$kb9ueU!xP(Ayf`WJJ(`n6(!}v#wCyny(P;C$ z9BC!9>>mZ|UIf}Gu5VbpbcU3N#8+{LjbT=?9Y*Dn-LJkgVZYxFz9ZVq2SU_e;h0 zQy-VURSUf6xbn#C?f}(-?@AlDl-*2Caj)Px%Hav4Vd~z!VzyB*?`z3dA1>!#mFT`U z^NJwvE2}%!!Veq_f2`ca(ANC+N-u+sZA-vP?bOSc#B{_aUA0j*jF`9TVzJ<%6>183 zyB5jDEUb>w`~PT{6Z6h2GwHSGx16~py5DQ-k^LTfU(KAjqtweo<8`q+hmL6O((bD> zT@TjWx@MT+yvXp-Wvf+N$>NnY}C|D-_=~kZYp!Gp~CBw zUo(3Gr*yB^8@^>-50!bFD;ajIIQ1x|<;bjVfs|=RGV`r0r}3P*-^Q6 ztu^HMY?kZ*MlVzJNlmA@dN#a;2+COz7-(GJ!1|HX2zthfc<6wVR`7d~D zl!Mtp)!5CvyB%YnTK?cMTrTX!aC^c3qjQ=roGTZ7rRr146L#NE)g-~@=d;BIwUGjM z7RL!m8O`65+QYH=NVR7Wt2$GctPVk}g+ihJv`%CJ0o z*Onb;E-AC5-q>yLK7anK#)FkV5BM0bJQl1VZ=iIi_VI+w-Jgz5xZ-v|_r%32@7W6) zn1WYb7S4LL`%377l%=a}<}Zljowa6-W0ThH-IX2>4I@riNbddLJ;^sY@z%%0;G6j` zegz&DT{|yrN3zW0&DCEN`6j>c_*Hh#x#zZj+>a%mmDjEBIjneiCj7CLyB4$Yq&aij zO1QfMTVyAl?hb5G3Y?OD=VPyiLT%a!m&%t%f*UV2seV-H`}0nE=7Lmim74Y>Z%)nk z;eXXlf?xV3++xi*cxhwUzR994JJ_Gg@NCRUoECU)-i+PHB2EUrl6;)g^}Tf2szNu$ zwzIvDj<2cDPSiQJ-U;&Xj#wq{#K}v&c&CXJr}TMos-D#vwLv5DQqfF#0IAB0}{3?>lO%}2zIL4vrtfK zY3U@nkITc`j;(UA%<9y0`M)xB`nsvURr5Ps%)fK6^pKPcP~3 z54Z|^_iI%>a*8Bf^wYtL5EiUyOsTS)y(504U>3}*ELPLeXmV;WwV3@#XSUF>}@QHhw>^U!;5;FE=E^dmiF<-Bac|j6 zv$wA~ygi$bPpnz=;-le;3v-qw=HJ?Jr|;?0eUCIZJrS3C`0lu%BeUnUKY@puQe9f3 zHyz`#{JwcFGqdQQ(3>k7axT@`%EqVu%{u=y=aueaqh&MCW~JU{n%*1Ol6j4HCdZRg z8V_@4Bru)Y_@+eUeC#C0^(k6Dx271q-Sbdb;d0%Ih1&KjOnib)M5qZ!7e2kYT;$)8}j6F^_}smbb#We3EW;JUy+c@OVo@vv!Nx zA@gNl7)`f0txwAkdHCaUzS7N3PF z>~rsu>Nc4E_S4DeCo-*E7IJ)Ujh_t*bebLC-TJY_AlFZ(m|;QK#IQA1%+jaUhDg7B zP?GR;lJ%xlsc%@TbbX()v|Dk92Jw_Ug0kbTy@z?N#hZ!d&XCOHambFZwv z;%CpG9a470KYHGt4-2!eerJ*h(P~|9v+QT3P*|FabL^)>lmF~$UzF}L|Gk86?&hB_ z-hFaxT_!)F{C=ENkl^g8Q(YE2oqWRMD4fsx=_*VzO z)V8!koUb-~_)x~VN}FY7aGSBK&xr!ltv_aSdQRxny0UQl+&T3HPB$gLZ8*boA+==- zho+Y?k9q1#POhc(2J6=Q3zzXsi<6qafA4?4CU zobS}#^zg$5uQ1;Q53?E)w!g`UOKF=S>^SYvVIK(*o0zkczaMEnH6?J-A@zsXWIWFC z-O>@3&9qp!;)7$m?13L&?6kSp_Fp=6CBjIKdzr|ID={s5PA$AC_N827&mtFz5T}I` zg8~*sZaVoZ>Fvc;&OKGHoy$!0n-mg#*1exO;n{>&y0+K4r(8+t_$c``UpHj_Tiz}I zT*Bscu}OKj@Lkcl+5G)qOtR+YsY1+=ug;#8&^cWqGAmMR2Op<*mZ)fN-rI9pDjIuq zW?wUSpy8Cl@3Am8-EYR^n7-ul%(D!_va!3>XBIx1`ImdaY5OTlf*jvPZc5-~3b9n& z7L7)*6BIqQq=KNOvmlSwe|TEG6V00-`&5aD-p+4Lor%raOe7#h~_vFm%&+Z5QzdL0w)GKv&-|d9hAkA<$3l`9lPsdG1=0t4xbv(hc zFSuaNv2FAH6Mw(m^@Y>R_3B46QR4t1uMGEy4SY6R${s8<{W-ZzS<2wrv$#W9e|5hI zflgLC5o5s5bXv~UV#Unv%=QIs*1VDPL_GRp#PyE;xNE*$y7g*k`pOsY63X&Hw#}>s zoxgFy`$Ww4x4Zfdr_Y|WrtaH=&i$1O_pI0Xe?@Ff(7}njLZUWIa;ez*&P+pbYV8YE z@TRhz334o9mv(Y&uPa>oz+&}$TMgT`tM)6l#+Lv7w(WM-1ewT{pF+5&1f}o1bgwXa z?KGZhf1!s*C9=(;m-dG}JDSv?V0_%=`A%nnly5WI`R)gV8wO>+z8>9j;g<7jqh(&p zG9O$H*b}R6ziZF03%@!y>!0|-D{a4PjZQ?1OvLBp4YSrBTYdj$S;oV&yL+87w?^n} zf0x(){eu9@#06|l0xUC?{P%OJS5GSz^poG^!C(6_9%3Sz3{8TQb%jp()0W_`JE9zcI)Sy;5fbf{KeD3X(Mf> zrC>xGYj$d>=|njxucEJib>80YX9AUejuU2f9rV&=K051*TGWq*K>di~oX;m?yEJ!| zu#Je$8{t3vhBIY+=JcX2fN^j8W*RLei?1Eu;CF^2q1+Ml;yn7d05_qqZ{~9%r&5i5CQr6F4 zZ=A|l+6p#a$B>_i`)@PHq{J%!_oci7ERJmHax7wfN-h&}UTa;6;Al$es}zWMq3SZB zM=&I0#YO>^lVXqq&lF}VdU-EA<|M%4DJ(g&TflLG;BzGx0TxgG&j|-1$5nAO`Ah}r zmItK|fs|EGPP}Pe%ps^U*~dg%vq|BE%S?7|u_{i`js%vOT2Ny-niNia0lBevCwN;e z%S=g-uXlmA4hW>II@5f>>AwOvJFS#-^$^e87;{?qk|ImpB)#Ih%XVK@imgvgUm2kl zX4SG~+x8plmS<|{ifjK|sO1*VfBp%YsPjxy@#=5BEBEgOd|Q>*zJBKCx2{3P zpsU`^?}RyXt-MrpG*U-EJw9$-(d#KIoWA~JuGy@YXnpqBUAE%bT`w&BR&H8ul`y zt*O-y$I@oE=y%amEL^hs z8uNnp)=#yvnN<6FdU!}n_4IDti5I&>yF_m-b#Xf`d`vjo(pB#e)7I5@wktV5a2JS> zXa<)D9$Cvyb#@-qnzp)R;&X-6yxDKL8n2%HoS}8dU65<*(Tci2r>>)$V%L1&JY`y` z^T%(pw!tiYz1!Jh(^nfgt(Hx@^=Q?3LkgW2GABm7SHP%PIAqm5qh3mmjw5F>4w&)2m4P=?o~=z z7rlRPBXo2_TU<}ge>2m4t9Wag(B>B(zV6(={^l<2Ga(aX$~mS@>nd_{ z%6ycyJ1={;-Kmzp2{ zzrlCXcFv}r6T9E<+x_jsEg7@Nw+?5&-}n1n+;yghOs{=Yj|i=)OZ)ol|DKztIn4h* zKYR83nn#&u#H!a71th$!v|ez`Y1zjWFVC)Tcz^ce#^s!O2Y1a3JZZnhPk;Jp$DL(g zUM_B#@cF*&{nuYlrP`%U&fal$_MIIsF24S{?%x+J#U+2emUyPx3PcrH7U`}&zy^TT5In0K#m4SCS=W5255)1FO>_qp~iZL6KF`g+fYui{SkdH8J$Upz}YQJwR)aaPTS zJ3EWn?aICsul&ZaKgxN#?XNF^#|xYICI80Ea!&I}v8n%7`TC4q{kNY!^3^f3+9D5f zJk*-%b-k{xH>D-pet(!&=gW2MDSt1P{@nRMaO*R#+^4UOg}zP{k2=&kT|ea1)CaRB zxGi3IJw76$;+4Ivsms&!9^QrX*T{VrP>fbGu<2SbdynG@R>dXjI`ze_yF}E!$hdu$ z<6@cKhG(jq+kzJTW!}-PbMX4?f-N_l63RbV@rBx)?B3cj$>o~g+T3Q-Iok7nuRnj% z`tKd{A6K^oMNh1c`?vh`pF_8AwfHx;wzjU_zU@idRIjI(`1M~F_1V>axiMe1S@m#k zc$Uqv6}#3)Rc{De8RA#>Q$^?V9rJT*uY@fza^7_MYVYdsx|*k7;^$uT_WOVJrMCUP zqSEI5AJV5(3Pf0RP1w9)!-rGf<2bkZExtHG%KO%qB#_^}KIE^zaay}uC3VL)uD&-G znk~251Z>lp_Fr@9`Pn7l8K}~qYvX$&HSk%e)2Gc-ef2_Ok1jU7CU9G6Va}e78~?rd z)%kqKv-P$C*5AJt&yF@+FWu#oXy@L4hV^y!>+AV3_P@7oj!)Z-OG^hzanE}CxHMvE(9HDb z51#1V^mh8_G5fNm)3(-oO(7gRRaGuNKkO4cspW8?zfjS&;BeOB+vm9_Zge=2Xk;dK zrham=VwmF5>kGwmzt4*LYkb@**VT^q-QCH0+4Ik?Jv%wxuJWDqb3WU`7nh!Tr|&P@ zR=8VmSMK`jlW(oAtDbW6l0XXo4BXy#WiTU+#>9M!Ry7l)+Y+b8%g`r;|Gfj>q zEJp2nQ*cCm$=_4b;ZOEYWv@-Y`D^iOR>QeT8q4<;z4{>BzE$dWMe^cr32(nlZ~Xt` z^zv-}Yi9RuT=?iyr5}E8htmCHYxWjDK4N}u?yplTFZNfy-JBh$wmM+jy<3x{R==P1 zLP6>0|>@>^T9UFy$5+XhJruHgLNoM={ z@czzXcRfyB#y+Jj6K+RwCqDdqSYR=SbE|=<)2qG-8SP44w(onDwuJ4_ESY3#^f4r2 z!7e#h2~z>>t&2I5xg;NJ9NJgy8FBcg8=rd1#AhEDb3B|J{OJ~deDh)sXLdHXUZp+7 z&-rG03w`6;%AW1~Uuu8R+k;UV{)wOefBVIEZ@RWx;{dUZ;j8}39nz@=f-|Ja{U{ue_T5 zUuK@VO!cvngtVf5agz&NqRJbV?3z@j^W%~lZ+Lip)zw`~gt&Bm)}?it?ddUcuZjQd z@2{>m)GXZSE0FT$%Uju!e&a`0 zfvZ*Tm~n=iuWO6iu;^1l>Z0^B6L&7~Z&}A>`tv+Iko8Nkz#eJ z-eVK>h&$&d*tMSG+iMT3qknW!JyzGLvhb_G%wp`e@_weo?O0skge$ z9c@pUqRzR~4q9d)0eZ&sZWpWt9x8^$IRnd(uN1K7K-V-JlgE0 zKSN5ZG*9MCNgFU$a?~DUm+y z;w|Qyb#2D+)}K$**F2f{|Hp}k&NlZiJXAk6q3q+W^XumRKDP6#`}N63n7_5^T{_NZ zYj(rz{pY~T3ukJ+dVl43gcPV-bH?Vg!iHlr4?aI3-Y?*^MY^!My1F*Uw?82b%X53Yp!z0~`3CEQOo!nWYA zxJ293n}ID)i!8P7{=AibeNBDQ!lg@Pjz|7}GwWPq-e1YkDLT3(@3ZH}Hm{U#`)tDh zP)dHWdF`8}sojpw*PNQK9t-l=He;sqyqV07LFaUiCI~vsv;V!PG~1^B+s_%ldQz94 zVELS|R9+-vrgCOk@`T40CNn=paCvfizA|&!?Ys0{nQHoDhY6AlpA(kOshr;};CSqu z17m^V!K{;y?*++yECc0ueGOlRr#+VR%7{@6f;tsbY1tXyP-FG(;1%RnQtn;8n52_-@Mc9)!y&-s>8$<25#HRu{Sm8o${Xj zml%&Fs3z~(d+5Saa5ZB7{O9|5)0sJ%?Cy~a~>bCuOr_*ca zrkz_WUuiE-`nK=ii(hBY&b}59z~VR|=i`~p=X9!P%cznjRYss`; zbF*``kLR4JDSWh3_;vrfXvLYw|Nr^X`aag;=hMmBTc^%QNuC`&n|1kyojW-{r=C%~ z5VYfZsiQzjLfo(2(=P>F@qWD8ZQBg?M$>3_mE4H2%XUQ6%hah92)92reztqv@6M_IIe)8O zU*gyA&DK(3naOhS;9Ex{t2?z$?Pf_Ejqg0Do_BKYj1=3+zil{lzVN3_di(aR`!)HM zwh_B`6`EFBOqr9HQJnqxsCZn%I&Kc?bmljw<7g_jRs z9lHu@-~C$uNX@|ZZ}{@{e|~sfDfnJ#y+yEl?nAcw(RP33?P?!SH(%3gURU|}^8bgI zt3#AkSQm3Nzt>CFuYVE6JEb#y&(0}rdcJ*1S9U$WAlzQH_ukpFv)kucTqzexyfC-i zKcIR++53C8r{hAa7cBeRb4|nP^iPZJi#d)Lg{tc(I=LI_U8+=I4(&|o;*`DBadg?L zgU5|R{XW(5#)jx0+-Af-ZL7fNgtOI)E+$O3|Msc<#;bdKtJ(i=@K4&V!2bWkf~i*+ zn1T;{eLB;=UTxnN$+QL9i8|ALXD#)#Dm{5d#$(m5-##)BW79noz8(texT#fq{d14e zbg?xHpZE3NGDzHY@5h$?#Z5LfXP($4b6&Vysj%|Z`{UePYgBxvEa44IP>ekLWS(E6 z>6bnG7fOFxry98{?nL$bz0;q)Y*#1GVNT-rziapP=oE ze3o@(n=36Qtf(&AaW&{@3t#S$q~NO$ILi%>g|ANtJnSoSm-&P$sD4;D*>?ZW^K~u! zDv;1JjBpN7OPkCo8>O*&e&pVt_CHG+S3Y|7f6vZelGQEVBF$2NoOs(er0S^kMkPS8=Cdt;uwwb6dPLyB6$n@_gz=}sxX zUt9h*(eAqMs)*`}w|C3$`|kJ@(R7DhOXaMOhFQ&?NY_o(;J7&rbNEc_<+CnUpLrwq zJEu`>jSuIVEBDM!YMTWVyRNl4Yc^lwB!7y|TeEz2C0Xs-@b1E`OQyln*yi6gFBTq{ zCHTyOO}krc%@sSNfP}M?^kzP1cKkM>Xy=}9H%+sdIFA=T5&7C|bbh+8KKF4u{@|w% zVp=vIxH>;>YUSPDZ*P4QtvmZre4mrukrPpExh^X)%kH-LnhAqrPg_%X}{Xa z8&7y79%mKbY`(X%Sbc@=6aUF#5huMRymz~H=6Ig@a!=D{!jswjd!uHtUV~Y7Z*MiI zV1Bzf+uS_=)z2MI=69~nf8TmWd#{en?>P}03idtc39epH_D=e_*}WS-{)pSve>$xm zo~8YKf3;m!YWm4(f}ld){(tNF$v>9`t(^1gl;(~n7lhld$;Ya1KK*O)>w>)e$_=^O z_g?>c$|2hG+peI^$8M!x=W0E4@_*GQP>bg8t(%AaWv0C^6_4BZ;mXD3-*%OqZ~>Ln zb^3{as^eDOV@hxMynar;iB$Xk1M}VW_kDQu?Ao)9_SR+#Sv=JD*96V8$lmvS&E*Ue zzq+4GzIj>n6~BA^T&kCCru4SDy`dT+aX;^ASH}vne6;-bW#jaHpD$gDjyArm(LT>Y zWJ}vU5w%?_40?)o>g*Ms*0?i9FZ;i<+f3ocR4NI$&=T=dnEVz{kuLnXw@nEe%snLK`ZC{yft(0y6Y^K-+PP0>#IWl z@BVVw`}w}Qyl+VxjveyKO?|sL`_uin>#1owzirNbTlV|T_48|M%idlI_ly0t+@4SY*e{l(_Ufp_r z-Q550DtCSom>99rD*nSm9`~zr#MxhPta-kZXS&UoBZ@zH_W!!P+A8YHR{4Ep#go(L z^leI5`r*d&Nu26Zb4`l1H)Qc&d3SfWxYS%hkDA`ym*IlhL8UD|iGTqJQ>^PR6V z4px7EchYUbyF)WYBB~7be9b@7e0MT)V|elzF3#^lrImN?>{;nst76(ylwtVREUCM9 z$If#n3LfngUjO%l=}#jNE2x^+ibJ{eZsdyY53M&Q-n!))p*Q{got?#Bmxue?ls`H* z*ZR{u*GALpi#aaqY}jNWo|xr-VF8o2>dZS^4>Y|B-tXe)nBZ&AShX{T&)3`V(ZP3~ zYTsXStSR}mJS`}}bIGIvnde7})weu+)w+Ja!Hcgm6}iK9#`H<9)McF(GJn&{Yj(TU zuBI)*TG z@0S%!dfZ%JVem7irP(YzV>5rCM?Ckmn*A;M(}Oo8ygWS9Z}-VW-oV*Cc1oGE*e4xn zQccgZ{5mz*@agFq8|f`OouspLT3J}99lgR5CUmUyg!_Cu zsZ|@-e7X73enN|7{5<>LHTPpdt@R7JmvuI{S#J4JCcX5i+nqawGOw+!^!-+RcjQcI zdUDFVep}x&sXXAbn9NQ+Eed$ruIF>e<~!eBOS^Ahc5z&O*(lYW&gCe;GE;uj)w#Wb zZzO}W4tgzT*Xr82w;ps5Oa)9>3Nm8NVU+ny(f9BV@YIu|083}0AIr5nPr>I+3Z(GQ zWN$orp$R;;eZpiWdt>WAN6;LnqYW_(UK zIO}S0J7`q?C0Ci>rN>6ahZEM6xcP<^Yi!`*zBbo(EtldGE5&-9eMfv)_c<6HeIs-7 zN2TJf(s{F!UVrHj-hYUx&~w!ex#CbxzMd;pPxW1=?f={SasKqE{flo(mCa{=oM(S- zYR{dPz4~7x6Cbh%ui~7O{YrawxPM(CxM}``)A#0c3!YMu?sq-` zwxmy|C2LLQs?{30SHnw}GHERNwQAjwoc{@mA<4c@v96gb_pQoSSTNz$>Rp$5RG0kX z(oZ?XQaUxx=uStinA(-5-6xbjD{Oc(`Ri5NRY$U0N`4d@_{~fSoqXopL?7qmw`+G@ z+Qn7pZyFUY8!=BnaqMfaoAH$_B<-RJK*@16K{^7*fkFG|y&dmQV( z5}Fwh&V6L+e~&PW4GaGDp07!Lx$5O=ZI!lG`4#mZR+7mkR;ruN*l?`*V7$ZcgyH+& zo*$P#Y5MV5MX|S|^jv4gs>zQ&&j}B4{_)R`D>GF6$(9H``|U@cJ38HJxzn-Y(Hon) z!Nn?9)2pwhS2O>W+FW-?^wD?e#p@oZd49X}onbN8^o8M{;wR-!o}N>?y-X@5cpdZp z_G{CM_b&g}Sh41UuaH@X>*L=`t~+N3b-k$d{Oc|KVNol0^J?Cb_H%5_QEOM+G-uzO zc(7hFRW516qhnTUSf|B^^zB(uDx#FymDiVQ=H)G)Q1LpWM|HK)%Ehau$aWI${v^QU!@C< z=k=Is{Crka?i^8aY*EM}E>9(awW_5*wwuMc?&jFMXiL^!&t9b#X3pjE59O*>9={`{ zn7zwbHDFVbqn~5cMwZt+Tb$Zvu!|=ynf{?`gXP*;m(soeRH~NERe0XQG})?$V`iwp z{7KF&CX4?zpIC6@_rFEI-l%L!=185K^7N!_F1xN|6`QefOThoxoLRPC^Y_T8*#6be znp?5GB7S<vJ8F366qYoFSGKmWt|6^Hq+Mh8yyxh>n9 z(zLVhU{`m&-M;62wDs}Yz3YzJ7#$YBnscD6wJwUsIJac#uC8dksbP8x4j5^~Z3;LZ zD4AEc#Nv*FR=dWNAC6!6{hGeG^!YDeA@Yu|bNP3n?HTDI?PqgeF{U^fh`qcL{K~6K zOLN<=6`G7oYg&2 z>ze9=a!++}&HOaYyHquGnn_aX+&A)$Nea!y+xY_3LsYmQIRpSo%%wD7B z`)Nx=^R&*C<~bbeE`3`i(fMrc%+hCiY_F56qeNM5I)60rl{HH}TmE{Vko+tAYqn9p zJiC@ZunG!{+<(aa_o{W4oX;mc&*=HYbzeKEbz6w*(S$(BU{U)o`s!f9f$ob_PLA$yF1zV-J5jWHQbRuSoAL1~2uK#iSJMEK9U#Gt@ zGF^T3h4m}z`g1k{ReMjqHh4Y#kwoHdoiFm9>sIeNHeHhA@GSPm);OmWB_6}xFCyn$ zvgZHb)Ls_uy>3NN^@(clWpn!%esYcHKgliWZOW!4_VtCqlOOEK%hXQqYu5ekK7nIP zLhpP{muG3UK4LWj@9URWzTOuU(z5<32lua|4<_x4+nkWOP;_#rS6t2?xu?@F2swFg zGi#jc6Es<4u~V3kxv%eEm7P&;<<&>u9R1~KXTIoM-HW3FYji^%Zun%Fq;XPLc<~&k z)r|Y~ee71$pZA#7pJi}9;oO~RLCW4?_jMN6Hb1?55Pa11sclKOKO2TQe{opImFaTQ zBEWRfFH!Hn$oRH(q4!%2x3yRNoLW#>wQgFW;g_XG)5JQ2d;$xLl;7nYSu`nUscJ~T z;oeQJ7rvgX_@iN;Vb$xRhe2!hFKRlG^L}NzTujT%?~l`F-Sa;B;PkGzMfI|exovB9 z_1=wD29aAUePkJ&-ri91QY2(zC{VBV8bd6%Qb-ha!PuOtk$hc-0 z|DC?}p0{iE@`FA-ACL6ki#ithz4d7s_?o#Q9FQ`qJLvFD0x+RSl>O#DO4*X>fR>^XGOWRX=* zLPT~*fa{BGA3WN+56|#>@z0*%R#5 zmiV0Te)h@N$&6#Ck4NhS=N6ehJ;nED%gdXW%(WDZc%kaUwZ&NVV(7=6!p;1tKVJ0L zr0~DclMGSky<&L8eJM})GCfDLTP=^ytJ&V2XE8PNebR5Yn&^){2R-wb9W?g+^!8H0 z<*x@szpVGn@$mGSty%kgwq3Kvs+*VRPG!74eY&syo8@eZ{enUKH|9&V)ZBW#JYV3G zmf~|xOR?S4omH66G#@y1N#oFkp8<<=JSNYuDSh$%ae}|tEk^(P6@Fgx%NO~7{eAj{ zURlm=<&>V?FZPDq`OoL6Uh8`DM(JA@>-YN>JE)Z_NM5+`cvs<~Q!|Z|uew$C!B65&PNIvvr56Y07M=0rxz^(za5Cq#)$<~QpG7NFSN_U5AEmdw z>7w7&^y+C26TN?}ns%jcrQ|O2S*rrL?XE3W%6e?wu%akMF)?+SYnjia868V2E&lKb z6t}j!O?mygvZsn;>D30EivLdkRa)kVYH3MWUllOZeYZ=X>(z{icFv_!OD{A{b!$>v zy^wjK(z1nLC*R=+b}`;pkfC*3ICCm*sL7+-+y0rpIw`k)^`!6YVU~Y+7y=E`UuNCb zd9}o({Ndrqwj`dVocjM1IkXI3+g+-6(|sTPlVySXR{iBI6yfA*h>QX?DBd*2YpyRoZq*(+;^tSGkNd&6Xv&`)E@45$Ce#`?cU?v zyssk`-4R~=dfr~;iPN~|9h`AlDs^>-V9hnp#v-jm%WA(3|2BSYS$E^##iu7(mtHL~ z46nGKw&mRW3uo;XM`=m-y*z20(bFNkAt$%-=}ge<>@+t)HJ{_@wf*yNnu|u%G43_k zF>6WwbJ?i6DgKK0~nY}g3Qd0y?DslQk^C&cio{q z|E^|j?&@YXj&pB&Cqz}hYKfEx%U|0ex6Ac}>coGm6orybdaPMv%+Hj4?aI{!`Yhu!6+F-A$>)1% zQ=XjS#=pV%=Nu08BNB(t3kQ956R}fn39ngu>HM9@4exwvzb|*aWs>rUf7w1px8yt5 zZ*)6dayD49>;0_cy%KC6OpZo-xvjZ$X1`O<^cC)BKb~2hz4uM3pZwzV4GI4$-BK$4 zZwm-_oyholDa%$b`_m)4e`4q*M@A%C8XxGm_cdXtAHl_5<5HQ(m zbGBz*jDp0X^tG0XiJ<-n!Otn zWQD5d1b%H%*zDlH;rdnwfs|`A+I`+tTXq#FTW?ka9YM=sr1wmZO?%#Ar4+AoxjP+C zcpAoiVg2}Y!}Bjw>(_N$)tfmxo~wd6)@faL?ta5M$U;-KL1m7UpJ?!(Uf2B z(2{=#FDo&(hj`yUi-VdS3pJ zHpzsy{7ihjfZIyb_ubq4_Nx6`)2V9vF+09%(Ua%xb}TH8YHZ6g9llMt#k_U3bof)( z9p668`uh5!z3r{nU-SOGK5Je6ZqN7sd&2dmfAxR=@BaI5Rkp_i6Lqrr*GJxTYw}(* zziRKjtG%nYvS-z<+A-rz{HL>-33KN}%qVcL{XRqL*+JJCB_aRmc}KS%EOrHz5FHtgHBZ|By^e}^hH?zSDdWZQi* zWddLLbjJ55c+{nAwZbMahK9G!)GFDzM`$T4_rKjY*Qfmc%EHOK*)GZ2=X2Ey+qu2o zdcsrZFd1LqyRz{7|FfU>GE8HAJu`iN<>&de-@DDi1f9;sTm0w$|J&Z?^BZGOF!UuI zY_j=pe*SRm51#ahsGfhzb$M@PsiubU=|&jOP5mM|aeAWTpK6vFE7v@|o%Ap@zw@8? zXpjtL@>(gEn5SudOOBHjYW=bt(EE+jqw7^8+OxldghGTR3*A z>VTIVm#kcUpqyo<%(~a_;&0af%J<)X`|S_Y+16(tO|rju>)`*l4?fo)cCO^FdzbLf z`RD8XJM_FQ{w+W5zCLvKUAxcQ)5F5Tw)99FSv!A-?^$=r_H&OFdwQ&c7Eh@1;+4z% zyC?ir64DmF+@O3SM>r&8@A8v}zJFV0bRy>Au6H;8mwkKme@Dfy)yw;3dwCY^`t(>k z{oFjuPfL~8|9cQBx8ZB~bNzppU7b#>{9p9yj`?}p@}~ZH`!D-tcYRsxt^WV^$-q~| z52tdc&$HjWSGU$USn>JNr1pj3#>?HG9WXe@yg}mUz2)CiHa%Ck&iV84-gVBWUVg1I zHemhxBEi~coov#Z(3MvsDs0cBSWh{fDtS`R`P|w)obLNdp8WBC{#pK%u#;K+=AS3( zD~=S-aa+7GDEcC&)VM2?C0ARPol0ExFzdozkHWS$hW`6Go9|5gV$AHgCYkXz<88+E?Upx>NOR*;nO3w@Qd_Mr>Y>WSL!MW1B_12~6o|Sk z;aV1$TQIT8GOnidf5h+OQPuBP-MVVOde?pSz$vTB-`?7PefPZYmGi{~I9Qk(9TaF! z-8equ=I82&z5ge$e`)xl&HnbQ82iB&s;2CY+8Ns~uU1=i?z+u>pC>c?+3ob{Z_&=MS*wrCFKG(^n~tXTOTE=X$y`Yh}#Bn?V(x1?xB8%ebHEB!0`9f5ralV7+Ep=CeUNcV)~!{^LsV z_N#ej#o~Eer4LqB-;usEUpxF+_Q$P^cVDwO{`RZAz^ZoRY4+jo;_vKb?w|M?A9KEz zW6GZoE!XbvO`NCI%`Y#z@7dP*FbEv5)pt_D< zyRMTlNP#z~p>6#EsU==Zi`HJwGtFN=Q}ygsvA8vqe?ls z0u*?|6nK9uy_M7X-0JK1!>YEdpS(r)r?5w)-dErMM03fq$iMQwLUXJNBv65j} z5Ly55pR0!cbM;eme_212h@AEH?@pmihlBlM#<%%fFIn9xnz>u!r>fJdqyoS4h7SvV z7N>slwmZP}bith3cML1!BGydN&Y7zmw&KUsN%1eYNS{4;QTOb$jCD`4w}>*@WCSk^ z=-S54#r<7=VI)7-1qIe?AJT0XHBa4n>(*}bgEl{!{Ottayii!BQ7V_Y&84nWF0EqKYYXzYUq8O{0Hph4y6v`gyc5D_efBDzdM7a0KyW(yqV(Tup8tNTkgHyn}evYL@y$zRYmfrPSR=z}_q*^xHb46V0I<`+W`-Akt&pLP2)IU5Rq}_0F*XOtm zat7@C;@3^delk5{-Ijv?6MyZ#zVIS9(=1c}Ap5$WN%4$_tPjrr%FOp(Lpav(LY_Ip z6+Rt-$~70W%$mv$|H)gr=fU}^58h9Iwtkyy)gb4W=CIlE4V7t`A*oXGlg854L)Aq=S#LZmov{?A=va3H?KiO{H`Zn!wOzFRvr6KDCD!JLk zUcbMWlk%<4)au&3r*;mkw|{XcHEjL6ED5t z&ofn<%c>tPOuZKKNjt4$t!#wJcjwhRZ}n{|Jy>NOk*|MezenBC?|X|X7uGJn#}_p< ztJm~TUlY(abDLSgcbSC5~ORk#MqMMT{V~)KM-+o($g_~d3dGV9qZ><$Q z)AD+*q;azyv<$eqN|EQ*+Y-0)-)kqZ^Ty>bjA?AM5AXAz)>-cT*)*eIdvJX@?<~dw z@jJQKcE4?9pT00~rar&S)hX-^CcONOkq5iyt)2INcJbYs^0WJ1d2O~kU-e}Art0w7 z+8f<2V?R!5QFv<>Dwe?$7a=@(U4cVXn&+rV=I2$@E>uldrtyH#c-KE2L)_e>aWJ ze!NFez+r6+w@zq}IDe&Kv*@Q^%#u1{Y}r0{Hh*8AFjw9)$fQa&a3^2pr7u!5&d#qo z)w4Tw)>nxaYqsB#Obq+`*Q%u7RO@ppgAB{F#xSkxj{;|kFt9kXcX@BFlX?AXvuH+1 zQ`_O2LX9Wx&A9f~?e)3pwO`%#+S}blmvwpOnOsfKI<8i&ayz zmvC~eO_QA!eBEdDPq}jIJE^mlI`W8V8o2RPq}X1mva-1-5^u)P;I{c*mRZzUx3c$# zey*PL;%?do88)Zy9*nb^7BKflZFSq1-@D^X*|M|)Uo#g6>CIL&(BAPxZ~H9X;+rAQ zvx}_MbbqjQFvjK23_Lbp`*xF!vLNTKy%lG?;=@_p4xFnxt+T%%!O--8C68E#>4GX| zW=G4!LkWovfBg2z8?OjRQIg}U`grD^&dtj=Zzh`d+`k^}spPMivHg>q@4J%bN$(vi zU5=cYyC766yoRgP_~}kA<~whkIx9!KZ+YT!L2-Xe?a){H>~?V^?7DqRi^GHD~r18x3=oSLho3w9)<>XqX?}t8QdxdP9<)r*}tXW|HBVAr>tPD z?)7*mryu$0(wKOjA=BXb^B9YSS;kz!OvdcGXF?@D{4LsW z?^{|e!`?gr7Dkg94}RC}mc9^k^i0B|i@Pqytd_NSa=t2OQ&;iSE<281zwM%TJdN!3 zdK}$T@jubeElA0LxwkyuBQJxcdFg>!!HOO`_av+n7Cy)JHf(K7a%)lL!kIC~a+)lT z>Y{z>LF#v#KQ)ypm*3!))UnlSUhr_GMaJss9U1EmasA8b{1fDRUE;xlt6AHda(YDH z&GoS>uN6?eHpeEfbjiV_yt|d_gKRq@^B*2?`uo>3JMny--(!Q}m}9G6l$}i5*EI>HL#?N3W||&IoXSw%++ck{<80`gNY2+=l(rN- zNJ!lmwpwmYNcPrO2T#?UJ@?_6VZ`Bcfj?X>pY({VuV4G`TyNOs#7*97927ojZ~Z-e zm7COzx`NqzCvzv3pFVQKvj5a$m5jWi3r%cOwfE&4)wUfklGF*7&S>*}+9ApD;NYF+ z#ZwxtnENR0&dmCL>+QD0HGg-`(hM>Gp1=F9fjF~ei}1|VP0f7k%cJi0RSK6_%ap9q z=KZ+!%D%l~*Ivs+v@|W(solF+_$;z>M$Y}(&X9-8w*iXnq(U;H}T4K5BlcTG6q zWICgI?d@zqPXB)~D^0?a3*H_GYR+eIyzr7uH28VGDBCTKvr@d)?)GQz zcB5KYj+bl2Ugu)bAF8vy)_$_^^0;ZBm9~J7^}hb^x}_%Zjc#xEE!{dl)^&+NvM!(M z?8FUoRA#-O-us2|z@fkGIxh_+K0H6A*uLJ8<$Uk_sO{3r&UK5-G&VJ`6*r2oQK_H4 zTH#6Fg?DXR-S)*V+ZmLqw_N4gAD0M5y&JKLo7ogsvbDaGoXM#4@Y$ngQHHI*r%SzG z=k_pU*1=tt57?gXh{$QU)!%VQD06zQs88F8xi_wuWaP1~?TTMHCHrmK-S65<1Xyg- z*le1D3(q7JhpyrMx}`hG=zNb$ul4(@tJwd7Dkg!f-zC%1McKS1))XdrIQ4DP;^`*CTxoS7pFxW~u znx9RW=&k(o^VEQ;Hm@b`^M3L+k@i}aB(Gdu2F$f3!uJUH0<<-Dp=;zkLc#&;NyQ5M<-_xmL3ONjT5!{@#`D zEzdK#7n{4M`0$Zy3g^GqG8~-Srs=XaRDAPv-xmv0*IFKD_wMbgTk|Q@dHSR#`}mXR z^nGbo^oFfhKd!d0=wEv9)APeG>$F#?cpMVG8u7u~O+}C; z+fkt4g3|s+=c~BC%V(KNKg-OxHC2LtZ6eFmPae&pzl%*jS(aXF$~)kgaB2FyKIXr2 z2ep5S-Vu+C*8EYov+RCQMds2P=S5Dgog36nvume_$(rP^pZbR@aK?snVS;>)pZ)fl zgg=X1Zxa6To%7)tyEH#N{}W}Zb3MaET1PEHc+J7Cq^D(X9nMa9Q`$65m+9oK9h>F; z-tZ4yGRx(m)7OMk`=`vbeDR}LwQYOB|A}Fn^IB&ATN7_tARx6ylOw9=l*)lq!VYJq zWqsFoXSGOF<;!HblWlhWjcU8<=1`%(CVA^;g;`EzX4k&jTz0&9!EM9MEahD{wWew> z5zIIqJNLS^O}z1B(RXEYZa?_;>QJrsnn23{-NX5zt`Rsued*C_kNdc#R|+XHhyZ$ z*lV_4fOv?iW@B1m;Mo zE$S+$U|i|;_*>T7eX57oA6K{Ccd-5Qm#^QiXR(WAY;$>f>QPMV+5_h-6gzu=FUj6; zsNJV|wdrR816|uY(lc+QZqWL?^~&PIdphNR&v{uVd?%BwuJuol*Mi9Xd$)PCJIMXK zcj<%tWTNH?QwxJ~4SB`sO>s>f4QeXBJH|e{ifyJtALCv1WVo3Vwx6Jb%`_e`#Un zd?D|8^VFiPVV|;>C{4eew|?Wjy!)9;a?}}F98U)y;hOtZL6pz0C zJD2*jFE3cumTjKLvs7lwHRs*W`5vrPxqkCvkg3Te`}Zub>pmU$RQs;%!r7H(4p-8a zn}j#E*}rCYl%6&F{W{iS-OGvQ?_6)}x}0@?<>i>2kHXn_d)HX*dGcV6opbnxcSoA` z&zSir}?qGk8W~&dX(;66SqmQX7yc-v%l6% z^f_#i!8)xj`$4nbiv7i#ZQ^y$UNw-uS*-D>Z1F|8i{&vJy05d%cK403Id>;AztTna z*^@Pyd27pU8cGxT!wikH?5%RvnS}6^Ulxyk{4MJ3KG)B#x8*C}&VBv#XRFuFGm889 zGPbbU#IZEZy>#(>-sa}{O83PlAMj*;2aECQmcCAY)lQf(aAfU+2>is#II2#ClDkLDWgB+q(Dr z>pQ$pW% zuPI?qVfcCduELL}`89jmsvG`Wd&#e7DX(Aof4V><#Gl`k-${NlzyE#VL556|S*vZf zgiP3dCu^U(+d|e0IgxzpAVYH;%~KD(`G5F-@6P)d{)?Lg{HkF6UUP+)iNVFh{D0^D zS^ryp-M3q|bM;oXfOUEytN#1{t!HcqiirPjF1Uvq94I&D2OR!?Mk?S+MS5$^exv#g zM&a3aGOw&+?>rzib!X7hn7ligS5BEuxSqA|_}vBH4kTtU=&*-Fyw4KR+@!RsC7^Y!5I$x~_Y39`D+Ri_fk}yv(k`bM~=*-_EwPGH!c!eqJHjHR*cc_ggX3P9C*< zc69NcC#934^M2mWE#ZAE-}uHcV9&v%Cx5=?eCfN;@XE3JnzmW_WWHM-w;p-EoHl1l zZq)4s-sQ&AKeBDJ-}%7&*8$CcAtBCjiL(B;9P^qOrK(bl+%;>>FD^0AoVDD)nYBS= zhIQbAqrKLpPEVRy6{>PgUT<{j-kF}X-t%CNsDHfMTa7gDlMfa$9A$77R1@77s#J8Y z=eSl?XxSdGqe`7|BEkwkt9~3~K2yBsL2GKS+exn#AJ!S#ZBm+D&H3HPVaN6d`wEJ7 zH!WOqxM?FFNBXw;$8F}xh47zZu6itUIODNsyZx$1@=FiRerq@BjMSv-j{Fvzmp=>4 zj&;gC5AA9= zTYP?}TIQVRa&v;`#60z~TZ|8Yt&`%`A@>Tj2o%bT~SZrkz)iez$3&TlGDpp?&Wd~W;@{Q1d!8pgTh?ZN ztkC1_`fbZtem>dwJE1>a@aAL-Im3L{kXy4Rwceh#_x@UK#+|bdMhmZhaplB}TiY@$ zy65v3%s+q9HngDm`28H#H&+?77YZ{lH1c^cYn|bjV(S)}!{n@V>A}g134gC8cB?#i z(zP+U>}_0bbDL7Zr<5~tD^h02?DUPZP&&59`_HO3*?SF|m+F4wc(bmhEpD0G7Nd(im9>3fq_s^x9W46U1j>kN|i}R11F{*oZ zYxC!e&nK=qJX`UqU_5_WfZc;#L1K!tYPu)CHva!QaFN!s2q!jerKm&pyuYlL?lj+F z$vykO#J0cR{%sO9zfqhteW&CRo6I6-Mr$8+^=HA0*{)c;pX`!Trk3$z&Z%Na9TgVE zB(u|Z=6z(^yO8}9*D~Q*XL+BR&gr&Sv|00B>-R3*W0nVbWgmS%8Sg$%s>m&-^~~R- z%LY$AO>_=>y;O3|hjXQe4?eM&op9Z|Y4eP;K}Ubs{9e&?`OCuMtv7bRG_q~&yRqQ* z5x)4KEBW8LwytL>Th}s2ccGzP&&Auv&M{lohVPo5EweDqTw?|(?<`%_bY+gFJbo!f_oa?p2dmUIB|<(-J)SjbhJ$nbQses?W>3BTPMxHl9F;j` zrsV30fjg&v&^wu(HfcH62KTNzEmlQK)T=Vq6s$iR8@c}D_4l$T7bzCcF;+e`K{Le1 ze#I3Y&BNcG`?bF1P@ea-EyN}NilI-Y;G6k!U(W=I@lTngW1-{sPIEzvhxc*wi^5*f z{Y7)Fy}sUY)KCjQv%Sh$oqx*b*PM#t?eBMHC$t~*^0rFwty!xP&!4(M#Cme3`nRO# z&bB7Mm#saLEfk^9`Qz#d%TSZg7Y&c+^lNy`(6zp5S~WN2V(A7mP3Z-3e1o{u>ydnA|z; zYPL7~bE4MwRSRrR_U;Xy!t(lZj6wPN7umrFzY7PiKK9%Etn-~C5sur#_wP-M-etV# z%EKiMb2qQkJ?X7f^YGy2KPItP>T@kmJ=<}yq4x8QD;GVgWY)D@n`grRc;lVyklidj z%bd0}>K^!|A(T*i#Ir}VEo`Tan6>}simXM!K4(_6PfXH2JY&~SOZB$X%b8=+|IQS>JhMgTijw=)6(4NBa%`60mvutmQgOwa3XRZZPJ$f8`+$w$qR1JTlGpQakP%O4k|gKHiymsg8iw`j&THP>S|9_AMnUwomm&-ho-zsyV0!CPsMY_Wsx}faKg?jra?bHh7{cl6=Ju06VJk>1>0T17{HYg(BtW;6b;x?85@+d5xnhF-6&VtX$4Eq#~0e@C32e#ok= z$KHOw_1gFMv=vjtedJ$wo|+w`RD7{um12n6)8*_O)(IznHT=syZLA({)Z+W)&J~-k zl8+2u;_HPDoRME^F^k#y*rmM%Gllc{<~Bv_v^@JaU!L8d_|YciE-AbDW{Oh;x79y6 z7V&KIpIXm}2W~F7Ja=)A1i!`Sk^&RYzwhU>8GNpOUYx-u`kB|TS#+XR;jgqAEBY8; z?XML(aAx9knZJ%{r+;6M@40_ort+lMgjB9IkGgEmS}IArj=cQ;qa}lJ{~TZAh+Ddu zKI;$4KAy{EYB6hSjA-9thQ&Qir=FFwuRSQVch>LIog3Fw?%XzMp0b3_Y>|!o=1rI- zp`){T-oKA?jz0^&tfJbMbtQ?7+p_Y;1kIBBJT?K9JkuV1iBk@Z6pL@1^GvHNq$pa?X!tEHp?Q$39muGVJ{JXMb(TQo#bN1KH+?nY3>qq*^ zWhrS_|8LmXcroKyvgmZhZh6zNAJVdy{f3jF!{yb6cnU z*!ahOU+N=&6V>C#r}b&R7W3}yJQ0$e)g86XQ|D>g=k2TFN}YmR7&I^BoSd(H+y8?? z1_MXaHs!|o>wj&ITXFVLr3HU4Scq`v0b8r!9;k~15E*9qKCJ2WR(dS>jWNsl<^o^^~q zTyv%21dS@Z`*RP=xEBz*Y~~VF5eWjsv~2egXXSHn?Hwz?w*?e^1D@H z%+om~t0yrVT)f&7KJ%lO+7_exTF25Ne|hx!a9yo)e%aIza&Wz`w6$mDrW=>9%(>>p zv_ho+saV(B(22V=CG*d)NrZ3J9Rs5Elx^obgL6xcxp;v z;*JkDm)7K*EB(>ha$@GmX>%=8BNuy_Z<_pjO<($rwTV|(-#RH?9h#+*d5(FVQuRNp zBHKCZ+P#bu-*oJCvp=|ZiJR%%U7Kt-25fnD{bEAurbV;nObR;wM=A8O)v6t)sq-dX z@?I(zrp(=Y*|c+~rD@r#5QCuR)a+Gvj3TCL?dZGdc>ZeaSEW}{t$l664k<@c3Ox5s znapIQb2?(p)bN=-+6IW?b+D}kGlBDYg?AKemkPywKQ!{P>ud>LoxAnN?V>+ zcyM14xpeA8j*xMvvq;<+PeM4&AVkUF$C=XUr@PE z%6^j5ayABsol$G=?oU}{_^#~L`!zm7%}?*?N_DzuF5I2@LdLeXv;C*zg8%%dEv427 zmM6IFk_)dp`v0oNtCWoMpWYs@SA3q~QXAkAljtD&uwZuE8D^`~3B6Z#t9(_i@6|WYvvvk858Z8=S0!+Kj;2D#)axe~zI*yX zW0gYl)4sSK``aepKXcZ7_hwe>#-(>MBR1wFNQ5u-{t#2Sdv4@r%Y|#0PEOk8 zb}{s*)fJvrp8imuhNTrN*t+MsH=dfT@H|X)`K6|9#z}nTq35ohoTQahZL-%c;_iZf z=gwArwkO4YL;bp#b$U8>C0oquFUY*U_V(&8Yjbry`x$9roAxQ& zXbGqLnx2Vy*#Ai4^@iYSGZc5RrEguca>m?Cmsov`Vm~fWOXn87Wa{oL=PW<*bwg^n zVA2X-=H-7Uw1o=x%~9fCr*y@pO0Fl4uX$;Eh~TEzvhy{oFPbEs4t5fI>gPQ9;bixv zH-d}=txYs1D4p5GzVyV@Kk?5mnl{}0?Zlg~p{QoViM9Wv&#~@0^{AwG($qr|k^Hk) ziMbs6b5e|rXF1#Ela4pq&BJy?f0?Qk=X&DY;**BYy(h{%nb)m!G-(?9Y_Ew;no{c( zf=}n^om^@tQ_k;q`lwr&VA@@`37lD5&r0nw->UcKOK!AimUi}>w9PS3^)gOeR_I*h zCh=W4O2@SE;TA()4X-~_WmwlP+H-|v`DBL2e0?it7K9l+-Lp~s{JXh)(~JCK^S?37 z@)LBs6B?JRpS(+Qjnm7s5BxUoyQdc}?o}+RwB9IQxj{5^6+34F>$MkKqR-yWz977# zejqA4v#YV?msk&{)d`{$e@jPq2o;S9&ljm1l z_Ix;7b${)h$Y;gV=YEyY{qtP!c=y?wXGZUMO(Xukx10P~d;U(7D_WB;KU@86wcMR1 zwUEeLKFzhWin8|U9Nhi({hP1%`|PfB+_$egx8nNQYKD*Xhy8<0rYco8dYrUtspfWl z^jCiWjN&75m4>(Lm;HY{{nF_rk~)6&mF>qFIe9O5-w6vnuet5gVwH@apU?Hk&yYKl zpcy`W@;Zfu3%9p<_okHIl&IodYMFNGx|}K_BbWG&$Ph29maR;YxvaZgr}Swu7rw39 zt-Lt3Y#oc#VdiTWb(V+NO>C-b@t8At*3T{O&RIbd4GW|ySLBv!-`0qa-jlQMdspe1 zi_)bBChl}un{9fw zJUVUG5~JeJf43gU59QNo@hX#*<9qilYWwvjg&9|B&x8rys^gV>9PqsGv6^+x&&_HY zXZ~F5{bw&@w)4Vyx;_8jK3*wtx+T(h{!W>jhAmP$!m(#--Wl0FvdFyg|D7=?4#ks~ZnBqT^G>gw zP<-|5O?R{1e@-c=mwP|Wm3P?OoIk(!@v599qJK?isA(K(w*I&E`z>^iF*z3g z|K-h)*0(3a|MhSCx|RPQPfwGpG?b22b(|`jZ^`B%d9~7SPRb!o^HNc9{yx3j(>&kK zeKyqFE&cDSqn4gu`-v=-W>?G7xNi#`K599Y-|^yAd3j@RglOWbo&zrfU)<{Li*=nb zRX3>b=HhK`E1g)Y=E%t!E_k_6F7AuFpRbb4I#pe(9@%@`nGIFUHbu7IZ|vF_@+;uG zo53vR+C3WTEdIxNS2m}8-zKGUb?YOo;^z7rvp#A~n|5*4-Ob&Si$CA{f8p%k%(9~H zstY@{W8!8-yS@mBycy|r%=z3r%jH~uORnwhD6WxwoGjrM&ah|!*AZs|K;Z*82i`X+OKGke+ zTkWRPJw1kZn$*iDax3>t&fJ)OG$>9cB=!E6`*zvg%!giRRXv(<;ncRY6KZ#h7HJ<1 zm{Iv;sX<-W;_W3RM=g1#>GpV^-1t@CZ{&I2%X^QkOiZ}f_38G$TbcJCNv)B&TA=ma zOZm;A;x5UPhM}4nk7uq+FX?{v=*ZI-SAtGCozYYN@M)O?E0``o#6 zd@VmNJFvjjl)Wfr_8_Q2i2fHnHK2`GNhwfCFuhFXx89uE_E%%iT5Ka)^ zol%rM^+fJkv7Mbkn*D4lr;j&$^KMAJkaz9%{)o)Gb?g6iPc7SQ$GdxGwCjwAa$hxg z#f(yVf}=G&_$az%1kvj$9&+jZ#} zyR%Y*$j|A9EZd@YFPWwvS(&RqDJI>o{lnT@CwwEaTgn&DSI+b%eM z|Bx7BGh=OZkjM4RRab15C;YP5ZfBAjX1?j{irH(+cs}GzPrE)vv6?4c`+{w-?s3cK z+!xOLZa=umxb1CO@u4Gck~23vu#;Wka6I7DjijBT@>;214evBmXRHd_9i(epQV~{p z?RnY8@)Ma)Cr9isk2=418^4$;&$Yd*OWtJ_h%S`6*)70qV)Z0sZco~VHv-pAM=$Hx zrS~;v@yz4x6Cz9&)LfFaHhrqbJ~8*mlueV$zbxOmmqS+QN+^4OuBvFub%Hlp)E7Lm~NQP7V}=) zb%SNu)~Pce+`gK+ddgSTr8j3Ko?oO=aq3va#EGKnbEe&ObeU}ID!)XrIO?gw-O6L{ zR$Ar#6wldjvcy?wd6mgzzM_`5Qwq6HwPdfn*%aR`%XugzF^JDo5Vzt&Z;k0Tj~5`XFtdH zsPzeVye$iFoY1K=S^T#C{Y=I98I`XdG1Lh%&%JZ?f|k?s$T`wSzj1xZTl_^}hUrDQ z#79$uPHbAd>q2Yoh6CqrnXr{lE-{Vh6gn-n_f2HozpcKN#ua4}I<`+Acxumr z8Ez>J3v0T(3+Ax0#rEb%rtJ8=?&QU$7feSrPWn9!6+D()Kj%i!;kQRK6IL!RV-B{? zUuP^kvnwOG=%|}!`sXc|vY!OXK6xT{x^RuPlV~N+H<_cMNfWwVo=%f^wM&)tqoICL zxq6U#%DM?Ld(GyErQA#pY&-R~{>G-o+TP7qK`r#sxD9tx9|oL|xG>SSGkj8eXrg{w zpsV6H7rolEPku%2IO^lKyESHW*!P85dObIb(!yjXhq6RGIcs7Z@mul0BO6|^ORUNg zk(sI9>kpOA(sI(?LmxpRvs{->LfV_36L=e|U1H)4Z6Qt=Rs| z3zZ3nAMs^>ep7OqlbgrBShM7C*S>k-Q6Aqe8mu?=k1eV`P`Hq5lT3J3bdB+xgP-PH zG+LTA>2FSO&!||M#oYc&ImKztm5v!@A@U|aD*Xaio!WAuREnK7}`D4^FKvop|rrUFDj?L=)$9 z`G)5l(9+qk*KO~dvN_6DRZAcJu(^H4WOgd|y|)7M*|gRrQWneKU-sbBc^x(@+QCGxdFq79!#`&)yd|}~WP!(-bi;_B%=N3fHiRo= z6iezn4HI0p&Y^dYLw(A`qE+wui~5>ReJhhOZLr*^U!+p**Sa`+(K7B3!L->z%QoHf z^SicZ<8KksH7ixjXB7OMbLr-jDgSgtJ$nqF?0zV&?sxr!cDe6M|DfXiA$^ygwKNzq z3-0dQy1OrMlcHU#UAWd%R%LU(Ke&$})u>rh zyEO5+79oePG}Zh+8L!PRrU8mhI+Xx>z*22_3vvg z3w^3O`r_eR9b>nVPz`mpt#j{9sBmR zGcM-s)(zb=J-(~Iu-o5##}obq^KG zxwC806E}mJsj}W*?Q>FRu61Eu5o;2UR?@w< zr*gu3Gq&&DTdZ=|Np;DMeJ^gDyLzI+&?U->>%84WF87qKOHz9rnL{}@l4orT-&V+#&GVP9BftRBYT^5mL_@~0DAuW$QX z+0-AKZ(JsJHuCb`ixyu5m;Sx;c;csf4^w+0nd6tpZfHBd?ur6i_LRxH&y_T3N4d_3 z=9#hTZIW{S`R#{-W-eOmGUHIdi~m24{`)%p%uC}>W#*GTERXhd72jHu6e7CN_OZW; zW1L_7vOiJ|r(UZ>ta%=*s9r8LSNCeAbL=i%4<|{JotwOfc>Bvrkz8$108qxq0ofAlvK94(2Ib^Pb}#lw0N| zX1gTT>aDW>xm@nuCdc0?IsDAsx@NVxbZl?MEtR`>CTAWvb6m?fPP68#ma)9{Oucg( zBkZ!QJ(yem%qh+ndu!7xqdKkj`jWHf?;K9GH+!3{^YkS{!>NEH4T&2V1gd17%2*f$ zdQ0!{UwiKFyuYgs7D?*3IzM}nmyz24w^IAaiEY^*udJPZ-!4p4SOoIho0ip|X zgB~wB_o>^p=9!Vn=E+QLtEGHGdx{onIlVm=w9|}t8=LlBh1CoAX2mq_jP{&$?ro8u zmf2j51q&+=JS=8-%~T*KTgfXKdg`27Xy|e0yE}Je=ZDtMG;F5?ruHTCX>8=2oG zOk&q)itpMsX_4=jGpP<8^X5dB?l*{-@kQ&<8h){^rRype6lbp6d+o)sxXwpe&-(B6 zObONYT+YG!`m;-+sAQMj%yn^`ydL_u#ZzBcuX>!yb~$`uto3Y-tY^l@&OVg9b2{}v3{sj53`Q)-vfHd)2!!vB9OSD5oXGXML2{x-=q|GuApW*kv9g@4*n zRZwrB|H!dFwF@Ti_NsdMW&QpaMiB;Qi__#P4GRr@Cr3Q_SMH!;u;F=>{@realnptq z9|W4Fv48g8CiqC8-Cr(sT5{_N{myS>n_Vi?pdn&DevNEEQez@OY7= z>v_)?>824?&UO)2>!p_!T@GSi-c)(->CR{3Wz&Pwleu=NKDF4Xd{_6zJBRgMA%eR; zU9LH~;B>;u81)+q``?)u=D2!WDT@@#*xg+`rB41CBe#3Fr1ShKjB-Yk)S|;?=XF}& zn!CDzKkV27#f$B!#jTZ+hu36IEXoahyu2&k_}E(+$*I9Xi@4o(@iM4d>nVNL{CrUA zN}1N`Q$GAW#_IVN)BXHxj~3XjUwg3VYPeyu=>x_rFYe8)Eyn8iwyc`mv`~K=Z|KFx_S+D$HP#b!xJEKCk$;j~9(SP6lX0|n-{N{c!^w0f& z-~H7cL%(>=%gPOyD7Z8?vtg$4^Pp+r&cC0u90m_4 z>j~x=v+t~{X?_=Myso-3kEu29hSOe-%X{)yWu!TXCLRp5iTyuSJwW?Of4-&clE1F8 zs=_pV&mN=a$IlkoUfh}ug);Yv$&!BbmP03 zY{wZUvo$YJI{VvXyYifyzdv3r-p&>xm^Pn}S$5JRorR*YPhU2@on&jfYk$=uU$;Er zn-5<M| z8)}{(Q`##w;c$ZHlbG|)XU>$|+me1kPE?97Ikfs!p6jn|Tl>FtWXokv_5Zfb_ie>5 z|HVFci;kR_d3DvHyNipjPm^cq7tQ@Lsn7h>-g%|xP0P>z*p<6rvirJ?!Da57mMvbH zY?pW1e(u_b4*$MAxo_9JdJ_A+R9Bt5!Ql!m)@S{>#V5I*yHA^^x~uf`L5=wb zKe?ShFJf8aysM+1dqu$`8wK}=A%C)*^h7iiUH%D%nMA!?rNd`)yE~x&QUb3{K;Wgs z8K<|!9+;t(D!=pTn;E;8wRxtBrt?nuUBFlQSb**D*P40G%ulj5xLNO1UjM(dHkQ{* zFs({(RnB!;3v*XN_428?Gu_te&F z_kOQ(kaf#*jM>GV@~ZqU&vd`kip)Jy-&$lA`TTX9$EKa0_w3puOT9lgclR7m-f(H_ zqP&RrGOPETdv{{)$%xl8S33rlYz^F^E@I2LH=|iY(sxo}V}#4Q;0dZFKSKTN*Sg(b zS{B@tac<%)?p0GZUwojmaGOr&R^Pn}ckh(^*p?Z-f6`p8{wo?PQaXp+#mc8{+P|y3 zqG8f>O^0KG=||#tUbtGU={mAbsYKPNZ1$nV{oLgeY38dQBr)pozj0l`{YB|a*{X}* zo)iUm)dz?^WZ<19ceUH#ZT*bv-2%Qo930 z-Bt$X@=kkhqIUhnjcYrk)>u4|y|}#5NNNq^9l4^XN;Cg4CT#CLV`2Ixk~R8OZ`ySc z^Yu>JN3ZZ{tK4zWcRFVraK`F$U|jrZ5!rV^c*KHZ`Z5~>Y12*Cwz%`;vIXvvn`REcU_D#nsVhbU($xQnRg~E zK4=scVOTEuJE4`EN3ip@iQ6&uY!hjh&Rxc*6IMQKttb;+sQR*F_iWzPN-F73HS6S# z{(4~bs3(T4o2}Sm&dO(-XYSwQGeIxNHKW%pD@E{kgVv!O{X-M)^1S_^q54=hc9Z!5 zcJ0#%qL=QZ80$>QTo|jcYQxN_CHjY6_;(7eFpm>mC|A%Gy2^Cx=`)#n*WOJq+N1Ev z`y+SXsYo{MyU{0?mT?u?Xg!sERi-Qv=(>YZ`^cR#=an|$UaK1#r)<-EVf{4dD3_(> zj+*OXMM^VDL>FfBg{y=ctSNt<@Jnm;uIAOUJ{zxFUAC%Pm)3J@p}@=4hnx;&xW@hQ zta-m-ldbI1u7X3WIWC`9n4Ky)$?Nf+9KTZs3@%6P^U!ySm{PH7Zp@(sUjO`^s=8LI zV>BlPKQOSY(2rp|eJP>Vq^qG*y|Su8RFVI+%Hm*G&ui+3XDo@El(Zpq_awD;7z{}rbnOj_|!ZkuGj&+YADyens)4iQv)98eR>oBQ8gKFAD(cCn};XK;J`lx>&qKn7jHH@@lv|?SaHW0t2s+q-(OUp_4&!d zow*K@3TLJ{s!e#5@!P_S@0gU%?O>DZt?@xE!e){$M)@-`#xR~|13Qf0M6Lx3MjMPsJish-98@PO%E$n4iW_)1`obxPa)3yn& zRf31U-tya_oxf!_|EFIE`fn6@MRAB8Q#I)5!3}bM9;wY2Bp8pt*2vwq1|6pIm(R`Q1S#Y$npDN#{a9u zZ>Eq(#w8loIpo@GGLfVtEj#|4WryNr>-3Ngvz)F=_W-NY4E(%FZmajC-czk{J&tvaOEW5vQH^ zY>NNckd2YQmv;q#H6Qd-42hRy<7Q#HW8US_IMv@}hUy|A&3>VYVhtg6fs<}sQUo>;Qip$ZnG$8)+`}0bWVwz(DM+K9CzapSNdA}K)g`%4mM!yXE z(p-kyzVU%6N~glsPr1PBt!_K(L`0947Ne@Dp4c+Jhu?UcW8Z4`+~&fJ@=LGa%=R9GAz`#!qlWa2#6f${9RTr9akT}Ej?*O%Is4ZWSJ^%%@X2jRt1MZ z!sZ1#n|T}rvjt`dmRa)b)K-#c;tK2v5M<~-BzVjGQ<>7I(+OYjhIQEg z3eF8nx&jntRQNr*!8qa6PS2F;W!cp%O|j?sKCO|rGHO}7#xc=7x1r{Lu=i4CZjo;v z+A1F}4FB6ZX=23GhNbQNr4rjVYZylqKbDVI^<7iZ^{M&y^3Xnm2&RJ@s+&`*Q>s~- z&MwHgBRNB4fo9MSVM*se)-%7hcEzjR=idK-*+(JB#UL$wPk`pqS+?aS=5{XKHDPlL z;wBp9HG~K{t>R#9x|po~_JMTEs!NT*0ypQqyd~F|VE$0Qg>TU`z4j8P#}zLHXZprJ zUtu%B_tk_q?^+XTrkv5V$cyAi+~CrzD$sM@=gkf2uG!01&C%@0IbV|7@6Zrimd=oE zbZPaIy-cmC4R@HMY@hXaykljkVY$N{zi`P7cE&SOvTh#)jd|Q%8OlxAXGKJdExsJ= zp%L1`bTH)%bBI%T!teVnhs#X%p9wp5@|(}6Z#lAMjzv{? z@6))kn=y>H)7m-XR$igB&#b1`+6T{WaOOM6%=lf%?$D*j?PB$-UASa>SKr@#YA&C| z1x91(iPpspdd}`lI+@>ec&0fRoczqtCC6aau7BHD_x5D#JvB?a#8<(+?!{%!i~v%1wu5f{Mo_T7#zE+)8y&pNELaGJ=% z6i(Kr&i!thFAr$lHnzRJc=^d?3%?ngNHXZj9C-Tsi>GWyxH+(I}=+OUgB9}$i@kuHc>}MJi*B){>wc=K(OT1^7K#;43K+pPvw-|St zL~qSZ+u}AacxTRemHhKpY%l7qeSF2Hrq$u`A;vkg`0ee#+Qnr*KE$YVexcio44Hay z@%PTXllF6|-Tl{9!_}-l!Hnzs5^=?n7-o(aa*{&cf-mJ}7@RiqJ-tkxPdR6jusDy} z)aI6#g@<>!n?x`jbTN#${rA{D$qa*=dbf>ZZyP_XNaK4xi^IfkTH%_WTjvcvE63zL zj!~KRT{O%7@bUVlV)hN2`ew>Me3KiqhkxIsbY``^br*KDzc}IMA{;s0VD$#gg&Rxw z)73tvu3=oj&NclX$A!HqZ^AAboqFW8?77$u_ac3!gZt9Xsl8E~_*Qd^ZLm<8iJa5_ zz%TMgS61r$WcUyzE&tzhhWQ?;1tM=xM4A5)IIyVS_;bZqzO=d)htsxJ4}Tt{bP4VN#Q$&U;U46F&|3st*R5)Y{z^- z!8P#9`8AV0Is^?P${yX;5oim$^KRk7i%AZfUnY7Kh8c3}t}R-k;-MhH?!J1H?Izo5 zvGrRI*W903xhLT0RI|AJ$E7Noha`NDrQc`2cl@N$IoSg%jp9Vxb$tr{F8Jp0_07g< zJ_i%Z{`6k%NDwZPlnh&ba|OF2{|A#|0g3(E+xEW*;rk@A_0&WyP_^d9xyknD3wtgG zWBXfgs{E!gCa50h{+wYjZ*T9>$e4Zh=_mQ+4xO@^x3_mH1A~;2^}LiHrYq)g);_wR zwP=k+X4T{tcexAPwz4J+N$)taA4jU{$m$Kwe_FsCV8x!a6G7^=AJE=x5*kk zE2$%A5@oJ&bFK}sUom5Akd3RR(@G@~@NSm|-Y4vg4wY@Qn%K0tzDArfJlM5%!=Y)j zI>fk>HI+|xxn~#ENcL=yT^HHR60yi%6r?F(y`$jyX$xZ3Td;0FSgdr$%j#i^V6aeN zYgYO3Nb{@(i_gsVxUp_oj>B|Nlo{MC&(C3y4bOi6K-+)n`za0^oIjivxv46^@N}kH zvrMJQhNZ>*RzkC?9QrRL3uvp!uDp9NP;ueT#~r?pWpeK+Y)qSwb{-Tb3O6QQ@H!a& z;lwQUqy5+4)+fu!*t#t^7-`!g~DV(;2BkuYQpVKkE3JeTCM4fd4 zMSg7vOwydd*&yPhA`%qIwS+hFsbqBfj$A&G;0Sw(?KNtXRiDh*VU%yOK*d$#r(@#+ zi+Od4-?u;9yy$40H~C7gk>u^if?is} zv8uxAU3(TLSNwd$ldHSzF6Xkg+kMTC7HIuh%_ia%IIGC%{B(y6lV|A8_MRx>*#5O4 zKu&Y}Q{$k$Gdp=MrWVTcC`~*uucYnSt_jgQH zYZcyLyF{YFKe6NUy}#~^1>2d=s@+;JV>gq{CuP6W%}Tq(Ih#exo->r(ESa{n|A1A} zT9fZ4O7B*Q`%N*OtaN4?gG|kHEr$6V69de@Sk77TSykXoMnmXEC#62&*0vp|UKMGC zZ8|*7a+9siTME8a!_6jYvRWk+34Idjwcf?JSyy7EocwwV)o7@d%W?TP85ic&6CqG5= z>lTJY_k?bLvLSwQ$vzgQH%$!PNoL{2E-{r4rCs05Fmfr!_p*C0LgxRR_m%rvTfC*Pj$i-r4a06mgCQS|Y;}DbAImyq(BE2liQd$1aE&nyw`x*K_&RpLz z`RE77W7eA_4{uj*c;&!)A)KLs`QHZCyNb^Yii|{kJ}hwPiu{@4v8>uQs6nYK^r6E2 z5VOp-zQ~m)vfU3qQT7p=1-v(iIjhDg47o5Hz_rU+iM?v0c3E#DfI%+cdY+V^u zw!INs?Z}YbwfC;>s>SK%IetQ|Tscwi4s3LJXnQi@=hG~WS1jyr%l;V^rz$1&F1Wkp zKesH)YsY_FGn>DfG1Q-H|Kz!_cKJ&d7Z;P)v!5#$pQ~y)DD>vw1+8r5d7lMtuJV6y zL*Plz$CO;o-QIa$(?o8`O{m<)FoXBc1v~aaO=0a%?^zEUpALwrWaoEN>z8vi_1(C5 z%m2XsgDwqf*8;cc6*Vomzart<_HA8^`R4uolCf<@5m(R8xA}1=^Y`TM`zrVSTzlPY z|A%Qcfem{Dog|k1v3S?c?7C)VNz%)A6^2K4mfi@9NHOY^;eKd(TvapWrin#=lkMRI z!5u{johDIl-5UNdtTu}O{8uP@&DPmz&$HS2X1&RL{5MqC<7k9M!30r@7cwfQc_MFT~415Q8WLwIt3&V|slN%c+t^BUGyDs1$^H+|tx05=zaPT}0)c<8r zX6V{)>LIuz*)w}_E?@sKKRNl=y^9oi!oK$JulT_4ztj%oYXQ^$|5neA1h>1LRa;JO z^$L6;zv}wr1zjG-kJ>D|IAq*Hv~&b}YJxbrdY6jb)?F2{iaRmp)kbv*9X3bl-2Vn_ z9cypSHsm!vz9lF&A?+R8IhM0?muxDk$EL2y*K>@*4b}!WqYjL_T0VcvPMbwwKhIncgA%uRUf{<++NKHMNIVN(F{oN?f7C zwD}Wu2&tY3UxMYXnM}@sP6ygbrie!^5;(eT?*)aV41O)IJJ~Zr>@u64?T|7& zDt|nWFJWHSwDZbAEo*dxWq3Au^nJ4o>TGjmlv=uz>wNhmo`jGJ&&Y45=WB&nR_WdB9>((f^dqzBzl{L}F)@yjZ$ZL+Qs>gR3hJn{`|> zo_jYrqQIYBH@IeF$HUp%JeAk4eYi07@}=wbzgqrZ*z|MH-?`p@HoyLNS^dv%v4_(S z-1+zW^V9S5TjIO^Yx%cxR)_uMnV`0!W4F;ths(Q#b4pLYWRyF>9j)^sY)yX(pYZF2 zKdsB1(rlOH^fYHCxWu+yUbKSA+~>pVH!+2`f?AgJyz6Nf6;a4Ek{3-}wDq3WPrDPV z&&d0KiKRad^J=^>@)m2QwGn%rM_R&28EXF9T5?G3VoR3eWs-6Jvgu)3Q+a zos)R{v8+%*S2oYnzvdj0>3bIbP`G#U&8#~w?B3~%O$`!{Qu{aOreT#^)YMd!EoB)Q z^CCiun$?S#R(`nZefH_4kCSJHsyB)+wX~nwbzqUM8QB==KSHL zuP;9Tx!cc|oK^Yz%Y_orpjPR)6{~x-aF7Gq<<#3Jr@vy!| zv7%o0$GO-47Q3JJx4&HTTy4fvM#Df&CnGKvft4=oCuMZb9MZq3RI>i#X}1UZAF7z& z9$UyR&X{K+{kGv@c*e8^2OYbw-*%UaVYrZCcI&O!AFiLGdFFg~~f`e37tUy}|NhqWdWZt3reC*%xxEN_Om-b-H_X$|tdljfJaaexH2&+$DCy zt^$pA&g7P^yB9?6^=O3s?hEi*xJX!#H8H2P?O|uY#m0wf178{ zoUWW(b1gFd-o3xC;72g~+tm19x4qZbrKcV|KKuXv(^I{U)>J%x_G+^Fyw+74*-CG3 z54&ga!}{U&sQo#%m2YNNU3mEQ*s0s^8CTRkN^oFtb=>^5{Qiy)PlEmR7+DIMB0a{l6$(Jzl7hp_qBObqq4Ze$4fgW z2m}SLSvh%?(x0R1vhJk<9ZKKJ@(=u8VZD$|;Onu63a{o|W_EvDGUt2Vm8A^54#vmN z>j@jz{?pD}{LSLK)rUP1s_mY?OpD{@q^#TPv*p>#%&EfJ8(u6_e!6`ALUysAb3q~Y zgLnS3Y?JuYbxZ$#e}3A3?uYqS&+JQk@~_{nuaA>h(|L;jnU#<*!~RdZ)#KYVvoHVH z{lDtdmy?gR?RPgW_9O?(ZfVwT#(_e!ieGWAA@PSQKmd-2(K;!Gz-=Kfm{ zuLr95`qNrAS~^`((3eRvRi9e>()^mln>{D>ngw46zEg2I%CtCx_tq_mv**gPr1miI z#!WKP?zamps*12>SGB0sn<=Mue{`1P7Bih1X?HO{a=!aRzvbB;1}dCK zuH5vj(K}&Td#4#j>|g%6_y6jbH(j;nL3MbM7;n=z z`?{@_&u)Gz*SlDw8#JWr)Bkzp zvisit%G1aHy?J$B`l<5qb^pA7pAgX?Qf#k}f`-_|E%$&|)tv#6CvkM)2Pu28_W?fxcRo=Q=C$yz$Z-0Jm z<)LlQpK?}Ou<|gp-*-zDTXN_)ck54IZ|~U=5w1BAF{f=>41*u$7}WV*TQ=F0MQW~I zluRBEL(TK2e~WYFVt2AWc=bu$+*;4RgoR=Mez$)4r(eT9%)OquFY4dp%O_51?MpI= z`14O{p4B-=?|A}~MU1Ajbrsm;ZLK-`|I4eHQ)jQ%|Nl5tL#8sN@aeOx&8MH4~Gzw@DeO^?ZnnCR;7&wAzWN9?ITctkCHfA!NZ^%lPB{~MU+ z{5Uhy`~KdNZ}xM1>%x7v^NU@cVHa^N{LxL13mIlv-(`7b^JbRka;*`pPGx<)_L9!T zc*ccg_ZR-MzP`PQN1S(>gF&sqlllV*3J+E+G7x5V{p!W{aEjhZnJ;Q}TYq0!wS;j| z=gO)chvu(Ko+}%il+teCEO^Vfc`&MuNr?>iWj7k_TY%jfR4dFFcczf~EI@Bd&FD!wD~ds=7C+5>wR-28Ov zZ0LRcjqkqNy_p%bbHzHoxeJ0<>dyEY|LfgT;rg0SH-eAH{XTwux_s=vPxU`Hi6&T1 zRSG_lplPIZ`BKf&kabJs>+kygojZG_)}ff2V&%=}=7weN6B08yS|7ynR?MWl`Pf`H z-=8M0e?HN*DOmEa`}HJw5sq(~i#D_=PktdI-L0rw?$#D5A={#=dg-^(u3HA>N4LK| zYkdA$P2KXFe@=Zq$@6FadWHw@P3G!HadW8YqKE59~VzO z+^@$zcY!QRcHx$_)f=>4Et`C>i)&A?iRY4?3wc6hex<&fj+98{hz zm5Y{PS^F&N?LJqv^XluX{wICDYnr%$h3QT7_p2RNkEYz=YM#ILR_$W;n!dn#(NkUu z1wXj-3$;3x7%!*Hjefg$f3S7!r<2qF^?PUUf3q;?;Qp--!o%t|mHm41k#)Y*{x!dg zw=Rga|8yYf>2|HJ^()yO86MmSKECc>P4B6#345O|F8?v{aQMD*Q?sgyzq`Zr{?wmi z+)-Go`dsdM@R@{#h08^^9x}6)TDwbumtn4g!fHuAO_N)?Oq<{BED665$!~R6A?t-i z-S*3=r#O~0DXiGPJ4`S9P1;@1@C648(?LDs2rkcb-N(92N@r8Q{Cm0H-#lvW)cIG$ z>rZcSecoUlUU#Q%{k@9Mr|!r8x^}hu{;p4lp7+oFd0BY+{{2Ot|B8v|?XCMce_!3Z zt@Sm3AKAx6)xG*K(|-S!U;6K3|NQO_G>mzF>ifF5s<)3;+E+b0d0uAwt~WE;tS8%T zI{)S`_oJQB3?I(=pIWO3n$|gZ?BfB>SQJ?$vZq)+Ey50_kXL$_^ zjyk?RakyRjtlQ?hO8eb5i)@j0m$TUM?VQ&6uv0H8>Q)vmKPu%e7ZFjNu6sctcg-i2 z1GkHVpk+tm2PP@DK#9T$A#D^Oqr?D-Z-V)q))a%zeKi}5( zc8MDz@_4|rtQ#VCH3_kuHZ)0$u4O%75}7WW#gVKKpZMQ*-^$^spPjv+u7@nFKGQ)uf(v#r)$EbZLhU> z_AEO3D11@I(}(4cANWXs2W6NV9UAt|=7wKsq@sLkghrNACa@F}C zYbWzPR&{oFY%b;BmCkdMGr^T*g3>hxo5>C)rfnA#7WefVw`EyX2!qF_PkdE)_dYm3 zsnMZfVQ9;=io5T;CG?ka+)+I6eXrNbBT|17m)9-#omiNWd$0YQV5sc2Te=3$g2e&4 zzt1>YznJK@HmZBK*Y_E>%cTOR2?!;4P76@D5o|ckC7g-zn`!gWf|Rp!Ec)86gglwF z^rngY8x~on>vnwtexzMm9SFK=`R&^R{fg_nYWfJI@^^MHqP z4Z`u-Od^5-vzAI{^G@)8Vp!!UaOHJxf^CBm+w9aCUQ4RiTzG9bv!Z3O1D~A0fgi~e z`B_VT?!Dc+^tado$F9hr7U3E4How}{=W<<=t-t&;_4l*>b&DF9FPu3e(R?f7biZ|6 z-}a)LpZ0EjDsg{LmNft49oq8GH=Le!dYb>sY42rX7aneFPO$s3vQ;SZk~Xi#nm-l2 zrZxAO58UNjapW%FF2;sqbJet!jxN*oOWhaq%IM(t`osEXtF-O+F+O!>73rI{x8RIP zFQ0Gm;kys+ZBZ>GCuK??%%F4~6;ci%!(6-Yj<~Ci<`r;|Ke&q^ql^*j(FDRm&V#ag7bnvS;j{(Uhs(GmEJ1l zmve+mk0$a4iLl7Nm}T$H_?_vQwEg7&f&kL6hHMaix{q@Kl z#xs&^+&!OUHo9%N$7k!S9`}6T`zk@c@Z^c}6I`~KWHo-7)v2{VFz@dsL*1`S!BamL z7i6yU7-=vt1u$@l7z$)GbciygWyJk(;k9a5)Nt@Fg91}~OM4oVK{VHl*Z*&=_#4)m z#wp_>BO$m)rR1{DnG23@4;+l!p8O@+uiS~F*;F#LMW)qS{ofZKfi3I){LNkNV)A_Q``|4+g1Yt3X1xEs+B{$H&$&mR(*4%deE)iB&HapP)^igw zKL)&h7| z%FJ!Pum0;Z|8?w+=|8{s2?>fwWq;jTo_8&aTXcWP<8*T|yV8u04^#KY?Ed*!l)=P% z>irMWy}Rzr10|LjMZD9_hBrQrIL=o!<+#*Wx9*voXO?;PDK$hs{&oKK!o1k#289Q+ z_eU5{iTL}i+U*J7QS%racF%ba+Yb9#*!UpR=<3AC%K{I2Kz0S@Fl(}*Nn}0mmJW_JA3%p;kjQ+ zE`vSU^8 z$)30$l_H#y%TDcKl4*+%JRuqsWA(&t(bJiwMtS~$F{~?>^@@4BU5*Y{d{ zTlL@j?<@QGo&WytJ#^+~>Y3|*e@Zdb?`zWdweRD%tKR?rhB9=2*JsMOo5{%WZc9(2 z`^uoajyCP^5a40)BWj}GHdE<=>~^;~g1KtEbCkikEwR z4_folNIvXY_Fg{$7Dkq)T-l0kqEC&BCTvgmFzxV;=)_Zgu4dQmUiiDO*q&I@9FZ+7 zF0_fwhhIkfPv<}BUq&uLt2)*PeN;N4#kYCUokc&VoeOSQxiV94&-+yzmLgHC;{R`- zb`&tV7i-M+=Xw71v+W-zISOpayWXs@!u_;K-gQfkS&komU5{HU6Jb!#TJUfG-ZPF2 z2Q1PUA7uOuSn(&UvNYFMt`nT6{xPg(RrX+?%%^%TW#+2eXCGO-;m@5V(WbnibKRji z3Xd*yMHp^zUv+$z^3UGDjK;@NPOiaAj_gX0f6AUa<3`8KUcS43%r_WhNPb@SuY2~# zddoUtT}l0zdGQPvru|vK5PT*%RR8Pp1{tX$hhwSwUAp#fGM=lQJCnuRx%Fwtw4X;G zt-gEU;oM^>EB3bX|NX3&_F~)IR;{oCrFcjm9&@=y1H zp7RE8{;k^eM#{$%)eGM?|4ZI)YkY5~#(c-G9ChD*-`H1j$@%}D*w^B3xK5>Cs4M+( zwe-#FzuHxMIx2U|iC1fzp1IqwsLXWZM3u-Q8KwxsmjP|AT1gw6KCMjWEy6!p9v>MCuNs_TweeGnVH<}!fOR@ zjCXvxduYwQvU!U;f4^-1Cwca@nYmfj&$;PtgQ>WTMQp%Yqt$mU>~X4jO^ zjTbZiB6yjZS47kgPGgCfaRs#6!luiBbIrZ5kVS9(=00w#oYEA2 zD@?@x-G_;igc$h+4NtH8PZZ_bkyciDC_v*#){UEcuQ+(WWNXd2 zy<_uA?H=AcQJpCcoXtxOY^$nH3W3*HZgAy@diY?K#=-?t(sw5Y z#@J`%+&pY_V9BBhv0N=S21$0UJ_dn+%{G_zT*CH=(@@D?KX_Tv^-FoKqW)jH)!fWCZ+`4Hb9ePkmfQ@r0Go)-T~#*i z^WJPcWP7xvLNHZSa>wcm(+{pv>S;2wUNH6??4CI3w3# zpZV)+EYU)-;Ld7;?zBWr??vlm?GCSFT;j2dPr>ZqqKKVK83kr;ayi`Ccu33DdL38t z)|JT{Oo}#DSm~PuRYo5Ap`Dd+DImK0X8guV9n%>fgFs_a+br+5$Lb!{+V@8+ZA#k( zhTYS*d-=VXmg8LbD4l)R*VOC(UFuI;T-lBnRi(4R(evH!fbbJj-_`L$*NUk~=B$&pqKi&ReyKJN@zIiC=EGDXo3E zMoH$wf|(W@TNAhr8x@P@8t9z1dp-X~uY_v(*~uaA_MLRvaB{t}c2!@QYTi9#KK;ox zKG&oJXXyuqx&90FbP?Ppb*1A{>)sE}bN`qoZKw*{;l|@-65)B{fakq}Negp%r=5E| z+3gyG7LUjw{!4rKm0T ziC#L=N^GY$+iZ-9Qt=Z!c9+volqXEjcWKvA|C>t^r?oo8{VP;qpLVr6)ioh%Qw!6< zf3xrSCkW3wD?g|GUnR@mZ6^;~h;28|Tyru{aPsXc88eqRON}LV``)}%C2epfIK^<5 zh-lQRl@%h_3U?W#ZBXJ33vqqXbCav@M6B=4jJoq13eqcFA1YkDdgA(>4VfN$rY=3w zRg?W|HOJ9DM}rrKX6(pLUcE(s@_ZF3%O$zT^?E`NZA*N4yTxUla1rm5ytW&jPj2=K z?YRmKbpvgNy(^{}Op9}EF85jAuq@f(dc&!&2ZNfmxwapP zFR6HAdZf&o-y^9n;2^Xm+_cs$p#9y(cdl!TE+vYoHVQhs{#(RVkb7tGx7K-ul?L)R z<}JOZaXwhJ=z8-~zp|tEPY7szUB#8c7V39o`sb-@UStK_T>ON6d#|yuRc>~Fr_A}a z4<$Aky~;Pkot(RM|0&Mv(gA&u*3lEE85Z|TKbGicTW!ualkdV3W&TS6 zn~%UT~V)_`>J!HX7AHfeL_8$qqrwrU4QYH*TfxK(@zB@|2pjrStH)` zmTSW+w*!-xu$D%6bI7u?YpqfZN$i>+;yBZz!K1NrfdiM1+)5#liAq5Xf|A-gv$qBX zr<+)5s4g#RUZs&%q@?BdErzjc^7S9Wzk6jHdHHvSEPKE3T*kI7Uw2N^QEZVv^d!`b z*GlbK@yzeeRwom@A`aM?rFQl1mizVGbLX*T6YpF-<0!4QQa=7mafsz z;_2b(bhS(j>v|CsW+8ek?u}Sn(7x1~bzF55(!6~`MIY|-oSw7rfcEY`Tin%y%`AL9 ze*WUS6a0HyR?elAprdDVj@zc*e$}_pU+(?uQkSYSHV@%Pe-ggPaTy%EtRwi-tGJCq;zNp$muG>yI|IW`v}?XtT~o%&UOI)b|79NV-HJbIKI_)`!ze4yQF0 zKI;y>5i~(0be>h1UbqeGF7Y27o8NL3@0`^4%pv&k{<*1loyxsZ>~CF5usmeA$wn~d z{S}pu$NjG9Uko=CiF~E)wcqpQI+3mu<0c%Av{N)cJ+1Nj>m|CUwPk1b&Dz$?)BCG^MSVxr^y^kJ|0i6x3IP!->N~db z2mTkxmR(ma@OSEK`Jlhfd|NnIRRyPCUJxU=YpvI2o|nSDp>9b_gPgRJx14&Y{if?w zkA(K0)msk*SmZAWpD1^FYinsxUDXDGIFpEI*=0PJUW3XyqVms7qk{%fLV*|v9P^^5wqr)~Q!xTWjmlwH%sbuOKh zTRBs5?fckF$?Vk=`i!{B`L2FcJSzIjdIDQ^TUtTCrNi`v%8uW@+%VAyKhxK;pomG+ zi#@21o0)%`N^eNyt*M)j7ETJTkf>d>_JZ$mp=z%#fnw?39-!?30vs$iWSwy)J*y?*9rYFDpta}C$pt`x*zn0&;qFhN*j zv+TLF+{UdlcKE;jdRV-XOCmQ?bcg#f99VDGrk`!S^newmEJwJId&@!$0(XK zOU|0f{EqDouKJ)FDNX*vV(oQ$mcR7UZnYyVoK(o|l_e0rB^Oml3p3}R%WYv~}uGJju zwi~up|FQe_)v2_2@;4ocZMM4=x2=df)w#t?Vco4f$!RCHeVdrP++joQ1GDnzDN7a} zdN_ku{Aj|v#_Bt78>|za=`}OIv&x@gedlfA_TzUF)1Ec-exDloT;yX!Ls4*Dfl;$v zBg5PFo&M3E*FR!%=z8S!S^aaV{U^TOB-y@8H6pdz>qG*kths4Y+0z<%ODL^TxbgY| zoi#N+n7k1Kws~Yr9z7X%{w}i)eb#U7hAXY z+q13tdn!Mz6rL8Rl_UP+)aU2xY9F7?UcXneuA4(jeZE!U+pXrm?caZ?zxQ%|Y2DsW ztGWL_eZT5yltipz2}I-W*W-4o0A*58-d{msQ*SJl$qt!4VJg`OPQ>uN9T|K=DkRC$A$Z~o1X z5l+qr{fpj| z;(|}c>OLh~f31Hn`~Q-$are@v`ZksCzJ6x#lK-st=lcH7>9sGO9Jur2XRrAFkC(jf zTcpRGoy2f%o<;23^(`yijz69{Ny;rEO=9PYe|wQr{qo?20^>(}#a z{-5d=-(Sw@@G^PnQGb~hFTOKZw@T~RzkLeA)AxUSHGTiLqCF}NQA@>s8Wp(7q#X^d z+$;KdmZ)F7{-O4Nm6N}}O}lfx+#=uf-g#TYzDHTbi(NO}QvbF4+TOg`*Eipk$X+zZ zK-J}C|@cO6f??IFx? zF!^fo+rFw1oM^tc5t!K_3m%g^&|M8P~{J&4vp<>|OCCRUdsQ}aMfvhY9ai|1eBo2{w0pO-;<6@B zzVi0D_qLWhlRi1T;j&dLkvejuV!mRA(02*J+NFttQH58IP7Dm=YZmpcy|GT_$_zbu zo!ckxzA}?Yw@qHA%hzr}zK8Uc7oU!-YTY3@iR6etE9fSG#w=)$F_zrg{Gl-r?W8+I0T> zI+^G9@8$HQUfX{~S4JkKd7=8R3a%f=&5P~$@5xyF*jsG2TkuoW8H{-KVeS*79X%+P&vn zRJ^m_Tk=-=`k%;6mK)qwZ{1Xu{Pel`ne4?^83KOI*#7I++N1tD3*ZwQfG2v;MsJzeU4}c1Re^U7Oe~q}qd!+;7t;l0^SejN=6U%iiY{a_(Oxasd-9a3 zVZa{YsW-chCKx`jPMfE7^K;tnuTR(S&AF$qqcf-C%L`-wxvN68K+bvgIep)sv(q2v z$Nsu^RKNah=2}Zdez?Ou|L-OF2-(sHTpx_XlC}JwtW%$N@Yl`v z>FM*&rl+x;GrGN=iQ(K*v3;M^*IQ**XxD5O+1ednB-yQ9ZxlS|@QGN9@~zK4Yge*# zM%LXqKU?zN(^K=$%sJ=lGH;$^mTLal2W$7t{2Oh|@ZtI2IsC@$cXQYnM0Ct-Y?*Ty z`%PbL=-K@tdH>w{MeK6Nba$`fUjJvUq|Md)>!#+vp5}jN@{$kJw#RRsugJu>?dFZS z&-sO`)-dEo8n;L~CyAzVDhIcnn5%dxA@h2CNtA>R!zqJ^LXV7!l^L&hN^c6_=H_1L zy7%gof}g?dk4t4EZF1(g?*DX$yDW%6%7WSg|%-Nqk^-fz}3_HM1(`#F*Sz@tXj`}*y2 zue%szI?p(TU(0hisPcos=JOTfiT~yrm2sY{*X+FN6uI|(@Y*0xC9U0|n{!nJBP$#u zU1p#9)8Z%Y10GvbxDmK!ec_D~{k(qWFuk7(ALShp;l0sv#8CTbbE{@S(RIV-rHj_p z-%{!|aejEJe;tEH?U~)*dQTshv#d(__+g@R`}vxGU!I2FH+a4C%Uy3Z;~ksIm>t#z z?flkj-fvrUW&T%28SA1ipYFGL$L*~%ElOiI3T;XM_u(|H$&@O zgu#<{H>P}5lCh1>+P|yvUQ+U#qkP43kN?KV85&HOa!YI7>$NlADywXJm64xg+njM? z<(zBWnOjsPT%P8g+$mSmS0rCPxwy2~JO6$0E^lVXW?!d(cDC@8dl{E|cd%C^#%aG{ z$bG)1W7!t*g=tTpToh4H(oxfx^Y`}V?(e#KwT~WLQlF;x|LxK%UV3%!FJ<4azk9@L z`M=Mbwb#e44%Ir{-M;y3fnI$5=d1NL`Kf

$3d^L_pMxqokqFXV{b_QPS@oedm) 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 literal 46426 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 Mods Builder - - - - - - + + + + + + diff --git a/builder/py/bundle.json b/builder/py/bundle.json index 08b72ae..43a5ee4 100644 --- a/builder/py/bundle.json +++ b/builder/py/bundle.json @@ -1 +1 @@ -{"mods/patch_cdj900nxs.py":"#!/usr/bin/env python3\n# SPDX-License-Identifier: GPL-2.0-or-later\n\"\"\"Apply arnoldasr's CDJ-900NXS 1.31 mods to the unpacked MAIN image.\n\n usage: patch_cdj900nxs.py [,...]\n patch_cdj900nxs.py --list\n\nThe mods come from https://github.com/arnoldasr/cdj900nxs, read as data from a\ncheckout of it (CDJ900NXS_MODS_SRC, default mods/cdj900nxs/upstream, which is\nnot committed: that repository carries no licence). Nothing of its Python is\nimported; what its build_firmware.py does is redone here:\n\n extended_bpm the BPM with hundredths: the stock tenths moved into a new\n small digit above, the lower one showing hundredths.\n phasemeter the two-line phase meter (orange master, blue this deck, a\n marker each) in place of the four boxes, chosen in UTILITY >\n PHASE METER (SLIP FLASHING relabelled; mods/phase-meter-\n utility.cdjmod.json).\n advanced_waveforms (was rgb_waveform; based on arnoldasr's, updated and\n maintained by us) the big waveform in rekordbox's RGB colours\n (1.0.1: also when its colour detail is a little short,\n cdj900nxs/wavefix.py), and the overview's colour table as a red-to-white\n gradient (mods/waveform-colour.cdjmod.json); with our\n UTILITY > WAVEFORM: BLUE / RGB / 3BAND (cdj900nxs/wavemodes.py,\n left out with public=True).\n\n The three are arnoldasr's code mod (patches/mods.json): hooks\n in the application redirected to SH-4 code appended after it\n (0x08FC1000), plus an asset blob at 0x08FC2D00 generated from\n the stock image (the resource table extended by four phase-meter\n images, then the RGB waveform palette and LUT). Upstream tested\n it as one build, and as one without the RGB waveform\n (patches/bpm-phase-meter.json); one of those two is built and\n checked against its hash first, then the hooks of a feature not\n chosen get their original bytes back. Their shared startup hook\n (0x08C071FC) installs the BPM digits and the phase markers: the\n call of the one not chosen is taken out there.\n beatjump ours, not arnoldasr's (cdj900nxs/beatjump.py): TRACK SEARCH\n jumps 1/2/4/8 beats along the grid, chosen in UTILITY > BEAT JUMP,\n made at once in the DSP's decoded audio (cdj900nxs/dspjump.py, a\n patch of the audio DSP's code),\n which replaces SCREEN SAVER. hotcuekeys' engine makes the jumps,\n so it needs hotcuekeys and cuecolours. Needs no upstream checkout.\n cuecolours ours (cdj900nxs/cuecolours.py): memory cues drawn in their\n rekordbox colour on the overview and the detail waveform, the\n rekordbox hot cues shown as lettered boxes.\n Needs no upstream checkout.\n hotcuekeys ours (cdj900nxs/hotcuekeys.py): UTILITY > HOT CUE KEYS (a new,\n 18th item); with it ON, QUANTIZE briefly pressed switches a hot\n cue key mode shown in a HOT KEYS box, held it is QUANTIZE. In\n the mode the top three BEAT DIVIDE keys play hot cues A-C (held: a\n gate), set one (empty key held while paused) or delete one\n (DELETE held). The hot cues come from cuecolours.\n ledsaver ours (cdj900nxs/ledsaver.py): UTILITY > LED ANIMATION (one more\n item, after the others); with it ON, while the screen saver dims\n the display the button LEDs and the jog's rings play a loop.\n keynotation ours (cdj900nxs/keynotation.py): UTILITY > KEY NOTATION (one\n more item): every track's key in Camelot, Open Key or classic\n notation, whatever rekordbox exported.\n usbautoload ours (cdj900nxs/usbautoload.py): UTILITY > USB AUTO LOAD (one\n more item): a stick's MY SETTINGS are loaded when the player finds\n them, without waiting for MENU.\n quicksearch ours (cdj900nxs/quicksearch.py): BROWSE held opens SEARCH,\n BROWSE twice the list the playing track came from.\n (phasemeter, in unreleased builds, also gets ours from cdj900nxs/phasereverse.py:\n UTILITY > PHASE METER OFF / ON / REVERSE, and the beat countdown\n moved clear of the line meter; `phasereverse` is an old name for it.)\n wide_waveform ours (cdj900nxs/widewave.py): the big waveform runs on to the\n right edge (624 columns, the extra ones ahead of the position); the\n ZOOM/GRID wheel gives way to a small grey ZOOM / GRID box.\n credit ours (cdj900nxs/credit.py): the boot screen says \"Pionaarr Mods\n 1.0\" where it said \"Ver 1.31\".\n\nEvery patch is applied only where the image holds the expected original\nbytes, and arnoldasr's code is first built as one of the builds he tested\nand checked against its hash.\n\nOur lzss_decode.py runs 54 bytes past the end of the packed stream, so\nmain_unpacked.bin is the 1.31 application plus a tail the firmware never\nreads; the application is cut back to its own length first.\n\"\"\"\nimport hashlib\nimport json\nimport os\nimport struct\nimport sys\n\nHERE = os.path.dirname(os.path.abspath(__file__))\nsys.path.insert(0, os.path.join(HERE, 'cdj900nxs'))\nimport beatjump # noqa: E402\nimport credit # noqa: E402\nimport dspjump # noqa: E402\nimport cuecolours # noqa: E402\nimport hotcuekeys # noqa: E402\nimport keynotation # noqa: E402\nimport ledsaver # noqa: E402\nimport usbautoload # noqa: E402\nimport quicksearch # noqa: E402\nimport phasereverse # noqa: E402\nimport wavemodes # noqa: E402\nimport wavefix # noqa: E402\nimport cuenames # noqa: E402\nimport endwarn # noqa: E402\nimport played # noqa: E402\nimport widewave # noqa: E402\n\nBASE = 0x08000000\nAPP_SIZE = 16519056\nAPP_SHA256 = '1ac3e30cde292865413950fe159663b3958e85939ed0a5d0122f796809a5f8ef'\n\nMODS = {\n 'extended_bpm': 'BPM with hundredths: tenths as a small digit above (arnoldasr)',\n 'phasemeter': 'two-line phase meter, UTILITY > PHASE METER (SLIP FLASHING) chooses it (arnoldasr); '\n 'OFF / ON / REVERSE and the beat countdown moved clear of it (ours: cdj900nxs/phasereverse.py)',\n 'advanced_waveforms': 'big waveform in RGB colours, overview as a red-to-white gradient (arnoldasr); '\n 'UTILITY > WAVEFORM: BLUE / RGB / 3BAND (ours: cdj900nxs/wavemodes.py)',\n 'beatjump': 'TRACK SEARCH jumps 1/2/4/8 beats, UTILITY > BEAT JUMP (ours: cdj900nxs/beatjump.py)',\n 'cuecolours': 'memory cues in their rekordbox colours, hot cues shown (ours: cdj900nxs/cuecolours.py)',\n 'hotcuekeys': 'hot cues A-C on the BEAT DIVIDE keys: play, gate, set, delete; UTILITY > HOT CUE KEYS, '\n 'QUANTIZE short = hot key mode (ours: cdj900nxs/hotcuekeys.py)',\n 'ledsaver': 'the button and jog LEDs play an animation while the screen saver dims the display; '\n 'UTILITY > LED ANIMATION (ours: cdj900nxs/ledsaver.py)',\n 'keynotation': 'every key in one notation (Camelot / Open Key / classic), UTILITY > KEY NOTATION '\n '(ours: cdj900nxs/keynotation.py)',\n 'usbautoload': 'MY SETTINGS on a USB stick loaded at once, UTILITY > USB AUTO LOAD '\n '(ours: cdj900nxs/usbautoload.py)',\n 'quicksearch': 'BROWSE held: SEARCH; BROWSE twice: the playing track in its list '\n '(ours: cdj900nxs/quicksearch.py)',\n 'cuenames': 'the rekordbox comment of the next cue (\"Drop\") in the title bar, in its colour '\n '(ours: cdj900nxs/cuenames.py, needs cuecolours)',\n 'endwarn': 'the playing-address bar blinks red in the last 30 seconds (ours: cdj900nxs/endwarn.py)',\n 'played': 'BROWSE ticks the tracks loaded on this player since it was switched on (ours: cdj900nxs/played.py)',\n 'wide_waveform': 'the big waveform to the right edge, the ZOOM/GRID wheel replaced by a small ZOOM / GRID box '\n '(ours: cdj900nxs/widewave.py)',\n 'credit': 'boot screen says \"Pionaarr Mods 1.0\" instead of \"Ver 1.31\" (ours: cdj900nxs/credit.py)',\n}\n# every mod's version (Semantic Versioning); ours from their modules, arnoldasr's\n# split-up mods as packaged here\nVERSIONS = {\n 'extended_bpm': '1.0.0', 'phasemeter': '1.0.1', 'advanced_waveforms': wavemodes.VERSION, # with its WAVEFORM modes (wavefix: wavefix.VERSION)\n 'beatjump': beatjump.VERSION, 'cuecolours': cuecolours.VERSION, 'hotcuekeys': hotcuekeys.VERSION,\n 'ledsaver': ledsaver.VERSION, 'keynotation': keynotation.VERSION, 'usbautoload': usbautoload.VERSION,\n 'quicksearch': quicksearch.VERSION,\n 'cuenames': cuenames.VERSION, 'endwarn': endwarn.VERSION, 'played': played.VERSION,\n 'wide_waveform': widewave.VERSION, 'credit': credit.VERSION,\n}\nMANIFESTS = {\n 'phasemeter': 'mods/phase-meter-utility.cdjmod.json',\n 'advanced_waveforms': 'mods/waveform-colour.cdjmod.json',\n}\n# arnoldasr's code mod split up: each feature's hooks in the application\nUPSTREAM = ('extended_bpm', 'phasemeter', 'advanced_waveforms')\nHOOKS = {\n 'extended_bpm': (0x08BD3E50, 0x08BD3ED8, 0x08BD3A48, 0x08BCBA60, 0x08BCBCFC),\n 'phasemeter': (0x08B2E2EE, 0x08C6A6CC, 0x08C6CCD0),\n 'advanced_waveforms': (0x089A061C, 0x08BC6830, 0x08BC6A7C, 0x08BCFD72, 0x08BCFF50),\n}\nSHARED_HOOKS = (0x08C071FC, 0x08B27BC8) # startup binding, arena reset: BPM and phase\nBPM_INSTALL_CALL = 0x08FC2444 # startup_bind's jsr of the BPM digits' installer\nPHASE_MARKERS_CALL = 0x08FC2450 # ... and of the phase markers' (startup_markers)\n\n\ndef source_dir():\n return os.environ.get('CDJ900NXS_MODS_SRC') or os.path.join(HERE, 'cdj900nxs', 'upstream')\n\n\ndef read_json(rel):\n path = os.path.join(source_dir(), rel)\n if not os.path.isfile(path):\n raise SystemExit('patch_cdj900nxs: %s missing -- check out '\n 'https://github.com/arnoldasr/cdj900nxs into %s'\n % (path, source_dir()))\n with open(path, encoding='utf-8') as f:\n return json.load(f)\n\n\ndef sha(data):\n return hashlib.sha256(data).hexdigest()\n\n\n# The asset blob, as tools/phase_assets.py builds it (same constants).\nTABLE, DESCRIPTOR, ORIGINAL_COUNT, TEMPLATE = 0x08100000, 0x2C, 0x2A1, 0x1C8\nDATA_BASE = 0x08FC2D00\nWIDTH, HEIGHT, MARKER_WIDTH, BAR = 200, 24, 8, 5\nKEY = 0xF81F\nORANGE_LINE, ORANGE_MARK = (120, 65, 20), (255, 140, 0)\nBLUE_LINE, BLUE_MARK = (40, 90, 120), (60, 170, 255)\nWAVE_COLOURS = [\n 448, 457, 47, 458, 449, 111, 495, 466, 175, 467, 487, 239, 303, 479, 367, 459, 456, 431,\n 468, 465, 475, 476, 474, 39, 477, 31, 471, 46, 469, 45, 23, 460, 109, 484, 110, 485, 103,\n 478, 483, 493, 494, 486, 95, 15, 450, 167, 492, 173, 174, 231, 115, 470, 238, 44, 237, 159,\n 295, 87, 108, 302, 51, 301, 491, 482, 359, 223, 366, 365, 236, 300, 179, 423, 461, 287, 430,\n 429, 172, 364, 473, 428, 351, 114, 151, 463, 299, 363, 415, 215, 427, 178, 490, 50, 279, 235,\n 79, 462, 451, 343, 511, 298, 362, 400, 52, 116, 426, 234, 407, 7, 143, 180, 207, 113, 233,\n 243, 481, 57, 271, 452, 417, 177]\nWHITENESS_COLOURS = [(150, 20, 20), (220, 40, 30), (255, 110, 20), (255, 190, 30), (170, 230, 60),\n (40, 210, 170), (60, 160, 255), (225, 240, 255)]\n\n\ndef rgb565(rgb):\n r, g, b = rgb\n return ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3)\n\n\ndef line_image(colour):\n px = [KEY] * (WIDTH * HEIGHT)\n for x in range(2, WIDTH - 2):\n px[12 * WIDTH + x] = rgb565(colour)\n for i in range(5):\n x = 2 + i * (WIDTH - 5) // 4\n for y in range(7, 18):\n px[y * WIDTH + x] = rgb565(colour)\n return px\n\n\ndef marker_image(colour):\n return [rgb565(colour) if 3 <= y <= 21 and x < BAR else KEY\n for y in range(HEIGHT) for x in range(MARKER_WIDTH)]\n\n\ndef rgb9(code):\n return tuple(((code >> shift) & 7) * 255 // 7 for shift in (6, 3, 0))\n\n\ndef wave_palette():\n colours = WHITENESS_COLOURS + [rgb9(c) for c in WAVE_COLOURS]\n return struct.pack('<128H', *[rgb565(c) for c in colours])\n\n\ndef wave_lut():\n def nearest(code):\n r, g, b = (code >> 6) & 7, (code >> 3) & 7, code & 7\n return min(range(len(WAVE_COLOURS)), key=lambda i: (\n (((WAVE_COLOURS[i] >> 6) & 7) - r) ** 2 + (((WAVE_COLOURS[i] >> 3) & 7) - g) ** 2\n + ((WAVE_COLOURS[i] & 7) - b) ** 2, i))\n return bytes(8 + nearest(code) for code in range(512))\n\n\ndef assets(app):\n images = [(WIDTH, line_image(ORANGE_LINE)), (WIDTH, line_image(BLUE_LINE)),\n (MARKER_WIDTH, marker_image(ORANGE_MARK)), (MARKER_WIDTH, marker_image(BLUE_MARK))]\n original = app[TABLE - BASE:TABLE - BASE + ORIGINAL_COUNT * DESCRIPTOR]\n template = original[TEMPLATE * DESCRIPTOR:(TEMPLATE + 1) * DESCRIPTOR]\n count = ORIGINAL_COUNT + len(images)\n table_bytes = count * DESCRIPTOR\n pixels_base = DATA_BASE + ((table_bytes + 31) & ~31)\n table, pixels = bytearray(original), bytearray()\n for i, (width, data) in enumerate(images):\n entry = bytearray(template)\n struct.pack_into(' mov #0,r0 (not installed)\n if 'phasemeter' not in names:\n call(PHASE_MARKERS_CALL, 0x410B, 0x0009) # jsr @r1 -> nop\n return bytes(out)\n\n\ndef apply_manifest(app, stock, name):\n doc = read_json(MANIFESTS[name])\n if doc['target']['application_sha256'] != APP_SHA256:\n raise SystemExit('patch_cdj900nxs: %s targets another application' % name)\n out = bytearray(app)\n for p in doc['patches']:\n off = int(p['offset'], 16) if isinstance(p['offset'], str) else p['offset']\n before, after = bytes.fromhex(p['expect']), bytes.fromhex(p['replace'])\n if len(before) != len(after) or off + len(before) > APP_SIZE:\n raise SystemExit('patch_cdj900nxs: %s: bad patch at 0x%x' % (name, off))\n if stock[off:off + len(before)] != before or app[off:off + len(before)] != before:\n raise SystemExit('patch_cdj900nxs: %s: bytes at 0x%x are not the expected original'\n % (name, off))\n out[off:off + len(before)] = after\n return bytes(out)\n\n\n# old names still taken\nALIASES = {'rgb_waveform': 'advanced_waveforms', 'waveform3band': 'advanced_waveforms',\n 'phasereverse': 'phasemeter'}\n\n\ndef check_names(names):\n \"\"\"The names with old ones taken, every mod known and what each needs.\"\"\"\n names = list(dict.fromkeys(ALIASES.get(n, n) for n in names))\n unknown = [n for n in names if n not in MODS]\n if unknown:\n raise SystemExit('patch_cdj900nxs: unknown mod(s) %s; known: %s'\n % (', '.join(unknown), ', '.join(MODS)))\n if 'cuenames' in names and 'cuecolours' not in names:\n raise SystemExit('patch_cdj900nxs: cuenames needs cuecolours (its cue reader brings the comments)')\n if 'beatjump' in names and not {'cuecolours', 'hotcuekeys'} <= set(names):\n raise SystemExit('patch_cdj900nxs: beatjump needs cuecolours and hotcuekeys '\n '(the jumps are made by hotcuekeys)')\n return names\n\n\ndef patch_upstream(stock, names):\n \"\"\"Stage 1: arnoldasr's mods (his code and assets, his manifests, and\n advanced_waveforms' fix that sits on his code). The website's builder\n has this stage as data (tools/make_builder_data.py).\"\"\"\n upstream = [n for n in UPSTREAM if n in names]\n app = apply_code(stock, upstream) if upstream else stock\n for name in ('phasemeter', 'advanced_waveforms'):\n if name in names:\n app = apply_manifest(app, stock, name)\n if 'advanced_waveforms' in names:\n app = wavefix.patch(app, stock) # 1.0.1: a slightly short PWV5 is taken too\n return app\n\n\ndef patch_ours(app, stock, names):\n \"\"\"Stage 2: our mods, on the application stage 1 made (the website's\n builder runs this function itself, in the browser).\"\"\"\n if 'beatjump' in names:\n app = beatjump.patch(app, stock)\n app = dspjump.patch(app, stock) # the jumps in the DSP's decoded audio\n if 'cuecolours' in names:\n app = cuecolours.patch(app, stock)\n if 'hotcuekeys' in names:\n app = hotcuekeys.patch(app, stock)\n if 'ledsaver' in names:\n app = ledsaver.patch(app, stock)\n if 'keynotation' in names:\n app = keynotation.patch(app, stock)\n if 'cuenames' in names:\n app = cuenames.patch(app, stock) # after keynotation: chains its text draw\n if 'played' in names:\n app = played.patch(app, stock) # after keynotation and cuenames: chains their text draw\n if 'endwarn' in names:\n app = endwarn.patch(app, stock)\n if 'usbautoload' in names:\n app = usbautoload.patch(app, stock)\n if 'quicksearch' in names:\n app = quicksearch.patch(app, stock)\n if 'phasemeter' in names:\n app = phasereverse.patch(app, stock) # PHASE METER: OFF / ON / REVERSE\n app = phasereverse.shift_bars(app, stock) # the beat countdown clear of the line meter\n if 'advanced_waveforms' in names:\n app = wavemodes.patch(app, stock) # UTILITY > WAVEFORM: BLUE / RGB / 3BAND\n if 'wide_waveform' in names:\n app = widewave.patch(app, stock) # after advanced_waveforms (its centre-row literal) and hotcuekeys (the draw method)\n if 'credit' in names:\n app = credit.patch(app, stock)\n return app\n\n\ndef patch(data, names, public=False):\n \"\"\"The patched application for the mods named, in a fixed order: stage 1\n (arnoldasr's) and stage 2 (ours). Everything is released now; `public`\n is still taken and changes nothing.\"\"\"\n names = check_names(names)\n stock = data[:APP_SIZE]\n if sha(stock) != APP_SHA256:\n raise SystemExit('patch_cdj900nxs: not the CDJ-900NXS 1.31 application')\n return patch_ours(patch_upstream(stock, names), stock, names)\n\n\ndef main():\n args = sys.argv[1:]\n if args == ['--list']:\n for name, what in MODS.items():\n print('%-13s %-6s %s' % (name, VERSIONS[name], what))\n return\n if len(args) != 3:\n raise SystemExit(__doc__)\n names = [n for n in args[2].replace(' ', ',').split(',') if n]\n with open(args[0], 'rb') as f:\n out = patch(f.read(), names)\n with open(args[1], 'wb') as f:\n f.write(out)\n print('patch_cdj900nxs: %s (%s), %d bytes, sha256 %s'\n % (args[1], ','.join(names), len(out), sha(out)))\n\n\nif __name__ == '__main__':\n main()\n","mods/cdj900nxs/beatjump.py":"# SPDX-License-Identifier: GPL-2.0-or-later\n\"\"\"BEAT JUMP for the CDJ-900NXS 1.31: TRACK SEARCH jumps N beats along the\ntrack's beat grid, N set in UTILITY > BEAT JUMP (OFF/1/2/4/8, default 4).\n\nOur own mod, not arnoldasr's; mods/patch_cdj900nxs.py applies it as `beatjump`.\nEverything here was found by tracing the firmware in the emulator:\n\n * The UI's poller calls the panel decoder 0x08B63278 (through its literal\n at 0x08B622A8), which turns report byte 0x12 bits 0x04 / 0x08 of the\n frame at 0x0B2E8280 into the key bits TRACK - (0x0B2E82C6 bit 0x01) and\n TRACK + (0x0B2E82C5 bit 0x80); later readers (0x08B630D0) turn those\n into the track search. The literal now points at bj_poll, which runs the\n decoder and then, with BEAT JUMP on and a beat grid loaded, takes both\n key bits out again: the track search never starts, so neither the UI nor\n the player changes track, and a press is a jump instead. (Clearing the\n report byte before the decoder instead lost a race with the panel task\n refilling the frame.)\n * The jump is made by hotcuekeys' engine (hk_engine's he_bj, which is\n why beatjump needs hotcuekeys and cuecolours): bj_poll writes the\n target in 1/150 s with bit 31 set to hotcuekeys.BJ_REQ, the tick of\n the press to BJ_TICK and the jump's length in ms to BJ_DELTA, unless a\n jump is still waiting. The engine has the DSP move its playing head by\n that many 1/75 s slots inside the audio it has already decoded\n (dspjump.py, a patch of the audio DSP): at once, gapless, the CUE point\n stays, playing, paused or at cue standby (standing, the UI is left\n paused, so PLAY plays on from there). Only where the DSP has not that\n much audio decoded does it refuse: playing, the engine then loads the\n target into the beat jumps' own DSP cue slot (hotcuekeys.BJ_SLOT) the\n old way, moved on by the time such a load takes so the deck comes back\n in phase; standing, the press is dropped (the old way there, a memory\n CALL, left the UI waiting for good after the third or fourth).\n [Since: no fallback at all; the slot load left the deck standing. A\n press the DSP cannot jump now (it keeps dspjump.MARGIN decoded ahead, so\n the time needed grows with the setting) or made while a jump still\n waits is ignored: nothing is put off, the next press counts again.]\n * The setting is kept in the player's settings journal (hotcuekeys'\n hk_save2/hk_load2 through HK_API, id SAVE_ID): the first poll takes the\n last saved value (else DEFAULT, 4 beats) into the setting's word, a\n change is written back. The firmware itself kept SCREEN SAVER's ON/OFF\n only, so BEAT JUMP came back as 1 after a restart.\n * The grid is read as arnoldasr's phase meter reads it, from the player\n context 0x099445DC: track *(ctx+0x20), X = *(track+0xC4), grid\n *(X+0x104), timestamp adjustment *(X+0x10C); 0x08A27D4C(grid, adj,\n pos_ms) gives 1 + the index of the beat at or before pos_ms, 0x08A0EFB6\n (record, adj) a beat's time in ms. The position in ms is ctx+0x2CC.\n * A jump keeps the position's offset within its beat: target = pos +\n t[i +/- N] - t[i]. Before the first beat (a track just loaded stands at\n its CUE, often a hair before beat 1) i is beat 0. A press whose target\n would leave the grid does nothing. With the setting OFF, or no grid, TRACK SEARCH is untouched.\n\nUTILITY > SCREEN SAVER (item 14, a word at 0x0A4DD270 + 0x1760, values\nOFF/ON, factory default ON = 1) becomes BEAT JUMP: its label in all 19\nlanguages, five values OFF/1/2/4/8 (the existing \"OFF\" and MIDI CHANNEL's digit\nstrings), so the old ON is now \"1\". The screen saver itself no longer reads\nthe setting: its getter literal (0x08BB7E60) points at a firmware tail that\nreturns 1, so it stays on as it was by default.\n\"\"\"\nimport os\nimport struct\nimport sys\n\nsys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))\nimport hotcuekeys # noqa: E402\n\nVERSION = '1.0.1' # Semantic Versioning: MAJOR.MINOR.PATCH\n\nBASE = 0x08000000\nBJ_BASE = 0x08FCF400 # after arnoldasr's code mod (ends 0x08FCF260)\n\nPLAYER_CTX = 0x099445DC\nDECODER_LIT = 0x08B622A8 # the UI poller's literal of the panel decoder\nDECODER = 0x08B63278\nKEYS_TRACK = 0x0B2E82C5 # decoded keys: TRACK + is bit 0x80 here, TRACK - 0x01 of the next byte\nSEND = 0x08B3B666 # the UI's player-message builder\nGET_SETTING = 0x08AFD9E0 # SCREEN SAVER getter: *(0x0A4DD270 + 0x1760)\nGRID_LOOKUP = 0x08A27D4C\nGRID_TIME = 0x08A0EFB6\nFPSCR_MASK = 0xFFE7FFFF # what the firmware does to fpscr after every call\n\nSAVER_ITEM = 0x08C6CBB4 # UTILITY item 14 (copied to RAM at start-up)\nSAVER_CONSUMER_LIT = 0x08BB7E60 # the screen saver's literal of the getter\nRETURN_ONE = 0x08BDA1B0 # 'rts; mov #1,r0' at the end of a firmware function\nVALUE_STRINGS = [0xA80D013C, 0xA80D0144, 0xA80D0148, 0xA80D0150, 0xA80D0160] # OFF 1 2 4 8\nLABEL_OLD = 'SCREEN SAVER\\0'.encode('utf-16-le')\nLABEL_NEW = 'BEAT JUMP'.encode('utf-16-le').ljust(len(LABEL_OLD), b'\\0')\nLABEL_COPIES = 19\n\nVALUE_LIST = BJ_BASE + 0x400 # the five value-string pointers, after the code\nPREV_BITS = BJ_BASE + 0x3FC # last frame's TRACK bits, for press edges\nLAST_SET = BJ_BASE + 0x3F8 # word: the setting last seen (-1 at start: taken from the journal then)\nSETTING = 0x0A4DD270 + 0x1760 # the setting's word (the SCREEN SAVER's)\nSAVE_ID = 0x83E2 # ours in the settings journal (hotcuekeys' is 0x83E1)\nDEFAULT = 3 # 4 beats\nBJ_DELTA = 0x08FCF818 # word: the last jump's length in ms (signed), for hotcuekeys' DSP jump\nBJ_POSV = hotcuekeys.BJ_POSV # word: the position (ms) to reckon from, if not 0\nBJ_PEND = hotcuekeys.BJ_PEND # word: presses counted while hotcuekeys' CALL had no grid\n\n\nclass Asm:\n \"\"\"Just enough SH-4 to write bj_poll: two passes over a list of\n instructions, labels, and a literal pool of .long/.word constants.\"\"\"\n\n def __init__(self, base):\n self.base, self.items, self.labels = base, [], {}\n\n def label(self, name):\n self.items.append(('label', name))\n\n def op(self, fn):\n self.items.append(('op', fn))\n\n def long(self, name, value):\n self.items.append(('align4', None))\n self.label(name)\n self.items.append(('long', value))\n\n def word(self, name, value):\n self.label(name)\n self.items.append(('word', value))\n\n def assemble(self):\n for final in (False, True):\n pc, out = self.base, bytearray()\n for kind, arg in self.items:\n if kind == 'label':\n self.labels[arg] = pc\n continue\n if kind == 'align4':\n while pc % 4:\n out += struct.pack('> 36 = q / 20\n a.long('L_req', hotcuekeys.BJ_REQ)\n a.long('L_tick', hotcuekeys.TICK)\n a.long('L_bit31', 0x80000000)\n a.long('L_delta', BJ_DELTA)\n a.long('L_posv', BJ_POSV)\n a.long('L_pend', BJ_PEND)\n a.long('L_third', 0xAAAAAAAB) # q * this >> 33 = q / 3\n a.long('L_last', LAST_SET)\n a.long('L_setting', SETTING)\n a.long('L_bjid', SAVE_ID)\n a.long('L_bjid16', SAVE_ID << 16)\n a.long('L_api', hotcuekeys.HK_API)\n code = a.assemble()\n return code, None\n\n\ndef patch(app, stock):\n \"\"\"The application with BEAT JUMP added; `stock` is the unmodified 1.31\n application, which every replaced byte is checked against.\"\"\"\n code, _ = routine()\n assert len(code) <= LAST_SET - BJ_BASE\n out = bytearray(app)\n end = VALUE_LIST + 4 * len(VALUE_STRINGS) - BASE\n if len(out) < end:\n out += bytes(end - len(out))\n if any(out[BJ_BASE - BASE:end]):\n raise SystemExit('patch_cdj900nxs: beatjump: its area 0x%08x.. is not free' % BJ_BASE)\n\n def put(addr, before, after):\n off = addr - BASE\n if stock[off:off + len(before)] != before or out[off:off + len(before)] != before:\n raise SystemExit('patch_cdj900nxs: beatjump: bytes at 0x%08x are not the expected original'\n % addr)\n out[off:off + len(after)] = after\n\n out[BJ_BASE - BASE:BJ_BASE - BASE + len(code)] = code\n out[LAST_SET - BASE:LAST_SET - BASE + 4] = b'\\xff\\xff\\xff\\xff'\n out[VALUE_LIST - BASE:end] = b''.join(struct.pack('= 0:\n put(BASE + at, LABEL_OLD, LABEL_NEW)\n found += 1\n at = stock.find(LABEL_OLD, at + 2)\n if found != LABEL_COPIES:\n raise SystemExit('patch_cdj900nxs: beatjump: %d SCREEN SAVER labels, expected %d'\n % (found, LABEL_COPIES))\n return bytes(out)\n","mods/cdj900nxs/c6asm.py":"#!/usr/bin/env python3\n\"\"\"casm.py: a minimal TI C674x assembler for our DSP patches (32-bit, serial\ninstructions only: every p bit 0, no compact forms). Every encoding below is\nchecked against words of the CDJ-900NXS DSP image (selftest()).\n\nRegisters: 'a0'..'a31', 'b0'..'b31'. Predicates: '[b0]', '[!a1]' prefix\n(A1, A2, B0, B1, B2 only). Delay slots are the caller's business: loads need\n4 slots before their result is used, branches 5.\n\n asm = Asm(base)\n asm.label('x'); asm.op('mvk', 0x1234, 'a3'); asm.op('b', 'x') ...\n words = asm.assemble()\n\"\"\"\nimport struct\n\nCREG = {'b0': 1, 'b1': 2, 'b2': 3, 'a1': 4, 'a2': 5, 'a0': 6}\n\n\ndef reg(r):\n side = 1 if r[0] == 'b' else 0\n return side, int(r[1:])\n\n\ndef pred(p):\n if not p:\n return 0\n neg = p.startswith('!')\n return CREG[p.lstrip('!')] << 29 | (1 << 28 if neg else 0)\n\n\n# .L unit 3-operand ops (op field bits 11-5): (si,xsi) form and (s5,xsi) form\nL_OPS = {\n 'add': (0x03, 0x02), 'sub': (0x07, 0x06), 'cmpeq': (0x53, 0x52),\n 'cmpgt': (0x47, 0x46), 'cmplt': (0x57, 0x56), 'cmpgtu': (0x4F, 0x4E),\n 'cmpltu': (0x5F, 0x5E), 'or': (0x7F, 0x7E), 'and': (0x7B, 0x7A),\n}\n# .D load/store op field (bits 6-4)\nD_OPS = {'ldhu': 0, 'ldbu': 1, 'ldb': 2, 'stb': 3, 'ldh': 4, 'sth': 5, 'ldw': 6, 'stw': 7}\nD_SCALE = {'ldhu': 2, 'ldbu': 1, 'ldb': 1, 'stb': 1, 'ldh': 2, 'sth': 2, 'ldw': 4, 'stw': 4}\n\n\ndef enc_l(op, src1, src2, dst, p=''):\n \"\"\"op src1,src2,dst on .L (unit side = dst side; src2 may cross).\"\"\"\n ds, dn = reg(dst)\n s2s, s2n = reg(src2)\n x = 1 if s2s != ds else 0\n if isinstance(src1, int):\n assert -16 <= src1 < 16\n code = L_OPS[op][1]\n s1 = src1 & 31\n else:\n s1s, s1 = reg(src1)\n assert s1s == ds, 'src1 must be on the unit side'\n code = L_OPS[op][0]\n return pred(p) | dn << 23 | s2n << 18 | s1 << 13 | x << 12 | code << 5 | 0b110 << 2 | ds << 1\n\n\ndef enc_mvk(hi, val, dst, p=''):\n ds, dn = reg(dst)\n cst = (val >> 16 if hi else val) & 0xFFFF\n return pred(p) | dn << 23 | cst << 7 | (0b11010 if hi else 0b01010) << 2 | ds << 1\n\n\ndef enc_d(op, data, base, off, p=''):\n \"\"\"ld/st *+base(off) (byte offset, scaled by the access size).\"\"\"\n ss, sn = reg(data)\n bs, bn = reg(base)\n sc = D_SCALE[op]\n assert off % sc == 0 and 0 <= off // sc < 32, (op, off)\n return pred(p) | sn << 23 | bn << 18 | (off // sc) << 13 | 0b0001 << 9 | bs << 7 | D_OPS[op] << 4 | 0b01 << 2 | ss << 1\n\n\ndef enc_b_imm(at, target, side=0, p=''):\n disp = (target - (at & ~31)) // 4\n assert -(1 << 20) <= disp < (1 << 20)\n return pred(p) | (disp & 0x1FFFFF) << 7 | 0b00100 << 2 | side << 1\n\n\ndef enc_b_reg(r, p=''):\n rs, rn = reg(r)\n return pred(p) | rn << 18 | (1 if rs == 0 else 0) << 12 | 0x362 # .S2 (X for an A register)\n\n\ndef enc_nop(n):\n assert 1 <= n <= 9\n return (n - 1) << 13\n\n\nDINT, RINT = 0x10004000, 0x10006000\n\n\ndef enc_shl(src, cst, dst, p=''):\n \"\"\"shl .S src,ucst5,dst\"\"\"\n ds, dn = reg(dst)\n ss, sn = reg(src)\n assert ss == ds and 0 <= cst < 32\n return pred(p) | dn << 23 | sn << 18 | cst << 13 | 0x32 << 6 | 0b1000 << 2 | ds << 1\n\n\ndef enc_dp(op, data, off, p=''):\n \"\"\"ld/st *+b14(ucst15) (byte offset, scaled), .D2\"\"\"\n ds, dn = reg(data)\n sc = D_SCALE[op]\n assert off % sc == 0 and 0 <= off // sc < 32768\n return pred(p) | dn << 23 | (off // sc) << 8 | 0 << 7 | D_OPS[op] << 4 | 0b11 << 2 | ds << 1\n\n\ndef enc_extu(src, csta, cstb, dst, p=''):\n \"\"\"extu .S src,csta,cstb,dst (field form, bits 7-6 = 00).\"\"\"\n ds, dn = reg(dst)\n ss, sn = reg(src)\n assert ss == ds\n return pred(p) | dn << 23 | sn << 18 | csta << 13 | cstb << 8 | 0b00 << 6 | 0b0010 << 2 | ds << 1\n\n\ndef enc_addaw(src2, src1, dst, p=''):\n \"\"\"addaw .D dst = src2 + src1*4 (src1 register or ucst5).\"\"\"\n ds, dn = reg(dst)\n s2s, s2n = reg(src2)\n assert s2s == ds\n if isinstance(src1, int):\n return pred(p) | dn << 23 | s2n << 18 | (src1 & 31) << 13 | 0x3A << 7 | 0b10000 << 2 | ds << 1\n s1s, s1n = reg(src1)\n return pred(p) | dn << 23 | s2n << 18 | s1n << 13 | 0x38 << 7 | 0b10000 << 2 | ds << 1\n\n\nclass Asm:\n def __init__(self, base):\n self.base, self.items, self.labels = base, [], {}\n\n def label(self, name):\n self.items.append(('label', name))\n\n def org(self, addr):\n \"\"\"continue at addr (a new block; the caller branches there)\"\"\"\n self.items.append(('org', addr))\n\n def op(self, mn, *a, p=''):\n self.items.append(('op', (mn, a, p)))\n\n def word(self, w):\n self.items.append(('word', w))\n\n def _enc(self, at, mn, a, p):\n if mn == 'mvk':\n return enc_mvk(0, a[0], a[1], p)\n if mn == 'mvkh':\n return enc_mvk(1, a[0], a[1], p)\n if mn == 'mvkl32': # helper: emitted as two words by assemble()\n raise AssertionError\n if mn in L_OPS:\n return enc_l(mn, a[0], a[1], a[2], p)\n if mn in D_OPS:\n return enc_d(mn, a[0], a[1], a[2], p)\n if mn == 'b':\n t = a[0]\n if isinstance(t, str) and t[0] in 'ab' and t[1:].isdigit():\n return enc_b_reg(t, p)\n t = self.labels[t] if isinstance(t, str) else t\n return enc_b_imm(at, t, a[1] if len(a) > 1 else 0, p)\n if mn == 'nop':\n return enc_nop(a[0] if a else 1)\n if mn == 'dint':\n return DINT\n if mn == 'rint':\n return RINT\n if mn == 'extu':\n return enc_extu(a[0], a[1], a[2], a[3], p)\n if mn == 'addaw':\n return enc_addaw(a[0], a[1], a[2], p)\n if mn == 'shl':\n return enc_shl(a[0], a[1], a[2], p)\n if mn == 'lddp': # ldbu/ldw/... *+b14(off)\n return enc_dp(a[0], a[1], a[2], p)\n if mn == 'mv':\n return enc_l('add', 0, a[0], a[1], p)\n raise KeyError(mn)\n\n def assemble(self):\n \"\"\"-> [(addr, word)]\"\"\"\n out = []\n for final in (False, True):\n pc, out = self.base, []\n for kind, arg in self.items:\n if kind == 'label':\n self.labels[arg] = pc\n continue\n if kind == 'org':\n pc = arg\n continue\n if kind == 'word':\n out.append((pc, arg))\n pc += 4\n continue\n mn, a, p = arg\n if mn == 'const': # mvk + mvkh of a 32-bit value\n v = self.labels.get(a[0], a[0]) if isinstance(a[0], str) else a[0]\n out.append((pc, enc_mvk(0, v if final or not isinstance(a[0], str) else 0, a[1], p)))\n out.append((pc + 4, enc_mvk(1, v if final or not isinstance(a[0], str) else 0, a[1], p)))\n pc += 8\n continue\n try:\n w = self._enc(pc, mn, a, p)\n except KeyError:\n if final:\n raise\n w = 0\n out.append((pc, w))\n pc += 4\n return out\n\n\ndef selftest():\n ref = [\n (enc_d('ldw', 'a4', 'a3', 0), 0x020c0264),\n (enc_d('stw', 'a3', 'a5', 0), 0x01940274),\n (enc_d('sth', 'a4', 'a3', 2), 0x020c2254),\n (enc_d('ldh', 'a4', 'a3', 6), 0x020c6244),\n (enc_d('ldhu', 'a4', 'a3', 0), 0x020c0204),\n (enc_l('cmpeq', 1, 'a4', 'a0'), 0x00102a58),\n (enc_l('or', 0, 'a4', 'a0'), 0x00100fd8),\n (enc_l('add', 'b10', 'b4', 'b6'), 0x0311407b & ~1),\n (enc_l('cmplt', 0, 'b4', 'b0'), 0x00100adb & ~1),\n (enc_l('cmpgt', 'a3', 'a10', 'a0'), 0x002868f8),\n (enc_l('sub', 'a3', 'a4', 'a10'), 0x051060f8),\n (enc_l('add', 'a4', 'a3', 'a3'), 0x018c8078),\n (enc_mvk(0, -7576, 'b4'), 0x0271342a),\n (enc_mvk(1, 0x1182e268, 'b4'), 0x0208c16a),\n (enc_b_reg('b4'), 0x00100362),\n (enc_addaw('a4', 'a6', 'a3'), 0x0190dc41 & ~1),\n (enc_nop(5), 0x00008000),\n (enc_shl('a14', 3, 'a8'), 0x04386ca1 & ~1),\n (enc_dp('ldbu', 'b6', 969), 0x0303c91e),\n ]\n bad = [(hex(a), hex(b)) for a, b in ref if a != b]\n assert not bad, bad\n return True\n\n\nif __name__ == '__main__':\n print('selftest', selftest())\n","mods/cdj900nxs/credit.py":"# SPDX-License-Identifier: GPL-2.0-or-later\n\"\"\"The mods' credit on the CDJ-900NXS 1.31 boot screen: \"Pionaarr Mods\"\nand the release (RELEASE, e.g. \"Pionaarr Mods 1.8.1\") where the splash\nshows \"Ver 1.31\". Our own; mods/patch_cdj900nxs.py\napplies it as `credit` (the patcher ticks it at the start).\n\nThe splash's text is made by 0x08BDCC14: a 50-byte buffer gets strcpy\n(0x08C28460) of the string the .data word at RAM 0x1110766C points to\n(image 0x08C6D22C, \"Ver \" at 0xA80D12BC), then strcat (the same function)\nof the version the getter 0x08BE9A8C returns (\"1.31\" at 0xA8000740), and is\nshown. The .data word now points at our text, and the function's own\nliteral of the getter (0x08BDCD8C, read only at 0x08BDCC34) at a stub that\nreturns an empty string, so nothing is added to it. The text's box (.data\n0x08C841E0: 139,363 - 619,385, right-aligned) is 8 lines taller, so the\ndescenders of p and y show. The getter itself and\neverything else that shows the version (the LINK screen's \"Ver %s\",\nUTILITY, the updater, the boot loader) are untouched.\"\"\"\nimport struct\n\nVERSION = '1.1.0' # Semantic Versioning: MAJOR.MINOR.PATCH\nRELEASE = '1.9.2' # the Pionaarr Mods release, ALWAYS the latest: the website's generator\n # (tools/make_builder_data.py) writes its version here\n\nBASE = 0x08000000\nDATA_WORD = 0x08C6D22C # .data: the splash's \"Ver \" pointer (RAM 0x1110766C)\nDATA_VER = 0xA80D12BC # \"Ver \"\nGETTER_LIT = 0x08BDCD8C # the splash function's literal of the version getter\nGETTER = 0x08BE9A8C\nTEXT = 'Pionaarr Mods ' + RELEASE\nCREDIT = 0x08FCF900 # between beatjump's 0x08FCF400..0x08FCF814 and cuecolours' 0x08FCFA00\nCREDIT_LEN = 0x40\nSTUB = CREDIT + 0x20 # mov.l @(4,pc),r0; rts; nop; nop; .long the text's final NUL\nBOX = 0x08C841E0 # .data: the splash text's box, x1 y1 x2 y2 (16 bits each)\nBOX_STOCK = (139, 363, 619, 385)\nBOX_NEW = (139, 363, 619, 393) # \"Ver 1.31\" has no descender; p and y need 8 more lines\n\n\ndef area():\n \"\"\"The credit area's bytes: the text, then the stub returning \"\".\"\"\"\n text = TEXT.encode('ascii') + b'\\0' # the splash takes bytes as Latin-1: no UTF-8\n # the splash's buffer is 50 bytes, its UTF-16 copy 100\n assert len(text) <= STUB - CREDIT and len(text) <= 50\n empty = CREDIT + len(text) - 1\n stub = struct.pack('<4HI', 0xD001, 0x000B, 0x0009, 0x0009, empty | 0xA0000000)\n return text.ljust(STUB - CREDIT, b'\\0') + stub\n\n\ndef patch(app, stock):\n \"\"\"The application with the credit; `stock` is the unmodified 1.31\n application, which every replaced byte is checked against.\"\"\"\n out = bytearray(app)\n end = CREDIT + CREDIT_LEN - BASE\n if len(out) < end:\n out += bytes(end - len(out))\n if any(out[CREDIT - BASE:end]):\n raise SystemExit('patch_cdj900nxs: credit: its area 0x%08x.. is not free' % CREDIT)\n\n def put(addr, before, after):\n off = addr - BASE\n if stock[off:off + 4] != struct.pack(' the 44-byte resource records\nTRI_ID = 0xC5 # the red memory-cue triangle, 16 x 5, RGB565\nTRI_PIXELS = 0x0815A1B0 # its pixels in the image\nTRI_RED = 0xF800\nMEMLIST = 0x0B7BE8D4 # the UI's memory list, 10 x 0x24\nOV_RECS = 0x0B800D9C # the overview's marker records, 12 bytes\nMK_RECS = 0x0B801258 # the marker records they come from, 16 bytes\nMK_RECORDS = 101\nMKCOPY_LIT = 0x08BC6BF8 # the waveform preparer's literal for memcpy, which fills MK_RECS\nMEMCPY = 0x08C279C4\nHOT_DEFAULT = 0x07E0 # a hot cue without a colour: green, as rekordbox's default\n\n# rekordbox's eight memory-cue colours (ids 1-8), as the player itself draws\n# them: the track-colour dots of the browser, resources 0x14, 0x16, 0x13,\n# 0x18, 0x12, 0x0F, 0x11 and 0x15 (RGB565 there).\nMEMORY_RGB565 = [\n 0xFA55, # 1 pink\n 0xF800, # 2 red\n 0xFC20, # 3 orange\n 0xFFE0, # 4 yellow\n 0x07E0, # 5 green\n 0x079F, # 6 aqua\n 0x22FF, # 7 blue\n 0x881F, # 8 purple\n]\n\n# hot cue letters A-H, 5 x 7, for the overview's bigger marker (bit 7 = left)\nLETTERS5 = [\n ['01110', '10001', '10001', '11111', '10001', '10001', '10001'],\n ['11110', '10001', '10001', '11110', '10001', '10001', '11110'],\n ['01110', '10001', '10000', '10000', '10000', '10001', '01110'],\n ['11110', '10001', '10001', '10001', '10001', '10001', '11110'],\n ['11111', '10000', '10000', '11110', '10000', '10000', '11111'],\n ['11111', '10000', '10000', '11110', '10000', '10000', '10000'],\n ['01110', '10001', '10000', '10111', '10001', '10001', '01111'],\n ['10001', '10001', '10001', '11111', '10001', '10001', '10001'],\n]\n\n# hot cue letters A-H, 3 x 5, rows top down: drawn black into a 9 x 5 marker\nLETTERS = ['010101111101101', '110101110101110', '011100100100011', '110101101101110',\n '111100110100111', '111100110100100', '011100101101011', '101101111101101']\n\n# data after the code (zero in the image)\nDATA = 0x08FD0000 # after the code (checked in patch())\nHOT_TABLE = DATA # 8 x 8: +0 time 1/150 s (-1 none), +4 RGB565, +6 hot cue number;\n # entry 0's +7 counts the loads (cue_get)\nSLOTS = 18 # triangles: memory list index 0-9, hot cues 10-17\nTRI_BUF = DATA + 0x40 # SLOTS x 160 bytes\nHOTBOX_W, HOTBOX_H = 16, 9 # the overview's hot cue marker: 11 x 9, then transparent; the\nHOTBOX_SIZE = 288 # blitter wants lines of a multiple of 16 bytes, as all the firmware's\nHOTBOX = (TRI_BUF + SLOTS * 160 + 31) & ~31 # 8 x HOTBOX_SIZE\nFAKE_RECS = HOTBOX + 8 * HOTBOX_SIZE # one 44-byte record, the detail waveform's\nDATA_END = FAKE_RECS + 44\nassert DATA_END <= CC_END\n\n\ndef rgb565(r, g, b):\n return (r & 0xF8) << 8 | (g & 0xFC) << 3 | b >> 3\n\n\nSOURCE = r'''\n; ---- cue_get: dbcl_GetUsbSdCueInfo(r4 connection, r5 track, r6 reply) plus colours\ncue_get:\n mov.l r8,@-r15\n mov.l r9,@-r15\n mov.l r10,@-r15\n mov.l r11,@-r15\n mov.l r12,@-r15\n mov.l r13,@-r15\n mov.l r14,@-r15\n sts.l pr,@-r15\n add #-20,r15 ; +0 wait's slot, +4/+8 message, +12 block, +16 size\n mov r4,r8\n mov r5,r9\n mov r6,r10\n mov.l K_cueinfo,r1\n jsr @r1\n nop\n mov r0,r12 ; the stock result, returned as it is\n mov.l K_hot,r1 ; no hot cues known\n mov #8,r2\n mov #-1,r3\ncg_clear:\n mov.l r3,@r1\n dt r2\n bf/s cg_clear\n add #8,r1\n mov.l K_hot,r1 ; one more load: entry 0's spare byte counts\n mov.b @(7,r1),r0 ; them (hotcuekeys reloads its slots on it)\n add #1,r0\n mov.b r0,@(7,r1)\n cmp/pl r12\n bf cg_early\n mov.l @r8,r11 ; the connection's socket side\n tst r11,r11\n bt cg_early\n mov.l K_check,r1\n jsr @r1\n mov r11,r4\n tst r0,r0\n bt cg_early\n mov.l K_alloc,r1\n jsr @r1\n mov #72,r4\n tst r0,r0\n bt cg_early\n mov.l r0,@(4,r15)\n mov.l r0,@(8,r15)\n mov #0,r1\n mov.l r1,@r15\n mov.l r1,@(12,r15)\n mov.l r1,@(16,r15)\n mov r8,r4\n mov r0,r5\n mov.l K_type,r6\n mov.l K_init,r1\n jsr @r1\n mov #8,r7 ; as dbcl_GetUsbSdCueInfo\n mov.l @(4,r15),r2\n mov.l r9,@(24,r2) ; the track\n mov #0,r1\n mov.l r1,@(28,r2)\n mov r11,r4\n mov.l @(8,r15),r5\n mov.l K_send,r1\n jsr @r1\n nop\n tst r0,r0\n bf cg_early\n mov r15,r1\n add #12,r1\n mov.l r1,@-r15 ; &block\n mov.l @(12,r15),r4 ; the message\n mov.l K_reply,r5\n mov r15,r6\n add #4,r6\n mov r15,r7\n mov.l K_wait,r1\n jsr @r1\n add #20,r7 ; &size\n add #4,r15\n mov.l @(12,r15),r13 ; the reply's entries\n tst r13,r13\n bt cg_early\n cmp/pz r0\n bf cg_free\n mov.l @(16,r15),r14\n add r13,r14 ; their end\n bra cg_entry\n nop\ncg_early:\n bra cg_out\n nop\ncg_entry:\n mov r13,r1\n add #16,r1\n cmp/hi r14,r1\n bt cg_free ; not even a header left\n mov.l @r13,r11 ; length\n mov #64,r1\n cmp/hs r1,r11\n bf cg_free\n mov r13,r1\n add r11,r1\n cmp/hi r14,r1\n bt cg_free ; runs past the end\n mov.l @(12,r13),r1 ; ms -> 1/150 s: ms * 3 / 20\n mov r1,r2\n add r1,r2\n add r1,r2\n mov.l K_div20,r1\n dmulu.l r1,r2\n sts mach,r9\n shlr2 r9\n shlr2 r9 ; r9 = time\n mov.b @(4,r13),r0\n extu.b r0,r6 ; r6 = hot cue number, 0 = memory cue\n tst r6,r6\n bf cg_hot\n mov #58,r0\n mov.b @(r0,r13),r0 ; colour id\n extu.b r0,r0\n tst r0,r0\n bt cg_next\n mov #8,r1\n cmp/hi r1,r0\n bt cg_next\n add r0,r0\n mov.l K_pal,r1\n add r1,r0\n mov.w @r0,r7\n bra cg_match\n extu.w r7,r7\ncg_hot:\n mov.l K_green,r7 ; no colour: rekordbox's default\n mov #82,r1 ; colour code, R, G, B, 2 bytes: 0x52 at least\n cmp/hs r1,r11\n bf cg_hstore\n mov #72,r0 ; the comment: its length in bytes at +0x48, text from +0x4A,\n mov.w @(r0,r13),r2 ; then 4 bytes, then colour code, R, G, B\n extu.w r2,r2 ; (the server's own entries: not checked against the length)\n add r13,r2\n add #78,r2\n mov.b @r2,r0 ; colour code; 0 = none\n tst r0,r0\n bt cg_hstore\n mov.b @(1,r2),r0 ; R\n extu.b r0,r7\n mov #-8,r0\n and r0,r7\n shll8 r7\n mov.b @(2,r2),r0 ; G\n extu.b r0,r0\n shlr2 r0\n shll2 r0\n shll r0\n shll2 r0\n or r0,r7\n mov.b @(3,r2),r0 ; B\n extu.b r0,r0\n shlr2 r0\n shlr r0\n or r0,r7\ncg_hstore:\n mov #9,r1 ; hot cues 1-8 into our table\n cmp/hs r1,r6\n bt cg_match\n mov r6,r1\n add #-1,r1\n shll2 r1\n shll r1\n mov.l K_hot,r2\n add r1,r2\n mov.l r9,@r2\n mov r7,r0\n mov.w r0,@(4,r2)\n mov r6,r0\n mov.b r0,@(6,r2)\ncg_match:\n ; mark the stock reply's entry with the same hot cue number and time\n mov.l @(24,r10),r1 ; entries\n tst r1,r1\n bt cg_next\n mov.l @(16,r10),r2\n mov.l @(20,r10),r3\n add r3,r2 ; memory + hot cue entries\n mov #16,r3\n cmp/hi r3,r2\n bf cg_m_ok\n mov r3,r2\ncg_m_ok:\n tst r2,r2\n bt cg_next\ncg_m:\n mov.b @(2,r1),r0\n extu.b r0,r0\n cmp/eq r6,r0\n bf cg_m_next\n mov.l @(12,r1),r0\n sub r9,r0 ; time difference, within one unit\n add #1,r0\n mov #2,r3\n cmp/hi r3,r0\n bt cg_m_next\n mov r7,r0\n mov.w r0,@(16,r1)\n mov r1,r3\n add #18,r3\n mov #1,r0\n mov.b r0,@r3\ncg_m_next:\n dt r2\n bf/s cg_m\n add #36,r1\ncg_next:\n bra cg_entry\n add r11,r13\ncg_free:\n mov.l @(12,r15),r4\n tst r4,r4\n bt cg_out\n mov.l K_free,r1\n jsr @r1\n nop\ncg_out:\n mov r12,r0\n add #20,r15\n lds.l @r15+,pr\n mov.l @r15+,r14\n mov.l @r15+,r13\n mov.l @r15+,r12\n mov.l @r15+,r11\n mov.l @r15+,r10\n mov.l @r15+,r9\n rts\n mov.l @r15+,r8\n\n .align 4\nK_alloc: .long 0x089A791E\nK_check: .long 0x089736F2\nK_cueinfo: .long CUEINFO\nK_div20: .long 0xCCCCCCCD\nK_free: .long 0x08A5EBC2\nK_green: .long HOT_DEFAULT\nK_hot: .long HOT_TABLE\nK_init: .long 0x08973C50\nK_pal: .long PALETTE\nK_reply: .long 0x00004E02\nK_send: .long 0x089738F0\nK_type: .long 0x00002B04\nK_wait: .long 0x08974198\n\n; ---- colour_for: r4 time (1/150 s), r5 tolerance -> r0 RGB565 or -1, r1 slot\ncolour_for:\n mov.l L_memlist,r1\n mov #0,r2 ; slot\ncf_loop:\n mov.l @r1,r0\n cmp/eq #-1,r0\n bt cf_hot\n mov #18,r0\n mov.b @(r0,r1),r0\n cmp/eq #1,r0\n bf cf_skip\n mov.l @(12,r1),r0\n sub r4,r0\n add r5,r0\n mov r5,r3\n add r5,r3\n cmp/hi r3,r0\n bt cf_skip\n mov.w @(16,r1),r0\n extu.w r0,r0\n rts\n mov r2,r1\ncf_skip:\n add #1,r2\n mov #10,r0\n cmp/hs r0,r2\n bf/s cf_loop\n add #36,r1\ncf_hot:\n mov.l L_hot,r1 ; then the hot cues: slots 10-17\n mov #10,r2\ncf_hloop:\n mov.l @r1,r0\n cmp/eq #-1,r0\n bt cf_hskip\n sub r4,r0\n add r5,r0\n mov r5,r3\n add r5,r3\n cmp/hi r3,r0\n bt cf_hskip\n mov.w @(4,r1),r0\n extu.w r0,r0\n rts\n mov r2,r1\ncf_hskip:\n add #1,r2\n mov #18,r0\n cmp/hs r0,r2\n bf/s cf_hloop\n add #8,r1\n rts\n mov #-1,r0\n\n; ---- make_tri: r4 slot, r5 RGB565 -> r0 its triangle (uncached address)\nmake_tri:\n mov r4,r0\n shll2 r0\n add r4,r0\n shll2 r0\n shll2 r0\n shll r0 ; slot * 160\n mov.l L_tribuf,r1\n add r0,r1 ; destination, through P2\n mov r1,r6\n mov #10,r0\n cmp/hs r0,r4\n bt mt_box\n mov.l L_tripix,r2\n mov.l L_red,r3\n mov #80,r7\nmt_loop:\n mov.w @r2+,r0\n extu.w r0,r0\n cmp/eq r3,r0\n bf mt_keep\n mov r5,r0\nmt_keep:\n mov.w r0,@r1\n dt r7\n bf/s mt_loop\n add #2,r1\n rts\n mov r6,r0\nmt_box:\n mov r4,r0 ; the letter, left-aligned in a word\n add #-10,r0\n shll2 r0\n mov.l L_font,r2\n mov.l @(r0,r2),r3\n mov.l L_key,r2 ; transparent\n mov #5,r7\nmb_row:\n mov #0,r4\nmb_col:\n mov #9,r0\n cmp/hs r0,r4\n bt mb_t ; past the marker\n mov #3,r0\n cmp/hs r0,r4\n bf mb_c\n mov #6,r0\n cmp/hs r0,r4\n bt mb_c\n shll r3 ; the letter's next pixel into T\n bf mb_c\n bra mb_st\n mov #0,r0 ; black\nmb_c:\n bra mb_st\n mov r5,r0\nmb_t:\n mov r2,r0\nmb_st:\n mov.w r0,@r1\n add #2,r1\n add #1,r4\n mov #16,r0\n cmp/hs r0,r4\n bf mb_col\n dt r7\n bf mb_row\n rts\n mov r6,r0\n\n; ---- mk_copy: memcpy(r4, r5, r6) for the waveform preparer; filling the\n; marker records, it adds the hot cues to them as memory-cue markers.\nmk_copy:\n mov.l r8,@-r15\n sts.l pr,@-r15\n mov r4,r8\n mov.l L_memcpy,r1\n jsr @r1\n nop\n mov.l L_mkrecs,r1\n cmp/eq r1,r8\n bf mk_out\n mov.l r0,@-r15 ; memcpy's result\n mov r8,r1\n mov #101,r2\n mov #-1,r3\n extu.b r3,r3 ; 0xff ends the list\nmk_find:\n mov.l @r1,r0\n cmp/eq r3,r0\n bt mk_add\n dt r2\n bf/s mk_find\n add #16,r1\n bra mk_done\n nop\nmk_add:\n mov.l L_hot,r3\n mov #8,r7\nmk_h:\n mov.l @r3,r0 ; time\n cmp/eq #-1,r0\n bt mk_hn\n tst r2,r2\n bt mk_done ; the list is full\n mov.l r0,@(8,r1)\n mov #0,r0\n mov.l r0,@r1 ; a memory cue\n mov.l r0,@(4,r1)\n mov #-1,r0\n mov.l r0,@(12,r1)\n add #16,r1\n add #-1,r2\nmk_hn:\n dt r7\n bf/s mk_h\n add #8,r3\nmk_done:\n mov.l @r15+,r0\nmk_out:\n lds.l @r15+,pr\n rts\n mov.l @r15+,r8\n\n; ---- det_res: the resource resolver, for the detail waveform (r9 = its column).\n; Every 0xC5 it is asked for becomes a 16 x 8 marker of ours, as the renderer\n; (patched) copies 11 x 8: a memory cue's triangle in rows 3-7 (coloured, or\n; the stock red one), a hot cue's box with its letter in rows 0-7.\ndet_res:\n mov.l L_resolve,r1\n mov.l L_triid,r0\n cmp/eq r0,r4\n bt dr_mine\n jmp @r1\n nop\ndr_mine:\n mov.l r8,@-r15\n mov.l r9,@-r15\n mov.l r10,@-r15\n mov.l r11,@-r15\n sts.l pr,@-r15\n mov r9,r8\n jsr @r1\n nop\n mov r0,r10 ; the record\n tst r10,r10\n bt dr_out\n mov r8,r4\n bsr colour_for\n mov #16,r5 ; zoomed out, a column stands for up to 16\n mov r1,r9 ; slot\n cmp/eq #-1,r0\n bt dr_plain\n mov r0,r5\n mov r9,r4\n mov #10,r2\n cmp/hs r2,r4\n bt dr_hot\n bsr make_tri\n nop\n mov #3,r11 ; triangle: rows 3-7\n bra dr_copy\n mov #5,r6\ndr_hot:\n bsr make_hotbox\n nop\n mov #0,r11 ; box: rows 0-7\n bra dr_copy\n mov #8,r6\ndr_plain:\n mov #18,r9 ; no colour: the stock triangle\n mov.l L_tripix,r0\n mov #3,r11\n mov #5,r6\ndr_copy:\n mov r0,r3 ; source, 16 pixels a line\n mov.l L_detbuf,r2\n mov r9,r0\n shll8 r0\n add r0,r2\n mov r2,r8 ; this slot's 16 x 8\n mov.l L_key,r0\n mov #64,r7\n shll r7\n mov r2,r1\ndr_fill:\n mov.w r0,@r1\n dt r7\n bf/s dr_fill\n add #2,r1\n mov r11,r0\n shll2 r0\n shll2 r0\n shll r0\n add r0,r2\ndr_row:\n mov #16,r7\ndr_px:\n mov.w @r3+,r0\n mov.w r0,@r2\n dt r7\n bf/s dr_px\n add #2,r2\n dt r6\n bf dr_row\n mov.l L_fake,r2 ; the record, with our size and pixels\n mov r10,r3\n mov #11,r4\ndr_rec:\n mov.l @r3+,r1\n mov.l r1,@r2\n dt r4\n bf/s dr_rec\n add #4,r2\n add #-44,r2\n mov.l L_detsize,r1\n mov.l r1,@(4,r2)\n mov.l r8,@(12,r2)\n mov r2,r10\ndr_out:\n mov r10,r0\n lds.l @r15+,pr\n mov.l @r15+,r11\n mov.l @r15+,r10\n mov.l @r15+,r9\n rts\n mov.l @r15+,r8\n\n; ---- ov_draw: draw_bitmap(r4, r5 x, r6 y, r7 resource) for the overview (r13 = its record)\nov_draw:\n mov.l L_draw,r1\n mov.l L_triid,r0\n cmp/eq r0,r7\n bt od_mine\n jmp @r1\n nop\nod_mine:\n mov.l r13,@-r15\n mov.l r8,@-r15\n mov.l r9,@-r15\n mov.l r10,@-r15\n mov.l r11,@-r15\n mov.l r12,@-r15\n mov.l r14,@-r15\n sts.l pr,@-r15\n mov r4,r8\n mov r5,r9\n mov r6,r10\n mov r7,r11\n mov.l L_ovrecs,r1 ; which record: 12 bytes each, 16 in the other list\n mov r13,r2\n sub r1,r2\n mov #0,r3\n mov #101,r4\nod_idx:\n cmp/pl r2\n bf od_found\n add #-12,r2\n dt r4\n bf/s od_idx\n add #16,r3\n bra od_plain\n nop\nod_found:\n tst r2,r2\n bf od_plain ; not on a record\n mov.l L_mkrecs,r1\n add r3,r1\n mov.l @(8,r1),r4\n bsr colour_for\n mov #0,r5\n cmp/eq #-1,r0\n bt od_plain\n mov r1,r4\n mov #10,r2\n cmp/hs r2,r4\n bt od_hot\n bsr make_tri\n mov r0,r5\n mov.l L_trisize,r13 ; 16 x 5, the triangle's own size\n bra od_pix\n nop\nod_hot:\n bsr make_hotbox ; a hot cue: the bigger box\n mov r0,r5\n mov.l L_boxsize,r13\nod_pix:\n mov.l L_restab,r1 ; the triangle's record\n mov.l @r1,r12\n mov.l L_trirec,r1\n add r1,r12\n mov.l @(32,r12),r14 ; its pixel offset and size, put back below\n mov.l @(4,r12),r1\n mov.l r13,@(4,r12)\n mov r1,r13\n mov.l L_p0mask,r1 ; the blitter gets the plain address\n and r1,r0\n mov.l L_imgbase,r1\n sub r1,r0\n mov.l r0,@(32,r12)\n mov r8,r4\n mov r9,r5\n mov r10,r6\n mov.l L_draw,r1\n jsr @r1\n mov r11,r7\n mov.l r13,@(4,r12)\n bra od_out\n mov.l r14,@(32,r12)\nod_plain:\n mov r8,r4\n mov r9,r5\n mov r10,r6\n mov.l L_draw,r1\n jsr @r1\n mov r11,r7\nod_out:\n lds.l @r15+,pr\n mov.l @r15+,r14\n mov.l @r15+,r12\n mov.l @r15+,r11\n mov.l @r15+,r10\n mov.l @r15+,r9\n mov.l @r15+,r8\n rts\n mov.l @r15+,r13\n\n .align 4\nL_cueinfo: .long CUEINFO\nL_check: .long 0x089736F2\nL_alloc: .long 0x089A791E\nL_init: .long 0x08973C50\nL_send: .long 0x089738F0\nL_wait: .long 0x08974198\nL_free: .long 0x08A5EBC2\nL_type: .long 0x00002B04\nL_reply: .long 0x00004E02\nL_div20: .long 0xCCCCCCCD\nL_hot: .long HOT_TABLE\nL_memlist: .long MEMLIST\nL_tribuf: .long TRI_BUF_P2\nL_tripix: .long TRI_PIXELS\nL_red: .long TRI_RED\nL_resolve: .long RESOLVE\nL_draw: .long DRAW\nL_triid: .long TRI_ID\nL_fake: .long FAKE_RECS\nL_detbuf: .long DET_BUF\nL_detsize: .long 0x00080010\nL_ovrecs: .long OV_RECS\nL_mkrecs: .long MK_RECS\nL_restab: .long RES_TABLE_PTR\nL_trirec: .long TRI_REC_OFF\nL_imgbase: .long 0x08100000\nL_p0mask: .long 0x1FFFFFFF\nL_pal: .long PALETTE\nL_green: .long HOT_DEFAULT\nL_font: .long FONT\nL_key: .long 0xF81F\nL_memcpy: .long MEMCPY\nL_trisize: .long 0x00050010\nL_boxsize: .long BOXSIZE\n\n; ---- make_hotbox: r4 slot (10-17), r5 RGB565 -> r0 the overview's hot cue\n; marker, 11 x 9 in its colour with the letter in black (uncached address)\nmake_hotbox:\n mov.l r8,@-r15\n mov.l r9,@-r15\n mov r4,r6\n add #-10,r6 ; 0 = A\n mov r6,r1 ; HOTBOX_SIZE (288) * index\n shll8 r1\n mov r6,r2\n shll2 r2\n shll2 r2\n shll r2\n add r2,r1\n mov.l M_hotbox,r2\n add r2,r1\n mov r1,r9 ; returned\n mov r6,r2 ; its letter: 7 bytes from FONT5 + 7 * index\n shll2 r2\n shll r2\n sub r6,r2\n mov.l M_font5,r3\n add r2,r3\n mov.l M_key,r2\n mov #0,r6 ; row\nhb_row:\n mov #0,r4 ; the letter's bits in this row\n mov r6,r0\n cmp/eq #0,r0\n bt hb_cols\n cmp/eq #8,r0\n bt hb_cols\n add #-1,r0\n mov.b @(r0,r3),r4\n extu.b r4,r4\nhb_cols:\n mov #0,r8 ; column\nhb_col:\n mov #11,r0\n cmp/hs r0,r8\n bt hb_t\n mov #3,r0\n cmp/hs r0,r8\n bf hb_c\n mov #8,r0\n cmp/hs r0,r8\n bt hb_c\n mov r4,r0\n tst #128,r0\n bt/s hb_c\n shll r4\n bra hb_st\n mov #0,r0 ; black\nhb_c:\n bra hb_st\n mov r5,r0\nhb_t:\n mov r2,r0\nhb_st:\n mov.w r0,@r1\n add #2,r1\n add #1,r8\n mov #16,r0\n cmp/hs r0,r8\n bf hb_col\n add #1,r6\n mov #9,r0\n cmp/hs r0,r6\n bf hb_row\n mov r9,r0\n mov.l @r15+,r9\n rts\n mov.l @r15+,r8\n\n .align 4\nM_hotbox: .long HOTBOX_P2\nM_font5: .long FONT5\nM_key: .long 0xF81F\nFONT:\n'''\n\n\ndef routine():\n \"\"\"The code at CC_BASE, the memory-cue palette after it, and the labels.\"\"\"\n syms = {\n 'CUEINFO': CUEINFO, 'RESOLVE': RESOLVE, 'DRAW': DRAW, 'HOT_TABLE': HOT_TABLE,\n 'MEMLIST': MEMLIST, 'TRI_BUF_P2': TRI_BUF | 0xA0000000, 'TRI_PIXELS': TRI_PIXELS,\n 'TRI_RED': TRI_RED, 'TRI_ID': TRI_ID, 'FAKE_RECS': FAKE_RECS, 'OV_RECS': OV_RECS,\n 'MK_RECS': MK_RECS, 'RES_TABLE_PTR': RES_TABLE_PTR, 'TRI_REC_OFF': TRI_ID * 44,\n 'HOT_DEFAULT': HOT_DEFAULT, 'MEMCPY': MEMCPY, 'HOTBOX_P2': HOTBOX | 0xA0000000,\n 'BOXSIZE': HOTBOX_W | HOTBOX_H << 16, 'DET_BUF': DET_BUF,\n }\n font = b''.join(struct.pack(' r0 the named cue to show (CN_TABLE entry) or 0; r1-r7 used\ncn_pick:\n mov.l P_hot,r6\n mov.b @(7,r6),r0 ; the table is this load's?\n mov.l P_load,r1\n mov.b @r1,r1\n cmp/eq r1,r0\n bf pk_none\n mov.l P_count,r1\n mov.l @r1,r3\n tst r3,r3\n bt pk_none\n mov.l P_pos,r1\n mov.l @r1,r4\n mov.l P_behind,r1\n sub r1,r4 ; from a second behind\n mov.l P_table,r2\n mov #0,r0 ; best so far\npk_loop:\n mov.l @r2,r1 ; ms\n cmp/ge r4,r1\n bf pk_next ; behind\n mov.l @(8,r2),r5 ; a hot cue still where it was?\n tst r5,r5\n bt pk_ok\n mov #9,r7\n cmp/hs r7,r5\n bt pk_next\n add #-1,r5\n shll2 r5\n shll r5\n add r6,r5\n mov.l @r5,r5 ; HOT_TABLE's time, 1/150 s\n mov.l @(4,r2),r7\n sub r7,r5\n add #1,r5\n mov #2,r7\n cmp/hi r7,r5\n bt pk_next\npk_ok:\n tst r0,r0\n bt pk_take\n mov.l @r0,r7\n cmp/ge r7,r1\n bt pk_next ; not nearer\npk_take:\n mov r2,r0\npk_next:\n dt r3\n bf/s pk_loop\n add #64,r2\n rts\n nop\npk_none:\n rts\n mov #0,r0\n\n; ---- cn_draw: the text widget's draw method (r4 renderer, r5 widget)\ncn_draw:\n mov.l r8,@-r15\n mov.l r9,@-r15\n mov.l r10,@-r15\n mov.l r11,@-r15\n sts.l pr,@-r15\n mov r4,r8\n mov r5,r9\n mov.l @(4,r5),r1 ; the title?\n mov.l D_title,r2\n cmp/eq r2,r1\n bf dr_plain\n mov.l D_depth,r1 ; BROWSE closed?\n mov.b @r1,r1\n tst r1,r1\n bf dr_plain\n mov.l @(40,r9),r1 ; the title white? (dimmed behind a popup, as MENU's: no name)\n mov #-1,r2\n cmp/eq r2,r1\n bf dr_plain\n bsr cn_pick\n nop\n tst r0,r0\n bt dr_plain\n mov r0,r10 ; the cue\n mov.l D_label,r2 ; the label: \"A \" for a hot cue, then the name\n mov.l @(8,r10),r1\n tst r1,r1\n bt dr_name\n add #64,r1 ; 'A' - 1 + number\n mov r1,r0\n mov.w r0,@r2\n mov #32,r0\n mov.w r0,@(2,r2)\n add #4,r2\ndr_name:\n mov r10,r1\n add #16,r1\ndr_ncopy:\n mov.w @r1+,r0\n mov.w r0,@r2\n tst r0,r0\n bf/s dr_ncopy\n add #2,r2\n mov.l @(28,r9),r11 ; the title, narrowed\n mov r11,r1\n mov.l D_hmask,r2\n and r2,r1\n mov.l D_tw,r2\n or r2,r1\n mov.l r1,@(28,r9)\n mov r8,r4\n mov r9,r5\n mov.l D_next,r1\n jsr @r1\n nop\n mov.l r11,@(28,r9)\n mov.l D_clone,r2 ; the copy: our place, text, colour\n mov r9,r1\n mov #24,r3\ndr_clone:\n mov.l @r1+,r0\n mov.l r0,@r2\n dt r3\n bf/s dr_clone\n add #4,r2\n mov.l D_clone,r5\n mov.l @(24,r9),r1 ; y stays, x ours\n mov.l D_hmask,r2\n and r2,r1\n mov.l D_lx,r2\n or r2,r1\n mov.l r1,@(24,r5)\n mov r11,r1\n mov.l D_hmask,r2\n and r2,r1\n mov.l D_lw,r2\n or r2,r1\n mov.l r1,@(28,r5)\n mov.l @(12,r10),r1\n mov.l r1,@(40,r5)\n mov.l D_label,r1\n mov.l r1,@(52,r5)\n mov r8,r4\n mov.l D_next,r1\n jsr @r1\n nop\n bra dr_out\n nop\ndr_plain:\n mov r8,r4\n mov r9,r5\n mov.l D_next,r1\n jsr @r1\n nop\ndr_out:\n lds.l @r15+,pr\n mov.l @r15+,r11\n mov.l @r15+,r10\n mov.l @r15+,r9\n rts\n mov.l @r15+,r8\n\n .align 4\nP_behind: .long BEHIND_MS\nP_count: .long CN_COUNT\nP_hot: .long HOT_TABLE\nP_load: .long CN_LOAD\nP_pos: .long POS_MS\nP_table: .long CN_TABLE\nD_clone: .long CN_CLONE\nD_depth: .long BROWSE_DEPTH\nD_hmask: .long 0xFFFF0000\nD_label: .long CN_LABEL\nD_lw: .long LABEL_W\nD_lx: .long LABEL_X\nD_next: .long NEXT_DRAW\nD_title: .long TITLE_ID\nD_tw: .long TITLE_W\nMEMORY_TAB:\n'''\n\n\ndef routine(next_draw):\n src = SOURCE + ''.join(' .long 0x%08X\\n' % c for c in MEMORY_ABGR)\n return sh4asm.assemble(src, CN_CODE, {\n 'CN_COUNT': CN_COUNT, 'CN_LOAD': CN_LOAD, 'CN_TABLE': CN_TABLE, 'CN_LABEL': CN_LABEL,\n 'CN_CLONE': CN_CLONE, 'CN_MAX': CN_MAX, 'CN_NAME': CN_NAME, 'FREE': FREE,\n 'HOT_TABLE': HOT_TABLE, 'POS_MS': POS_MS, 'BROWSE_DEPTH': BROWSE_DEPTH,\n 'TITLE_ID': TITLE_ID, 'TITLE_W': TITLE_W, 'LABEL_X': LABEL_X, 'LABEL_W': LABEL_W,\n 'BEHIND_MS': BEHIND_MS, 'NO_COLOUR': NO_COLOUR, 'NEXT_DRAW': next_draw})\n\n\ndef patch(app, stock):\n \"\"\"The application with CUE NAMES added (after cuecolours and, if chosen,\n keynotation); `stock` is the unmodified 1.31 application.\"\"\"\n out = bytearray(app)\n word = lambda a: struct.unpack_from(' 0xC00487A4)\nTRAMP_TARGET = 0xC00487A4\nMB = 0x1183E000\nDP = 0x11806900\nHEADS = 0x1182E0E0\nLINKS = 0xC1F38B90\nPLAY_HEAD_DP = 969 # byte: the playing head's index\nMARGIN = 750 # slots (10 s) a forward jump leaves decoded ahead (2 s: EMERGENCY LOOP\n # after rapid 8-beat jumps, emulator too; 5 s was fine there)\nBLOCKS = ((0xC0000040, 0xC0000080), (0xC00000A0, 0xC0000100), (0xC0000120, 0xC00001E0))\nFREE_PACKETS = (struct.pack('<8I', *([0x0c6e0c6e] * 7 + [0xefe00000])), # compact nops only\n struct.pack('<8I', *([0x0c6e0c6e] * 6 + [0, 0xe7e00000])))\n\n\ndef code():\n \"\"\"[(addr, word)] of dj_poll.\"\"\"\n a = c6asm.Asm(BLOCKS[0][0])\n o = a.op\n # block 1: the mailbox; e = heads + 30 * h\n o('const', MB, 'a3')\n o('ldw', 'a4', 'a3', 0)\n o('nop', 4)\n o('cmpeq', 1, 'a4', 'a1')\n o('b', 'tail', p='!a1')\n o('nop', 5)\n o('ldw', 'b4', 'a3', 4) # n\n o('lddp', 'ldbu', 'b5', PLAY_HEAD_DP) # h\n o('nop', 4)\n o('shl', 'b5', 5, 'b6')\n o('shl', 'b5', 1, 'b7')\n o('sub', 'b6', 'b7', 'b6') # 30 h\n o('b', 'blk2')\n o('nop', 5)\n # block 2: the head's fields, the direction\n a.org(BLOCKS[1][0])\n a.label('blk2')\n o('const', HEADS, 'b8')\n o('add', 'b8', 'b6', 'b6') # e\n o('ldhu', 'a5', 'b6', 2) # cur\n o('ldh', 'a6', 'b6', 6) # behind\n o('ldh', 'a7', 'b6', 8) # ahead\n o('nop', 4)\n o('stw', 'a5', 'a3', 16)\n o('stw', 'a6', 'a3', 24)\n o('stw', 'a7', 'a3', 28)\n o('mvk', 2, 'a9') # refused unless done\n o('const', LINKS, 'a4')\n o('cmplt', 0, 'b4', 'b0') # n > 0\n o('b', 'fwd', p='b0')\n o('nop', 5)\n o('cmpgt', 0, 'b4', 'b1') # n < 0\n o('b', 'ok', p='!b1') # n = 0\n o('nop', 5)\n o('sub', 0, 'b4', 'b2') # m = -n\n o('mv', 'b2', 'a8')\n o('sub', 'a6', 'a8', 'a8') # behind - m\n o('b', 'blk3')\n o('nop', 5)\n # block 3: the walk\n a.org(BLOCKS[2][0])\n a.label('blk3')\n o('cmplt', 0, 'a8', 'a1') # at least one slot left behind\n o('b', 'done', p='!a1')\n o('nop', 5)\n a.label('loopb')\n o('addaw', 'a4', 'a5', 'a2')\n o('ldhu', 'a5', 'a2', 0) # prev\n o('nop', 4)\n o('add', -1, 'b2', 'b2')\n o('b', 'loopb', p='b2')\n o('nop', 5)\n o('sub', 0, 'b4', 'b7')\n o('mv', 'b7', 'a8') # m\n o('sub', 'a6', 'a8', 'a6') # behind - m\n o('add', 'a8', 'a7', 'a7') # ahead + m\n o('b', 'store')\n o('nop', 5)\n a.label('fwd')\n o('mv', 'b4', 'a8')\n o('sub', 'a7', 'a8', 'a8') # ahead - n\n o('mvk', MARGIN, 'b7')\n o('cmplt', 'b7', 'a8', 'b1') # more than MARGIN left ahead\n o('b', 'done', p='!b1')\n o('nop', 5)\n o('mv', 'b4', 'b2')\n a.label('loopf')\n o('addaw', 'a4', 'a5', 'a2')\n o('ldhu', 'a5', 'a2', 2) # next\n o('nop', 4)\n o('add', -1, 'b2', 'b2')\n o('b', 'loopf', p='b2')\n o('nop', 5)\n o('mv', 'b4', 'a8')\n o('add', 'a8', 'a6', 'a6') # behind + n\n o('sub', 'a7', 'a8', 'a7') # ahead - n\n a.label('store')\n o('sth', 'a5', 'b6', 2)\n o('sth', 'a6', 'b6', 6)\n o('sth', 'a7', 'b6', 8)\n o('sth', 'a5', 'b6', 14) # the point the decoder fills from (set on a\n o('sth', 'a6', 'b6', 16) # pause): moved along, so standing it decodes\n o('sth', 'a7', 'b6', 18) # on from the new place\n o('stw', 'a5', 'a3', 20)\n a.label('ok')\n o('mvk', 1, 'a9')\n a.label('done')\n o('stw', 'a9', 'a3', 8)\n o('ldw', 'a8', 'a3', 12)\n o('nop', 4)\n o('add', 1, 'a8', 'a8')\n o('stw', 'a8', 'a3', 12)\n o('mvk', 0, 'a8')\n o('stw', 'a8', 'a3', 0)\n a.label('tail')\n o('b', TRAMP_TARGET)\n o('nop', 5)\n words = a.assemble()\n for at, _ in words:\n assert any(lo <= at < hi for lo, hi in BLOCKS), 'dspjump: 0x%08x is past its blocks' % at\n return words\n\n\ndef packets(words):\n \"\"\"{packet addr: 8 words}: our words, the rest of each packet nop.\"\"\"\n out = {}\n for at, w in words:\n fp = at & ~31\n out.setdefault(fp, [0] * 8)[(at - fp) // 4] = w\n return out\n\n\ndef set_cst16(word, value):\n return (word & ~(0xFFFF << 7)) | (value & 0xFFFF) << 7\n\n\ndef patch(app, stock):\n out = bytearray(app)\n for fp, ws in packets(code()).items():\n off = B_IMG - BASE + (fp - 0xC0000000)\n if stock[off:off + 32] not in FREE_PACKETS or out[off:off + 32] != stock[off:off + 32]:\n raise SystemExit('patch_cdj900nxs: dspjump: the vector packet 0x%08x is not the expected one' % fp)\n out[off:off + 32] = struct.pack('<8I', *ws)\n entry = BLOCKS[0][0]\n for at, want, value in ((TRAMP_MVK, 0x0543d22a, entry), (TRAMP_MVKH, 0x0560026a, entry >> 16)):\n off = A_IMG - BASE + (at - A_AT)\n w = struct.unpack_from(' red, grey -> dark red\n\nSOURCE = r'''\n; ---- ew_draw: draw_bitmap(r4, r5 x, r6 y, r7 resource) for the playing-address bar\new_draw:\n mov.l E_draw,r0\n mov.l E_res,r1\n cmp/eq r1,r7\n bt ew_bar\n jmp @r0\n nop\new_bar:\n mov.l E_len,r1 ; length in ms: 1/150 s * 20 / 3\n mov.l @r1,r1\n tst r1,r1\n bt ew_plain\n mov r1,r2\n shll2 r2\n shll2 r2\n shll2 r1\n add r2,r1 ; * 20\n mov.l E_div3,r2\n dmulu.l r2,r1\n sts mach,r1\n shlr r1 ; / 3\n mov.l E_pos,r2\n mov.l @r2,r2\n sub r2,r1 ; left\n cmp/pl r1\n bf ew_plain\n mov.l E_warn,r2\n cmp/hs r2,r1\n bt ew_plain\n mov.l r8,@-r15 ; red: the record pointed at RED_BAR for this call\n mov.l r9,@-r15\n sts.l pr,@-r15\n mov.l E_tab,r8\n mov.l @r8,r8\n mov.l E_recoff,r1\n add r1,r8\n mov.l @(32,r8),r9\n mov.l E_redoff,r1\n mov.l r1,@(32,r8)\n jsr @r0\n nop\n mov.l r9,@(32,r8)\n lds.l @r15+,pr\n mov.l @r15+,r9\n rts\n mov.l @r15+,r8\new_plain:\n jmp @r0\n nop\n\n .align 4\nE_div3: .long 0xAAAAAAAB\nE_draw: .long DRAW\nE_len: .long TRACK_LEN\nE_pos: .long POS_MS\nE_recoff: .long REC_OFF\nE_redoff: .long RED_OFF\nE_res: .long RES_BAR\nE_tab: .long RES_TABLE_PTR\nE_warn: .long WARN_MS\n'''\n\n\ndef routine():\n return sh4asm.assemble(SOURCE, EW_CODE, {\n 'DRAW': DRAW, 'TRACK_LEN': TRACK_LEN, 'POS_MS': POS_MS, 'REC_OFF': RES_BAR * 44,\n 'RED_OFF': RED_BAR - RES_BASE, 'RES_BAR': RES_BAR, 'RES_TABLE_PTR': RES_TABLE_PTR,\n 'WARN_MS': WARN_MS})\n\n\ndef patch(app, stock):\n \"\"\"The application with END WARNING added; `stock` is the unmodified 1.31\n application, which every replaced byte is checked against.\"\"\"\n out = bytearray(app)\n word = lambda buf, a: struct.unpack_from('