diff --git a/pages/blog/6-months.md b/pages/blog/6-months.md index 98555e2..7511dfe 100644 --- a/pages/blog/6-months.md +++ b/pages/blog/6-months.md @@ -2,73 +2,69 @@ atroot: true template: slug: 6-months -title: 6 months of tangling -subtitle: new domain, a quick recap, and notes on the future -date: 2025-09-18 -image: /static/img/logo_with_text.jpeg +title: 6 months of Tangled +subtitle: a quick recap, and notes on the future +date: 2025-10-21 +image: /static/img/6-months.png authors: - name: Anirudh - email: anirudh@tangled.sh - handle: icyphox.sh + email: anirudh@tangled.org + handle: anirudh.fi - name: Akshay - email: akshay@tangled.sh + email: akshay@tangled.org handle: oppi.li -draft: true +draft: false --- Hello Tanglers! It's been over 6 months since we first announced -Tangled, so we figured we'd do a quick retrospective on what we built so +Tangled, so we figured we'd do a quick retrospective of what we built so far and what's next. -But before that, we've got a big announcement! - -## tangled.sh is now tangled.org! - -[Chris Maytag](https://bsky.app/profile/cpm5280.bsky.social) very kindly -let us have the tangled.org domain! - -We're still in the process of migrating and there may be stray -references to the .sh domain in places so bear with us. Rest assured: -your current links to tangled.sh will be redirected to tangled.org. +If you're new here, here's a quick overview: Tangled is a git hosting +and collaboration platform built on top of the [AT +Protocol](https://atproto.com). You can read a bit more about our +architecture [here](/intro). ## new logo and mascot: dolly! Tangled finally has a logo! Designed by Akshay himself, Dolly is in -reference to the first ever *cloned* mammal. +reference to the first ever *cloned* mammal. For a full set of brand assets and guidelines, see our new [branding page](https://tangled.org/brand).  With that, let's recap the major platform improvements so far! -### pull requests +## pull requests: doubling down on jujutsu -One of the first major features we built was our pull requests system, -which follows a unique round-based submission & review approach. This -was really fun to innovate on -- it remains one of Tangled's core -differentiators, and one we plan to keep improving. +One of the first major features we built was our [pull requests +system](/pulls), which follows a unique round-based submission & review +approach. This was really fun to innovate on -- it remains one of +Tangled's core differentiators, and one we plan to keep improving. In the same vein, we're the first ever code forge to support [stacking pull requests](/stacking) using Jujutsu! We're big fans of the tool and we use it everyday as we hack on -[core](https://tangled.sh/@tangled.sh/core). Ultimately, we think -PR-based collaboration should evolve beyond the traditional model, and -we're excited to keep experimenting with new ideas that make code review -and contribution easier! +[tangled.org/core](https://tangled.org/@tangled.org/core). -### spindle +Ultimately, we think PR-based collaboration should evolve beyond the +traditional model, and we're excited to keep experimenting with new +ideas that make code review and contribution easier! + +## spindle CI was our most requested feature, and we spent a *lot* of time debating how to approach it. We considered integrating with existing platforms, but none were good fits. So we gave in to NIH and [built spindle -ourselves](/ci)! This turned out great -- we could go all in on Nix and -make it "atproto native". +ourselves](/ci)! This allowed us to go in on Nix using Nixery to build +CI images on the fly and cache them. -Spindle is still early but designed to be extensible. The current -Docker-based engine is limiting -- we plan to switch to micro VMs -eventually. Meanwhile, if you've got ideas for other spindle backends -(Kubernetes?!), we'd love to [hear from you](https://chat.tangled.sh). +Spindle is still early but designed to be extensible and is AT-native. +The current Docker/Nixery-based engine is limiting -- we plan to switch +to micro VMs down the line to run full-fledged NixOS (and other base +images). Meanwhile, if you've got ideas for other spindle backends +(Kubernetes?!), we'd love to [hear from you](https://chat.tangled.org). -### XRPC APIs +## XRPC APIs We introduced a complete migration of the knotserver to an [XRPC](https://atproto.com/specs/xrpc) API. Alongside this, we also @@ -80,7 +76,7 @@ for knots, or alternate implementations should become much simpler. [lexicons]: https://tangled.sh/@tangled.sh/core/tree/master/lexicons -### issues rework +## issues rework Issues got a major rework (and facelift) too! They are now threaded: top-level comments with replies. This makes Q/A style discussions much @@ -88,12 +84,12 @@ easier to follow!  -### hosted PDS +## hosted PDS A complaint we often recieved was the need for a Bluesky account to use Tangled; and besides, we realised that the overlap between Bluesky users and possible Tangled users only goes so far -- we aim to be a generic -code forge after all, atproto just happens to be an implementation +code forge after all, AT just happens to be an implementation detail. To address this, we spun up the tngl.sh PDS hosted right here in @@ -102,15 +98,63 @@ up](https://tangled.sh/signup). There's a lot we can do to improve this experience as a generic PDS host, but we're still working out details around that. +## labels + +You can easily categorize issues and pulls via labels! There is plenty +of customization available: + +- labels can be basic, or they can have a key and value set, for example: +`wontfix` or `priority/high` +- labels can be constrained to a set of values: `priority: [high medium low]` +- there can be multiple labels of a given type: `reviewed-by: @oppi.li`, +`reviewed-by: @anirudh.fi` + +The options are endless! You can access them via your repo's settings page. + +
+
+
+
+ P7Oa-@vv$)7a!lX1&+-nA09Z` z{(iIh*^fO(s?8Y~R(R#Lr?LheJ$9_>=`6*gM~~*+whLEPSC0-}=CkqIn#knT^z`Y! zl}_`u9|pCmK%I5axcSGQ*WGTf+*A1K?EB@Bpx*Cdt&hK3|37~Gcr9oNWz5oRYa$2q-xz7epwJvzjFm=L&2j6y_51r#wQMG@* zlSRr2f%P$mFV3Fhx7;-4guwRWu`@qipPuu>D={%~>y8c83-*`a{=2c5OVKq@M3mv_ zHI5Zh76l7_{;%(Ub7$w}+}r7^p3kd3cWX!C;_G#SR%LHyY_0m5mHpwt!MxwA@<3I_ z>aew&s=mHTwUps24pHTku}JXTly+uDV&AHm$jF&j_t)2Nf4SkJQY6UG^$m{ )vk84H{jGG*+$Bez3l=^y$>_S-Smi?(e^!v$OK;*6UMd&RoeUtoGv5Y5nks zh#5PNC{LU?5!4g{r _W$qXgzr>zZd>8jE0uOztm@mFmDkor z&(5t_QUCwnt}mCo&u-J*l5x=qylhAG+P>QAuP-kj&zV16Z}%Icy&n#7r~Te@0F*>F zG&k^Xm}Qcgw9RJH%$b?n{G<#L8ZKSB1X_#=UNBl6`uf^h)67dMYa=!~$y${d9G_6~ z^=kO*W77F1w?nfoE%D5{vt#4UZLQkt_gu;rPpx}Cx4h=x{RaEHRj=2A76RT}XA~Y^ zyA`yBVRNpup`jsYp8BkrjexA|T2PkN&^RG;^H^;8-PCPbIcH`Vc6D|d-i`yc5zn0Q z`TOa#e$?)=wV+-QXffFNdA6Wv+IdI&*Z24N+s<+CDQ9M2u;%!|u-dViE$y^&^|v>M z(UX?UG)@Oqd7uRZmY-&VX0=~la^)7+yRxJ3@tMK{+`PP7&mLV{AAa?|T$$O$ix=Z8 zSLJ_sadFqXU9Zn mX&Rb(VM>Wj<%DNlS$2w z0#y~28H=?Nk6+(*a{Bs42O$xWl-J*RJ$L hJGB z8MNxli-(i*vwwfN?0 YbayfsP z-+m2f=;G~VQ17nf=hNx4-v-~Qc-$NJvtjPsxob~OR-gTLGibQxTouc^mp^{*)YH}m zEj04-^73Pg-?(vO9jCRpPQ-%f{JmFmrk{4^w_Q^I_jP>Q?d03raxZ^AZ@<3Z?$-&K zxmQ6l8 Fev;QX|94%C>>pd!TX;(nNZ3VPW&vSF6`YWnWwK@#WF3{eM1rZ?6qs_Uzo; z?01KhB_$>EZhv$A`FQ8K^XIpV>Br^t%36Qh@;;rDlk?h*jmc||c8f=YR@~>mGp+vi zrto%opFu76Ip z85b0?|Nr~@ENzdTt?gc?`%E{M`^(R-x%+2h@^MfDAJkIgle5Xl+Z42E)220cwZC?} zUA^b)A#VK&+c(i05*lyUX$9@8%8kC3pLp!a$;o%WRc-^dn!Y~nx1TlpQ`g(u+jqZR zZ{*tW^}nd7Xrz422gg>XNi8ib+4uHT+Hva6^?R;a|6rv@d{w~wLx7${m3EU+7l)2NCX_=6a(3$( ~byR 9 z_U%nNudm0~Z?!6Y^<>-rPuJSz>oP#gJ~mGcn(6SR#I@n;Y}@K@6@TupRLOpEVPTk~ zW8==7Ub8I<7v0`>3e-+DG=DlVa&y|w+}q$hw M)iFP}l6~ z<)UmBpRaFkU;k5kP`R?Qa+*r^p%%`#{|lby>P >=DiX~OP_Gr9cS#{*Vx3{;?`c}R<(kXncncwckHh%xpvzKc` zPD|bU{a$t6Z;kxQ-&=Ddr)@2L9kyPk(kT0yPVwcbW#?_b?|6IsveJQHZ%yu>+LQh# zuHWWUM|hvlzxerezgFI^I~816S@~?4jZw{yg6+BC%Rs65-J(N5!NGU8Wp979_x5Hb za3fjc{?(i7T_VrMRy=G?JFU#u?%dhg2^w#T*K3H8baZr-vZ>fm_5EFLAJe6F`MMR6 zo6}~#1rL&Gm;N@MX;ZoB+WPqXZKv06*bpGB?l imzpS5^j_R)5Rc9IMGIZDtbvR7g%PZ=21d0*f { zG$v-vo;@~i@9&QXErEG Ry##gU%@ei3HRA3f z@2yNrkM&BY|2ueEd4Igb&zeoCr^U9 vkp|6zAq_0Xm+*bMagy;0rPd|Q*-ShL-Hl5R; izV|Ng!>+rMY@j#h7fepC>W5O;IEP~HGqazD-e)%E}TLHlz> zzyAF9QCg^ssYNv>ky}btgTrazG7lHWiHn%L9K*~fFy&oY)WOuXspF`YQ>)iamudP7 z7AUbYcIyb4If^+7Pusxaq|l FK_#!rlsWtTD8*4J@vfZ?=x<3#g9(4|Nr&rw0`cB zty{CN-#P&r7}$K#6x7}^`*aJmkon4$5b58b(GAe1tKPjqOFRTY8+(p1ip$Hd7mu&G zc+4(xQ%dLJ@WiRw;pf~w9J;s|v )qCe`4*DB`Tmjj*pM`hd)0zS5!n~iIA$7 zhJ{5$`JKXc&<+mJOhQ+8_vGV`H^#r4G0(PIOGoF-u~sKHx3+)3uJ6BfBRhI~-qwlX zn>KBd*{k|-vcFy78{3dA8SnhW*G6p(Iy=iW_s!HPQ$%`YEH54F`}yUvf9{j5$9ko2 zYdn}E)AaAosj1qzPfVBBH3r-O4RN{kRXm?tE+eflRVVV2n`P0%L#)!3sx~$;-QxP& z4C@%5=P@um2;2GFCF%f6RYU2E3yQsx#%`gjLIQ7Z%QY=|5uh8n=}G;z$lYaYL8I}0 zbFDywnN@#29tRDC9d8q`4__Iiy7%X^*=BkoeKMAd{{H@c`$o23Y~$29bJqCIHoJKv z`}MW8pHJuSD_-P1U2msc)!#|Ex3|4~a&od+*_js?7t8*(1NE#vuC^^wHZ~3pUhcPb zqcW&(cKli>Hy__N!6Hp $sf z3A1tfxf|QgzuWgaPg<1gc%SU%iT?Y3K9iQNeER0*X0uN>k9LdaiU^qBui4zYXIt7? zDQQbBQ`4&(Z#Q^N)mj?2x9X-vLZ3W%`;@e`lAhkVjSHK$JM;djSNEF(n(E1YBcU$G zpiue${;eNBDx`ld@tmv%8qNVttt@nIzh(BXx!9b6p+NinztBhri@zz0R$EqoTQjfr zTO_EXu&wCn*6VS>&(F=3t$o$^<^9*)ZoN{ekD1QDOiXZcYElkA8M~|Gq?;Z0k>7u^ zvaYU5RbIbj>C%^fzu(`!@$sCP`zKF+O)dhh4KphWDJt63JHdU9+>z+zesebkI)GY` zn $FChNoB78ti{^ zW~MQyZ?ep1W>Rz v~U>;xhWB070r>9nCUS8I^!~O?s zEkM ={PL@|5-Qi_mxU(vNf5W9qmvWxW=;`6% zmA8xe{Os&z-T80s> (u`%`w7}u_vGZ{+&3Ltv#)18 zI?~w}8yURJN0L{<;J~ql>+g0v<`dNnI&v(|vg*r<-apU2yu57o$txpcMK9B_`_Amk z&sl$nP5cqrFKd16ee Hod#k?YuvDxqdV0$2Q &QaULjSl7tdzrUpvsqytVkb-`bd+LErD!@4u@P|KQG9 zP%bvtzQVi)w5P||`0_D3PY;g^CnhTAz7a2ecIM*0zrS L$mBS(Eo4{q|hx z+_Yf-MxD4lJ9-&@JlJ?#?(^?p@wp(s-7UQy8?~cgA*lB{V}``;&eetQp55VPXqYYf zigDVLJN8xoKqKg8pH_p)s}tIyS|J+*A8buJ+I90pw%^*^Ny2`%b2nvNT-0ZKlKa5^ zeAPGC*T?UZNb>w|$A0X{k&K(0QtP7mFUwn$7r$d;IB=HhFT?9QJB!UeoqRsOK2Lc+ zXwI&8PtYP4PFHvL+Y%qV3JNy#?s;~Fee#@wSJPrn-i$6}@Bpm>*j4g!(cRtUx2I)K z)r}4VO&1^QmHvG6SHzs%mgUS057Jue8lGM`G=Eab!$YiRXBZwnR<||bAXDs~ii^kM zc78l2oy$`3^wd;sP`F=L;pF1lH1Rr9zLdKuPR{8U^KwA9P&(`+GCuNx<{ zBO@cNDnBjhWwco0-Y*9lAq171$FFbtGX2B}kF&GQ{S_4zw>_0YGWzM0$sGDII}#Q* z6lBS+pQP%2i{nGryxo3(*RS^pyUX61BphIn-p%wp@B6-d z1_lOZ9o^VnS2iA;JlX&KN#5msub{1@4fwt-9hC$Ni*zL6@lZtrOZmA9@KaSa5TH z{eCuHsU@KE4?xQ -)RAeRs3ow=7toz$;^M;n=zZJ7 hap>7AR%7`D`Fs)(4F*agRcii#ah&d#}Srk )=DA?>& z&%ICuG$!vBrx~_p2557+^zYF3_x8$G)|6yrt$Ot6Q4UYV*_DoYUte8i{`BJKwYAZ= zPh_+6%WV;45C`QD(2(0o(463n4GW!|olD>E{r+n2_j{Myc%}bTy?*Fxem6xq`~kSg z?_!*` D7`B4Tg#_iY;=OPS~8D6c an_y$E5QuzCD?{xBB}njt?gnxpss0WhSo&&HQKG+Oo1&*0|zB0;nl>EUvS^KRhdI zRWIX{V$j@skEC(Vo5`=&?LOyL*#}B)1=?&8|37};|35Z-UChRf;h??euCA^(Zv;Mk z`0&?Z`F{z?>p{a+W=u7k^6pw4&vVs`+_VH#+)G k`>^$KYwzwZx85|(>1dZIXn=D6x^~mjS0SM*gN_~p z*KX5vB9oF2q~G42A3oQrH0RCK-S78-jw31h<9w`zQ&^_@&hF!nFW%W%oZC~gC?l|L z`D3wODbt|8zrKbp^%4zT6A}3I^z`tXn^Hr! ?r)&8I9^>}pP#%w2GlZI2Z>Wb<~8#{Eq!HX9nW2l`>aheFRAcKnVi^G zW0rTv;%@EtyJp{RZOgr#!(x&2@6XR&|Ns34CGp#*wiZ1-mHFsM=dRD^taDFigEH6U z<^8>T#l*#zr=Fg6Q{rcf^!hf<9<#hVE2im2-?F%#xBIP`wB@58A0L~2x;4`{J?9A* zD1$Uee|-IHzNBf^l*QdMzrVj9|M*z%=8gVwbw5*W|9-jL7ppm8>eQu{#m{a?6dc)8 z`MKo50Y>TSw|&;{F1%j9KQDPbXanI??eJ|IuY)EGlvx^%Ki)Vo{M2;)^)qHjNGl%z zSH$a0vaX!a4|lRI{kr-1 C>)*_8fz@n@bd&NuOVvro3KMGsxw<-S0J^RS(fSzg={f*R-;_bu7-?*Z1n| z{C%0pEDgc_ZQ4;=R)B_qlUZ&&J3Bk~$<#+jyMI4jsI~oG)#~0oljh8Mb3=H--$rnn zlxB-KwjuGb%wAgs4GoXI)!(mezh4L1GH|o3Z%h9DxQ!b(f?AhdqS|SoX)7z#ddr#8|+@5zg=gs7+tHVLVSY~bvbL{Kyxy9{% zzwbAwnQ=>k5wz7Jc1OX%V{x5*eb=hr?@do$zxUs-*I5@9H1_U&bY*JVzeC{6$jhvw zY-$>MdAa}gjpsqfhE#rjmihM9)>qfp&(Dnyy}z$^Yt`2*-MBpwXJ?si&Yce$mrg#` zv(fOu4%cq6n 6_{x=#+V6ME&Avtb|Myq+=lfqB zg36!`IJa(O|4jVr399)H_(mN0s|DHw(I;!Y3S5Ctesr{Zb?NJCpiMTQUfPcz6`;c# zPM$n@>cokFP9fEhjY+Pd>*Hbt1qJ)oZZ0&PIddk+{v4hkM-MbIUtQ?Tetce*>fhh5 zj)C{@-`sZ>jv8wl;FJ+vn%!&wrc!1$6Yw!gjf!*Vop9#?4vTt?O@rMw+)~URIM< zb^wh(D$k#y8SG|T{VnACySt^ozGTMksR(rK5(%7Xlp3 CADR=#n<;!2cum8WhH?|#; zhWMxM-Bt4P(awsGi KBFlUS5{yifM# zx7XR0Uu|cbW`}L7eZH)XNAl6hGiSE!F1<2UJKW~v$&>RQAMdaBn`80N)6=u?$@5Ry zLPA0|iHV6f|LxhSyS&ctUq$}^J)o&t{+CmIXPc$o-mYKz?@whl$9^vlj}zadilTl# zP5--n|KGE6m$aAr&p)^A{hTWkmEGU0tC==)=F6Mg^XI3Zn`1doeSXa)VIiSOZ+A?x znQK-0$!C_y$<39Y)BK~NX5H;Qe{FsI{I@gmbkE)0xtf`s?}l?_>cc~=H^2D?ins>0 z?%mP)L0l(li^u;T$L(`s6lAQ+e9qf^?&)RR4_c71rRr;zw6&IohR4E%3s;4$owX`# z?W&@urz}57{D_}4bLPsAkB?hdaZB$h{_wz2`e*3XRiUDil9|aCFBbRPf%<`Bx~rt~ zc7T_0P0 C&Yyr?l6n><*FVX!-Z|_v;fAmCeq9hQ80N-J!QJ z^|Y8Y_|TGFWpA^REna}O#(aBwJ3ZN*m7RUHQ!5u2H+L||nNm`(ejGRzwKZ!hXzNaL z_+xMzpn>t4sm-4che0P8^nPBtW{r;TEE7-AX%xAPjDq6g%f;g=4qjY-?CI3}{eP!1 zwsrq`n_nO7=GNBx7qp0PqoB;UU$56|>*}68_VXHO;HTh$gY<4WaLvZXvtgYgWKCPa z-^c6LAAS5W FMdY+V?FgJ}i){`;jQE%%6K}i>I`C z-j Z|77GLe4nEv_GT#an+bXyxSXQ{tdOqlP`l7_`}wl9RuFILyyp z(<{2X!ba}wJlkl{U~4X8Wzv}$hEn!*H3!zuD0FgiY62Z~^!DcF 3i^fzPA&ZU`ugjCzu#X6 zwOvkM)r;S^=Hz7c)&BGCwy{20`S5Ui_MIJtjItI#wCwES?(Qo6{JZJchjXW NWMsGGA%w!~9mIua-PLJ^i*tyoa|pXbH4w)t8Lhr=~;vbcjJ)yzJc_(9vkR z@%v)r`j2mmeST)9F=(XHB;$g@ZKjxqpgmy|6rHEcnUfQ}PFPxc_3n4OykB2mzg>3+ z=)^LnU&dMY_wDU{pbpwP{_N~*(6MZ{i`E*apUZf0VIgQTGxursoZXBJ4si($Q$hPV zcYVKC4O)3U*S7lFw%Fv?*VewevvV_OiuX2COzNpAn!7-C!rSflZ%xxqNlD279i? vy#R^{(xHhd30+{T;BVh`%cfX?-pYh8YBTg>y_@AqA9=C_MTm|q5NwXsMs z>*(+Oa>@JG-}m+F*YEpvDs(@upO@FA7Ea+SYa)%;#_qnhjWIlGf8E}^olnJlXBxS# zT)A@F+;lz}iv^%XZ~6E4ZDSR;uKctFbaWbM#%$Zu9aUdn-Q=kI_UW|#>fq&mw>G7A z=k7eTv-tU!f4|?qel|N_@5A;rg`l2&;}M3_?60q{5BKrunOF14v-bDf?Uhz1ygWTG zHnDPpj$N5&(oyrezy8l+& {cs2j4E*(2{(r{p6QD`=C4910piS^z-rk#Y=Yx8`w$ Y%=kEy=)ehS-yXx%Yk1uX)Oun_Vc= aKhJ;p^5xQRZzAW~)kc9fiTwNfduz^3qqQ+RFXeHGa3v-tf>!B) z?OPr0AG$g$^k^5TNo~0MWoYb<0!L8N0PXSp`~Cjw)B5|byt%pgZJGuPXm|iL)SGy? zZB^vvWlqk{q04+Er|LuoIXXIis<1hA=1hp2Tic~emrCB@Jp$;sK(+k16O=H)+C z*-ACya&qhL?X6x7ItU?p`?^(OYkyrnztdx)QrYL#r_P+Yva|U4lqpk|w6w6iy}v&m zv=nxds`r~^KSV* Qk-rnNk (YE~i>vC^zyQ$9_aKgpK z<%RkFpS@XERxIQa)ml;V@{)aQZ~4zpPv^I(f&%Z=)zy+AzXU 2U$9g z_#n*i p% T>>trp9T)-1sj0_A74Vp?PlMf$Ku(OLReSK}Kp~}+b z%U7qIoMgr(z|hVo8}# rN&8|Dfz)=v7F{ZO18GKFJHbi`_>KWV4l#Pt{)#37B;O{R(!>Kh^rj@L~b!& z>ovcZp}fDNqvJxq{lARl^*xftZpv;w8=xn3HXhS$f%u`olnr|NE>_l7r`;XapTZzV zi7W
UNNj)_su;9b~`+ec-VlMvt{Cw(^DNBC*r~u8 NT~l>Q<_oTic{blfE40w+An~*Zu@L_;OX`<}^@IcxsB~;-sTpFF!p!4XSk~D!YRY z;shNoP$wCqqNU{p8e0ln+;(cJ_VP)p-m5Y$F0%i7*Wb_Y8faQ2 |7}oVN ziv7`3Q*)bZT^@G0jTdyZNa(tlNYF^f#YL9889tnvs%=&MZH?bN8_=NGOHf1P(a~;D ze`|N<0iXGHv5AR^X6L4Y&ce~(^P#D?KCq%<2OFQviu?b*ZC@3?f8U`)heGyL6z;zH ze}--KHX&hQQE~C*ywYYFpPrlqRZFvXMs3f#du3;F`rV4hy{kf3PtyunkzoE)J~A@W zp4Z+y@6L+t_o}py*FOU#)_uR 9l7uF*6i@oS64iFrOiShgO6|3{y%>H z{w1%p*$e&ppWc1 U&^pkf)tld{w}J+8Y~$;GE>$-*z4}h+ zdQfn%?dtIL=O(|8%meK)G)_LobN*m6`&)TMupDR%9z3qomz;fRiRZV|dxhlX=jYzH z)K$M1E!ThC7~Hqy3vqRKuLi9s{`s(7-Uc+frhislQ&V#uue4c(TaU!Vw>$FIb#!o? z|MK#(Y_-3B?5-=9_f&q)Ild7zVe|WG+|6C3+1qM^LF+wS14A0Lqa7?GT5}srYkm}* zUl+UEX6DS9-=6;V4GWu=et%!>Jj3K;Db=?BwA9;pu1h7D=HI)sx#+2vznfdz-=O)i z`)Y1}USI$Bw6L)7 9&}|Jx8@Nt0yuO(}|Er8e!GV2G8mw!66gcej_v4YQgZRY1sA$t) zq2r*2v~l90mYn0~yQNICraZs0GWeUSRo?Y=vGc;#Mx|QsJHl}KHmDVs{`gogqioFo zJ2y9{+Zv~z`_j_Vl2V;p8F{#!|N9(^!bAIFj_2Oq_EvoTu_W*!|3DE}(FLc(0{Frl z q3!Tf9^PX#4BO+w0b)9_ g%h9eeFWR!nSvJm7e| 7**WYiq!DEQ$f_-P1 zTs+ju4O$y^Yuakv$W1PwL6U%g3AsN*cbC20Qu+CrjQ+Z}Q)bMN0G+{Eey7mg;l6WX zV&W{D%1ygUUM5AKShy|scGmfMwy!QP@AsOjm3q5!QP|q3U$5i;uL7;I+s3r4^7Av$ z5t+BPW>0_29%`|$>g%hj|9`)ie!p9O8*~UnfC9_A`0E-0|2|FMpYi9%$5lZ~yK;BB zd3bcR@k%cPbql6xgF2s}eMr5`AmczgGkX6nb8hDYt!@Dgszx&kN=dES|L^PiuCA_4 zx-o|z9Bc;7KY>ne+4d=>pkM=NBk|eU=Gsb1hqnD)m3w r>v<}oi0v!b7HAN#adY!O{$P&BSU!X%YwmsE4+{PRH{oUPMnS%X) z-{ya<|Np(-tSn}A*jmt_Ug-L`yW5ynrJbDxI;FAqqc*6|23m!%Dqvw#?oO}I&(3~5 zDjvV0^7FH8PsPv9Howj;U$Y=;Yu3#$hpTI&r++tLU|`@ T$1m4i5tZ z!;@^D4HJ?<^LqyxnPZJJPWCFfcD*>MK0joA+}<4R^S(0-96^1R!g-urT$eVVw_E+; zL&5E$BcL@>pb`FKm7uL1U44Dq4C|g96_3ACeBO5Xg9iz>i?()jaGafOet!My-L+pX zy4T51dK&is-(T=h4+8^(!u_O%R+-M8o+}-K$|0LlJa3;e_nM}&a-y>PEerpxxwpeW z%T#(l$862I3OXQD`ghKg6B8jVjOR{HP9|AbG^8KfgN8eJrOkYfc8P9YTk{Y!i3=*< z-gJNt1busZ`}V?lt0Oip0 R(`)*9=bIvRQkEKprGI^tI}1ypU*rv*c@vu z^5(+A=EdPtU0hu=KRh_dSbHlWZ%fuyukCls_FM%WDXaj#BVcwfH|S` eicmn{_*H>K4$Xf|~EF8#^u( zA3pTNPa|ka2WY0xtyk*iwCndOpUZ~N@vid(4Q#HDvy}!Nl=3s^U(^|v%15A`VKsMW zFIl1j+T#b>XAatapLm$<=+UE|zrJ7IQ}=!M{gsiM(?HWXc{?7mxv#&qGGyf>P%ccL zS9xq3)2Wy5SK4pMyL-zm?&XDr&JJx03a$nF+dkbMZ6_=&{Pl6ay_TY)<8r^bmzH`@ z4_Omo2rt}UmgXg+?C@IEW++M1Phe}Da~xxIA%{Fw5Ok6b|m K6CU%Ys6-j*#UyQAGfljO$9$9iP`>m2Wue(vevv0-;%OifMAw&dqq=2YdM zoo%jvdtY(z`+dLH-CgPr+L`BnexB`SS#|ZRn^L{cUyrZPEq}Rn{r-Pew+)MeeP^3} zjoDLi@!d5+P=n&;=JaYMW#!GX-?KzleE)K7ZS-c@*`V!58eNN+Vs0{>I(X_m^BQ4w zzZ=sZPAz?XE%kPJ9%#yPBmZ}~{^OrPqp#L(ey2}fPgGS`uLi9zOS68qKD3=r)+Tye z&c@wENB;f&y;)Y@d~3l&r`_J}IrsP76_%Bq`?lixstFSW&R<&UZ5tUGSvI{-lY<$w zVD)Bf)!WPd_Gh=%=YzHi&pSO`|MuPIQB_sDmV>(4-{xNiRTg)bDuWKj_6KbQk$oQ} z+VS0l8N7;jk%rd#Zr3{>yMKLq`})LW_Q#JNU0LcaF8%!0$;s-bsi#DwtKTl0owq4) z-tF!A^R3F>tXMw3?$)-ttLgJ=m!+MZmHF+>%}*6J+ulz8@S#BZX_x)HH`}YeW`WKM z2aO-D&Gz#3y$U)+Q8RcM%aetSKQI3H_&9WLRjG7!>c2lfL4$Vr$?JI}3><=&`F#9o z8@H#T5Okr#mcl;J(u@=7udl7W{J!qH_1fs|=eDhT`TYIMHEVQkgIerdENl@!T>W(J z&6zoK<@NabSatt-TXfg=$XZ|9SPR-q?p6ufb__ZeHQagT|5tZ+Z@2sN!CCtEl8}`_ zpk++CbCm!7`da+ww~Vy(>l4+*4-Pc;)vxF3>XWs;bwV4o&|z2U>$K$gHeas<|9aG| zpED=>9v`S4UwUh6_U#+$pt9uc_WSFuTnV{-YAR@${oS3NW)P=|6&}}*+K|u)8fDZ9 zU8P}S5+bS<65!#{0ooJ|8oJSq2F?5jy}Y!vzOeCK?C!G6UteCDeLLB2|L?_##jo#f z`B7L@v Xyu4 z&}nLkiHWO1R!%xKUH|>nw+7cAT@j5?^`5pRaNbO-(pCQ9agpoy{aW?x{QUKx1w7Nj zL5mp{%k2F5Y _V{vT+Ga_-Ypcgye3ea#s5_*if5lgTTCmuKDHmTUIyB)9&a1^#wFkF59i z1RWv%$!S~bMvdoM`}H5aI|ho7zt<|Bet3BJ=C`?*i?SBx_8))T+1-75TfO?JlgrKO zzTHf}`K^8}7e9abmzN#Y-`<=o<5~Xdaliex_RpSmaYt BrDJm+?^PaAE^KQl41C7i#`yPf^{$z>lZ+E?;32v*e*rR{H z{wyC$#LZ2qxlg7lxpv*q@UQv#bh=s55y(Q({C&@DtG*Px;WF?9Es^S#`TT5lKIj08 zW37Itr|E_+_mh==eruL#cFvO>SFVJ-y|eT3v7Mj|@iBL^zMoL;x2Ssh?9tKg+$S?Y z?Wj*rPlHqBCtbFP6X8xyPN0idq@PF6oH-L*;mdvmogWWcq4dqGpy1tmv%D)SCid 7Y?nY3sDNx3+>tP$7-0=zX<8j7%CzN>18gYXY`rUCq(H58ADil$@OVrentr3sqIs zn~)WxyVTU@UwQU=fs#7t02XOcD?c9D$&)6@?EUrry2Zw_kdTlmy>$~OzkeCKyX@zm zD+jZ0Zb)qIWnf@vsOe@Di&>w2eI2NUYnFd+4XE3_ZSMNH7KMl0`apXR0uTK7)M5de z@-!>D1L_IxPSV}a#m~PzaNS(1(o=4AkB>Bf$~3cIu6}&y_k&iQTIM}FGxOA`Q=1GK z7#Jq#KmE5);Q&7<6!+CugU$gieRU=9>?~7Ifd-n*1vL?8i%a~IGXSjsb7KtNS5qln zscLK-{Q3F$?HeD1R?7;j`&k$rIk|q0gw-^i$RO}C+WQqYa`UfkULCV@Q*T{hE0<`_ zlc{Ug=;%gmIdQD7ySMjhr?5Kckc8WyQ$9b*vPE!oJUcu4^|#yk;h;9g)~rxalLIu* z7_hJjG|*A>^i<{6b3t|G|Nc};TWaaA*U$=IH>Y>cq$yKGCPZ_nYAPx&yui0XNl8gY z(#p-n1#}MWv2{~t+iwnj{}ME vk@v`uyx{?XJ*|&nx^vEvlWz8Mx!J z@9*0S>i2EUxp`^h*2DktCDLMs5cU|w`yzdUw-xZ z4kxOm7#J8%*s?{O*g9i|#NJP*w7dHH!ahDank!xK=9{DEu9BCNdjC8Ftt8YkIWu;q%6*vBlCgv(?hPAGiRECQ^nFlzdKniuWiW;){WT_ zASfufjWuTK {RXWoR;|~*S~)W8v6sCe0*X$*L~y56SYChk6tY9 zk1^e|tKeZ%?*pUE%uLXV#r$wyUf!*N3lB29zHV8movpyW^y#Uon+3snf%V<>11F}Z zot?Gx#0d{+_B%_xr Pcci799FF`Z2Z`BGW1~2!!c_O><4@2BiFHw*OD*vvZ zV^RHWP46BtA)zGY{hDk1r?W6HI2=68z`Z}?$A^bqot+yu-Ul67du3%XsFZm0=#hxD z^y-zt%e72RLnoQ!-Ld#AS}+^5BI`spD925_AF?{^tXu1`mzS64KAC#vjE{T%cJ7ur zYd`~R>B{R_KY8t66}tKs#LE&155+-ie%E&wE?>4x%g`_ov^4zV zZtHBN`8PMG_Zt}*$y63aE3EGVEe`DE>OFGAMY{6o?EHO!B_&&WKkxOOZKi2#Z0ydx zFWy^WeV5jm_n8a~3?e!_8wx@}W5}QbR+Hyf*vNs-GI)J$Eog0oY4S0i-JDz#u3QOm zw_6duE+%r~#EG}|*YD4@T$grsmYJ3bXyK-G %)WIW`U4sTbvSs4f%~S5yZh?8zrW1B zom%QW-K6eM1*mkNWtKZDcQHfpt7#@L@4xq~uYT02E+P}NL*L8S%WG5MI?KYVbE7S{ z`pr<;ntAz{TVM63lj_X75^O+e+Mj2`gtMUSPAAxZo}R9s{p7?%(7{=`Kab3RU3AdW zy-#N2#Ot8Fw#vuv*8P5Krd84>XPdP+2GnJpWtN-unCan-jme-CxzF7%-V-!X{X~^5 z;sj`oj@hSEmzH{iR-{Y+UIQvxnz-NI+Ire8Zgt4YNpAgexyi@3 y5V3=9W!B@z^87d<_7Q{y`5x(?gwZ#QlTetmUyvtW#dp5D2O zw>j4D|5pWCP;T}ua(&!h(9!qO;$GZhIt3|nmmlkuW>2}h$>H~t$^Ipv!lwG|IqUb} zI#KrGVt0N>;WO(!x9q|Lg^$E+)$Lf~eIp`ffO@skhnIp@0d#b5NLRnzcwFwX{r{i- zYa=!u+O|hXOl;XiW%r`5SI@t>wbk3u(9rDM)Jdw|SuZXu1WnWDoDN*<)_bXek$K9r zY0I{3F_~*$A2(eu_R`UAanQ0GP)}4<)iwS6JkVW5Lc+pZlaKSwZ+mV3@5ka !;|)$0Z-{EB*5uv|jAoWCjKXjRJ`TMQL@hg7at2Y?-JG3g&sMruOSZZ}S0 tq&2ii&dBXqLA&Bqqd z3Ki+<)SsW8n*9m|U1W4`Z*}gQ$)~1jzn1_1qy5(Q{QPK3F-gglpe>raK+DxZc}qh8 zluGZ!O)M~ddV2cx_ pP2|=e*f`;X(jt& wil^L6-?`t^S?| zI>gb;EX=z69cVEaXhS(DiGz+#>JodprCfL8#*LuXK<{2qEee{kU;Xe*eQQfg#=AQ^ zXBi|mC2!YQAHV;eo8_lR-TJRU`=!1`W@Lbl8d#cpdt2s-35wh1`hr#_rk$1YooxoX z$81wB0|UbXhmW;e^F%D#`Q^)=d|P$lLI7x#M}OasMW9`hx36DW9S&Z?V&l7-0dz7x z=-B=1TPvHInnKn_nTDcYv5wHm7%M{K<&8PN>v>lA5f=iSNZ#Osi&vCT)X|= zsfz-j1C0Ov{vN)&>}|-_tkB!vqN1W^`G ;j2PdF9V%Wa(8$6^(QAM ze?6%_|Ay}-Nu!hw(219(+1JiYR98}Z|Mvd=_|0i&L6>IbMi;ESaU()EVuJ%{k}CJ- z631pXQ0o!2MB~Sg3RM*q(1Nz-=jL91dU|^3rWDWCwzgGKTeCo?&L28__-~Qik5{YL z@7c%XJqdL1I-ji7kJ8wEU835nl8$znfxFtO&+SDO?pJ@mTmJP{_Ik^**?u1%9R-~o z0NP|?Rr6!RqsNb@&X}=c$`p~*)YO$FFE6c%*|`ZcPPVJ`^(v=Ut}<~A2GG55M~@uY zQ8stpmoFutRby+Tw{KhP^tw}hUO-977AcdAglIeM&{d$5CqXxpMb}NAG-(ldlr|hR zBY1Oj`s dtf5Clz-ol< Fx-6%+_ <$LI+2@PE-&*1ZL3^s1KN5h4%*)dnrPT}l!1GH2Iy1?P<#4wNLt!5@DTqK zW6;1S=;(%>kGyt)4xT*R&cEHT$6dZQq+3jPQ{ldeGiI!)`}+&DabjD|w=>4)GeAY# zIb*qgchIGx;0>VQ#;`7EXb5yI%`*S_d5>+jmb?rCuZwiE`|{ Iob)J z%VJ7jUOIa02P^0h@n`4ezJ7JPd;PN;8 Y~4clez{o|g^NHN tXQI)L(!ZPk|z;BM!8 z!vlv*K|4&cudmx$= djlCjt4~2^!+~}>gGQmsV!XV%j`d0}2Mu9~6}|AU z|1}x3Dh*VFZHrMhHV&4r|Fbb_ONQVE?Zu!=pl;`Gf4TX*-Ra4u8$nw|=h;?+iZ#f1 zPc_em3CiVn3fsl> r-9}MT3T3cyD@_9 z{sHYs1|5_EN-mk_=h@ovyMyMq{q6sTfQ}!!wJleA!|Fn==9U(g(sy?vZL7asnWh{4 zDdoW5Voy&`P-_-+HDCF?%H!LZK?jgr2c3$MzwhU<_2J2&!v}wUdJ38`tjuQymEXw? ztudg(Yd{P7Kx@vQpP#=y*S*3<4phzUt^OW1->x=Cy4AtSsR=YK0Xmo0bF!M0aas@P z{EWN1%U?e^IXS%6YT5C}7hAc-OaA;Q1T{`Tw=+FB*c`gEC>3;D5-69&Gqvl)><9o& zkO}+SEd2WVI(tnm=*|#OTL?5yzrXHpj`jI95gVO!qqkj|py<4%`g`7S_Q=A*LeNHj z&_TO-(x4tyqj(PUgQ!Q40bN&D*O#F6yr6}5R;902fEIpTj@eoAa?-Zk+si;#J^gyn z%%3COdS#w%wMotm18LCu0nl~0oScDKS*yz4-;=!%y=}tXFE1~f*8VCn&AQ^z%+3$m z0$KX^>-E(xokC^7ppFjc$}G?&Sz>xID?pQ&zA>qfj&y=jyj<; aAkYyoD}&WRCr;Ve#7xx=-}kKj8n?LK zizg>1gKm`o^^!oRCfw2LurW _Ex-R#d8|38F^zH5K<)Hhww8PhJnf*)~R6>I`jl`DUEd{OH z292j&TI&7(ygt*WO`AX){pMO0yB+V7y*$sh8gzx+IyF#mFFeA)T?aa#E4KdcSI}^1 zm$<&(%lqMxbFE6ftjpdcY)ss74sEwfKu`{fG23wK&YnROU`^n @_T?m3`wRfZ3Y z%sLE=qC!H8zP-H-+O-I(vR8$#U#AtiYDLn~u2m5m7kN$B%iZsCxQ+KR=uVVmcV0;& z7tl8GZ>K=pQlQ3k?_mBgd&Ue2+pkxGS4C}Ir4_nriPu!Em7w+JeCO`IvC-7@oNHZv zZCB~*oYR7!d<;7JYpO=zp>0KP|NQ*S#mTu5R7^4)VCUJu@WVGGWD4j^GSE p`dDfQA*54{LjZPdI?MU65Iap>8W^6ME&^w6n87)B9h4KA*2` zWp!&?v5u8h6lfXclarG{ldQMDfi@qRRDH<+cQ+Vnj_9^9{L!+piLow!7m|^&BKN0? zt!*r5P9Z$LcInU0&*MK|I|Mp>wEFuyP)P*Z<>7v9_a@Nt>vwl|-v*sQ&G0~(ErQ`s z-nBK6p!0|ajjihc?J+Vkdh)RXwCD)5fLByI3}jKVzvP}-OO~i? z&A8}PSXc-y>={0Q{UR _I_U4(!yf<<%09AEt!*ZK?7(EG9g#k7#{fN-rjaKJia#d zagDm2T^zstAA`f%py=XYV2fa2(o<7&16_D?e6qbh!`)q_tK}*lFoNfaKx!E34oF2X zd^+MTU%TYeQt#D;kB@1^?b(sLJE*E^7w7^(P>tHz*|`lgTgmW2c-;Y}3F)9lCcAu1 z0B9~w_d4iUMbHGyJTuVH5kqBz>m9}&hd}cbFBbQ&s{8wE+tlTc9z6mb@&Otwhum+( zc!+_!VKtAuT@1hNmkCm4IV%<{P`J(4@#Ra&+gn?`KR-KrIXZuD>TQr48yJ!sSPx7E zO{>N2tpZI#gLXmQZ;u4^uK)f0{S|b(+~4o_uW!q}{YDL}!v ?|tVEaUC(A6`_n33Q6?j~^AFhHUV1ztF6#Rd>PnmOo(P*}(9`J1{U1w0t@1 z+M1Q1MIisTCLcEwVsa2*2|pj%@#nLGl+g}`1I`?K>jk$2ruG>!e%Y40dEM(8yZMpR zQty4A`@HhmzV|!VW!rfioWa1rB<|_r7;^6OocG_Yj~AZV_kMpl0|P?~X9UQ-OaA@^ p4OlS*D1oo+n4mUFjgTPt#((NXlEU}d7IvU?;OXk;vd$@?2>@TkH 7%WhwR;r;`!^hPAg-I4sywOe!HmfO#fR!_0XB}ozHHR-d;Ly+ccGp-TYoNHE)}& z?)M6wWHo=9Qj^1TZKh934sI?2;?{Yq_MWv2x3{-_F7uYNO7!bpx#W~rOP_tS_^usk zdnWB@)ahq;cAVLHNy6@@*4JI9f6w$xW2%Z%necn+;~l%-u4mlktD8Bs>SpY(tY^RP z2{g>#zq5DA-uJ&x-T6M#yRZ1vT8p47nMeEX^woH86OG)Y;~u6Yze(wMpw8)Osp^}O zPxmRG-gq@|jz*sPsjKV1)l}dAUVDFc?Xv3kumAtA*+2jM_wO>Qp;s>_ZHY@+)KJx# zp8b9?Pt`*4!e*A$AI^k&zg@W8v6?lT-%+#4)N^6WnzBlkRRVhhzlAv8QSX=drIeG| z-(Z#T?qVE&a~r?xlb!D$2O3YEXD4&`RV&M>3s+ARxBOqyV-~PAqyJWQbj}y2HjnBQ z 3U31!h*XP(ybY9}V4V?|o%eq3rF+)x-!wE#Im-CfFX+$UZ~V1k+qYTHMj98| zO{Pm;4lT}D_-uu3PFDkyo<`ydyR3ybG<>egv3ljNR?JH2kaM0bwO?S`bA$b^#VLN* z6 ~duW@f&y= j+$+a*cIey8ms3jUf&{ ^!iP2}dbTyK|MC4w)N 1>+Q)YRZp|PIK{24RBKvMgM?f&QA zZLDskr@xa-Js!}okw4RH+oNW#vMG5vBF~;(@bc}Sd6VyDbfcupOE-7l88a6z<}!&s zcJ@ScllFrb_KQPoS9Bhhn=-Q~&E|!}!ZUA}`qs0AKd3nDEh@kD!Gx8}w?bHF%-qSc z&SB?F &RNB2|91WVo0`?gb>Z8BDbB7US!Q!XF0{*~`b=KUz_ )X+uf^X ztN#mK@F-I8EWH=z{Qd6iuQ`_%u>Si0JWnSx@0{iHYW3%HiuYMQpHqC!^8UWU_j5rE zFz@-C&z1lG|Np(ueP7 )GH%!wY#S5+2z zYE5*LQn_?u>&l7JJL;B9%${^nZL{002fc2$zKG6R((ATvT@mlCC9?{8)GCvemE%oL z&Q{stx%I@66K9r~S1t}TpOtc@xhN#p=u^XXpO!rv1N{YrXO*0CIU(Jumbp0a`dTa1 zluJGtlgzkE?`mCD5Y9I-5)|2K>e#K8d0BAQ5-F8ORgG+}`9Yl~pB8z#?aP>CzLGC< zNw<$wr|BiO+?*wj8z-7eRW_NM%_=#SQDh?Y@tE7af>S4sNK4P$p=b2c*XqO((Tnx` z6LPNS=H3oV`uFBzHiM?qpM!DBUWhjS{QLiD+2a*+Ghd4w@;q#jAmKmbWcjpj%0*pcW8>!J%uU*s z?!nLUH1`H=7rATXlIo*!TFZFX8Q)Ve=D}Z9rT8w^SnYrG&OO&9Mmx_eKhrbq)S0)j zDdA~tCxUjCo+>fRJ9THZ(PHt5HcQ=SrQUqyk{a_#bH|iWN!{r){S;SEI=*|6slwEU zdZ%PJoO -|e7dXnQb z-P6-duT|JQe)!W?t~XUOWrE|hwHw#g*G*RWfBKA1qTjTc4;hTNsac#qC7rtZO9{gs zW@Gig-)^@C|4rve?hbAZF8uoa w;AwHwx8MzujK?$azV+->TY`D;|f;&O7bk>NkD++kIDF z&h*-zXu+nwJYmH@tuwZVIW00b{=OflcsI oag`d?^|1(clr$P@iRPz)^j4 AuXOqST>bN6b351$>0G#4bz5 Bm(ApwHFGB0s%el4pvKTx zyXl_c^}mY(LQe6 YxMKP!4Z<> n?3)pS0n0)w)BA zxfK%Ue`P6c7Z);n#Z>AZp0PPld$o1K@}vKv*UmjNdx!Y)qrWtxEt~l+3X6U>@7FC` zU#vavyQ!6MqhY}27mL4LG&=fI^Get2xhJ|ElP>!2y{5$bBY2JIW|c=tb`f7f`8T-u zu|{9aw0ZCI+vfk ?^=zxJ$9LzRo6TOhSl#CR=SQc1&hc2NZU5xz)uyEKs^W--qc=<| z>r4d~o=r~wA(HFneBpNfv&M+%UHebHe3dqN=X(?1ixcF0`)|ME&Z@PraGZYq@-pu3 z>T}+qb7E&UEI%fF*x~5CwOs+z*lt#GTrb{uAg!!S(oX%Wq=oQ-qdzqZ_m(}W%CZ&v z8=CNS-&8FIjqShgf5}}C+a=<7W`+$T^Pg9lS`!w|)%Rh1RW)a!Q`&dNQkRw6Qk|-{ z?0v4-@@}79-PU=>~qIfa2dX6N;-? zu5U?Bm>zzrb;qQ+%#B|~clhysla8!;ux3xf>djX}^sW^BGCR(1;hg3pcdz00nkY}E zqS8N{oN5~C2eekVMlTC8_TRcR EZVigcyL_R9EK><`2_YW2-EItrPq*~%6^vG*_fxqNX{)WTyysd?*8 z`#D{?mQWMsYsb6QvV4tRbnnSfuAQ^9{+6&M@yTELXST`CbWNB>lCa$Lt#-Bba*iR> z|3Ayi)0^A!ZuhRo!A4I7`)-;yU#!#SJ|MPII>SA@Ts)Ea)UsxOPREJ+ens2Q4w^AR z&R3Z?Kzqfi$b;9X#A_7@R!x+M_uq2;pw7iJajVkqPH236@t=RitMr{A4^|jC_A$j+ zX=-iV5_h|YX+iI?S8G4Bt#Oe2a&N^4#ss!cUvEgZU9%4fc{F3qi*J{sEIXF2JC^=q zowk5OeD75+W5=y)_ayX79KLYcOqk(!NvlfHnXlpZS02#hUw7upDvAE^^;b(Tzv5&l zpX1AO@qL)pfvSwl{LB4?(m!^IW}Dy6w}>({JAZ#F<8%#aRgsLcv}JEUA3qbMD3nxU zDR8aor;hDbV~3-nn}xRu-I(pM<($!Sv27n-{w-&FxHX}F=jAQ)%oT1eoBQw}=lO}7 z4~nKdNUC}0>-yK@<-ggD1~=wL{(3vBd)2;aiZd?p{P_BHa_6M${2Tb*b$TbY^A{NG zI}=qLaD=fYK<7Yq+zF;& |yiu z>`wJO?7A{1h$}Wn=I5%M3 _g@ayu)fCp8Ycag>Tyl4 _ZYj5YWnuRZoswwoHJoA96M{7-vO@f28 z`QsmXr>3pj*O7ehV$-ePezvPm?!NZo|IFhPt*i~^ZZnwif8Mi<4-D4#zxA$AzWy(B zdQE}&*8RpS_t$JOvQ_ZdS(>$T-9B+`-t4| kgIy_~JtZE`&Gfpwnp4R ETW3i7>}=4R)chi+%T}wzOE3B7Rxc;LM&E}KCzR(J z@M-Svy=hX!YTvlZ+u%6c{TKE^i<{em&3d|J`7*VO-Ht74*t2I_CNHD)0=+oFo5hVG z*ElQBY^i#$Gs%xduy==rPa20BgWpf@l-iS;%ya*hWVu>qh8XhJY|1VYwpd=u7~=3( zobmXc$xEYVoLsfn@AIoqK^iN?mRi;Z1j~IEIawmeWRfJsAAa&jJmXt^A*(Gh0nQ6g z_H`FppQ$mLto6>->PNuw#?>>wJ>=h5{4+spnhc|L!{a1z9(LWBcXt@~Up@ajik-d1 zeASB=<$Ikc-&>et$I0HF)Vqg&{)WZ*ybJRfBJWn~PW GLTcr6Q^6bQ2PK=f9 z?CU%@qq(AAPqzK_zQ9W%cETRUUGF!0+zz-Be`MN%21lNCr;oU1+uM5{pDur(>cx$& zOH6;ApBp}Yr?Y#q=+p;O<{sGjdU*}jQ3;%AC)n#`+w-muW@TGyOM$$o6tUssyi z>-5
MpIO(OZV4UdkN zd$v!D*4*&K_RZ7njG;Cyd>`FhCnhs5`oHOax9I$5uCMeG;*u{p9$VF{%AG95xzy=f zvM ElD<9#1KZcfgc6LRZz3;1+RQC`Gx(r(GJ z@VyOscjTkOqOMIVm2K#EI^KNF#rs|LPPN%eQzK9Ad$Z`UMp5IA2d~wYtTYQ^CWpL< z^9sE5_s=<Wjky+a1l+yiP9IelF?dI>iaERx$21KfK^6tJqRa#uQtF7w!gCS$F3u z3LC9|YZm;W$HOgu{?%KV!h5Fe&va}n-1tP9>6+SYy^YqcWrw+Jf{Nxw2MPsEQa)*X ztMJ_>VGHpk;=v-CZ5K`ERW3i|w6}N7@n0e5vR}^TF8;-`n{lIEo6ga@HuI#CC;l|9 zU)OqaoA~hr*(kkMZc{fNc@vusKJyhR@A4mSdN=j@0{8ja(T`({81>s?C*Ek=;XG^G z{xe$d^As+u%+zInoT_+i!$XyhWs5qWeDai#JG_~F*MbepOoc=Q-pKT=);qkDyUpdX z@BVN7AxS?St}JAK + N<4`kW`# z $FOEr#fIPc|K5)lSG?T2p=U^1`P^2fgImml_D?%B}Hqadez@eS!Qf z_S^PNKHu#hd|h$nUrKYd)t^}__8dxTIh||2EcsKdx{)xy6VvIZlOG&n3AwPWV|Vpr zXWb>4{H=3x<>kC0x&sY+_O%v$OE8*PY-q8->1>18#3r4^3*~27P7IfnKO=tR_Pmp- z3)N0KyDYg^&z*fD!nx#P%V}BBO{GtDru~ba>uA`YW <>kdOh+2ulFU*-yA zZ_1nf@QYUJ%>d&7&cM1`f_$7aq^-M`IcR$s^*TOnk*Zd=Zv4!V9&*<)^x>@XeZudq znzy7rI>%U2xM%4hnec4KMgLr{9a>PQbbEVyPW8#lE1zzge=^p!<6z^TFAp^Io$Q7F zoZA0kf6EzBN8ht978WK_Lf7ZITsC3~<|=YnB^O<^QE{^Wp}kJ4j{IJuvd`(vf=S%< zlVs~0Z{1wHB6xov1NZYKYSM)|7K<*;-xPhIbm4FAr0~Y{^XyHhYi4O~F>*QT<-&N- z;r9#W?WWC_bpr%@WI8T!o-0_!V7G9?!azIOy|r@Q(ejVoCq$M<-JZ`?^R6UQ$E#v( zC`)yfG 1hOhP}YtNEAS5H-wRR$ZJHwjzxvpMbM z+%_fq-pjwwx!)YPvUcvh^CB1iu3yZ|#p%X2Y2}KCoS(myGKPPtV%#M5b!S6 >d7VQ zY4lS?Wa2jIC-*8}-iqotDYSS)7{lvDFRybl{QJIZn(;o7|Iv)hQ$FoUS71o_X`p@R zy7)X+hDOgWo|X+3oiASLpJj7+KP%}>Bty?}jl~y=g^zDB>)oE?urF-3>g?Kva}2t# z5*n7yUt}{gGchY9)~n~mdVW9FgukZU?`kfT%vhdTeSWJk%UXX0r)g?e+WmPFk_w-% zEIY$tlMovncuCo?j `D __;JEeQy{&TtHP`c@K?XQw4s}5d? z3W!WtTB7{$#>$&TUX#wLKjmrsJ*h)d;okgYm$z4sL>I^W5Z4v|7ku80QGS7fPw|Vz zBJ=ybLn?Nxl1RukYbm~285?^+T63fOkNX=I6v!V=SX`UJVCa0nM>EXl?RMpRF{W#0 zygeBhVWcN@KFiQX^Ms>aqwuGn5^h_UewKgZdt+|AH2;d8E4zNliRil2+ {A!2Z_q{QbQ$DX$AR ziM^YBa@$HS9`1*Cf7<$d-g!1DKz+h|L(wS`$;MLoLi~l_%r86tWZwNK^~L5N4!`ep z#t0p_bJ;5Qi{r0DfhJ#_9aN=1$Vrz 26Z&r7d{;Xb+ zz9M}}Z{a7KX2TgF3X3Lb72cmeuj}0zzxeor2l{>d_Y0?9wRt zNsDUh5;weIStp%#@8K$CosM7r=i6qo+~9j# z*6=qWnx)ao=H$b>$C~>8^sHRKvqHCL)`SI_w-(xoToH+Dt3Q+cWwx>QA^T doq9`N|CP zs_Fuz0jF;E+}%?XdLYy1{XdPe+utTGu RbLV`#Qu1trc2X?kZfJ<(jd?42OfOIFnaahI~G=Pyimxjc0W@ufHJO>0siqg9kH@)QPlku4Aa|wmKA?GH=>atEXu`s KUd}l3X3|jKp(^}?% 1uNhE2<&~iT)V3+_=M5*cTx}PA`Fj}oY=0Ac;ni`1G;VL7CV9_ zyB@q;L`j~c%(`5#=^lJfACvd)yR z(XTINu-&i|*E;jwO-}K;nCQzz`TC}t)U-VVYj_O16((dKo5S}0oZJfYHoZ@)DzX+W zY_KS3QEm9Mo#j*2$I7Y}zQ*TYuPVu~P2$<6UbpwqbZfpd!a K_x=EOO%la%KA&nj~Xxc->q_rFQ+yH4H7U1!)J)^~3z %+2Hn^%M9`#6k5aoXV)xOyyx2^e4sBg$hc_9%#uTIPq5#w zp87p&OW@w%Wi|zY?_)Vvh;D3}QpWP_hUBrM=L%A+1%%3SEg#Qj`1b2Pk7;alU{yiq z$Ef*-ejCo -w@NHfnf&0ywMTc^noWQ8d!J)Y=d)kv*tUG_H`Zt`mR?qo( |A#J zNiOFNFE{y>JyUobB(E-Tea-W%;?Cc@K@Ml czo2QSsKm_jm+_W98?sIwGEGi1VO*jtVd%Hf`RVo* zvlb+}+a;8_Y_U_=9X@~m_NGhwBwp_5i9J *K}u zd(UE-SyQxS!Rt@j+`-pYeNuRnwCCG#or}zOX53P^cfse}H-@zj8swjr&w9ng+mY|4 zb)ob6sY_Y2 xeloxu`mO7elZ2tj03-Ij3!Y^{?6J#yZEv zD*RejcCV?Iw#~+_^63(j&3;@_J+sg9(Cz!$U-Gnn{jYlc>m|=?-m^IlNe6y49526- zmY`GQYPD^V%v;4(db6` we;@)Zd_UHWy zV|(BK^Y!Lu^^AK{-TpP@E(@~!U^3_JQr^u>(^szR;C{cm;(1ae_v;Hqj@ XT}{@f81GdXw3I-~ajOv5P~9p7tb>=|?-yOL|?N zq%u#(BgwG-P2E0ev*rGemlXeT);-d5Qn(^I@0?HGuU}5{A73dsF!kB%j~-rI*0!(l zKcnv>?tT1{sjkB3%hesXe;RtEi+p|-WWLWQzDzmmUbm2D*zP}P#F>Nl*jz5(w_ DfvpUp9H zxco?W%j3&Dca82J`tRMbu=eATW7+ea5|%MMzVPPI=f5IMRYLmfofaQ9{q~@Ke&N!{ zhx@{nx1GOKe4pX>deuwUq7UwWd^>Zx8DB=~UX`;QXWg6PH^?dQ-1ww>NnyWp=!u1L zxivPq)9aK<%$CmhebN61U+-PJ>u*@4ul?8e|5|)jtMF04+|DC)R^P9Fx}WtEG$I|W z!+Ih5p+HTH_`0vXF-x}!tcl5fs$?sE@buR^F^lyYTnvhNH|y?FSaI`qPInkzR++$U zB^LAWXz;l9vHq;~Q`gt>?_znp={oB}&!tSf51d1~{cNkJtugIXYv*8zIJ31WuI0b% zgy?KR-=?jH*G=R&7;||+`qc%W{+~O&?}*0~j=&WcH)d6B(2A?MH*Hbxl8CkOThGnt zu{haZ5x?)N=HW@v_b=OKRCu&`|Bmu;EW5bk(Nv%AxKCy)KJR3?U%TdGW3ai(!3mrF zId`-?HRk%OFB^59@!rpfJ4u08vvUiKul39hPJJ5Av;H^JzSV`URqR*St>=9w@iWgt z?_o!@U{>CR oX?kS>sd=O>Mk&uM@qeX&Fj{%G{$!q zdoN#i-sTMVMZatro@$*_dai!HBAP*2b6@J`8>hq9r5$|m`&0?jC6`5E-`DJ7NYblc zE15TEuE&0dm$IQ#U-Re&FPbFrmFae2)O~A(Z0EEE4VD7di4qnYeEc8WnjW($)nD4i zv|VwL($ |wY+TOxbX{ny-1dXveVjTC56yP1e)Qyy?{eme zc1~I>*Hjlxx<27`rn|ia+k#`Jv4RzAn1BEIb?ms^H=!*W6BaML9CtfMFZkp981 Z@+d|D(%f&|c{1TGj0$o6b U^;;voQRA_sKmc4xex{H)H;BChz(6 z?f>$$&Ehk^3Vqdxee+&&)!P4ZN9+3^?RWopzu=$ooc|8o@{4~43e`XRc>aQq*tY-w z-7{_61)AFXWBy3aKELtD=Y#+MY)DD`{pq~ne_uNGFFy79QUJ{QQ+apU>t^f0Hx+@%a!NcjKozm-uZD`9IV*d!(@8fWrw*KI?xsjk0$i zn|)I8^P9~xo7DfUIo)r$KX%iW+Mc8Cl9OgGVZ4!@J4g0K{A*42Yio`kWt5CtV4o1b zr}%Bu)=&JGA7>>syydWY@@n7e`AlLTWIA_F_`sXxeeU`T$JgJcH^nd%+?~99Ys`Xw zDl3Iuk6+mJ?&H$n9p|@xS RckYM @uxhJ@~{;2(L zNYSc)ck{nprC6v#u-_-fX;K?@c%^3le_gxpHUH(sQU|Wi=WJ^?n|=Oy_00nhCZ_Oj zRc-EBSN%-rQ{Fmj2k*n15Bkq8x_WK*ub0m`{4d(9TOxI(xxC@RMT3NwkKWF>x8MYC z{`8z&bDw#xCI(Y3i_F-%!|TSa!#*$bKb_TjwD514+`cG>$%~jZ)^}xxM1NYn^IZb- zlb(gI=P3tNrv2!&UAIm)+Uos+yJ@wrrmW6Y|9VHw)l|6AwRB}nJ!8)DHp6o*^%^tY zXFYFXHOc3CAQ7@#tF|)cdsFd=m6z82HsPLny&(2`%e4bf-6Lv_{A3ktHv3()dtJ57 zYsqI)^Gu%Zdbe>)d{M!IXRXg3rfXDBiMd|uI(6Z*)yi*M +R;l{~|>#7f5pZEWR~O*duT0M}@tWG39El%OiHJyS@E)WZEp<8}EddgtleuSogbP z-a>&3ZRsu**Eg{1cbxNix$E7`*_tIc M68z1t;M zQ{G!Ql&dl*WqSNyu{OW%){f+JV$x5HcetJY_2|5}a@~gW*ZF<67V+?2w7dU*#-oXM zxMkIMo!GW?QD?YgiG@PogI%+GPG9nRzJBgXw{tr2(S;Az7@wGHS$N=}m~O?Pyk-_L zMp2R3b7B|2=;@kZStz!4OHIwbHHz+ix96qZE_^KLCs{xH@xfL54y)!zeKq}OcH-uQ zy$3e=)}Ng9v--4P*cQ>i!y7xze*fu`d}Nms?;^tBxH9m-dyT? 31N@7*ddUDrSJ{PW+#oN^~+J-77tB a3lsepNi@j%?u5>|*t}F#F{)I)?jizP|SB44 Kj$AllQZWZ@8Rm%al2;UWY5&DlSo<^n$EDKMCrWWls_|8 z@Q9!Dn!e{o`0sgj>Q#P+-nng_EZ|wxF3jxl_@k}f%CD2ZeVEePE@bul-K$;ucNBe@ z`g)iDwJRI9yx#R) eBGE=X-Kp!u2PwTXe@c{nY?Kxq z?|gh{$33rOAFe$(b-~lC(&}Z*rinintuwsExK3mV_fJ $oRXIsu~I{Vo64f9tB z9{ce1=$&6Vv$Gwxt}qwhYcNrY@xk -FSvJ__deAoTt z0+naee|853JDzrq+bp(aSp`Gj?Hs+Rkm!Yf%ma*n+3^|c{uSMumU+kbOv4PnD>pl> zK5f3lZK$eVy5Oc~r^?R5D;bv*#7d=e*v{E&G4Cty^j*DuM`OQ-Cr8b`Qo8 #C GPCORyY>Cv5q}@ylO xvdroFlO9|){;FHcFq!A(39X*bt2V9mZJcE$W%pZu;YK(9M|)TB z)@)2$mGnsP=rPBDQ&wGjx;I?ivh=7&=g(ETD^@O8I!$diGh3%zhNL3X*YMAoxB6dg zi2TJrOMi~#eJ>X7wOpoiS8NuxtXvdj(YH1stn1tBVj
WH>clCntKw1MUU;9TeV(dY-jgwM)c7`k|NPEgp}b7oIVf{&{xY{J;_Au3Ux# zm$F;uS^h14*d^e>@L=5yi>IP>PG${vJY07%?Q4HKS?G!;+X3;--mK}2!M))bvyGg* z0@N<}x$lm9t!L@r=U~{tsehqh>5{Opl6N{6SQ=ihoE$c5qoZ_TdQsv0^W~?@?VfxK z_WN98H~; NCTY*LY5x f+tVU{&@HA`|pkN5g`vh|Gf9g{6Aaof4%pa z6BI4O7#@p>Et^xchS{M>@}94cG_U@<-Bm}}EP3bWsx|!3yW`TuIALOp#I}T0(mR`d z4L){UV@p^oA!e3bVfJArQ}CLGeO~R_+A rP+!VZ6}2Cu2rPBC|nUg6NM;rt8cezK?jlw#F{r-@wfK|8h2gtAB*&ywp!% zlxb}`cFbwDldt-#H!eSSr=~CcAALrg`F!}tIaeCf)HNr4;ZtXyaHVS79c_)-GpfJu z$kVxe>! 1 z|J0oEgQ!E6e_8!=6NmXnBqp)GaDQA?dG@*Sfg{SF7z56IbBkqT-cuqyVU}LS+D(aT zlpI{7b|+2YO6YrV@|Z>0#rKlj3O)tz_CIFz@YG}wIJfPn*IUN88KNBLo>;N7U)b03 zaq_R4eg7@*?E0=N_W5VceAy4)KWg6dTkENCb%=+E*yVg!s&IM!N)f(@onOzdWU!ke ze~uwE=dAg)hI4C58JBE2ZS(xppCU_E2jy!%7LOM4C*2l2;Kazf^Kukt*p_Mr35nBX z?2{RDPB4FRf00~wdGnzey+$f)cPp5b=J2xAH&tEPa`DGc&(9lIhZeh9t2}0SbM53g z6R`s{-h;WFBIiSIm@9A81w?U=Z*`L{a70tnlwY?c^;*P40fHQD}V;%6Q 8?ko z9fJ}}_N7@4CJo|GKdXG$yXF7tUo|&nOtb#;&VPUU$IP2Mm%NfKp5yo0;9f*sP#UwT zU-3tFw@;$0TdEcHr{2%q&e9N`AXd50A^zZ$%rnO|A059jn DmD-08W(yJR9S{0{{+)jA`*HbsALZ-i z9?Y+|K79Xw#XkF*@BN?8rZXFw_g MB_nZfKbv18Jm^#OMha%#)U*WL3; zGm|*?o8emUR9lHu53|iD8}+lF9@EWaJF+G4f*5zT$%GRt7-SaROjxAFCg-}V!RFzS z$F3*$2&}!$n5s18NY4+M|3BovzFo0$!Kd($wULqz66upX1@u>U?{k@NpV{L1D_>>K z-`ytKim(_+39G7pf67c#-Sehrugc!TD;ZVvwx7;2)3z_{I`)0<{MTva26kJyZx!zG zK5o={@9Mn&_tbVg*i-+ OyhD*k-`ZM%1#?E9}z{_Ovq_8`?vt*9{c zBj5b~=ta!-joa5bNGIqjE%KibtuA|!MY!LLHD|MHx4v~cLxSkHqlFGLg;uH {iKAuG0g*WNytS?yx|o*C__OruXRUQV_)Z1ADgIFts+}bxq@fh&&S3d0 zh;>TWHleN#J`+9GszTY>TV2#PwBBsuU7)_*CvOU$$j8Z>r%zaP=Z?^ZrDuv6{Noc8 z*0UrU>#Io`d9bf)-D-6H=Z+&=0#BaTl4i p~slbJ~G!^ 0GCCE~27rvijkeW4Q