From d681931d000418e21b94d0d8f02fb32fbf6e91a4 Mon Sep 17 00:00:00 2001 From: Massimo Gennaro Date: Sat, 28 Feb 2026 18:36:01 +0100 Subject: [PATCH 1/2] improve target details --- README.md | 28 +- docs/assets/screenshot-gameplay.png | Bin 0 -> 123129 bytes docs/assets/screenshot-levels.png | Bin 0 -> 206921 bytes .../panels/GraphPanel/GhostOverlay.tsx | 257 ++++++++++-------- .../panels/GraphPanel/GraphPanel.tsx | 4 +- src/levels/schema.ts | 14 + src/levels/tier1/level-1-01.ts | 6 + src/levels/tier1/level-1-02.ts | 6 + src/levels/tier1/level-1-03.ts | 6 + src/levels/tier1/level-1-04.ts | 6 + src/levels/tier1/level-1-05.ts | 6 + src/levels/tier2/level-2-01.ts | 6 + src/levels/tier2/level-2-02.ts | 6 + src/levels/tier2/level-2-03.ts | 6 + src/levels/tier2/level-2-04.ts | 19 +- src/levels/tier2/level-2-05.ts | 5 + src/levels/tier3/level-3-01.ts | 19 +- src/levels/tier3/level-3-02.ts | 19 +- src/levels/tier3/level-3-03.ts | 19 +- src/levels/tier3/level-3-04.ts | 8 +- src/levels/tier3/level-3-05.ts | 8 +- src/levels/tier4/level-4-01.ts | 5 + src/levels/tier4/level-4-02.ts | 8 +- src/levels/tier4/level-4-03.ts | 5 + src/levels/tier4/level-4-04.ts | 5 + src/levels/tier4/level-4-05.ts | 6 + 26 files changed, 346 insertions(+), 131 deletions(-) create mode 100644 docs/assets/screenshot-gameplay.png create mode 100644 docs/assets/screenshot-levels.png diff --git a/README.md b/README.md index c3e7621..12d31ef 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,19 @@ A browser-based puzzle game for learning git. Players type real git commands in Read Slack-style conversations from fictional coworkers, observe an interactive SVG git graph, and solve the puzzle with the fewest commands possible. - +**Play now:** [https://massimogennaro.github.io/git-quest/](https://massimogennaro.github.io/git-quest/) + +### Level Select + +Browse 20 levels across 4 difficulty tiers -- Easy, Medium, Hard, and Pro. Each card shows the git commands involved, par score, and your best rating. + +![Level select screen showing 4 tiers of git puzzles](docs/assets/screenshot-levels.png) + +### Gameplay + +Each level presents a Slack-style briefing, an interactive SVG git graph, a working tree panel, and a terminal. Type real git commands to reach the target state. + +![Gameplay screen showing the Slack panel, git graph, and terminal](docs/assets/screenshot-gameplay.png) ## Features @@ -18,7 +30,7 @@ Read Slack-style conversations from fictional coworkers, observe an interactive ## Quick Start ```bash -git clone https://github.com//git-quest.git +git clone https://github.com/MassimoGennaro/git-quest.git cd git-quest npm install npm run dev # http://localhost:5173 @@ -46,10 +58,20 @@ npm run dev # http://localhost:5173 | State management | React Context + `useReducer` | | Build | Vite | | Testing | Vitest | -| Persistence | `localStorage` (scores only) | +| Persistence | `localStorage` | No backend. Everything runs in the browser. +### Browser State + +GitQuest saves your progress to `localStorage` so it persists between sessions. The following data is stored: + +- **Level completion status** -- which levels you have finished. +- **Star ratings** -- best score (1-3 stars) for each completed level. +- **Command count** -- fewest commands used per level (used for par comparison). + +This data never leaves your browser -- there are no accounts, no server calls, and no cookies. Clearing your browser's site data will reset all progress. + ## Project Structure ``` diff --git a/docs/assets/screenshot-gameplay.png b/docs/assets/screenshot-gameplay.png new file mode 100644 index 0000000000000000000000000000000000000000..7069121ca8c14805c2949c94841f70f67364077f GIT binary patch literal 123129 zcmZU419T?M((n`8wr$%RCmY+|*tR#eZQIVqww;Y_>(6`d{cyg2PS5F@uCA)C#!O9j zRhaxwaX4sfXaE2JCn@nm5dZ-F20?y7f`4bac&Xd~0Cc0dh={zThzOy)gRQB#l?ebK z5tft!p{%ru9x~l^LX-zaOh~pc;|WDb7KGmJgqRcy3K@h5A|$G;3@&a*Tl(8Czmzb4 zrxX>-O1%~?JX{Cjhw_4bt-i>?W-l@4-IAwmSJ%?i%Vqc5Wy7?_lko=zpq^cv7QJr_ zU>xQ^76-)N_#E^D`x4C0pPdkxMSp7d@OK)q)T?B?om7v0Zz4~|Bo%D3lBPd0dX zdKVZVN|@O8*!ON0_jAa}?o z(SV!>^d@lPN@4>@rAdE|?-dg{OVqQigu4MF^?^Zpnwps0AzuDiK^;XRp{7V(GwX?vSlL9<=KX#$`xkcJtMS_qARhG*`xT{5xTe%s+0VH2i!uVd7k$D?+ia zuSC5!VCnjDiC1%{kB^7b2I>)%VgG)Yi5QsNQSH8c7^`A8dN*aSnTM|L z3%~Kfd#wwQ)~A(?hf}T>0q6Y3o#@0#I@itZmYbJe&q*exdpGB@IDd*dCeic}49NaX zW+&xKL)*wW*N0V*7Xk~X5RwwCIw1}uQVIYYQmEPsXykxlEQu~CiB6Xmsj%p1E_K9w zZ+?Zix`}LZYiSD$u)3P%#kQqDF-7{Lixp4n0N77__W9ZE$cfgC0U(YHAl%A~o)rMe zHHPdB#?vk%wPg-T{?L#01trS`XZ5FN1TF4`UI8)Nf$#JufCSzp#3uD~_k)=eLZ5pP zmItW%8OlSm`_bhhFZgZh6L3Pp2eQvV{S3U@VQvL~?e(5P2; zkHt5J)ew9{1i1}*&qbs}mhy|wW0e4v%me;~rVO1Vlr%$M3iOJ`4W1Q3FWfbw^9z6- zvL&pik17+esE@Y-+U$?Thyou{u-j&b-3gcqjo5Lv1Ji~f@YC9zzcy(_xD3_nE1>jK z6jV@nrKCXx859mKKvpQDgtEXY2UUqK7iG)imftMJDfL;PSukTomlc|yQT^rWM92+3 zDas(oAW|c$mj9HeHETA@F#~dpbngm_RS;Fz+iI|q>L!D2N>q%g6kXQes6S=!$|#bG zpiY|{USy%RhO1?~dnLg&KMjO7Wv9)ULy{nw6DHWO?L1S5KH$H9KE)w&g=HKFya zm1u*a6Id6)Hs)!V;;-m)(zC<6&pXt+^E=Bsrcj!`j2%f3id)cN&_fVk5PY9XAEH5I zsc<0*-|yK0*uT(*V0B?`(a(O*KZS(;2>wwqXbup}lg|_0jqL*q1`3`gRf*>c6O|&C zlsuDoC{!x!D0DSuUJW{z{YiQhzZ{1%Vm1;pl7mVWz7%dHn*G;dka|#c@GQJ02~uiE zN~XwN>P6~6N<6Wex=WFqGJ~=qk!x%`u_7^sYFiawC9ia)EU3b`tWssQ#zEnrjr!-} zk43qp63xPPt%t}{LNHOL!dgo0G3qh=F|M&#Y}KghA=Pnt8Wo<>r2_W+>hjA{{EBXg zE~$@J4*|6A!Kg12KJ_>?IHfyH!Qy5~WqD>!_Qm4>~A?G=R_Wg5jF#gNV_ zD=;ZD8I^9Gj?grtd8paYgl=&$!(H-VQM@Mel(vyZ#)2^2SpsL7VJU9GFuPUdE$XQ( zu0|m!UfCdf6gfqsQ(oO-6LM*~iPGNhfyyVx=f7pzmEghf>y(vTR-z&|t0?N&@(kis z`oZ<&={N>!2F?&x6`K`@mz5No8CD671IGm`8uJ7z7#j_f4SSP?9Frw-KB@)V6~~t~ zFJmCBlHHue{pWIS!^z9N*ei%qeOby0@Vw@HhN(JBh(__MOM~TMZCiqSyL-}$3d~C1 zs<3|DX8tm=(TN3BePvUpwP?Me=79#ACY-ubl}M$UW{XBoGgG}}$}aRQPp1^ z!;jrrYbht0kJh)e!3Yo%LsyxnI-i|Kz z$($Tq2pyPhq#eo~8>Xd9#F&;?7}`wL{MF++JURj$Tpb7PcrI__n`3Z!{OH_J^wtlu@wlO*7dXaiX+a$gqU#wqZUvYpEKQf>aU?%@R{x~4E4bCgtE+C$y zBV@nKXIAwU?Ue0IuJ;h{5G5tVDRHq;+o|q_QteYIE9r298u~ec1tN3BX@5Ukv%9zq zoR_c4kz5eN5O)+%D%=%3ihKWl4AUj>78qg`!=6X0K+Qm1M|@+N;;5#r7T6;9F@HY* ztpXJi_9UifVy~mOcZ%N5q;m|3&x{XGu$e5H)?t16%Uk8%=RSNyGkG*25FaTSExncV zo`f=0b`V)yt5mKe)=GP+dMTaFVasBhdi954PeA%Xf==2y`!KGV%9?YNri=F@$&aiQ zwR045qIC2*6)RgKhl@TEh23noA-*9xOj$H7zhSj~HKN{g5dE*A{TFZxm==1ZL;#sH zm;BU5=A$;-4^o}DbSd9>_={0%#Q03;v~_0Q8n}o2Hl2djc(u1EwW>>4Kf|D zS1=lA@MPwcOHFV(X^o|(4LkSQ+q^!%K5v@eG|X!6-E%G`t7A_Ue^s4PPf*d&;XYBX zm5k~P>k6MAEuI$H1PXl7-!~eD3?`e|wx!+3QlzY<$EAC!530NFBQ_b(dLnD2b(R~p z+&`k>R^amCTG&0TH`Iz1ll9nJshpI~OxF(MC$Cy2wjJs=>N-tn>?@oseMKci-`ESR zahkoWWNOYUZp$pHm#TG@KJ0mH-yZO`c+xGLETk;E&r#1i8))>^EUP4~Uu@1VJ2&N? z1};yw##h$mOH|Y}pQ?0~w|f{IwpYPZLP9>)-j+G~qUMHnK_nrn@$UInwu~1WE7I1q zJs@%8@jY%VZ);lMAqXzH`#9&E7M_1O!xR-2qFLx{aL*-gEp2DdY*CIG@u;=*S^i+TF|*0e@@_uTzHWm#`k2l+ zF?Gr5+_BHQ%U>TfO2JH7qvz4H>H6zbbl_UDt>uyFsaeymZQXO|QB~lodKGr2yDYbT z-DUqt{&slKUE95-#nf`S@w0u?H`Mj$MQ3-D9*hIqQ+ zKb$VnbExd;3&HE>5u~vS-XDQsUm(IL7};dZ%KmRNR@FpZ(o|L!K>ZCv0)Rrz|7GI> zeLrD;-{015dHjck+o$xi- zmH_~uWpib9Cv{mFZX;W3dIMuyLlb&8YrB6)0K9J8-=MXLlL4WdwUvz{w;LbvziM!Q z!~YaB5EK5ZijyTDvAV20p@^-62_ZW@BRwNAKQtjBA+Lk6DYxPevHy^NKk*U&a&ofc zW?*o2b)|P@p|^D~V_@Rq;$mQAW?*Kf`>sLf=x*a=;6`WTNb+wc|HbEriKCH&xt)`_ ztqtKnd<_h3ot^lIiT@Gw-`Bs}Y2s%7Kay-5|D)Eof(-v)7?|i88UCC1H!1HwrQGu7 zZYEY5Kg_MayXRX5KPLw>@4xE*f0+M~_`fLC|A&%^k(u>>lm0K%|0Pv%G;t8Iwf>gr z#Q#4-^B>~>jreyCEwMECIEYLPsb zqBik#T9fgMo-flpu2&XhH7+&f7;ku<&g&CtX-CamW>XVz>1>`h4UDk>sDGzSWl&@k z6qDh{Dhib>4Gm;MpnnqQDikQy_q6@_SmF0T@vowPBmRTlg$g1iFUq-2G6s|M1C{tc zX~&pi=ExYL_ch_ar2MzI*xpe=KXAW6qni0oZvkfs##Z=c`PhSdfbl5s zXF$cj{x$sD6n0MILlKV5D9KxKqCsimjuV(k&5Y3Q*^ydEAD=aS7hK7O1 z&zZ{+Y%4B?Q$z??=W^43gHonZ4gQCF_dBQ+SXGtck?P?&+B9VQ^w!4#g`E{#fVT5P zWj)@wjx7TC*5CD;^b0gCznG%YX%?jzUN6$KCXubvleD&u@@faq2;1QkNQ`OT)}Q|w zqi#qib4WoetAKs{tqW=X7%oz~Mou}g7_5Cp_JX*7jq^P#kk;w|a=2#fXPvVgrMdh} zdfwq4=2G2&&vZZIE`D{Mz`RN$Sr4;_q+phna|4MocV7s#a_AEG?d+^tG|1Sl2~$S<=PYXxeyA ztXwN^K8e3P@8ORk8+#>*pn)|rv{h_%g>cDRpuHf%9%dxaA*Tyg5dwsqU+x1iupQ)( z;vapjuM7Yf#)FL_Kvq_N)+(ALWD*exj%0JW@Cf}(q9)=okOqNrIo5~*5_78h)*oUF z<6JY{Azw8lB0@Gn#kQheXWtNNSMNWI%}&M-yTnL2QsQ4q0e}Ph0}m!zDZ>z&-xxiU zrGHx}U?CaAqa)Lf7m7sz;G$WAs((S`Ko{eU>aIa&QD+iqP9iS4u&byIk zwFp$dci{zCy+__&86xM)*kR?K%I`-338H<0zc&^#f?~2ul-yJc_{M5;3+QBfSoe6< zx699~4=Ye8x!jc$Nj>_&R3)V(5x_De3)78ZMItTZITb86zxCG9TpU;q|KRTip4&Sb zC0o#DK*uO-YGsucF^XL%Fs{`u)lZm$_%7;AWxMj_mRGw1ZcX{uOJ&EHSP-Ol)TvqS zwml>$C>`9x+j~>;XTTzbe>GAnCf1haSdW=x!UBMipLwDN2q2YI#hT{483b>(ghwqc z#-vn*GDe>Gg#=QtpR%1vxhFm#S*i&NkD)rwQa8NGRmJza$MlF4AH;;&_E0 zE1tb&koZ?@@maVJzOXh?6zp388EC0Aqv@}=tBny`#HO7)-tFpyu zCDYWK@tzB7FO2^T^k%1MsD{W*X+Ep-8+a8#;6VN2p~s^}*y0`{9n5KeC10)Uk>S@+ zB9!Y%Hu+KTDetJjPC1g2HLGVDDV^vYTE0Ku6im*5Dsht*K!h&?OkPK~irTrFb=7nP zAFJnO6!7jkOXU6>Rz+@*Fur0a1N3=nFuqunM4(#fRc8%x9S9Lf1+#PkVx1xpc&`b8 z8CK1;POZ28YlUA~p6>2S9sJK+rTw3JK6*sU9E52H_c3b~ay^rKnE~g2O-BEO^xl*q z03sS1Nu7ONd`^m|_D}UxpG!uzrW&5Bu`!1ar)`BNb~R1N0dcVL1idpF+nSnK-zrK= zu9-kf`O6PD@ibQVYSiPPBrb@jM}0}kbkLt(z$XU7SBr7gA_!h!S_;hEX*T*e(CDZN zrFJ&KqoMUdjgS&B!Sqb@%GqCow33pLDSzjx+f9G?LB!lF$Q3 zf*YJt&6LcZ-iU5pga1;U#C|0m16jSyDgNVw30=#2u&{Sc!)ULZtq^W60g|XV(6k)L zs%IqxWQ~I`))EKRrivWlKRW!o_VJAU2li@v2ST&`O45*Suva3K^N$#QVQ1L_Wn~VD zLXQv`{49N+(XmrC-)*XVzO9jMMJG}G=MVC<^f*eIZcbpybWLeUE^LU0+P&2+)WgWM zfcsgaN#x3s?ZZfiUe3Uo(&5+AWq*Uxj!f7dMk_YDTjrO5oMO?oSlb5aY^*syH%)jY zRO1zLLO5eL2lJUbJvCc6jk>9d`aVST{k*t1n9~62#slQSv=f^ErAHg4UjR`HjXsez^SV|e7jG~Wg`diU{OU(? zy|V3=M;>g*cyB7uyl#6aipF=vN#ye*Bfq#F8Y4Eq1lK;^nomkFTUwv&zdu&JJpRXz zjYwCs9nQ9qRn8u9H_cNBG;#tfdlU!4d%7jaxGm3@${=(x(5-eK19e;u^zPujG zJqV#7GN^y;XoQ&|#2e6h6)143v@JUrQlN?~^hbvd$Uk2P(ozK)2d`0v@0-X_j+1 zB(k5?ij@~i4a?Jr@H)Z67yRmfsdQrz>yI-J&cX3SE9A$eeTHs=n+zfsRvM{xlXqi- zM&3qoYWhy_=wo@_Yg_g`CK{q{zOxdH1QAE);hX*h;RAnIXWmfn$C3w}t<~K=K4RQX zxZ7m~wxAQl>wOu8a@8<`_oB~~N@qeOV$H_3aL{wYc}N5f4rXiho;!R1VZaJOF*~c4 zsV^I~^XT`@7+}4&9gkk#?zC$>yu2wY=$>v3qakx*LBirD=HZ3DI22ybK&fon?@^35 zo|KHhO!K)5FOFBka%0+dKj^*;Z)eB$hsG>2oV%%mpYRBfvMR?GvjDvw;JI!w)Vv>E zy#{x^PyM#bELMX9csDvbtR8TT5vb?8U% z{Z+1_q(PNtxjZI5{UMUB4AOo0C)9Z4`DSimg%S(`ex$?KTPhr0V>;|*S({{jnt!-( zz4q8h<91FOPYh%b0tgx$)j+EZhmTX!G*UJZjz?++%Q}&JFTMs^$8#(%ZclM0w=jwT z-`1F6S@%qH@h@Zao2-gQ0y1&o@vka{EfHnRznXa(m#<@xZ9Df)EZRH4Pw*owHCJk) zli`3telmV#{8loNViQsc8Rg$rQ?yAXx|wh|tR?+2b+dmnvh2z+C{U!yXTlCUW`ylpy5)(lLd zqG@_=#>E4}L1Q{GUPPXb)G86psQQ#EE?K!&!X1rIX+;&y?dzbFZMHt?B+J=6>LK?r z$u}f>#utx@P--<%YQB8KkPUm?k0(SgXBA^Vrd47sE*TRAp&(MOws?myt#|C}uH=gh zo@S50(nHaP*&TAN@+<&;bDIKG+Mn;&tV%;XKFvb)jun$09czrx`2q_dFYq!jDHT)L zly}8NBO`z6(z_M2y^VUtJ4ht38$ac1kt%yk7e65W5+X=9T=EAzKZo9jqYDhoO3We= z-M(I}?dA_>WYE=wes$R=X1ZGFX|#X-e*X-XA#wk_S8n^NC~%^birV;Wcu-U-8S5Dn zcvvHB*h~(Q_ZRDWOO?92%SNpY z52fYhv1U0wl?|h^Z{Pn6l6>nPx_nnJxZ0Sn_fW~>)vZFgZdDpxo%42HWVp=6t+bqX zz>;SfHri~-3~v&T=gqpjC={|OWlCn_j$iK$T0g9;Dm9(EsTg>_3KMbZ*x%%Myz^u- zSw-^m^Hs_=7_PeB%9WL!2BP>R#_h5raoJSk;}s8j{k?Br#s*)3H}a>+U4%|m0G1GXsr9z&XDpkL-w38{XdSH$hE%1Il4uWz#7K2U#duin608$1j&%6L0k2geAo&`GcOcqKls zed@Hicz%Wy294pIjUO-&Bs-1C0|hEtS>1a#GPXO_k`R-hcL! zIv#<0&UZz|$i>&~nT;pQ(t!4Jzk|8qMq+Y}y7{l%7~TJAG1xTxvjM!j8^>((PP=C< zucATDvq+LRp^}`|Fcm+cgR@~Gea0g{HwQkxM3<~4Y+>Px#pMw`79CqK2v%=>M%_YG zp!cee#Y-x3mP{xfgZ@iriHEwT=k=Ns>K@eJ_v0@{{0f8YRQCxwSEE^rm4+#n7YF^P za&whBk(st*Ri@)O-R+e)e%wl-ahmt8=yS>72cri2zDnsj* z$jNp|IPFG1MPy`(egEFXzPG%50t!haj*F0emcmHvP{mvjh?r^Y53$nZG9a5v`A;GW ziXJha*9Dgbf}s%8Nf=2)^3uONUiy)ViObU4`;af&IO5}GdZ=U7=TZr3+D^5+B_hy> zW@@T!xbh}7R9uX}9uCNU4R;d5R{5H@>9naqC{prrQF8eXx3KMo117B>P& zrF5>=qcCu&TYmA%G`D!`wQZD7KhR9!>chfQo++~l$|$9HxpCl5R53%>)#d(@jEcXi z2MD?cV@GHj_LNoX7&Mge&6N8Kr-d*9z{$6E-p}pPpoH8Pd5h5EZ45-l zuiMsnJwlsh`=^{GL`!Dj?&%psXBF&)Y7ihs&}q7c~p4H_LjgZtgU)s0$N`K;1S2M%B@2` zmcZh-faxH0DOKpIy%n*Z_Dn_0p2Sz@(n-4`#0f5nh)FPZfPUf2ZkADztzyvob_34? z-)uZt_>3+llSBR(%-n9GByz=7yh!L{^Q}ie&##eMdt^L3OV~qCW{$FP%P1t**LUft z6x_sT3+w&M&4$$vdP@d@>5u-9n1t3=B0>RaWaPIr7rn6Nap>EIhqa}QS+u`@6UfL+VuM0LM&n4h z4qr~(OZps}zWfxB@lb4G_lit{<8v}hD6Vb}7R(!r_eXBxv%0iQC(|j!o8Y=!CLOFx zG_TlDdsB3sUppI2ZWGgr`Ec>^>7RVgJc}pn628t7dRWeW#cVsQcioQWyBZHgw!Oms zPKm-eJ2Z%5Dj z;-cPmo8JAf=1Z>GcAZkM?bfvGWiImfc_kmS-At_N-m`d2cCM6Gm)1)TyLa>>;dGLm zfV+6M@8$HG(n2A#t-U5FitS1*67`<4M*Xw*%Q{QUDA5Bh=T|^YDUZbTs%E#hLA*I> zBOPTVU_K&AMJ99r-O>vb}!296$OOhIgq?PgdIE};{itv6V6w~bh#Nh3`8q7g>TAjlm zV*h$MJ;d5)GBS-jkw`oaC5y9ilf|(oQh~4Bt>co8!Q^B#^K_xhi^fKw zH9uYfJ?(q}4UmI^EDhbDYCGs^S6k0CV3 z8)LiJ(HfU^tbFa|>#JRzzu8Om61BaqnA>iB)kbhm!K3ZAHk`cS*>E`SxXO=34D`D5 zve6E_Ij6nn$bIqUt38fWnt%! zvXbW?N*}Oot>Q^VR+l_FA0?wDJs&f>kqf5HV3k^TSR)>I#vQA++@c@{8}uAnCva1C zJ}0p;Y+-4{s8r}j=EPVC>4Xo>WA0xZ-^OdMa)_bq4dV5b3&Nd>n32mWE#j$`y=Yl# zzSMng8W&rGxFZb^hnjSP^ST|$$*~Rypr5&18Iq(gwdj4Hmu-{|EvIqLr)H)woS|ol z@Xda0!7Ne+@P0kp((ohWRXE@%6mP`(-#FnGBZZQR{8okrCy|LDHH z{~Rhc;6+1h1KDjX8@+uFoZpW*O}pNIDjA;_NUx5(*YQ6S^-WrgVtzS|F%iR|XAEiW z!e#A=ulG1Gm8E{UzA!qdrU}J4_)^INy}6rAuIuP(_dv(6DWjtLhyrr&e;s7j-;wYK z!U4LH=tOwBTqUJZ>#T5wpWW-<95vV&l5ba`5nvSih1r({eve4(<18Dj|BMF$1Qnd#A233{{4^3VgGnBnb`XL zV-x@ACyUR!@`W4S75ahi*n-CGW+*-rUc<{vC>sKsm1W-L*LKc`nr-`fR!KtAZa+&S z+-J87Y!5LC`A?1^7#yup z@TraZfqj}J_}V9Mmsfp?=ZnUp3oo{Z?=5wf#cVRWBrA|^+MI^L%=h78d!A^7@{2?) zQuXWxzwNPoy^5onW*ubJlgGO2n)YRfh@`N&c}U$@U%wYIkZNsDz-ooEsS`~?L!(TX zhti0d9Qz7Th*yNMQ=LVJ-n~o0Y#eHHwbnNITemtno#*nsc?-Ah(C~hurt3jDizZi@ z0%9Ypt^Wtr0!o*RFCW^>IdZ264mZ;G=C+(WK~7*rbR9R(EC+D_2M z5xm<+ylW&?3wakrmR@aeigkaLRNXfJT!A1%?+032M8q@Qk~+CvQO|E!S2M5SOYAf` zgWj(P1939!bSsb$zWQk>(s_4r=2aO` z@AV9`QEP9o1?KY~JR`b4)jg@3U)f)8eTma|y&Gj^0XcZli3?+!7PWpQL7yBB3Mu;5 zZvIff*EmIMY)618D00LffF6r1Z3PA}_s=X^jXH%;-G!47^cl(_iAn?cZ3#NF_6?7= zMZoKYfUBem+~2mJRW!B@{o@3`{p-7EI{Glx8Dro(A@dgzmCmsFQ{oZJ;TUML*<7~C z)+0KbJM4U}?_hJxbr5@j?)Y<~?H+6gMPW>HJe7eC-kq$wy;_;&rudq2B5_ek+&yG@ zA8T|F7pYsXo7axo?C*c&t$S8VY`Zc->htnP9_7?{ZR4>qFi7h>4qJ3o6>(f&=XsOk zhiv>IfxFsj?!VXo=2hLnYxx;<7$#}X?0u+FZ@8LqnEmv-PX+mT4vCUMAirHGjLKC; zCU0P<s)FkE@kJut)mp(7erg>u7y(Mo1V1MS&xu`cE!r|4OZ%Ik(d( zfjwR}Q?b(qxu`lk$PQQAgg^^Yp_MwLhEq5clRXT}3HDBm^VjKYmhJPqM+z3l2xAkC zp#vfj@ir4bkhy*lpxvE6AMqKM&iE@1hKBhM>0wMLu;_SHtd5|(k6%6(1ee$K7_flJ zHJEHNMgT5v>vZojd3r~#oxyQ500u>O{3z2mO$(RS#r{S$5SYjHawFfUt7I(vAOdzj zPegp=uiUotaLjURoQFcD=br;p0&+WHzj5eFg`a&tyC{G1d|0)eU0z8vFS)j0qdb-e zkGm)Qk))@yp9wUY4%nz~F`=7dqYxa=o~ki06mmn==D@gYe7%Mizl!=L=NpR+$Q<9y zFk^FyBW`KcEj~dEsRm^gOlI)zzX;!>g5mJ#=?-kVxv4v{dEyRn-GLal>bcLepq&%5 z!vL=4a!VrI$%_dUuDukYq~bEv{~{xkO|( z{K#e@Gb0x(%RAU=+IQ!dKnzShS8He2h1h{p&y*GG$|M7eZCNeQ?)%qFqH+AesbMrB_iWtt0^UN=I&P@AZ zMMqp)MNI$o2oAkHjW#VQWBJ;VGww%xZ~$dInhIPzDnaob32stm0QTM_Ktq#l)v;Ds z_wBw`3rUoG{V65gh!Ihr(GRcrf-XrV!x=Ieo9`P;c;JyPY}5{w7K~K|CHvv^-W0f7 zN}T&_#Gu>4o|4YZmVL}Wu_#|Gu!bU5ayka~fjs`u>!j~F(3e)Fdpl>F zM0r{7;rwuze7eFc>1T|8h(M_FJQ184XqZ1$Oz>D3*z@Z;9ebN+dl@1DI)X<5^bsnm zE823BQ0Hs(B=>nZ_*;XnlZ)uQpLNkXZrRawRcDi_c*wf4va&aK`Z7_#C%S=-;3hC_ zQl6{~@st%eV^>_t*IcoH7HYLWvpxCv(zu20euV19x2u+v-gM;VI`1vzz~WQ*3zEod z&EN9>kxv_;WZP;7_E@%j`25opGgFy^TE_B}(1e%Yb>4bp;j~hYXJJ9DvMtff;c23w ztgN5tYaGJd{W8>3sLdmTlzFT|o*yWndewnuAJzV4l-YsDZmUVMtoy~ra!<*`q`*h> z*Ej>4u$?3q1l{>Ogo);yPZEH#3kUk8|<-5R&KeD=-flkb=VMaje4CJSHZ%coT!f8{doJZ z5rc9+uoqLxW?2r4%{npRDK8&OGyQePkUiUOjTcq0+2+h#?7J=&ku-Q%Ii-WS1^ql@ zGRiF{SU3eEU!Buk&aubVHF#F#?NURufqfz8sNXef1gomK1}Knd$r>j5NdSyg9<&}6 z%iZO#k92M!m=?WH-4)jI|^%bno&dHth7Jty3nTY2v>2j9O{J_*zl^ z3scq4@8&R-3Loh5wPC@eODvSfySr$F(!!-q!IlN2>#`RSXxdL!Yl}d4Vu1k?m)+ig zvGo%>u)%Ydz%bo8dCRvNFvm#|@ zX~d{j6xb5QRU>S(aKsPFglt!t&rmM~vHK7bP#QB(Ozc?lAD)LdCPCa_fHW6xj&sW7 zmSkMTl;^nkZ0xdrtXG_Z;3Rb5+F~H{PEg#Tlg^{`IER~eCwE`bY~CB&2V(g_kD+JM zmy55T5Ao$$I_aTQ>6T&Yb~n>=?r6F1%V)F!rYn%G$4sdruo#Rp0gW5LblRvro{mNzjMtwujB*N_M14xPIFBH?RL()(z4!%^lZzJJ z)9`0qxwl(s-vonx@e?nDJ>wAgBK6v9V3v)})&fUz^HCkywCtLGLp+YSj0}?HO}o(b z!8{(vs`7H>mRbG1XrL6>x1*QQ5M<}c>G5%x(rpHyXL3S`la)-R1FiPw(}6`D0rz8PH-17({ze1z{tkD_)4+urjAgyo&$>{QzV$B-guH<+)U= zq;PqML<=~7e<4`~w%tZyGdLBl1BYQBoyi4n{BJphhn=?H``K*6C31ma z3T7(i!o4c>+xj_9R|0i3k~^71ock1=KZcFn87U{S6NyE@2QY&%$7-bs*l%mCC;4(6 zCfb{<`BjeMY%AP`^Z^C_2ST~+C24kOIdrfHXGYzM@-<`o5T}|p`=#VIbC!8|m3=Gn zB|RP=Y=ZtO?x$4c_Ov9RsIH)xa8_g(_Ic;0eG4E8Gc&cYh_63_Lc*!j}e4!tGv2fsGo zHN>$+6i2Y=?r!T{0R@3l2OCv6f{oYk`0%c~EA`3J&lwmFfjR^c1SlyFfkj2OyN=-grvaExrHFcT!>`>5Qu0ii}s*&K_1fS*?~}gi97%8DJTaaKZ*5g;ua!+&D$H2J8kyzP@4Jl?l{;(*h(z< zyv1Qb+TqM%$z#b=;{}`tcwcW>ng)cWH5``Xd{R8x43F#c8Ax&)HJX)HSF_`TrCJjt zTo@<@TWfKY-zJeSZ`-B39~GJD?ES1%PJKa2kSi>HOi1~BXe^<`i)dK(q5?Efqo1~- zCpv~tE&X1l;u~)JlVu!#IIp)UX`xLoI5_B*$2R`XGR3w9cGdY&?{iu_Hn9L1;o9Z_ zey^-v*RUot7OL?U`UE!*Zj;d2Qm5$i;t{tva~u*mi#Va+`k{0$4MgL*C=of8{+`4| zclmRKSa*{WCBJG3Vn}hwT*OME+&Sz3)pbuS z7c!}sCG~wztGVFC6Eb+A-}Bx!*)XHR$OG zVu(7TP1D|7vhsbkHxy|5-%`5aB!Rb^&mbtGNdwa5_ffvBta@w8OQ_w3{(xud?a(s$4`(*?GK2^rKxNu z6<(O8K`)-Oq;0D;~Ajk zT<5dn^N$RUDwh6|*{#j2Rpu)RwXA$AbG2@y3fmC1z1btfq-S24d$--m>7)Knn2IkQxxYvALOH`BV?0 zZ3w4RF@Bc?pcm%8isQ>#w=j#!sxo@8=j{xkSt|Sn4|86x(nyNPb5{dnJQzdAocyET zj2s@%;>1K$SZ2cyig0Y<5<4Ko|gF1TM;36Gu zO@wD=f-o!teRsL%HJjQDu3m^D4U_X%sn_1t6&6--usiqNL5B^7vzC}EL&`;IvI&nv zq#-%IkBxV=#aLzS76|H!hWBA_YcMcWDhDo9gBAo=Yk(sc^NxBs22Fn`CpM z+M5OUY8iKP&@i|u?U1`){5jT+2V{%;#O)Q``P4>ff{hh(vY;GDOiSw{KWp|<_2-J! z_jUr1R1Y3w909qag{=dr8(kxZ3v$BS?hzdwInBhzL+}!cBP?ii@JcmD3Ml|M_2Fxo zWAhkoXgua~tjqVr_mkv#)nHVbVYL3M+mJnDW^yBJ$EW?+vv~HtQ^a4qrrrlzxd&Rl zB-}6}p!jU0KdaO^WTmRTx`_1*x*Pj?@v0_S&&M(UrE*99W60aapo#b6)kmdR=kiW| zD9#_8^57UM)Qi&FG^cvG%@lut0@79yA^5AqH9wQ9p$2qPk;8*c`Taz|)8yNafXWpS zReWT|ucsIIr4*%J=!Fow;J|xO#Be~Q0i`K~=A-)D!D!&P#^&zobl+EAo~|GG)^1S; zrIpfLibfEeyt@DCdZPVI6eJke#BUe)p(%<+qNr}N^;IFzsP+UNYArB|K-f*aHW_Gd zkB&a(+lwu7o`GOT8Y;D8mnv)ZE7%o5^9UhR=Y_aNbJ^(Y>$6!&_ieL`yX4#WJn0Xt zXQ^m9%H}azhQ|CG>JbPO2@hjdG}^Tsz2GQM?CVP-?eig!AoF4{AjCT$Zbw%Mx2)H{ zWWp${4VpMVPdTSRA7_y(q$}|C3c5#hTaxmW3I#*-M)3+Y=KE=tJf*{^n(VDmh$86W zJ55w==2u@Qwrya&&Ef`Oqux`v_}S&D*-47wy}+fW!Fs%0^|3G_O0tyTZ`Sth8tX3% zSUxt$N)zC6j`awIpPx!+9_6a--`qVa%#2#YpB&$$pn5Gk>OOfLZO-rKHee0eZ|3EL zH?>Xie=YKhD=ZUG4hst1_ceQh?}L`@cc#hQ*MVHm977E%P8OP8YsYE&`T`+Z`Lan-8fR^TGnAB! zlx-Wftm@R4Oe(8fvyJW{uMopv5Lq$J9c-@(+@)PsmO9Ylz^MP5-1;s^HzFwYbhAnH z{Iqz|N$av8!p-Z8z`woOhng&1eGc#gqjo!OG-Qk{l(ZylSYo5Z-8wd;P=3QYp zlZp3vj%@dn)o~ZnRR_jh0_{(xMu2qd)Ua6a2vXL>BxT5&dXQq&&8fuR*rr5q->-{# z*#rWqT$|0;mY6XSTkb?&86UNL5un@|;ZbpJ(EE*k%qZ)E_cQzb6K<>M0 zPcN;@VK*z&3vmRZt(;#5{JFOHXU_Du8~a=H0SnZ_bZVq|v53+1<>Vth{kQ+Q7ouN9 z>xIfGiDpOWM1xcgOzKft7a$8nEL4y^+F7N>qUQ3^M<)7X@~xYJq5Hbg*`V>(Uj^m-3P$20lCeMj>0DqD2IhwqVGtr%=M$y^$LGnUy9HR zgl#)kwuBnq8L|ZEjCjrKoITX%I|y$QL4l13lS7$I^WPxZClAjiLEOdWTsMx=fEbek z>WGJOBvs{QEV5PArQKB{sz>SxN=y0|YLIZE0IHPg3QdTHpnHWVxZ%@X=@=icC;%D! z4K149-49`{Y_3DaPiH(JnEC33Br$>;8Dk0OwoX0HZS3uj-7&AMHiE9F(vqYWBnvXm z!x|c`{(Oxzb!TB=nyTHrvRVS?{yB>$&4Uo;sE^leV!JLUU8%-av@@57CRco96639b}hGHvFM+>etWZT0ZZ+2q@B*J|B8Vnl`)_*#k1M{gr7LfGqYXBPFAF?K*; z-`e4hWl1;9x0Xv-;-=tVsxE6RF=*ck=O6NxqZl2xkPX7$F3BzhFPZUSgPfL$;%tGer#%L}Xk+H4^> z#5kuxQSCgI#_Mnn?+-i2*$0ei2w2E&nBtW@$6MvFyqGZneW29bryW6 zK3#J3eje+tkcCRvA_Ik?e98XPRYddH-qpC*v?j*;Ar!?T#IbSK-X9$S^)})2F;6XB z=t?%&mkb6rtH#TNG}jmP(H^>txd$?*e)%M^E!HZ|pIt%jdpEpxruz`TkvOW-+|ob?}+WOE|CO*W%1@V2%TKprjy%o_OJMCn_v(E8{*v5OwCx-&uGDiIF&p36Kv_ zZE9v=fp|}zMvH*?$GIAk6F7st8m^T&>lo}b9w=9mB8m%XNC~u068yhn76d8ma+?*B zC7U9nU=!kyUM1^PEv%kW@JZ@jEB^LW6zkSodVX=4E7PSALj)t`MZF#vl{k;w)zDp~ zdgJqS4&HE{>pCM()6;nD?Rw}_<+ex5(mI9GcP@`+DV?DWxW@PHFLIk#(2)!~B8(NR zvzy`Gq7So3sx3uXse$|4ImgD8@aoNGIoMNAtLgHJ{U^vG8?@aR&jbAK5XSGTl{!i__439iANKnT`ILV`O1f?IHRr;z|5!6CQ?cY=Fk z!8N!x?rse3)|7)4RDK5=v03yXp z;f6b}!-L~{mgs-61>iB%T>myo;E zs)P)g{hP=1zkUa1(vF)UNhlM2<^3ny=TDnS5=o%|R|i#=$p19=-@K>nLiBOKxcVp7 ze^VF!`xcz=^96tnKyc;#Nc4X=AOGF*E-RebbV;N=$oLOp6Kx;>&VY~rWMC2hi`oNM ztz|5fpSF0#Y^%#EZGYvTVJzJLD%VmMr%K-bqFiT@&Ym+sHp z{QvEyqaGHZ`%YTcM6YOVoSX42YMzv9@<2eXjMo_n-=>H_)V`xmA%-_SZlRem@NeRu z1sVtdkWs?#uR%`;(<`|(WiUk0947#@X{*cQg7n2L||!)#(7v2X9_ixA4R z^8@b8e41$WVIH%01!~~e5>&F+v~rnV^t#7w-i@EAi(;go zQdmcR%NBdz;lc1q|HViFN^n?tv@%bio*u_$7p!k&w@I6J>=qgq(b`#M}D2> zB)T-r%;VHBGYo#mMC(_f(sbgf)LGF>WS5_%c^T%=ZdqlR3A#W2qz$flr<9V+pbJeL z5aS=#bGZh1t+fR+aigF2O>$u-{c|WqrD=tP^a~WyPWXfEbhTs+>=S2AuSapP5l9m# z*^)e2p77#`CZ*x=sPj%kNPUA|>+u)WE|>GtEl!OO4MklTA@eLdw;FLpy#d8!XVq?o zDS0I({tsSATNj+aoO>^c$b@)$zl6Ls)YG)^w~}2e=?J5WUv8+NqKlXA8}iB88X(XJ zB^j29^{F7=j`A32^>@Ava*ZEj&!UWT%?JayU@#QNMXhp2i}?j@3P2TO)R`EIyY%v@ z@f4kZ1wHnDG`2wOmI7rg0^~eZtuo$8ArI+mVet>vQuRU3>*Yg9QNJ|U88)T!vn%>P zl%EB8(?@7*bVnce$K+Ulm~Skd+Jvr-28X^z$HJ5Q>2AH|`wksiawVw&rgsNDeifM@xtKF$9Z1STE0Sic2Nsajtolv+S*c<{ zdNTXkV90~nus+VErsVuP(jWE*+D#hQIriGroRtEh!67wjW;Y#{8(d%oY+Q=ku%+#v zpY(GS)I#oWv&LdFw706=7ge?Eb7a^`9&k-1=!_#I0@iKO8n?2<__a-P-)dM@Hh55& zBEG&ZEd&HD`$S*mJmf~Uh|U}V#?Y}?1J0MZh4k9Tofo^GiK*D%%;$it^R(;2kPlUn zFy30Um(Z>#mkX|0@ov%l!13e?`NXNDeX!T zSmw8A)|ICo*;@7>Qd_flZVpX)6NUvan^ruZVrFz+Bs(J@F;k?eG6t2m))y=pip5oO z9UM$^QpMlrB(*5@jes6X)~YSBnd)lV(O0#;1f$~{cM_D^A0*$5Wlo*I8X{jx;_}?m zc<;PCqtV;V@^u5p3M%U#fjt&2Qwl|IGQ05?hHy;p@KN)$MNenEKTl1)md%&sM$9WN zwn<1`mnx$sOr6R_Y&$`kS_E+2svKKH$xkUW6%4enpGOXXRISQo1yqI*lu=uN(sE_z zRP?okBKKz;<-3iYKL~#r5&UE75J&=pf`ZkwwVCKT=@ww%v6o5k^+@YByC&>)0}1)f zP1oa#iYJA@jPOjLcP6Q*>t>-aOz{Nl-86LY&4m#v6G@2Agrf&z-sgBiC!NL3hk`07 zjO(AyMiKbJm$RtT%bq!f42p5!8~Y)*-QT{ile!IifgK&()2QO5W3k&u>eK(Og9HWd zehXoqlq=xnEqd}PZfK;2uyM|04jxlZmN-vxdcGN~^N7sc-G4JFZ_EF2Ihctt%8-{^ z{}}B5nM2(nNa*f80C{*HqK|-zZU}5)ry2YwhH;bvY&_Il+r`I>^H^Cs7sN|ChhYO` zKCeB7MGI4KN8h-26z*5!X4QTZ{ZB0bUDLHQA&JZ6o##SYk925Rc{R@+Y{NpXog6l7 z5P5i4Cw*r3IIeLa!aC$v>_{TD9{1nhb7nzcS1v7Ej}%hL^G9?Wj>eI#dGRMl6UGSW zkLN5CnYU<9RU^JatIin@;5W>;dbt!!@m%`W%WtJFBbKb2cg6j_+>cqNgf*Z}>;Hd|CRs|_rY)Va?V=xpNLasAfz z!{aR@GPs@YH)e^M-#`@?e#$^8-V)!TCQGc*LrLG*)Um}SBIyflrNPkBB z`7hWS{!KX6?@NsP8`d}agY|g|gHZlyCx3!{xY)6u`JeuxGCJuWtUp|A^yV+>X7BvL z`YyJtDSy!iF%+&3f(zS6yuXOu75anq|3B4DI#JcQsz#ac{Ulm^Rwsf)JVs+DRRT(L zv+0ksv~Kwt+gdJp3MJ=qc@<^N%wON6{AF!OAaWtTksa6@S$;Surmq)}=1Lr*`oc_j4r_NLjdth;_ap;A7Bu5x0?N3u;d|7Upor zuo@zf#Dow*mj0r6Qd-8(E0V}gbk1svW-Dk7z`H+Wqp|H6P8GMF-#F?X5)v}dBTHy@ zeW*=9NqNYjD$q;LV-%o}3Y6{Y?ru?Kd;jlZ7XQnTBz7=dy$K{P?+X>k%zKZtN*6&M zA#xdL*~K}kaZI@13+@VVd=Mijh2CcR?#u2iHdL~zSy>g|L&24UreIK6%hz44QM(2R zo0g$pou2bqel_UHAACmkpW}@GUdG<35`{nj&o+(ylbhN1-x+W$rrlr0UHTh{D)-Sg zuWfPS943C#&cMt(gao;*SaRJMskWKrYI?X{j1UN*M~L{RE0#cHrVUi`0vL6HV~QME z=Q9>fWd>`aWxjeN^hED*ha6lBk6O%C89U#c8sDx4<0_<{h~E1R^!LXEqq!{cZm07~ zSG1n9^V-bV&ez+e`ChI`pWhu+rfvA$UB)&*yyS^N%^wGchPKYxD`MJwp#2wPVA@hK zL$h^c6qEr)0SE&oF-J^}WLW?2{GrWhEyM34X|G!@ItJ&QOt+-PA9LU(O$LUz!5r{o z>mRT9`Rl%RWB<)Qu@O6CRey@_$w=Ky84gYvtF>}Ur%r2tnI-LHzcZBl%&BjDyMLt~ zq||ka-)%OUE=2JBIqSUkd|Xlz^Zfk0REqRnPY<%jc2<0HGU=^KB(iCrIjJci0=32c zn1B>O?YsL%R#{mf6FH@Y*X;5B)_F!7b1Un~ca-InM9(wu{-#fy_xOQg#v$fnOkA0( z?NZHa<4Pc}q(p9GEdFexZ>Y*xQjsil|2*AgG;z9AOa6E*lP}d04%Gj%U;WQT2YVn6 z1t5+ICy^$Ds8#0o zZ#A=pS}Qh-cuGM>iBK%E7Y8#H-y!#R0@b$j&KT3OXgi~#8n12VXtiNAOQ-?TG!J$6 zTinWnnpeDyht)%Q)zxa6WjDjBqNL$}ajMPn5@Df$&%fTw4QGF1T}YnJ;brLgCEr^# z5oh?37KZ!DgN2jm=@Zp6#}5}3?4{Rf?vQpr=jrcSX$B7$wHA+;UWG#xcl-f0#F?Co zjEr$9DXflb;MJfD6w!;EoE$0hJZ~&d)W(a&<2#4;vjVmg4YmAdz^-buA=jG@1+Uc> zTp3^AbSyGp&tY_gEvM;DRED{DD>~k)M#n$P0ZAbC1xvuuwCV#vUQV^9`25b&)l>Ba zcihR+1?OZ<)H8D`AgwYGmf+iNUzdCLqB68Z=go=|765NyZm!7m_{r42VcETO>FEfz z6@g+wO7h?`CZgpJTZHU3KIB(hZ7@k^?JriFm9AQZ8H(Pq3mw%qoiEr_4m|q77=?uw z#HOt0mzI{S(U3b|5a96M9lDFif9Zx{86<7&jPJvzb&(hr0124bP$Xh#q zy+2)q@VA{Rq0lLB9&z{d^$mUFZl}c+z0Vf0-acM7Uq1E&-|d&?H8<wea&lkOn@$y|xT<9QuZE-}v6MFg2+1P;=2zPkv*BU3F@~yIrdy8_85%C- zC!&XGikX4l@)@jK=)-DDTyhL8U1z5nWPDXdQ{OAH2S@gdqM^3-!;e~l$L52I_~czu zp*%vEzVF%lpv;@+?3&4!XgHJ~pby&4L*)(qQAZ-1)kEAD?6Z7`=PZ+u!}%Js&J;}7 z>Q0uX(=JTWT*r*REI7m{i7+6bYyC&w&w^1W#`?oKCbK)%Hu0|JLLHJDOd2_R{*V=T_R+HAF-HgZ!mWRuqakuwseX=}F@IY+B z^n`PjFW~v}=PNiuE3;I*loq{T{<1*EQ4p!_uxQOUDg{@4(E)>XK2HW-C-J!Nr-ow^ zQ<*NdhrdsBOAkuRiyx`{e2JWGS#!aSZiM=@u(05M5%BUyX^zMz*E%c(<-hErO6abZ z=o0FF!N^w_&Mz7?(toU*+-^WJ;|`A7HC{VFm}&}?lID`=m{! zJx{9CVZHhFu1`kaPe07!N!ox;bxrO2iQns|_)Xx?)c;oM|6GqVB2uLxWtZu&)iR5D z8##yZm5)%xx`S)2tK-wQaCZmz5!2)*}RH<0w8M4~MFux?(yCFdkt-h`)sg9MNZ%2Id@5eg-n34?U zabqMvHQTb=M=-Jq{ZC0X;jEghgqUR&ZTkF_u!o*asZ&2zWMtg>k&s&91}F zH@y00BtVhhjX?ZI)+NR<{nc~+%rKEQ>WoYld}{#9in9b84zZh#k`G4ij~|SzLW*qc zgNxsOm%=tS2pPG=-joQRYWEm$8j0JISD2TVvhhV- zON%`+5?g<`&Sqdt7)Frt`hjS^-A{cMIisgII4I~-M?j~Vu5S6xzCj-aV~ra zjtIqHv&+WEPfi1p7rAM*t2AoB`>gN;!yg^j?_|O>iYA)s1PrxKs*Vhg z!Y0Ly=h9%1Akfm#7_1q)7n6`9ocrZ?euznw=}E_Bc>S|XyN#nN2UTTn#c${PhEA%4 zSN&~^yY~k9NhHv*y5&yH*}3y(WA9yPrJz!#eEV+?=+E%@f}vP?6z7}qz++-6o^!-4 z18gGN_T${+MzOWMxqz(FSxDN>#wIIYB*|es=&|lKEUop&nTAp&Mk60B#^&ayp_3L{e+`>x)8 znKr9Z?{KtxU@%?ig3)y8ldQ@&=<)KR*>p+1S{}DpA%f;+T<)*9goGFLQsy$6Gxpj| z>*@nz4NMm4JjSWj>5P9$!{}~)*Mhu&LCps5+}M|4a2DbgPzRpIK@p(qeod`?J8v>D zCbBu|UFDn(UIlKDA)>Nta>TXyxHm@|!fQQj`x>K-?tSA1Zi$6H2XPopM@B`xY->hB z#ldfpb_v5_yt$0`SgzjAtXE-DO3gX@u>~g(o|^z;mjG_0^^ad~SMi~*+` zr5x@}BH3i+m$``>Xld9rsV5m<0M*=&7D{G!oS|MGsbOH7zJaThnFcVK1%`)!9+*9m z+ZyWapqnu_=UJBr>TdH{UKsmSX8_LZgb1BQ9N1CKT#KCecaY{d8g`o+f4hEGet)Rm z;FFgNTOO+mq5dsYI4m%h@jEUzsM!;h85#>~diAL>;Xs94PpedmbMoNF3KsJz^w6b? z(5%Y^U$pF0slW5;_R+>ZShIId_HHdYEwW}KMBRm(-0$@_285Rm zQ*9hbNY$$KXAu%0aHi=H*ueAm1mBDywPtLKzf$v^*tx`x+cbtU!{uyZ=YxpDV^e`& z!1eGbRoVzY&ij7ZwBdo8u?fC8<1|bt<_fscK~yq(=_J!^f4F(lr!Klao?8`H(cwsV z^Wdaagf*?w{mVdipAX-Q7i#uT3lG(9L#QcvI|sSZD^mxDlvJ;^SS#Dll{b`*Hib?O z;LgBLxR`mpqpd}$60}QsW4w&x=>grFln#S2rFveAR23Hw?9zVODNS$Gs%$!TXXWUR zS0-+=>v`KCkt$%|ql!Z{SYLDAa_Od&-sSlOg_Ud!mgtFzL}^mu3MiOk?H^y48CsG5E+WzM;xX9BXyC|2 zAV(*yNps=B3>yh{Dr1{gA;_7_aq>!R{!p$#FQKlU+k|efNs?V|{Q+KGZgzy!GD2Xn z$>rOJgYF@|)gXjIKOYaTTVOJ3hOOVe@7?YjgEin3L*gP%4GY;4}<`ug6tuxf=5hs+Q)X zYPny|>%8cwdv9}N>-H}g=Pt?rkaI^Yf@Kf*gQ7DE(t|_EdR5$2$5gHJe(K+M+-~cF zS+!vvLvf5W$rl)}Gk5aJ%HCB&bqC+*=-j?OD1-6aUndjL^m(&GDp9yZqDx{Fjr)Jw+75NIz=`$ zFe_&6wTr!cXVKa$v~Hl?yeY}2usvMEWqoyj88qLj=NZut(6_s@4R_0MX&m8iNm6ujVL}Y@F zMXKkW%jO8C!(Yv4Qkp1F6#_eP`tZxbd%1W|0>{J+ZTCYjLSa-p-Lge0lD&b4e%oRa zxuh<|b7OVKgWZNg_o9pGODB(+evgBzn+szFWsx0RPj?>W$A)AWUi);2{7*QYMmVd+0{Cqyx=ehG4)=8zyrR{v}XzhTMWs7~X zbj#>~7gS3Obc6@8s~#WcNvX7>sin!j?2fr>u%JoWyR+ryW}k-f8>Rzy{FbGaR?;5# zt!ToAKuSu96PTgV{XBN&KEqHrjGAnfKOI$;lXC-KNLjXGQ*cNoR675-z|RQS(La4Y z8Tw04N6WzNTfM5YPF>qkb#23?$NzC5{j-pov2dIjgWIEr#|o+zeUdz>iZP8Hi5B}~ zD@#yf!#+{%mY43o90`@{xTY0zwVgsQ?Do>jf?~N-3>p)8O|wAbFc7LKV4Dk6`LL-tnIPNya!(wIiF>?l&qo zwXo-#d)O~9c|L_zj^G=*^Fu#r>ME|z5wx$w34*W88yp}kk{^r%u5jBjl2%Z0 zkPJOtQp6g0?11YwYJ9TdHkHZ6a`i-(APTriyKpMzL&?%2O`y; zXE5u{T43S6zFbYl((Kh`c25^U-{TM0#@!Sa*5Yzr7LINDM0@$xzLh?Dk6CxkW4&qHG^QrgNz z*7ou^;gz+X36=CZ)E44pk1LN`P_(jT0Fzq3k1UEAju|m;)tV`#10}Dm!{iq+!lR)N zQ7c+DFN9k1`nb*xrJ3U^S1%2I-8P6CYW>jn*w8x1o2DrcRr)A=IG{&yU$5KsWP8-vJN$Bd{sq11y3OXGO$%+C(e&sW>mOb zW9B-wgz$G_aI~~bGjuJ7a@q(BPim5$9wIW9CVoSNeumt5L+_d)u`6)ck%VKO)H(Zm zuMX)%OIJubt)2czdGqAf|HM+aPwN(G>ti%205RYB=sVJJ`t{JW#5&$OrYE(`!O}UAr3CKS6>1NIE6^~{`Kw41zZ7RyMeDQ}Ik&y8(zs5G;EqvNnM z93Mi3)~$aS5K06zJZ^=F6p+w7t7e=eS2FKA7_1gJchnJ6ma;qXC>(+5g%iz4_8{Q`YNBjQx%nniBB zQAJpp2ZK=`KKj*zA7+O7h)z5qC%a^#2kGCUS(A36z~V48Kl8iS0MA}%ok5=6N0C*7 zE8AJ2EvrIk{pBo<)A`CJ6LhF??AX&vg?qEND%2g~^|+6^!6-~lQZh@GseA1+XDAG7 z1iP5@U0fYsd4NT{u5W*L9`fGk2)DWWwnh66G(>x~Lqry4ewrblpXa>-2nx}K?6+%{ zwi%-D&i~XGUX-_i4#GLxHWht0F8u++QJ4O?(_|#S}uAGQwKnA$L zM_2O{KynS$o{w)ujQZb7BVn0=?z`!Gx7^29jm-rSLyJY9ma;_HN|tZhVx?PBJWeH~ zv;3%tP6UO`AEbi0K87tAqZ@dHaZd`JX~B^#8B3(0x-vCZQWqb-f^pg9tDxI>$oz&~ zR%iR5)eb^87nX#N9<|W5KgS=N$H{5~*{8(!*Vy)%E@O;ss8+-aDL2+{h)zvS*|tYa zQE&huZA!;b!oB%f3g2i8>Q{i;90%?F)W~n17GR;MGdWUvyB5ZVfgh4-Ft=f0fAoeG z|157th1fAyg#>WG{gb%Q2?DjW`|@q3lz{UnEg;T_bbBpEQfV|-mQprXa4_+cwq})? zY+|=}8|>(!eeB@ju;FAruFilN1x?#HLCRPPJ_F0VnszdSa?|>zc{}e&Sf=atR9-Of8kLI=cm6~rD!58U2(VIX%nypf z9FFiktX9mMQ#DB+nbmfsI6r?jvVE#D&VfIRJOikD)gj;=$YruD_HbVtgpUj15W*SyD}d#(0eQv!cdEvBmS zrQI;G4q6pY78Y)b^(Y1-!u=5KYO~2+3SWm1ZQ{l%ZqS5<|Bg6DdpA|Zl%$T2UB+IU zE%!SzgMEDV(YHXD$#;jb&V>8522nP6JOh8r;L!Q?p;tqSV$BZW)xlLNLrLpxf1e#k zjV3c`w!-aMbo=vjD+CbWj0Lci>1VL8rKy~TmOjuK$1AA$Q#u%o=?5O;@N+uy+9E5R zvERVsJ{kFV%iZUae0y@Bk;T{CdebR-qBdmY)?RU9TiJP(+PJlG<)3w80WsMV@pKpJ zb9RpqcvVL^c>Z}9VV+*+l!@lOyeMqr4Qyk+&@h3O&ez?&o=lxgaEXPD?d99Zq`|Jd zg5teu;qa#JvhRI59=_ewquH&fW!zy^UPpB;3QasmcMseTDNfDn{Lyl5^;b<}Pb3cn zo!;?ipP_pC^u%J85s5T2;hlOkI6_9|ICQ7N`dO*Fj;a~kon;uAot@UR$GXGb#)9oG zsLAU_t0>Ysjnp^Y9i3#W(FoLmYsF+cE?qOt!W&Wxp=j2En1fSWlppz`Y^=%|jRZor8Tj_OwTvIo=DAU`o58WGF%60o<`W2usGuHARyimdo>Y`Me*96AIfpe zCnys{C|%iE?m(BN&Kx~hptxujvNF3ndyR=-kJSJ}_iNJ5l5bdYZXnZ3N=Phi+NCeR zod=#$9L(=*l0-5eqoKEbs2!i$ zvGQ=it<1BevJcv8>B0H_fhLCj79Uwm7N}cr)`Sx*{&U%dIzW@C)k1X z+j`h_D|5yAaz(hVxxq2CNes5MA8>&=;n6y^QN%{Lri`jovSzwlkao;FB-`y*X6(iL zNhl)iD494u|FvgqwC&QnM<%6xnNQ^eF(mDrAlMN!?JBAN_~hxBJ2ID?Tl;Aj?TP8c z8!EjC6?-y_B++fn&UU&WcZ|Q^JaZWGgSP2gkgwRx^sis|%oL|3`EnUn2&~+lrQi

{IP5x(Z}9_5aq5p}l=1ylzvG_zhmS!Sg^j4_+I77rIX%dt%ah-~Uo_s{$5PP) z7Op@~+Mwl9ZvtGzrz<&D3Atb2uMf~9k8%6&PlB?;e0xo|O(C#Q(W5)ens(i_Ia!BS z=nCSuXAS&{j`cKO0f&%_#IVTc$mX9^9c;D&wZAEYuA?myjG*&#z8@E4`xa}aS7=KXy>G#zDwdv|jeUmP z&>sKgaZi&*FiG;M4k1`UaPi&EV)#OFm9mxmA}YL>fG$50{m^hqyldq2!uBS(xU zG@1#wz6Unn){;!CjN{GLC28?=Z>}6e9GjAMi!58oKW`7MB*>LDu7SaJiH_H3c58X-Fr|G>~0%gC5B|5t=iyeGD(C&^Re&OR z99%URVBukzxx>!z1M6RlLdft48pmDHN%MG?H3atEa2O!~G+Z}t?aef-ezyLEyuBU^ zV>?Qk<_j;{){e8#|!~_RZTX}e8L+HZnfgDre(OAhh%s=T4^mJrM zib*|%LcLCp!h$wFYt&52*{JWaG)8*5#@BGuYU?TUj%>|qw9o%Vru>C!gO3pK&99ZnUooi+MZ#0kqDFi+iEJ?a+iCPA-rdVw zo}?+;LeQ{p-X`Ln{Jv9PP{6yx&nbgQ4Di@aSIDJKu_fJxgeQQ?D-A%58p+7}thWk0cw zyWyX{SVlUlXIB&bd5;UNSX9`1yK-_?e_;J9x`!{b*|P~kIN`BgJn0;Lu$9_lvbp7N zSY!cN-xV2nY48kO@B#3daLr$hK+x$h<`UP_BQ!1{@>4#c5};<6$M`5CH;!}dxoPOP zAOI@(V`a3zvqZ+tw1{t7N4h73f_ub9^rcGh6N(_G&qf`|mF{@mg$^|zb6~yi+O>-gfEA2FQQ?`pm!Azw{Mi<{wx)D=H}+IvQ|x(S64mX zxpX$m%4}~}!^9cIjsz4Hu_u0T4sM8LDVLOJT7k(D&d$!>tM|c|7b^z`v0mxpV>{VZ z>XBPkEQZHht@S_${$7JgDOv{+L4Vb&T5 zm5yx(!(iT(Y#~iibUZk06YcRyh0wxBV=R6#vDcM$=dg*VQUw~xH)j!x+jS9cx*Ii{o=eG3VI9A?bFv{$U1TZ zzsU6hR(TD%oyS6MhJlGOjb-tHg*A1v_7F~7F#k=f8#Op}F}yW;-3slPWC^UTEp*24 zjSSj}24SU{1hTW0D70Q)VyUBk7N$4`tx|1^`3?Cw#Q)iyhc8g%@Q_*XRxVbeQ^8Qs zX~QNx&4Yp^2#P&)KxO9jhBatM$I2>1l;}<$>|fIgorn&(uAJ%B>%&v&-AIWPzm#Q( z+~%`wx%R$YPkQ9`0=EyTZYP$D5E$syLe0A{Q_VuZ<)1Wah->ff&ERA*2bR8}b>x3$ zma>8#5g8d`uH5%wLlmOp;83S?_cPOX9qrqX*yN_$1@Wh=)@ep&5s%Rt$?*Q}^1yJG zjb5K*$@GABmgXVO#?;V+rboQG*ASVA>-)&K%5U>uH^)gUqmq8OlCG-!oPr zkLypnzEV;Jz{}GXv#Sy}ULY?6a}-VDPUb^?CT{B66TAh63p5k;-Re+kju9P%(~=KOAKb9CueKocA|l$%G1bX*Xg$d{t)3A$eCK^xWW^ zh*tuJIKQ;(yfc|^sXK9%B}-JZ_?obCjNPJ9=oC4Y-1jR<~oDPrw0KY8eYY;u-fV9q>^1OT;BLS zHW?1ac6WOJaCn??cxv~BE*i$y*P9b!-@mq9VuQe<%r?+cx zr6V;Zw~vv0*F7bue9?EFQdY)6=x1W`;uA0BL9^*CiaCX@ZYn%a(ck*_k1YC;XwVI( zm1R++#(jiK!-{*Qkvm3B$(0+)<^VH@RIOv~(d%ZMBFK}+!e2d$wI0-UhbD)`0{A^S zx#a;mQC3{ZrKdlSemVue-RfbZCt@88J<^qqK1@0irg$th6y@?*xe9nW@z`nlM4;ne z+ic#pl&$&3(_KOZo?6Q<vzmJVsL;Ke9T`We10s*}5zR|2n-{Uh(IhF5cGp7d{_pa=2a%ga_@J6cSV zMx84@WM)v=1;LO{5G@>AqSKu$YOv*zS}RXE_Kx=x1R$P!Uu~CG(zF=9IIbQx#cz8N z?g`brwQv^^Syae+`}_J@)5^9?!2C%C!0^I$(Y>uqyQNdlXEW?)r{A5gu;;1UMS7hX za@Ix5mBC1&@KUMx(;G`Gl9fFg*vQxbpYnsA`?6!{OG0taRk!D)S%fS{_(pI2oSu3pa zEWV1;l$O6%s)ayXp{CBe;|I>y!x((JIGVdH{VuMquNdC7MA7N>ewrBcpw7Zn2JRfS zAan^SJf20pBb~6|=*2`g82oaj=j>BBZ{b)5ZCUgjun|=ZHn|V>U|7*=SoY6aLkK}n zaC+Ssd4R`Fj0wAsxE`(9@+5O(U9{bpU>*T`Ik<@r9?fJ~7$ z!>IkEQ+<>VKJiHO(4r#*PgYdmqyg!`JQtrGgRi!pa=N&P$csGc>xamAWcmPDPQQQi zMs#IN?soea>%4Pk}gMAJT;)WGm~i^O&nI+gUvPKZbQ1%GF%7>l^AciT9xXjkGrwttuKU%yiWh3DvjJp7n80m!zPUw03TFrXh2B zo@f(N@eEl{K$jR6rLw}90M z1>PIDRQAx{n+61J5#yCnKb?VOn%SIrEE_tn$6g%edYY$enDuuz-=jUl`W(-UlXmdg z=G8carrBKi;g0$Bx8j`-m%MNBb8Y9^HA6bLiavfkf)=Q5kA+ERBWc_cP}#W z71^fVehKM1KWc8pK+>WxIeSNmuA$p-gqLu!?C?~hI`tNVOxf{3#2%jRc3*8V)}j&XD%*Zm$DIc4R4gg_Ty=!? z^O)YEb>3bw(6c+zqkp9^i^mOMXmJWZ_2`YR#}0v=j>kxZ6H(v$gJc5gcW9^XsK$hS zeCxr*clHK#-sN5^t2)^kjgNRUM{4ZA9gmat5f;gbKIUHL%?ap}d6A3{wt)SL`MShQ z&s?^iiuo#jBD7nR;nSrR!=fLn7T)&qr%mNSOhHLdbCw!(ij0!%UKiM&;nQ%s-`1AJ z+cD%)(q4?E%2O}I_d+XPqZZFbTk4)WnV_(2AMtW8$)8RHsHmz^sU;iH08Rd7viPGE5g|wIRF{N0vYqrVxF21;xlKT1?qM^*NWxt!9HFo@x z;!8p6YHUvI)uD%VFhzSxCGHR3Zx=aCOJ0UL;&QT?|Drn-L7F*y)6rMP+=W>V{_X3( z6=70auDS7yj&%az=yL}K9pX`A8B-z;a}T))@YHU1T$@#d@b>(h@=zFPW751MnrwPn z7$*KB7%+U;rA<`Z!!uF~w4>%MkF=J>cP)WdkKzIE+M^Fv8AdE;@tKLo;;my(J0wpM z6w@lccZWeR z;PgAv?B*-Zc+Y(r^ctTJ0p127AU#ke!ox2sQKyssT8Tq`T=-62u0T6w!Zf3uIm_F+ z?W9v~!ZAz8*7NoNBxA9NM~mhAkoCm$itz5oiZsnr&k5Q4j%;C*3mvI4VURq^#~ZbP zfRyhkoZ?Tnrc8Hv&h?!$+zW1Dj@O~1L|ts?Ze!|pFHP= zktOHNGhBsW7T_Z(4IV%60lR}{^eJM*TY%N>onRuT8aA4`b#WxG^3QWEPX9r1X9rHQ%~ksXbfr&$$sSvHPXadL(IYMc_w$f_!=Kddu(Zo=hE= zWyQtiVhS-wA3~poJjRATj6Np*B!9c<02)~GxiFYDaz?b#=fuy$IHsy-Y_MX#wDW6a7G>!hoLlL;S8MgzH}2p`6;cZL zuy!9cC4BK9-zTzZ-OSJI@8--ao!m>RJ5h*Ea!-TC`i;{2l{sZlVCH#MM~iKlWmxbWtJ_;o#M#*L08qm;C$u&Wp$Hb4EX9 z32>)f>=M(lb`#OC>uHd^*!%*rhA>Puqb zNN&DYszvZKV&(fo*mc6K+YEjB4xB?nsWlX2*Ib75EMP>}opi0L(qmy!%sl+qXZ48h zyhjbC5D`$2TvUVY`NsHkoxkylb2B&zpHd*PWSerkmFK1YZWZZWq8%UUVnBPa8O3YY z;$o+(!Rh~py|;{tW80!eo5tNCxVr{-hu|)a6EwI4cLD@LaCZsr7Bsj9cL)|BxI4ib zUgzHL-jj1r{=M(l8*hyKsElf=YVWGO*IaYWwU(u7#9|W{xBaWN;Yo28xV;Yu^PIP- z>G{#cQK6%bn`1=7BJ{WGnJAoB%UvO~XFgmqxO%a+^DpWU)a#V}1uUs=0 zU9hKmMU95fVwFbeQ_qRir5P0kE7^dfU3@G6Q%iO?tezCqRmNEU9EKau3S%}uIy?xr znc7_<2G_S&ay!5V)}zewez!vUu2K`(QwJE0H6_4HgjzrPua!7=9(@h9#fmsK9%ZIrHnPZfGN@9hv}pVoND_hZ4n%R>Wvv5{xW}=6cii%-juOjIQM&5 zskL+_l}P@hX%r!!?$MKF9#4kek+(xTyeY=J?Jq=(F4R@nEPT8g`w17kUT-i{O$$zp zq>fa^_*gS-#&)?-*KFYcbPg%AW8Owl!ucD6ho9Ne;?9QhJvt71W%kb;pYJ_%$`R{X z@ej8%b4q*N%g0eOmtkOUABkq3CRUJh$GpY3&aW^yEP()UMR!cpUthr;N3Y!l2+6vv+;+4s z&(E=gITidWe8E)&lQ_Qgw7CJlLy%mmQU`Vh^-Q5}{z2O>xI6MB2M zTDHxYkibi8eFkjc2k=B5J|Jk*@~kgnlK${>d|#|G>)&SYmW*7e8^kzuUe(Lp@17(= zbw4)|bRD)HDVnp4+&xnnS$=JRM8?)K_g17z^0xWJrZzRE@udnDC;}!q69~{-_6?&Y zm4GD{ZhxGfu|x!PoTE@+6;)u&W7N2hrCY*Uq0lLjdcIt`^vv@@1%ul)IH^RGIIM@? zSqcet)uJRbuA_5K<=kaG7aY!xSfWt(%;3-=uK%YNfYj22=G(WarTq^*u*h#fS^a^il-uutp@_-6i%v6R-Q0EV0UZGl+R_QVTLO6k@Q~@@A3bhMw35w$;jZ=`)$=$ehcD+%p3ew-;DgjL&?h9_4Q_W&`X*TY9B$k*RplL@SS zs_gsY5pN}W^qf=Q^#Q}yODmZcHB=@8g$rrP2t&^6c@f5zwi^%@GJ`w z>T(^3YKXETswglC`VeT9;wRHDANKZxNsw<_WDCZGLh3Q!qQZAbHr6gv4ys*8&~j_xlSCwyk&tz?x6e_y@(u>)XjC(;J>_fW^RW z=b7wtXKyIA1sVmABC9yAp^)7)pOV#^(3fZiDNv0icwOPiUn_ z9o&xYhx+5K>v}zM*u)4ya-V>3180Rb3Ja%ZP6maUwN<1=y*!@B`Zcp9M!IGl?}Hkb z+?RaY9>;mm4Uk7m=JrPEPEfBp4`=Bl3)q)AD7SI_M@Jxc@XNSyyhZQQ;V@afn9Tke zVukybYyuwv=8OeOV`Ev90dWIkgz^WX36wbQ1hN5Vac*)6hv^)A{j^hH#9`I;wZu8HP3tH&m3o&Ve!~VDsAv*Z9VN6j^Wpe;zpoTG-SlKSL>OFzha3!afUyD z0Zcg$j{z^0&%4m%*%7+O7tO2P-Z>_(&3Hgvg!8VawOY@(2hsV{mmjBy+le@wDiKW_ zvdw?nGzyfCLPfnVe8H#K_dtL9)YjjoUlD^wgO2^dhG$W z%Gx_J=-ZgUgx8Un{W-e_QN)#wEd-|9a|sBAP+qSy9|q97oPKfNj#xUS$;V z+U14g-rk#}9HA%sO9JXyY&QE@C_TUG?zF*PN1tllrbv|*-CbFu%X2LB9KzPqr&n7g zn=^h!(~ErCh%h@fFrJd4^_JXAcV(+jS60v8WVk!s$-wZ=tM~JfeXY>&F)t8$GVXah z&*w_ka?n+FSHeVL1&J(U@<~1Rb{E;{L&>2h&Z^rUD}-5$9`G#f*4Z&QqnmZu%ZZ-u zYE_HWcy{99hlA;E*vfhkv^mcfF&IV*BW3USV_FP7eEl&O(D9_^)2KS$oDHe?4WUR? zCa_s$$2Fd7VIe%7PN|swu%%$n`FW41VCCln>S1Y#gRid2 z3BX{#fsNyvv_OoR9Ta@4=X`G%nn-Ar&#dj)Fr~JC zV}K0N#Gw445O0ce9VeMXLYF$_IuoPOOO_wvOnjHbxkCHAP^QzZ5aFkR+1vE9qvoPV}E-; z*9j(bZo2$_8Be7<2DRYXe`2F)~rEMx?B3mv89@lR_nA{g&NkapLmC)o6maji%l z7KAbVMs&aX+V@@nf}^%ECQnVyIf;<*s(m5$PpE!<#kFxlrrO^5V@h~O@V3A?qmf$m zZ8n1l)%vS1C(V{OA2I3!q90uM)ok`g7#)r%v%;`v;xJPmWytWF+j*(BiB4bAH|<;~ zM>e&|o@3u-hV_p>h@2tb)%kC9vx?VSjQ{kRNya|pjkAx^ie7G!x~dFa-`AFbgj5|) zJ$RG(PPJ9oyw;HkYG%7Dp6nzjLDZiDXy5JHElqGy*MJb2`H=z0gwQjf9^oG?S?B?3 z%WdsXJs~!(u9TLpi7yvicG5|4Gt19%N`y?id(xfx&@;gR{!~Gjlol8^KikH;O`oaT zOq}`h%6S#-ANBEZApu*b?yJ~SO_s~ip3^M&8)S-;9{Gqt=jpuUuTy;@BTI6m%2F5W)N|8XUVWBY%9P#7gf z4WT%H2vrBdB=bT2(pn7Be3#*gfx#mQsuSv*ZMtS_^{$oppAjj<1WxQG440u|fxMN> zKK}7?%t6BksOs8{dVA1aSQ~8roGCE=|aTC}_D7xd|4hiQ|C%7GLYc^&{i#4gGJ8;$L<0-w7~S*QtC6kFfKJ2tLs*nK*YbDc*`&q)Txu=nfOfk(xPNuF*rHLUS~g!karQry{EK%i4u$$Js%M z{Cd31YhHyqGJ{;usC=S%Y2X}Vk2LUvs3!d)0mFr8z>34o^CP%WJyTF)_dM)*o)O%O z?XtTA>8fhqaxvrQchMK*zu3Sd>Ax8*boXg~>it85kx$h~@~CSLms`|`sOSt0Dv8;R z>+IUfD9&9udWw;=zo+Z;Ru10TP>QIL<#@2P#zLx)pR1UW0QZ~d%4*pJQBVDi$SW$n zBm9oVqy5Lokd=RywgM%?SQY|Gm{AZyraSTw`He)GB^kfAhIYrv1x+HoZl)h(gKkAH z6w5wYXpBzZDwkK^Ci(JqYtZp(sC0ztB5(O(bS)+42%xc6C8O47w!~3xH1{~g|GV=5->+S+yV>tBeb{yQjA$K>dNu;{#pk?%U;MB>; zlvyj~-`Hua%pLi4oO}NQQ%i)aJRZvJGnD=Q0Xm~(k*)nigtcwO<;=^Lf9`!XD+qm+ zfN%MnSB`5*R3gS0TCdhZFdZ_!tXlPafggzKLZ@h}^3x1;?p!=QLXW5~R{(P4WvGzs zr#ORGJ^W=!XD>3L>aX$jWX9I;aL*Q!VOfBg&NblJ@ma}05s)B`fLp1(rZ-$L9w601 zbd6Y3=o^C465MR*r*(N|TX_woRsYg=f(JLpDL&?gUR!nc{x=?qG+=DTZ&YIEP_Tik zP0nY_pSC5}Mb`vOnX%>*i^o*~fx7yRs!;2SR!ytp%btH&PauC7%cb5gp93tM%Y=Sl zJYlxe(@BdISUws_G$Gxmp0jBp2QJO$)}Ve2WYt0;hj|p?WI}@?daVg-6)>DwMBzz) zt43g{@*6gHdz*5*jgwBIB{8V(KT*hvIR2<1AL=JI|H^o3WR@=o;Qu2pDR%<9RTyAZPHZ-#dlYKGc@ z-fixdvg2IJ8P8NFy@D+T|LLMQ($hQ~|>bY=k5M2o7wm~y+_WbF~1 z?!FRcW1{CXf64+%ZOtK2KIXlQ!2@#SaBLzCwcXX&M zoO_gVm=spsh0*yQN?}C6bk5Ujr2xqb$~_)yYZl%3T6~U=Vu_pin14EqM4QK&TtHH7 z_SRgKWZo1#4KGQFyxWEkvk8lG=^^OV<-MinTV%Hjal2)f)eP+KQJK8}ScoJ3v9i$z zN{kd>u9cI-leqByCbln6mpN(uoDonFtWy#!JbEh`Tg|AL_4>)UT=||o9}V9B&{ek^ z^^jxh$1Fau2hyDITOcF$9tQZp ziXs;^ekKTg5Y&3Sn8xyTS9`3f%5T(dF_;sbZCN$E&Bbz(52|k$Dl1QBq<;bbtV#PW z1itBVe@Y6VhrA83}U6tcVNBrreQuiW}6}M~j z$#GSmyuU^K16dA{)NOBoEv~O_7XkYhbaCQ&1fE=0QQu0HGhCQQ?$YO=0CkJ6zA*H> zCu+!n`aI^tZ(HZr-mkUtt~sQuF#2y~jOF>+HD~2urV0Mj^o>LWR+o5&;va%xL*J#j zr#>$iLLuulE4)rkn2^1c;|f4v9r8+tG`r*gM@aiEE5avB{iEd4rMSs%6})0&H2=vR zy`{TX59W7MoTn+mHwyHR6DO@4xc^+$b5u3-xBwk=c!fXJW-OG0*!V&(!$rn_e8Esy zsp6261bof^cnrwk6cTb01Dq>w z9OdhR{Ath~9s9JK%@gu##Qz=DIypv3r|U}Xh!W&yq2#K`yT;+B@pX}-qr`GbBV2A| z1O)LLdH!jcnXcQ0IY#wW6Y5HMGMBJ({5|o78ckv;8d0;_HZ+~`V=N=&B^NN4SceVpGbL( znZTt^+0}TlZ{R^5?LkEd*XvVuyLt%mLVIoG#X!5yUO>6UqsAVPI z7+)ylY04|~_J`;LE2bkO^!=Dd@rRVRiu0DsEq$Fy}8TprDM(XL?TpNUK?cmAl zdPSwZCM6<@dwSx%+hXx4y1hU?BsiGG(JZW_fB^I7x zKplhTtZQ{Ji?b^k;*=QcFgten;kyudd46P9F_aQ{g~RV!#+hwiAFZ#OUW$~D)ADVS z_fQB=qo*vw?$|g%-DlCqM;?ho6Dpo+aKde(a_UR|W3K_4FKBdPAV@k1+ zJ=a9&Uai;r|MOv1i9o)$swZv}R9TZn?7+nUy&@zB@fCI7=SKO*FI3Mic zvYQ`j3C8a3**N$*a>i?)b2C11KEj4>GkzsQVIWmkS1&N_7iiJ+QG6c;U-;R#Au(B7 zL1PBC(m1)I#DH#037>o1d*V7$3w|PPl=4SaWj~|l4IykGrSRy(O?Rm{*&*R zUK?YUUR&R_)HTvr@RP%TFu0d{{kw|+c^U+4$Byd6xX}gCNC0e~z+P&kugYM~c40<2 z0;QM$fo!(&x7F36mGy<1y-O8>r}*j7JDBVg{oj{n}uTS&m&a^J)Wd9D{E<4r6%U;&P9j} zlVQo)$$rf`J`uZVRg6pewYq{&63Hd_7%z)&d>Ey~F;ES+NV;seZtK31CO&H;W#@*% z>(1mON(_wG>tr%K=+YpZQu`z9(THT6ve51m+?^NN3T?Yjgc{p}Ii*P`+$sKNH#T?u z3aHbf?2HQz^wTagTcLhRb;_`}a{@lXe0;Q8xVkc_0mriCX+zOk@aEac>6CNnJ9oSp zin_POQezt)*6sD0h|aZn#$)^S+k+~`@mlxDoOea@6fB&t4z#RIM#Ke8<_*=-Eglgv zs}Hr1-$$!vpF3=s7p6a&xJ}LRGFFp0Bt@UR9vYELdT=a_$Hs3pzf1@29}y(;MmNei zK9`iPq3SCrsVN;pUrawGtJd1OdG+2Xg>rClP-GeQF6sDP)MXD|FXbCx($dmyy;@Qx zx>-?U8M6-_=31^1a%xjzZ9-d`!CYj~3@BlpNM<=i-uke6sN{Fj-l9&Z4;Q&D$8i-# z(T=Vs2v=A@AB+^J8uJ70U(378lqUA^BM6^Kcm5-!`w1&Bp;j?zE^pa4G&2);{-7}j zGzrDLRa5r1Y&0+HhYGnv!R zsa@sj(J&l}99CHVMQfxi6O+x9WcCwa`29!xXj#c#0tN|hC=D+_4V3yu!n2Gj z5LmQOF^ruW?{OVH{FX7CxA8_H45{?nz#3mwJtMhl7!FukcCNLc9OGl4HwBnRi~4Bp zab9y*wvds`bgr9vHo)XYq%8WGP`?OP|Fe~=okX_U<&gnyALsPDh@wEfw>V|fc^a_i z?bW;lh0wl~B9Iz3srl$?^j&kMD-V;-Q>s~;gyNrUZ-2}9b{zhaDoAD3dv8C#Yjw7 zY;ga_W`T}iETb{-eC%~aAts1M4)FbH@ImuMXeOCRP*vFA!=Sn5=IE<8)*S^s7VVna zRXVnTzWWOn0FvV<8HU&ded?&IZIq2 zmbb_k(~;!Kg*^w{<(DuVzH0vI3`7!imX%DJYO!S!k6*tP;NV-PE^arDQy5CbmirFE zE*nWcua|J`p|JOC%w)-&2Q9iF1jikiT=v_Yd*MdX5hLYKe^Oiw_$1ltwgWabt5&1^ zcAKxafQ;I0L8Gdkh-;PZl85tke(~ziEe+)wR|Y%NpQ}FxavPWhU;deF;@OFb_2}hK7_4I$f(e z4y2JPP+gcM+sd^(@L0V?%75@KkHTry2EIQp6U;ux*4o*pDbJ+!VXA9dP>=nqI#8buHL0zPb{ zD~uq>ez~8&iEWAJBQ-XG$><7qKfbzcbF-Ewan!6Q-n=j~yeqPn__Y8j`opC3!n^=A z!>A<{P8k-ELY>4($QTzUb;DoUsz2+st0L?kL(n(=glN87&0JLZZw~V1NZ^>$c50?M zuJ%u$6cIayI5J@^BK7bPO7HJy8%Q!y_8$yekG>Bc?-IVuU#otPX6@{mgHEu>w-hBW zZH8aj^WhX-)lCWhDDbm zL`>~xW6&=hf3|6t(oqO9*gvp|dwL?Z59{SOj1=g4Y3k_srD&h$`l1w8>=Q8Ls}Z+! z^(^;^kwgsA6Z>iyx%R?0wlo`=903dWXo4Gm+()+ApXqMLPK3KC(5<5YJQ!)O{k$}r zQG@))xuh1$qIUHp1f^C@a_w*}_<~?)!HV)h<}aMH+^EAl4X`rd#>GY8aX={G5vi*+ z7bLvau)f40Hwx=d*0E3%RNp z(G&cN1eg2Nbbl*e{XY7bJ+vhQqAzQ1P8XTfOd{-8yMsWksUGS$Dj zaY4X(%{RnJph>MU#e57*G9nbh8l;qe8@RX-cHvv^5gF$*BK}hnL*`9G!)!U0$(Ql5 z=#j6JxtP=K>#TFvw}x3PmIQ%O=vID7T8D1a@mN1YKb1i|PUulaBdNJ~|{Qd{-k-m!Ydd4_DJjI)YS#_w3Wz zY*M%8(I)9$LI&mQyzcV0GqXHn2g^w0#%vDi@JFq~^S8u?Ku++6#<9(fNQDBtdP5}X zqVP5d-5Jj9u7?r#X2C`;b$nR`-o3nMvsFpDPV#w_?pAYuYUyPqv0kTuaj1*o$@;kh zv}1{elrQbc>d#7Ti=osuUz4Jwcl90aKE?MYp#1SCJI}3bEj>u7Rp~6Y9^M}B>xRIK zhW$JXXjP6CU&F~xz%&JFGTtMo68}>u=;%}72R9bW8M3aevwgG~vN`Tx|L)vDdj3yI zF`Kmq80AVIPS8~wS8^j>eDlbhFC_l$&D};s=twmw7#uZNfn~|%5EHlW3OiVCBCXCvFu-C$N(h}6QSdh2&N7LCoso#R!ukpW^UB^-5WJT5%(%Z@3qcC&u~fE zk!{9idMEmqVv>!8tk=2DPKb2AqWhC9Dz1%(_s$6U5QfVqxVCKE!CTX|*k1Y~Xx@mt;l9i>zuTOz&cvn|ZUn#cHVe$XtlrU=p1wDjK z%4CoO`@KU!Y*?THn7Wa7Io}T*KRoO2oSSJtO|*RFdqNQ^M5yA;!K1dKjW7zk!+KH^ zv24%r%`<90^Wn63l`h*O8a*L%8V9+J?Z{!0!v_KBf@+p{lD3nxhRk?VE-=j*e?mf2>t z_1pdTQS(J_6wS6neav~9Og%|V8yKd*8{6Qqdw!Y0x@-{Y7XN>YHw?@hs2T)TV0q0W z!X%LVhT9kfD|Xa+#{4&romvpe7D|jRaLAuVH{c(>Diqe4SRfJrJ@&<)x~9cvL7eU( zf7t(5e;DLN=hW`cL&MDtj&K@1#lR(b`WY ze($Y9DT}}716FYab=i&le1NWVU*&$4K+43X(;C` zi7r#(xe1KIIV}5^6R$j1_&4z_HML8-pR~U6_7>Rs7N>((AiRxRUZ^ud^kUC2_5y@} zNX;44)@BOHXiIy^~avqV8j4k!;`?S^6NN8K9*Vd}- zlkHv1K9(KWM#75ASVkAXP8V)m5Li2Yv76r6PLWj_<2i>1POmM~SWS>5B34RT%z1;A z!695c*}UgftNz8A0(a?KHd#8A-ziJeRg@j_6!!*?d|H>cRu+S4zenKOUK1GPb7v<; zN6VCcah-06{^DBHS-ansm|T^Z*DbQ`1j;$=eK{j-244>I8GoYxs6uFe&n|iCXLEofQ(E?~AqXHGuJHaZJU^ZM4P8oz^g(8BVLM zBra;O8^I4b^Hw{lVu7#Dif^?rH=3qg8%33_@@#S7;ctX#Rt;J7eoDTxXL>9ywi<~T zc7rq~sD~67eXFjjO54&RohS6kp8PbZ!=V=nX*E8+?2Ve_V18|{4+UGb)Od~{bJ%Az zleEHjg1|&#RYhX{$2KnB1$nLQdsY8+r<)^xjj*`5Jd7}$bGaZ9N9U~As^$W94h|QI z{pR2MuB>NuRWJi0BA7G96Z&6R4MOV2H>oktmVt}3(1V#IwP#qTF0)5tZOgA01m z9Ew_&8i*?qG|soZgS&6{jiD5zM&&0kGhfW9QlfG_d~I1&ZEOW#o6AO-vvM1wWyx2# zxcoSV^4f3JI{!#44OZG>dT|kpk@Q*ytj0DzxMNk_}R`koLoGNX0{&vna+)A%gzbxh$K1Q_*(HjK4cMwuLR{@ksDX?j(D>Mk3XmS>mv$mXM-iRdJuMP^|4sQ<8UDRsBp2t5vBTV#VUI z-q^H}hcZ&*i?1(0#5LCl{ES>49t~*^XcLgkZw#k^!ouP(%Ss>bWf~?<`jvEqmrwgA z*4%ffhbW#Jyv=%Aj$@sWh17B%w7!a09Y`vsaKLC*5RU8@kMZ5JW zmsoxASyIeAIl)tL3m-sB>w@$hkz8EVy`w0n1~HMZH|bRpW1MBm&FxzG`={Mq9&#e% zq48WD)DtEXAT%`4QTL15t~QLtcmBl!)-WTE+TduZ>y^GUm6WAFKHi@tDCwmL#Neyf zDmj{l`pjt(>(Lwa^P`GY10fMB!bNQlqoPCgvU6BLp~c>)Y8J#JnS*@jHiFjNVI+Bs?nOFx#+b?MJe{zx!qS`zR0NbhS)YErWjO=( zvBJbx9C~cKu4(vkfEWR{ZBq!0)o0id3feg?UX>(x<&E|V-$Jx;owRO;6h@3jhcD7r z^>vDk^q2RmKV@q~q8L9rE~I__M6hpvH*WkHd;9f3O?mm8of%mL2D^`To&xmQauHIH zRymJ+X`PgqU`=A4N)m%Ap53Ci##gJLZR~yTw7$nMnD|t{$&78&nuF!s1H8Anr@2!r zx5x{yN(R`rV3L0qd}Kg~5rJXRn})V?BOWx5gCoDeJXOIwZ6!g!Ucf1_7h)!vAG440 z6v(R7Wo!tR^HY9}80=GX{gw&H-)~;LYXt#$?pu$3mMy`R9{RRfTwIxmG@spigT|w2 z^Gy)4w*Jj*{M+aRS^?|T0eqorvNYn8A!626c6P)F8>tPQPERFBD^ab<^+O0feCQiL zOR5qETN>x#s0@lrC!=Dsv#nvA=n3@n4qR{UB_@gIGozl+6A^oRq2o)xSG-(Ct)Gsc zW~ACv-n)RAg@+Cpt>NW1n!Pt^G#Inv?$R@nc(o21pDeOrKPxy zJd9w_0NW3w!sIr2_ekSR&9`)bi4~dYQe*nzOe89d7RDt5%WIT!2)D3FB#o zD?O&&4}{Lfc2$8NE!NNn;k%#S@=Gwg^B4+sCig~cPyZ}m3+wOGV}wTOM~ zFkK9fG9v=%?*R2{sjD6PJ7J3I2zgc$q#VmH06Jx90adK1XZrzZy8Nx~Pi}9~B;KYV z^+-x~i(9)ZcL=l|Mr!-+@hL8aX@<*mVElN?MG|6nn2K@T;<+J3?_VUa_s#+uxCD@f z3Gsv(jn;ondiY#Bex1Bbsx2;{VdS^{fdKk#g4nY-X+vv47u;xxnea(>(e4<O;Bjn>BJ+@N9VGg7*DmM8&{>!I+?7K-kG94)UJ;Ota7QEdC(EKAo>ao zgC9tw0DtU2$kZc}9jMYYGg8_G=|B(qJ(;VXxom)tJENLL9%$W$xQOC08^v zY(oVheSSR?#lgcttX{YHw*Ia?7wspHjejaPnKrD+>i#+>H0?zp&72K^TMXtCn_;@Y zb{=s>o^g|Vm@d=W{Cw_6N;Cnyk9`?+yTfjKk&;uRBZL(WvxFc=NDClN99zQ5PisxRkh!QteckOCH*<)xsSAt zqg<sPDZz|qdW#jmqm=Ola{K{3TfmB5IovI z4Zm?HL$!#!Y8-n*<_l{g11{3PNp+`Cu{wJITi%Q_qB@}+-9LO8L!rD;lkw2`vO{zg z6kEy})hj8^xs|yB)WX9#@bW+gY=yc#)->1DKk>Z}OjF1_Jjfo0r|m(Yp(z|d+6?p` zA{XjwHQI27L=uPO0ppjG3&+B5mVPtWY?CbIWAO)DzUNR|$T%o{f-Iy;^sMK-r0+zm1LUAwG=4vn<~ zSmQFAdOmhuZ#gDNnT2sb55~0H<%bgE{OJ0yS^Yk`cX+)k$V%cND@*Bq)UowbJEUq> zj&UB$%I`6#@Qkj{W95SdP9Rt&z^K6{zU{Y4{+2P|T02>mOS(nOoog&=9#M2QMvVh$ z4vG{#V;Q^hc`m3+@rDrGwjPKyd&8-T(JUxfq_kgqic_IPi}@tpp6mL?x+=wW^?i#! zIMGakFHXX*=7|*AZuFhU!EVRdhq84$Z#h{g%xrFEtaVO6{X6!}>U0ghuCe@z^! zop0`>;UeDtl%#TI@yYiN{W4z#rcd@QcOqx^0 zkO!RS=~}~s5tWHq)^j)X#85L*F6d`8!P`-F$*!iH!NYm({c??_uVYOj6`bqPt#FN^ z)ax17&o*V>^Vb?*1>T8Tey>Pt<$tkFMh`e+V7n!PRAQoMK5A-G%V||8wpc)QoFce; z*+BnhT7|H~(xqqgAsp$a`%n<)!x;^RDqyx^(Uh5D-4)%w<}jE-bIoV%Au6dm!%+y= z04rA;n#Y8pdkEWc$&lZ5-RpXw+8^*4T&nlesr;R49|F-?C5EgL_jdQeM*l7uZ*6Wx z%{WqTLigtLuoltQjo{jA9QLy($Ic3jL+{YtUOx!oxJ7$*Z!4;D0#|eM`{K<;_!lGK zK715U%sFUeRh*^U%|%)-<33=$(-Qd7%!4%J)IRn06KmW7=bFW<5i+;d{T<;0ob&Bi zF;W%>%ILw?@A_Hc}$#oKm0IXg`J&zRFhM2iOXxyN%R3UNW8lt~E*uPxa|NFAS z|4(Wq|NlY#$E6kvMEJ#Vo77_NIqnoeTG9R zUqFOH_&FWPD}eSf&6u=uORYg z)X?5!tZSnI9z8Ukz^yMsnQ!W>={avF1qct9*TpX#=takqoiHLZArRw< zQ~oWrz1F;ImgdQCVSYVe0o=6tSnHv=ukUE$?o0rk<~PxRliY%W+rl!N_JSfS`G^U+ z%F65M)j7hl6qT5{S-XUyosS%RlSBff_R!}FBieG};%T2h&&umqDbU*(8GT4hs!T-G z;)skwQ;-A`XwVU}&21v28_?1YG&qDw{@tq<1D<2$0?Ca`BOyYdSSKL+!{F#M$_80s z$$Ca3qyE6dAdN7U{(HF9&|^d=gLzI67)TvomsPd2kYtPk6 zt3^o|>&QD51q2Akp2PxT#s^|jkEf<6a32Tf7|C-vFY|#TkZ#5l;66vM2Eg23Txhx6UGUE+cOq>;IGh9QTxHhMT+vdX zudcOI)>DXoX>NVH+=XU18#D7lk>YzCfDw68%0fw~WG5p*X0t1=)wF0cFw#f&8h*CJ$K0&wc6AHL;`qs=066X*i-z+0OBU~q+ zBtv)sAH;*2OqlC{;KcRftXNKL^Y5Ljy6h00xcK#56kkEUZFV3=(Rrz;=R;VpXvLil zq9EU8bx(kfLOy0QwstO6{>q93fp(a``dTtt%b4VXIjJanGs0u;P_lmUA^!Lb$Yw*9*E%YGHFg1+K;=V5njU+ zXbcgGzaYA-(nQ$l`Bfw3uU*O{{g*^dIx@6r2J@FNHq< zln?``58xXJerM9rQ#O}T*xvr~GalJCPPwX)re@uzwT6F&Riy~RqKg-zwAb<%$Z}Yr|i?6}GtDk7wosO1aKGHklOD}P$)YR12`_=@R zyqedWs71twJ0@?MjR_Bw5A6cVM*a+KkIM_~b2myc(NK?adnopy@%hF8tv1^b3_W;oSLOKg|Pytn} zVKUpT{wPKKS3KqigMrR60KqUIZ5Sk^VQRK&Pu+&JsNX>i zs1*jN&}3}~iL3$;o3SCq=aOx!T8toO#=_iHHJa3)BC!Or#|;e16c!f?yV|{Ugvhmq zhP5)bZfjHU-*Q)%EH5=I$caNZTVScn(~7vYtu4DV2S>fdNb+*uE;a!fSyC|kjZvKY zOA>k}W0pl-FPDv;xPDER`QHK(5)hk(khcyYX&_1As(N}XBqU1HlTJGkJH~BJR}p4H zv7SH(^Ujf0rQi8hW=Ap@ToqmJiveQI~eOzfo!<9X)htoySuQ+W0SKf z`1wQQvoy%5dL`90+azcQ1`Er}r7tcN%vbM8e#|`U=^sMMammg65F=M=v}>1E&hghE z&(zj(WUrrZz>n#tj?d06y*p04ieyeWQ9pLxKRxBK=CSXPyMJh=Stcs!G8R3uC zYU3u2<)nN(GD(+{BPasmBTfsc&A`oVi}E?FZYz-MXXE)t7@7{3UM7z$}ESu8yr+v9=|PrD8xzlE?|$P8pOl+7$#;zZfL@hlb&An z&Z}tgJqIAK_=^(Sk&irUxmMuXDY}-oot@Odp$ZWchoGQw=og#PYC#eKGW&e*ZQA|p z;riP1wwE(a&aZDoN(EnOVK~^A<0C{N=q`G3a0!uzp$jt=t8`G5Ydfkzaov8cs?e*B zc(*w~-BI5kpA!T47*tkfJL(eM z8g%U5}3aS2Xuk}EPyJYE1n$0+FT== zz>x-U+d>H7by91GvTM!K=o=Y^Spv_|l^p)|i3%kT1q6z=((}v@^M#y0R&6ZSQ49q% zVkW1)Q$HoHn|X;<0w81(t-gf?VhMY8da|YEBP58VMNzXjYUkn3Gqf(|1V`jWPJ)B$ zGXypDpIQJ2?d>E2$T@7#(CwC@)1v-kyt&CR^Ak`9I+~gU5liJg7h78)DCpPapG+kV zV;v44r0r{}?*dX^O_jsCzBDxn_igM=;Y;4}S4$T+;>x4K=%Cp&uvckg{-Ve=`QtxX ztJAOuuY#P`J!6v7k_a@L6%`drq{U(?G;E=XUv(0YkjQZTwsSVyKw_XybCdNZ5cFhD z195;g>K_p~B~KbqQ@5L-cFs8^oyek3($iT}H838_85hc()@)(q5E6N24=Y41ztLTP zdvEIyTUV!blZdpx;T5JVy{LNpj_QNiOkZbRm0F!MakMr(@gP>H$=TSas%QyQ`*FKz z+?V!5!S?k&oY;%`Jhcgu#jFg0@zC8~zHqX_@K%v5l@0Ml+O*3}Ycy$T{Isage_@88 za%srsQ!bso4RKYeX@crpa2wq$pZaQb%*U2&$FP7+?@`dM!j%#i@ z+c)c6-I@qHp;GM|^FEnYMn<9_CS!B)WN~(&9JP1`b&!v{R zK-rnwM-Or`+zG=+(>0q1@2@y22V(_FiPBsy!rp?gYQU{u%s#Uh7 zJlI^fPE*~62|1dd_g?e@`&kaO7Zz&!vB6}WNi$l>rZAcKJ)=d%d?1d5`=b`^n8@Cb5DQ+I_k{1%F0?(I1Jay?L^Yu5_ppy`& zB5WL{FJLrwUt@;_!h;#UcvN4T?_^#Q$dIv2fwjti(0`YGVU;jwsu)aQhw%9vX4KT| zy@*g3m0!d?au>7fCm`_xe+nTrye{^KzM5J%zv1zQ%UfhHn*94fy6MYtGwJUJo7Ql#V*%qxV94>(V1 zdlCrG$hv4Rln&@{s6s*ZQEsg2Mo#fBSo$(_KKpuR{srN%!~;bDSmJSBzZ=p2bKFHq z2XO!?JH;wU|9XJ`{*L+`1k`-U{VMdAJ@_v)G>OB8!1y?0a_yMEZuQ^aLGFnZD5Yvn z`a3W6e~xRuLQqZ3S2m1t2;%*1;{Sd80g{d?MoG_s{s$lh+WMv1-@*@{qxv7o{xA8R z6b8gc#KcL1|HDX_T_7ln`2xA`;17ucVwAstAwtAx@E=Bk#}9E4@a|wuum3x^zYfST zArB-ABfaxak_ob&e&yqSd<52d|8tbou?W8~;XBI9zqxDw9#xREGGz9o{ewWlf0zVW zm>@Aqj@Q3tc1XMnzc4*PE&7uE?_=(orhvTG>6TfCI$2>TGAc$q==P%b!$EQV>41PFI@gZ*atKeH;!`fIiqu1)Rb$Qhv!&N^^%3f5IT z9$QZr1XoUfelSLdxe8PfecWFNsE_~v!MA-Oipt@UQD#2s1B2I&icQyc*eN$>ln)ILeCS$zikFBX z2q7T>xJxfD$*`WZx>RO5HM77IiVATD@tUQKNH0Rgp4SUXRvbgTgjo)C3Wifj-|W3e zxNlS=AWoZX`;5>4>>{fG#_~P_m$m_#zz|j_-oHL*$nqw){qm4%IHdQ!7DaBHtA`gpZ=m1Fo&T9Cdf4iSa?XQjG-_k=N4AsSziaYcYJOJl2 z#*@Ouql=+Z(X7WF;q#F5knB$dnKBh5O$JrHSQ{7nW5Og>+?y~Ny246F12F9E_Io$o zy3@zN&)4J;@=y1onNVWrVtHhWzlsR{^^ctYmrs?s5Y=F`14DjB#V7pKyFq68^Yu+k z+Owf;{g%XX>i@&uTSrB?c5%Z4f+7e=E8QrmC?QhPjnW+o0@5uxAPNd1-7zBF-3$XF zQUcQ5&5%RRz|4HN=Q-!-^Zxy<^{#iV=O5Or#U0mu?f&h3?OnEermUeL?KBz7b2evi zM|W*2l|&eGZwnF~nrP{>U8~`<^1A$(SUvgSQ+oP_dv_e?;smphv@}85S8-}^?`@uw z{+BqiGXN?ib}zQ_EBn2;Al<8NGg9K{7yVK{FaldYq~2m>bg%kf?ygn6kj4CX+jLD{ z+S4b`|1w5xs zhL0%Fj{H2Y(`JH~_b0pqrI}bnp zKL_uFcyK-~nvmVcz0RwFn;aMR)aeA2j1D6QiqU6KoIid6Vlye&4>9*|zuHV18nC=Q zp^050oe>RnCwL$6@PH;rJemd}H&1Yf#~_byj9vo;zBG^`vq@G@m1f@bW6^pxgoyAG z*J31c-8ogCLR3o`@_0M<8@^wrw!VE(et6B9C+=(d`9;6XL)(k(8_0}ns>|H3_#IJw zQ93G8^vL6xxiv~=B~Xq>GIh`(=#oy3(o+_2tTiO+78lg@#~VjWlceUU-6N102vO6;!98RQs7@oOv-Y8b zI*#fH-|c(-A^D9SDu@W=*Hj_n)$eKZeC4eeN4K%D@}yfC&Z$Xv z+*!1XD`5PTri2HWzdUy0cJ=^`h}*boB02AC7%7fC>}i=pD;lrrI~y(S&0%KfRueQK zB5P6Vs)sXN3$XFIW>h*MSQ&E)EuO0lfQV`GmeTQ;s4N)sUbElMMy&T0TdSL%Ud^aZ znTQaH?=wDzQo$rmA2aRtpFA_{=ocad2iT+qHs%;e9t8`PWeM7U zos|aR;N6r41=oOxL3V^BHx0hvqMZFNYyw3oV_%`W&Y$w06iONIg4MN)WYTWYr?n#X zBT6Dc{2w!CSc9o2xUsSw%1JK`j6o*4tY@gVnm$8&vRM`B;H5Fdfvk65fE1?aTj(__ zG|D}H)qCYT1Ayt>*>zN$Juz8UQ(j!{@!2rFdvUgxc(I3W0%{jOI!K)j8;;Dhtl{3K zivVs%rix!Kn!4>ZCMnw)B0YLG0vu21c`Cpjs&W1sg_6jfv&Ys3F#4FjQ*+YeZgp^_ z6xv2SCftTixoldGU$I$X?bY11ddS}GSZ~Zi2x2G85?OMJ7}raue?xx5gF1@Od;&Wa z=!4ljF#I8ZstDf7pF=dwm<`#9H$vG|?=A>J4e4l6$FN7FEf3=*WFO6^*fX9oMfE9S zYIVIz_!30Sv@(ERJfR?50_GrTOCsKZ!-#iijXM&!KGzNATI6_kPn|K*<7GSA;J{k! zhu5#(W7V!-+@tPVuJic#VQh?7y|{$0o-c=(Q&Y+lrgxw%F%i@#%AU`C5lb zk4*97#rhF>2;TtEjNW>#sZ{XZPaX=2Q}nk{ug#x~TRXO{TtGjm$TWVJt_QjLrcfCp z& zG!J))n+7^121#BCcqPo1n}0noF0XH#UzGw+aC?{fxtL&9FiyzcjzY%0$6#<=Ntx!! zC3w+YarIp`8~@|-1zir9t9!P19at%F2|jJr7-jcmMCBq5&{0k?Op-GKSUoB4O5r%Z~oNXNQ&78#UP?^VFu{t|TaV;m1|cI|qbG>cHN@8#GUT^8 z2E;d>!i5e0Ba8iw59s@iueDQVPvjQjTU_7##S|die8PLUi#il#%t39+!Lt{nNsLqH z=gA&5`P|idWadEqS!O=>mhdqaC^6|(^9y(zbzcjH%ySHi z2f#*0$Mc^}YtVZ|2u{DNh1can9&7u`RtDNRnB+$a$dixN*xS>wOS+*X2H<*fYa$Cj z?>IM=7?~9xotM5j&4h2~%JHN>aEuh&pX1Igl@Lp1f59VgHx~SQf%YuF(dkt)!d{>t z7Q0WQ-z>G?k|)e?wCzZR_@Z~f^m85)QS-*xyu5qXAwF35vugH(4Zd50y@xdWPKi_0 z@2elec~}w6*m-UdTShQEg3k?JTj=d|a_UxJFgJtU`+RvMVT#D#cc7-*cA8;Ya5a&< zd`ImqMc?ga=V~xus?FL=8r5A6Zk3-eiUdvAiXol$VUxyBvA+AKk8L8Kh+x-vs?Ow0Fbnmi$I8~88GNLPZ9{wa`LrKqP+tQS zz%PPFn=&5^ChY__gn)1(%%$^pR85+(j??A+z=%c$cW77Q(bJw$l_`(hL(3f^5cNbU z&SyKr)V@ZRHr|29Sne%294J}VQ>?b^Ah|u%d-`D|Y!123N7EQ^p!hO9by{I-%nT(b zqo~3DJ-6QGm1be5Db%-mbV8)j4%A+=Bl-ZUf4ZAkRYmA?;^`dMCje7^E*ruhm2$Z5 z>m<7eJG6ydHtM|+m^a8vSWsy+Sr2OlJIo^8~dE!>%~>-Y}#f89~S zrXQ+6J{^)d8ty9d+|^Wc1cTT-t%lx5eubJMs7t>&n^JiaGYLO$ucI+mSe@z^5&3o_ zQmw(v7Csh;oP2Lm;C^^CH(+keO1f2nnw!?fa4-a0U>@rw<;7jpoi^3K>O4D=+IH(W zb8Ll8&D=ww9S=Q3!7f|tgh=Y}BLD1^F%8v{HS|GQpCQYFSg{Vhq3KuC1vZ%XRL`(~TKWA7Y%T2?(*iaS<$n4% zUGG8Lc52^jt+-O*;88~e>2=4V_Tg{!W=pGTJw0`rJSIKMfnGzktQB6mDQ|gBMuGyw zZWwQ%G@G{$oQPf++xyLSGEDT!$vY~cqPA$Rc!)Mfq;Q~W?D%6MHuf4!RDgNQVr>Ci z^!gK{jrKHV9;MAMp$F}bO`?U&Pd+bJcK7PSt^4XS5a-!aN>Nu2>@<=x`>|lPj_J*} z_GJMPE$5em{s$w|G;mh`eOQ*+sja-1v3p_3&v`53A#4{H%}HNkL;q1->3pfbRP9%h zFCG1kqV=U?C-Nm)&NB|B(I)kWagM^00+N~P*L~nrLWsfJ z`{N4`Cu}*a(rg;_-GlIJkOp5W|F`3bsNN#O zI7R9@yUIlg2RKSf-i!{b3)hZW)3py&Alju#ubNQFZ23IsiX2t`il0 zv)FP}HcZ(3h%>jY?8)>rNwaNaq`e1iJ4YG9`3M!*qlL)$zn7(2!&J(Jag>POo9Gehf2XszoJsd}%`b!hLI(h_bo*xZz?0)2Xj{ zF021Z6Vq#iWXk|U4DHmfrLMKD7fAWJ82I&G%!z>{8-$c5{m(0E?`^&uxmz-URoW;V zVfCkn)h{80wb~Vo4YIo(X8KB9_1ouv-WnSsD_rP=Hf_$S8P^)k=nx;(eSgEplP#D> zb%#-Rmq@`=h=C|_>~Mvk9AP~Z$6KJx2a zo(2aEB_($gH8Myq8~9&&9X1BI9iGx&muJ&z%KKV+x=(XiZHXN}+ULOz?(Dj|DlA{O z`)MXb_uN4uvh~^k_vQHQMiWkahk4%^V>>KrqICp%(Td^sK^!vmELuP=R=_O&q$L?P z5icT+el@i>b4T-$k039upyN79L>wi}RaALaQ}v-!TzAhF&V)qBnT>s^e^RrWG&`k< zAGfW_yxqb>h>OlYXk=a$@x0aOc$(=xg;{#cfbiZoWK#rKV}dEgVSedIymO%Fsj1KGj$2l7`XkatN9h;7=0TXRjnE_%`r{nJ}j}|p; zsyp{Ei1C+5ABO&eT8Mh9qVeT^7+7%XmKEfFO+T&R%NeI(`K#bSn*{$I@XP(u`WlQn zjpA%=p~)UH4)`8B!ukO8+w{$hsU^>*n@bCuzC^$@r0M3`OLT|#%-m>@ZWF=c1mjkM z)R?B&bfR<0d|3o`?&31&m_%IzelVEfBqb)v0vQ{^t+&Hqq$hX@K8f~-kk-wAgKT{X zIW^CjVcJRAt2B}Qo18a-zo4l4RiP9D*-GiG73cV=HA!W;56;X+e~{;*m}>XR=lsV< zY&H_sSTeGWa}o+FOguGG(tkFY8a&R1d%Qopm~R;t!nMky5U=mW!obbyz8>4sT6EN@ zMX`wPz7D~Hqa4Rir=Ll1G(|w^^sy~Zv4;h=Dy840Mq7{dPDprsS!0ZI?`(pFKka(k zl*x`cdU_Yr&n&<8wkJip&Hea}k?eoS{hZ$#JFF<&ka=zr3cof|+eyer>K>rk{%~iq zw^}P-WwJYybiU^6$#ewFT5Yyh|hRy32ITm5^S#Gt9jhLE;5*MHbt31Y&r;Hjj6-!nGG zhd#k(Id}L+d2xB@1PKwoT}2!ft>*E-t<<$Y=v~#4D6LzBlu}q|<2%%}ea5g&>zOW$ z-i+z;JS-n*b=61S8kuiidaX4pRarZ}@Au6PWKdyFMsB8ntB1tYW1&wl>vUWihWGZ> zs75e!2j98|UBTXv@hxJ=xl>qRmCI=%!N^+q7xvXWnwEkQN(B1HlE>D-NouL0B?QOn zA97CN+k%qk-rpqPO>Wx~1{r*>(O43eBK$1JgCg5Cjd&GhsqESvAh@H2{x})4cYT7* z)QCJ$%aOidj0|UgRJXzLqNr@gF#>7{0O0f|&yEogcA z-eM?Lz-1q{W`8#dRB>6&@|R=v*Pn`H;Cw&G9>kkhFJpGITf5D7dG52j@yQR*_Z&Ie ziZ;dqn0Ij1<0A`8Qwj^2=WK;!b2!I|=$w0~3TFLM2O7IZb}(Hk=Q;7(QxDmOZOi;hE2j-b)-jjgMo<_B4_ z=Z=inwl{Y@7MtZzRxUb@SL zPWq@OO$O879?X9>@GYJ#$UsIQqJ;HchIA8|G|$#}In%HLsNM*oJAHyJIg`vPy+Vd& zZ7V3#SfCprgq3YN&yb-hjb&(XN3q^iV0%0z+kLPM-A!J;2sk&^cTSia`ziR(m+&eF zk7_Nd3c{^uaq!;Y>OHFOZPHzIB!KZv+wh#tY+RsDjOXT>3e5G*WyE|vlCdsd(OZCX zJh7AcuCn5OXxk_!`OMeG2!UmEYWtAvL zTi&?0v4(=1!`KljoMivN8J+xX1VNpc&~7H&M+E1Y$i-BUSAX7Kep$xlt01!)d#=aF z+81##0kls0Pc{A*c25|;H<0@05F?s!=#H{*R z;5qv7+P1wJPi^hV@Xv;*CS~jc=BqWAhs#Xu2X9hy&Oqq zr6YW-h+);{wRtA6{;P)>XHaZ?&O@Uj`-g8=TaE-0KODLuN4c=QopTL#%`KP{=cK2i z>=_JPt90I&{6OFPk{oke8fDEGPq%rW=A8U|+18U%Y~s>nG?CYsZg~PvnQ!gmK&P`f zM4TUtXUWAt@;qxHuB^-}gY}E5^tMj)vTfz8>&1p?gM&|Uk7dXAQn!vs=U8Csx836* z?uAx3$%igQ6W<9Fzibn)sp4aw4Dtx#?xR5ozKc^yfia<4w?4l81fcPS{pl|G|& zVH%q}rUYFfMCMtb+=6^*gZJT&Z2s4E;=mxSCuZo>G;7xTEXAo4-F*U5TvF%rA|~nH z(2Fa8@5GW;pT4rU5O6lJY5=$N7Dx**g{dhzC!4+);r2OvXOj+B^I2#7M|3N0;V0u( z+*%;?ky(6*_lC;LxOM?OWCYVaMKeth+!XbmFiqBZjXk$8!c4nOCnf3UMNoW@%dN>7 z&7h%Cv|j5Ka=QRys{N4*Qfwk~$1nAf)oCJ_*|fE^g%(o`Isy_OjwtfDTwZ=|H+nTh z00ZY*g-D)(t!7S%9!8E0Pt5RP&(E0RF7_{i#gVHWdz1PYK7>HaZqh0c-pNWH70%?q zVEScED3nL)0|t5tx2KY4Q!rOzG8(hjg+xaB6U^nUdmF1qSOj6yYcb@!W4*7|H$D?`ay9h8UPLc+&EAJ*_Rt4-J?jr(=vop|0M(wVA}d8+j`6 zJ&bhUJHg-mHXU7@VxSkKm_V@>$C5S0C6d6=v8$>o!8RmBH@V(nZV3~gn2^u2X2_P& z;(D-X=IwEQfTOI7=+t$K+H7PZb~$J>voo6FEiF~F^8X=8%;GDM2NzS@l!Z_IW^NdNwhGFrmd*kq|$6tRKF5ewe*A1S(b3hQhr@xR)v?KTi?_ z7YH|$I2i3N|2XaFwaTV0xo>^G+MIlsG%+($rNU-veArD1nA$Qu6V-flg=?3DVU`Qf zU@yHLg~PIqNTj|lW%}*KE=S;U&R$Elv7*dkz3mdZmfN#$E)v)sr|g#q@VP_Sbr_ zbHYO;#<2KSFWIpg{nMgoSWK4P+kW~x-PxNf&La#>5f9i!+!^!S3E-4rr0D7W9<&s) zHQm-eCcO96-I4D^GbOPmMp}u1W_DAnm1{ZB-G)ydn_g$6jMGUZA|vf4M;3PKaCZdD z$U<5t%R%$uaOT_t>mx>}KH3G2I&0dzo@?SWS`u)RKzN=+PG8Kjv9WcOdC!q@nQw$n`Q;ed& zSxnC;UZKf-W#kI)w*w_LS~|U^hiKX5L(AJEndkHKW{(bf&8}0un|%)ggUkGkWi57_ z`llb8?yRHB7aHWnj;GaT03|ojt{}_)odU5_9o6Ws$QtL^Qz`~&ZOYRqYufg0yzJFi z%_s|A6oJ>)59$~h_K)Q8u2!W~LnC^7x$jP#T=8vco_+t(!Ka&}|Hr-RM^>R5^#2$U zgK*q9>?`B&My^3%Biif;X2ICAHBaZ)&2kZ{-$J+dr;gObYB9l#rY-yRxylsI@%i`MfheqjmDi!@ea-p^}wn$1I@`)T%W;=ThhGA|q!n#ct8>c$bY=9JHaOT(lp&?Cnsq>-TWx3A%~+jVph` zlS)*3#ig)?4bgZ5Keec1csRwV7VSW}UuUdM^d;c<(`fo;bxc@Frr}UL%4Ghj--25E z`flclMHKw0KWwUgqf}&`mS88df1lK;uBcVl!;wE={UvliW$8hOnzs|t9#SE6Yj1GP zNC_rvA+av(9LR6{lJTW`a%o9ol(`Rfzxxb!CR9%nJgEB6D0U=?#Q*h-vCj{Q^UNKT zgHOdh_c=j^by~>5za0CVV$##@)f}4wh__BeHt?qO;zuGYJ#MbqbZ~}G*~J$3(F5I* zd?JWy@Om-Ac`&uik`*HUV?DaGMBmIOqh)(cDj%uTJ)Z=DXd&zUR}m>4KQ5=6yZtq( zIgJ?wR|ePoB^NqPGF1(JfdV;k674l9C!Ik*lMHNg$5h?bkT2PT$=6!&Q^ zI{uSv_=PoAG~gNFxwt|}-2kxhpB4Z0tL+T|;I=RWQ!D<@e=L&&Zsz}P`QMKHUt$x@tyA;_0|7ks$f!f&wLB zrxt0A8iv@V$+p$%lY*wECq?$OIcuA$TktetbM~dD1`q9>?46}}ub}6&^z=B0Bkfl= zV|psKl!8NSYjnm-rueUs?rE6w@$)CF3mNB#k|!Jkvn>ur3zUU&DwC?U$<>PuN*0#FK> zsf8r9_KdgLKSX4ApNJ=3nI?6@0Hb&0R?<#>!ND$&50L*wt=g8rs zKO$rceq2LLr$iDvK?I=F(p!W2k%LVfHVsKa!#g6hspHD5_c`q+94Ep9O{P6)+vJ{` zlzcTS?$~=#88}sO=)biknI*g5taY6;!b4qWFg&GV5VG)iMA&)bYl^U)Fk*gPrYJJg< znDvZ!kQa&f5R{Dfo5iFhft_5wx;vM6VH;x_CuPxYcc2ac_ewy?y6ECK3S`g#bMQ%c4V%YYk4u>qa zcI~_;cEg0I4H$WZq8N4+hbR8rS!VO#r>$fk!hmi4k@O3?(7Rxg5R89?cW~W)O=@1S z;B49G*|^_P!_lQ^D6I!+^!N&>HCAl)qv3Yo?SZ`KuwNdE4Qx!+s--mN}*@R z_OjAy3Z(GEdC3pnT{-pW^A>?OG*P5*`b%=O_O^_8*3HsG0OYaG2)XqKO_^Q7fl`wEXcrtDyn#CD7~*m! z&GcP|1OGoBl9&Ko(zorYbqg=CHAojDOXdi=m5pPu1yfh~FQ^ajgVdZuT9|`^-l|4q z$goO=U;Wc+{m2HMbM#(Wi-6e$g*y~Zo}$EVEiM^|`oLF3`E{ug>?1@;2?-X25oj-)bQj_|7haqE+9x>MV2`mGB(SVvxS!CBew6J#!CG@KB-|I8AapnOII z=+&g4S=B4aKo6{7Iz+iDi^{T9gWPkqOz;v;q*O}OR%X5B2vW;@fp^KJ62LHO%ZL{Z z;DHQ}T$IL3<~Tb$Ikb%Q?hYw^s9~JpGR^2R5u9T9T4i_iPOFrda3$OIQC{{<|MbNp z{f8xqp;Y#(Ye`JrNoi>!eZ2{ELiNfgkNFj&T2{*jDm5eGTx6MHW2mq1RXMI z3liKcC4=7WBKG@Y!0=>j>GO+Tp26)?;KadUy@$$@6=>+w`?Nl0Y<0GGVRcr0rdqlVEh?Iy zOS?vjEC?`q5IM|8hAO127-Oum$W55ZWp;^C;P0TK*lOO`T~{RC@`S@1+HueoPY4Q7sVVt^8zWiUvQg zyLIHX5Q;Q^JybjF<^dsD+fPz*Ej-;+)ZT(0`_Q#YHmVQg*Uuw+_+E?qoQ!7cys9&> z*mN=AhwiN3ePZ?+lXZ8)>$$`(MbGsuTd8Ht&a4kKK0&|N#o-{nqS1_C9ew`c3jg#+ z5?WS+uNM9h^iibEg*Q9J2$`XG$Id4UzG-MgRiF7#A*0mME%PaDm6^xw?Tn3! zU-X+9;pg3}`PUqmnnJ$|xgC~GG==XZpW0rOu5Fr41@2KfJ!`QTtb<9-wdPvGE^aLL zCcr%%F%>&ANwn)yrUu~M^GbA;`UZBt>6jBhbLLEdbJr|jzwZI|eUg=$IMiD*Z^B3< zxaLf|szV_?S=HI{4!&>KELme*B0w5y?0GptdD>S#G0tb33rundh+{v0+&q3WaGG7^ zK0!R-`T8|8l%zfWefoc@cz#hP-Sw~BWjk4>jrbMuo53=awnZeWsy0pujqeT`0b883 zqqyH~cHiXvhEZzFa6x>j(#hwUbnM~zq>Kc2zDKEdfXqgrX1#T@zK&HkzJ~!eehV~` zd+)?ZX=7H?cK^~u_~O`HDKmclbB%WnSy zDAE>z_+F-|sc(7-f{>mZLU=d3IX~C74^I<*&`a$7W-IgD6peb+QV8vt`oh0@lEPgu zwP*NF9O77(0QOUO8RaKA*bgKqtBhtF^)P%IfIswU@*fNEtEdH#orpE{Xi~hyO6dl6 z)?8Eytbzo|#BeJnMv?)2uWSCu`iJb$?>laavH?zRI@wFcH`11blQLkAv1zz@E)?@2 z=iBtf04f^$)t@3B$N~L(OU5T6++VoGP23m+IRnD{Zk9{TN0LuUCVuF+rftdJ?(?th zX8=OGflrS$-dCU+dng29tfeYd0dnfqc zj|FaKb_U*q$YW#0eaG{(1d7hBrFtF-dQsWHe~?dwJ(OE|^VIE+cO(V@Bv4)Ch>`zQ zV#If#ub0hp0hhcl#?J=jJ*YRBCr17m5D5bhe@U?{iA&IsiHS`mWY{w=lD&*0hto#8 z?jmje&e{I8{lU3FIN3JrqrXZST+Mp(?%l*;sxfjxnyuwPHu8O@=fSXQ1n28Je|T5< zT)+)mNHV(MHJ+zB?78D`b6xHam2Yp@m4jI&TmAb~d;a)RgY{p5;}MP8;mvMEX3FcT zjVCC@4!~Xc;*Jjc7O)}!`S$)_|Ld2CMaTe-r2HXmHy&<;Vq55Cl8{dGjZQI?wZE0e zq1C59#1N>fo&Oa}sVmCiB|@ZKeLlpG>G!-PK}LC=9NEFv&cg2k5yanOD~&_+6ZEuA z0P=2z(i5 zKfpSRY>2VAAW=tDzwCApmi{V6;e@u?DV4A^`9V@ zyc{1A+z1`!+C}r2w4=catUM~VoBH2Xf^d(Rf!!5njs;GY>oOY|axU4*h5B7JIB+g( zl|w}STHb$b17N9vPbZMShnJWk{VXPaG`?9L`~AhCwZ1sv+uxUgaJ7MtN!|v!i{Z0H z-}#{OtUzfwpz_V#2l&6BmcI%0IU2a=&T75p6p@hytI@VEmLhuve^+|xkMQFTCBRgK zYwFq>c(}m86uH=}=#M1#kEPnavi!R!5N_YEFu)q^dzT(}gh);9>z=}MD+d(F*1-!6*=}J9$B=@!bSnPeeCHAu=hx7A`CJaFPuw!4Rt^NNb^yjQ88& zk+%2%(4yj-*{vygW~SiqUL(VLuef;Khbq<{Cfh2Gd*B!cvl-qihbMx=qx_1-QQeEu z-jY2O0Fi$$F!8rYYACjG15W==G^&Wa(b}fmq~24hH(a{|du@fqXHmM*-`zVhKEWXg zdhK+Wz(s8G+aJ4OK}J+@wT(6Kkri<;@@7RQxcCyhDuhNfF@$XO!g5Uw1zE}`>|vN9 zoWgSc7*G3g)o0I^&^9b35v*0etu1rKEI#4BIjRpGsU-=}=P!U}q3QuAO)2B`*%aRf z``!1KU*$WrjE2~2J?kW;EgkH~9b)L5ed}9LsQMmVeVAEzHpd9{WhmVO-%xCo-Ts=} zVK|R-B8sZm?YhdXKR%pV4InXoHisqNKx+`+xs5x;v1Y#tLEJM8hDf7Yi|54G=o29)MkxgPoKnHeZj>gbJkXOk}QkxIHG z8PMvEwGUA$`<%D$cQ48MS@k7G3~!BzJnVCCW^&t#jQnohKV7<)*%?Vp+8ZK;&J#cR z26g)+%xEAv^_ydFcIyLyBeIu_G?;_=CKE&Ac&kz67^XA~oL35FXYWF>l1FvDB&_4z z&+x|R4o^(nWnd^R^Y?5bk+JD=RpyK<)1T*FuamEN##{u)d-$--70lZCY{K37jGW>+ z5DCkdw!sNN3{RrfG?YAbp*N1tCV|m|VoRr|AKkr7_CD=)Ers~y6xx+OEFD$2rrs=O zvcG32o|ac(7bkpg(>7$eLeiLyRUwpUADvSv`rDp~^5HbaX+%VI6Yx3(XSFlleoxb^ ziSADvxpv|nbmj2<4dRo2Y7fIXDSe)m@ebHVXBTH*F4f**1vZB=qeVZbJAPAT-?GgEfCJ|*_lLwMp|m&k79)!WRQ)ouJ;N7_W)7GP8fp=TMI7%6l=(k?y) zdIdC_fn{$oF^wTH*BMf!*fTP^YNyL2jyekku8ochDQjvr*JOw;`(CJi(VoyMD0X)H zVx!_?4ofyB-TX~D?M3Y6w5_67wgXH{I4Syp?zh10tGus4CF>J>b-Np6JP&f4ml84_29@FJQ0Tl|KG*yW6xV3W~~NGHA?M z1onIsP#3=Ly%;suUuopkfpW0&_wV2Ha&&ccat0fCLony& zS|fIy(e>hIvlNCMnR}7HO32&>8fhA>z6=$#99)hdcAGI59&sFi`~2J4TB<@6MXlXR zv;Y7E&HqS=dMWdO_AvVc#b5&mrA+^27NGFS?b9P|`r@Zji0X?xbj`wurUa|0>29^8 zjlt1zb=ZD_1W;i^v)iJ^=y#l7{k;;jMVx{j9i;gv4>ke^4hT-Kld{a zoR_ed?@&R@$mQ46GxgD)dN}XQT)gocj}Q>&OA~>xoy}h`+@_@$owND?ctC$I_Fjba z(Ka7H9vkRo@Uk#20k3(mG5Aon%59AH?kBmm5y++Lt|ODzJ18o3LdDcH?c@8-$g|LjU?@@Eyp}+JVxl-MFq+Y@BOXPEQHWzUx5 zgMx`((tM&Uo+6zai|`zkeX+vbxRL4HcvMtG>$A~3FW^1r*_`OTL`#QjxP0?pK3&WK z3PKNx0WQYpap~HHB!Mq4qU_#H5zLa>JTsy9Ou!0&w;mwO%`se!OL-!yN?|KAiF^ZR zFz?d>z$-A>L0uxlgmb8KRQG zdbkC?ac4Hw|`I$(TecT`^bxRv>;g_e zHXECs)%A=fhit;{U0tx z0pM6M27_=_HQPde3LL+b-H|%Bhi!!JKy2-Y2)&#lZVtqkhg>sHBu=Yqyc!fzzN3Dv z_K<{V{@^gQiloVmJsMod)n?_7PcoY> zCB8$!?+^muS@~Qo1(tP=j|J>$|2e`6utPE!h+Wnf;wj0bKL_E5dfo~Q8SojjE-rVD z{`OiXGvM_8qt6K^KQzgvzrGcYmpVeJ*)d7_OY6bkzd3;m_qEH$5rZ-^9K|BDx+U_< zCwvifdF&Ju{`$K5nvE}^$TVSR_XIDxGIMQX0qC^5)XeEucg>zpKrQBx#}gU&;n~d0 z!eL*PbzkG2$H@AwSdqoL5P`q=KL>~a{ybu9V+}f5QR4m;ec}N}e%3l*$S(c~y&g=r zbD$1qP1uDwW^2VzRZu&}a}aR;{<*=Xr9m ziwG5I)!xJG>96HV463NYS&%==v8~@iLua`!+rzq^hai4bNA>Mr?m?PcrX~pYVEcaU z%=z?Dk&#VyM0Eug2i2icjb~0iXQfQ>eaC$u<=q%;J8A19jy(!Z@d6|!$RwaYvTOpY zjXkHSGKM%pk54b38uT4O%bSJx&qp|y+1Q3BYg9flN+grGp3Rw4*yB~)r4m+O z1n-^8pcwx-7YBSkk-$^H4Ero~HS+sEdX0;#s`9x|jF&G%R+W3u%4-QPJR-tcO@B&? z!uX-lax3n=B%3J$JY!PJUXP$g_GmI;h`1Gd``v#uU{D)9o|ma_HBmo7(4)^}lmG)5 z5ClKaMb@{>aDg_O44u*bPRLbDNrTWXGLH(*6emp1Wi;i=TxBXe+#rpEE7o-i)SbC2E3ukBFT>qO&RMV=8y3YzL41``**<(Z}^^2;+)pC18VN-op5b zYpa|SF2_!Q>IWrruWR*ElWfJWBGy8QxYt~|l50F7dpXkjtkih+%mY7n3DKKW)|#{) zS%JltGonr!k9TCS2XEOqW8LzF@#2$0S3MsWuU-t2C^@iuN-)@^hNucB^gR`4S@8Wb zD1rUznd^p)2>JC55!En0{-~YEMiYanKe9hJlLdY`PpYvVH}5qV$@FRboyhvN~d9E?#1-Ids85?8#LnlA1IZRBw^mRCV}S;uy|^k z#u;S1O`YiBP>!G80rHO=Ju`sLKLq^ zjX#=lm<-It`0RDRH!0D^;jT@RH1IKRX65FosmxO0*>?;m{2m%T-oaI)596hE1I})p zgI$`v6yJT^${nh_?z6aB6TFBvi8{-8-`5We|JH#Vm1wAo<`G}3cC1d|GWMs#cU^g> zyLYNu>Y8!&UTqA!v3S|i_!aR>^Bj0_OXvjEPcUutrU^rytcsj zv!nxa;mHWgweL95w-1qV@#`pi)##*{Tiji5t#fRi4Zqs5kMeC?3s1G6bfml!`<5hI zlU-ZlRNHA_X_dp&d$FwRB1eXfW8PIa!=$0rVSMt}!f=H*7uF1qGSmd|nbRmHek1wo zzm7mPrjY@s2y~cB=Jshy1QMJWhMi}SVgi_CjVsA^_a$iV^+k<|!C+P5?69neW2!LO z;gSu%sLqirDQq^s&!GLb+%>u!5pxO5&>oKC$6IlxVs6Y05>?(Vy?5R$LL2F4#I7lN zY`0~7YA}I9Wdg4Bfr?tOhp^3XzX>kQb zg;Tr=KKM>GtfR{twWAuq__M3=BvlOAM$9t{d6{7h**{&(WO1~;lV}dLd*|>IE$b^e zl4$Rfr~1OrU0H0Q=<`y|<(J6HbC z{}bfk@4&T6`2>i7?m*=K9^&~Y@-}D%1e15c`@b@Qe*wBmKo%}KZ}AV+_}4u^DiNSR zBA`D0#y`*a8~^>c0nu+f_^)68ufD=UI9Q3Ddu?q@%eY=EJX{NlBzX6=T7Km>*aVP( z7Z*^u)a|OwLee1!?y-^C29^1N%FX&Uf=6>SERwT!N&-7JMm#(- zky&jnrKd{V-k9Y=GEN(;9 z!r!#X5KzJif?VlNrDBrrBg4Z}M~y%aLdi3@Z^k|q<>i_tY3#)U{Z%|ngRjyQmz1cm zc9K1Evw|ES*KDO;vF9kUbOfrpxx1nmhL4_4JYD49CRG(M(&A)0OiurKp*!7RvGqqK z41jX#0JSh`CyM}Y3*uc3LwP`9A3hf6XHF{xU*D}Av{uznvkj5aA{UDS%S6e>8cDmn zel6{{$MsF&`dgXlr=KUXhXijkGI~g0gk>z6`ZFK@gwVdT7`ds^*ULc-hw$H-_#?@4 z$KY3<_H<0!1<#G*)>!7rl<)fKCpT7jV}5-JGN7kt#KMNs4Gs=A zOCk6uR*{LdtriWN z>dR`kJ~cLcRf7YjzX8(iyUW4qqVaW!4l7#L6~Ao0F(YEx)c0E08EMMIPOUAUC_q*y zp+>FMwK)+)|9sV=g=z26=%WaJ`|H1xu#zZAWTwCQm7(~!%%X&=p{k6;ubcCSAJSAq zxPHca9@78)l{aQUd@UNfapPkTKa&zA?}X(4P?3V`@8f!Y^+l69hTX0A{pXpoTj{p$UzyX5y*iiEbA z*zg-ae}kXD&<>%yC#tS+Q_}CR^no*iZr7!Q2Y-&f3y|S?%O7T<+lsuQLY@ZYo>xH3L_5o_`xS7Czqa#D@92)Er&QePsu`FD-mF zL3x{{|I}`MVxHR5$}L--MMC9~w8R%r^|KCjUy|En$8%QOq#zZuIH6J~)9tQqEn`Bm8S$(ojs{XY_KIeHq$zJez!0Ix&D01i=+Whc7yj$y2<*p-I zTN4=X^ABon85!z(fA@9X?63CWKV9ssd;AWnd<(FC_icN7S|%#0?xB`7uGOZQiLmJ0 zQ0zN86pXnbX1}1s6n(HKA<5)q-7&U3R`OzC`IF<+?@c^o!CyK_f+jCGDM(8X-e0K;GSvZ{ILbNC^zb#&#I(^H->g{dU}O5Qn3cU( zMQ7`3u(CH$6lF$t-ae-PrhwI+XiDvEZ}uMX57)Y9Z*OB`y3?qM1yTcczsr)CUwrnW zlf8NGyG*sx;G$X@0zbr>a{u0;_Uj#DP?EQdi#t+dI{fp#@gi~l{uj2attRh zpFbZtwD9XRiS8CgpoYbUTNyVIw~kgc@3y(9{Q&iCR7{&U?s2=>Rg6tCN%>gI)tdvF ztHi2{eiB{lk>G{>itxhPEKGGh~bWk~EwO^qv)8S-%h1~5; zX=^>-@tP-qxx$ku%zXZKx_k1hDq3^{5&Trjq8`2%7 zZ~Qb#0qgtqTjMIZ^*HJMaErW)_|_Yqi0WKez{c@T4am>=#QF^vT2@qESv9mDLvXR$ zh1+s$tD(4<);sOWHBwnss2wW1U)_;+Iz!^OWt&+f=$cC|J!ZT4yIp3dh>ve}?Nz!( zD4qAotN@ffFk8BOvwA@k-d`*ipK|e1KaJ*q%ZUSmQ9ext=bPhTZ+|+q_X{z)HF5 ziofy5ot3?(PM%CE+xc!aqy1f3j{2lVzUB4$ipL3~&)3gj3HSR;uGO`hb5<98WffS* z&s87qw2*&sMc*PvQNq5(*-@kBsnPmQ2C$ObZZ1id)}FW>djS4y$=7W$Fh8?G$JB$D z9)8#U!=v-3QtcLI4V|5z@o+?&+kE82*;8Z9tHy_Fa&k#>ZFd8Xo9((e?QH);;Ncvt z1$r7aQ9A5T_O*NB^K?YilW<{FB{vycOC%xfZ0tRjOv|YACgKuECa3|P)uvB)$eV#+ zb9V))$mcIqe2@Sear5%~iXfX8j5$W7l2p)`t%aOqp4p7MyMhIsu#7G@Lh}fr*G_ia zA8U z<`L#Ux3OHf?$=K^GGduN(F>Q9&vZ@#EXa6xx4%VGHlV!8_z~SZJN(U@X zF*7k%D@%L~@*(Ex<~b&0l+ zwrHJ}*flnpuj8fI?vnmv;QPxJrI+~bMDea_k2t#)tGsTP-4>WmdLa9S3{^^H?Jh6r zV`K!I+g)s5k$-L3wI#Bm4Xl5U<~c`l?!Hbe*lMN`!u3YjpBB^S(nC9{NksTG+hjOb ztDPQ79AoG6;@>FS?=~M-n_l`a`MnRFI(^273Po=*`}R{t?8AAaWQC;FGXE`t`IWyx zzQPAK|Eq&ruQwl;)M|I0558DZ2n~N`ZTn@BWv)R;mls!=WPaDn3++2X9kk&6R&Y0$ z*llqUboQNXIPWW%sw)&?B_+(<&uPb{9A`lR#o!5g_}0~oWzgL~eodLf6K5U5Y?*{$ z+e$xZD@N6oQ=IX(^(BYq2fsg&qPM18g=Z)>r6ieq|0QSoL)moFv1xuRuk%emyL>-# z2^G)f|5TME3qI7ifqDzcyyL>x)ZPze?{Rz2#1Sz85-`D`_?fQ_iMvZ_gx!90`of0s ziZxr6%m?zz*zbMMmii88%TegQEmmq6`ycndI*&C&%XKBK?m%`i8T_v6%dRoMRR1zE z|2~u8I5u;Uf3EefKBSM2`Q9~O0q&GtN@bXRUP<3`|3>Epn&M)c z)nrm?CU>TFXLq}d%aROIL@CFIt2+EH%q$91iU_1mC&e)g)cd%1D8v-VcbPz@T1yPe zWGk}PS5Sy|4-nuSE_hKxJWxsr>fQtK@AGoELHvFqaqCTvr+ngVE~$oySfk{%(@VOj zf{v(K3ke%3VTfBX6)!?zYhVq9ywDBVn|)Gg%B&dzRaEUt4~LqmtXaN$XR z4<9-wo5SEnyWSg1%6(5qOi}K1Q}7QSf)&{#f{5Yqmk4xt&`6wFgf%%MaOHyM{F_>R za@-_b%4STjuze9m*Etx@|9wDvt z9kyy>a@h^|IuqV}P3(-Bxn*PN(+X%B&n`LctQ6j1zA?kiJVM9)`EWiFq<&ln>o~q! z>~(_yxCQut{N!DTTXV;u}loyiG$%4lBfyZ*4t zKBUK$I#vhr1=M+K8uF$EceM{+Yy6Jto!$}bhM|Y|30yIP8ZUw09{PPZZ48piQNT<_ zQWZ%!xDu9D>@{Le(nF{9gIa!n@ZJ~V^LwKa7%ra)FKWDU#{62krIMJob7DU~K7ZYH z*}<7qG}5vBp=kOP3N!nnK(L*1Kh|Y1Al0|)!;5rcmFK_(Y42`Z9DDY~0~&r}wsl?` z^*^MWI3lzYH?JGJHR9Kw_19l;{Hj==5{xi@J;rIHNSlPyU~lsh;M0FyxL|R@JB=M34U0QCE2F$ zL7(uEYEYakpeoeeh#*YudqRA7jhY!_w^XhXTRyp@c#IRQ)RTbM4jaN}z2`g|ka{Kh z{j9fL&(6|FI*eK-+>}*Q}S=-q3`r)I6D+luBux zNxtM$Fr$Q$AD+6z(lnEcbTlx*Y^5LU#HRZpX$kK}hlWXg@yVbG-QM@Ku!s9aE8Rhp z__T;0Ko9Uco{vBiVkYb45a7j8}=#<@A>Q?MkLAo%h}!y-2r`ks~r*9=vkd)Mfch)x42~PBvJZ=aO3Yi%ZWd zdL3XM3@q-h99g!@r*wUcywu1-g9}d1txLMzYSmjQdhPWIthOA#HW0MPr}R$idh@Bv zs{0J~wJgEbbalUwEP9A~RBAc?)6}Bq;_hX&|6gxG&4YK%J5fEHcvKI!c>G+v?;#(R zh4Ne+>D&z{Go+R7VwSmBEuYvSN0L!1jE$GgRqlOR$?q5BX*zqTYHB;$m0!KXt>(LU zc8@rEcy~01E|F(Pb9={1T02K3^U~Hy>W?Y1D>?%*3tNX=%#?P;LACsTCD;Xc?BtxI zj}8*yEcI99d^gbk$@cNqB8W zIvVMTj!bv4i(<{1>gQ<^*xK{~WA{rX;q))nz<^ZnN;P3T%%Zy`q@uU;jP$I@*AT3p z+B}_9b&UtZHqVq+zrw3=d!Z5I;ll-zo(rCam+OcV!T#Ps88PO0?4yS3Hr1OVw_iiJ zfS*>iFtXs*SeZ<~(}WDtE4=q?(Q2YhZT{vH?)#eW2fsIo1M{QSG12j{kBc6-!3c9a z6+2s0=A`E~_SNZl`8p&l85z|3>#zLl@d2G866gs-4|&EoDa^I6lptCHj}J*9TzXTH?_R~7PHDz%ECg~L#;}#EdH>GNtjIdgq}-M z{g-N0m~$x6l0ikzmLjIceWT-H2K#uVOM6o_m38Xh2s}mgiwsHNr58mPOT`psuga81!0`W!}3oZ2Hs6ZjgLe3RMbc^BVf(rUG0CMn|Ni_?YbPPL#8grF)6Y zO)xv&dq&TF>d=**#)!s{V9B{#8_iaf^w^rCiVtU-P?@ygRNr&Y+Y|YuFnZ)_6YguP zsR&H-FsZN|*DAcUTTp>1UYKroI)R$kV~bl`1D3qWHF;?#!?3-x*TEv!VAh>;SlK&V zA$=;Sv;#3_;1tj<)ikJ{p4TS7$PJSZFJ9>QO9#9zF1JFFD3~fVW8E*5z=e_njEnOM z@fMC#aHuYU8LE-TRBGv86M;#1S9?M<6Ej+pZc-KkDZ({L$$@rkHpZk3>Of$LT9|%a zHutK=Jqp}T)T4O2B{;O>;*pJ|*)@-Y*JH>WJwB zwYjV28r2e+nsBXOGNAqgzMTw*a%)*(t7&NB8#cS6ysmRqVed&% zxqecz8f(UFMv)Hd7N42vC16;xl%-#ppkH9n*TcuodK2vD=D=46k-0d zc_@15cFh|vqnsyX{|yWkR>HW53Z|F(dl!~4bNtEe65GkS5S%Z#Rya2tykhcUTS zj#C3qP)nz{mf+%}6}SjK=jr!p7oQb(P^x=B^fBYBt=e290(-S2$XC6hwJ94R6+=Fj zlv+GO_jQF==X#$MO2lbGzB=2ds6j#u&f#;1OsEQe0Wt>sox2nPc<;sV$Ufa$^VaD(rr&H)PuIg~ zn6f$$o*2$j*x1&!b3OgtAu=|z1L*R(0sKxlfG~oaZ~MU}FWMEtvIMmlCC&X*?=dB? z{2$?Airo*<9o!ELKXB7FaV*Oxdg{4?Xcu#-?0!B5S$QN+rENx%z*mb}J4-k6Zy9q&EN9Y0ZOMD}Ol4|c;5fg3^ zarT7;CX!xLt2SBEq(h&5p-V>eYq|;XeKv_Z`{FIjgfrXPe3bbg(oG!&iXy?B4etE? z%YSn2*NsF}cR#AB_(^`bjXyx)ehd64Mo3xFi zjorfD2Y$K59}W~eN5Dit0!FSMKLoP5(S{MBK)R%B>4M#3|7P&}uVDVoRY+Ke^B$?W zNy9!N=_KfbKj1OuM3WuPx;i2c`n=lbd0ChJ^TGB%gy*?#9ddM7@_E*~#01g;uZ%jv zBkkDBcladap4U)o*$6u?t#v^hIEO}1#o{_^^&{G2T;BJ+-mLc{>|-tfK!kSuohZHz z8W6I(nYiQLbN&*9*8%87CDFVMOoutxUtQ^Y>f^miu;D}})Z5%mMFnv7YMJMT3<9;Y z<7v293!|8hQq6suAmV|h`*hW&4G;RuP`Fr6w^R)cs|xm)YG6RD1>G_*0bJyVZlvX) zKS0}d0BtianB$tHWqv{0d~Yr-V6Pu@@=);8jByiU?+@S}V3*j= zA3Be)dxTKFh5Ft^d$uT;5%NzK~a)pH&)6h}%TNU*oLUoB7F%<>30$-gTE>wpV< zn(^wS;M=i%1qHSv&UfL#nqlebQkv5J5k2||sj1~+LUi9S_@!DuJfld&YBHL)q6-yY z^YjS-+ybP={ib+;pnrl2MLvS*A}2XWe0!5Ip;@`k&wXfhDje6Dz2-nrPyMLE65GNCP%$#E}h(%I88 z`c6PCXIIVQaBc2)A6*#;ST0=G{M=tU@S}eehdR?{YC3Nil+$!m zEjv2NyHvS247DD0Sf+!sZp1aDf_QT1LULd$(ZhMWR4M)IN=SO?O#zBTn7Yflk z!fDZ!G_9TX=0X?-LRSwFkb-tJ=IPoT-IJP1|hqjzBF> zpSTgyt3|St)j1p7Wi5Lp^-J@AqoFI3Cm~_o7M~M{H_&0zJ@mblvvb0FVx9;F$S%be z-6*pX+UQr2wDzwAE0fHLSy@jqrT`^XAh5TL%*2o3y+<+zz&v*2VL0QN2p|*_5v+Ag zQ>GRMA5zU^&tiE_HIquZ*>$Cy!)NkxFZw|PY$x?@QeAZRJ#OCDY&k~nclpo< zpMYI&*EP@o{ngimxZaWBHpOMNc263bET`By`M7?w;^aW15GX>iU$58|qbPS6!PrVd zVB}}eDc2iIhx@_Jl7L=5*l807ScAiUP#;^IbXiAkHJ5o%h{t&X{$wh1HL)Z-Nw6kb z5&(GyTtL%yUfB`4S=Hpoh%`CDK<1hE7`~8*UIg=889LX~KVBxbZ*~CHJ~x05gaZhp zS<{@^_YgMp^|$rL|`C$6ac*>6mIHEHCLFSpFN$77kOi#wUt~EgQ_O_vwBS(*MbJfL=K>h=T|7 z-;5|I!|XdaN(`W59v}~xVAlRCDB*tvivJbOUjk^nj(Kat=4N1Bh57?#LhgjXYfkjw zs3tUvxE77ViZXisO@#E%VSB#%ScE66@rC!$yL#mOB2y%y9(%mBQb5gI+XIc9oAT*s zwx2&MlDmo4ja^8paH!35780RjpP=}^g50SXH^A=tx01FN&pG;t9>9roAN9M*QJIr7 zsga%rMl9C5T&+Pf3Cm6#H(0DC#p{c%{^uP8dobf-FbFqq%ea!_B_YDjes5CjrIb#x z4Hx?bT??k+|G0E66XyQp-1KTHm>-#DDeH$UXW=_ni}&u z=fiLbU=|QF@dNF1!isT85258^&}_ktrdvQYN%pG}0`#dby854X5a3L^=Ix$2>bIC) zq<_H(;O%9QQhd#@K0wXD+ZgZ>KzHRvK%$Yh3J97Ml2|Yq+=L^I8LBh%m4)iN3h~jM zGo2{_eNPcJoj(Baa_*GYoT53F3;!UtZx(!7xdZyB%ric{DJ0Lv0kJ^wvtmIXm>tud z{d0rP<)Q*gzyP53(iXF#7Cg_BGO@&;9Btz83WT!xh{r|9t=H%LEcWL2;<9I$V^hc+ z;iXWBfp7|-eO564%ZfXZ{ZSkmGxi;Dd@bMW{=i6aY|Jh?mQNxw2elH!#&}CT^2>TD z$(NKGOGglz&uK;sfPX*2a6ZL|0cS@8`zS*FE#L2<*Z`Z<7GQx77D|0c>NdrWf?hxq%Vh3h7Wu!3pNhIW1()qJXz9GRh~g^tg@RjiSusycuh5 z2LtOUfY?1A_z{fyN(i^4^)CzK0GrDV)54vUWSK%a9S{-n`9!LU$Jmn=nFtLb!Y@lP z0ifmt!V@i2^MRcHt$?Ui$=A-!_zf>0h!a$6!lnZWf;>8+xI$IrrSTU<{lCXe&~*op zyW_h)ClCuwHw@4FPCMteWOW3KO`4B$xGbe1!O&$?NAZkw={N_wocNLHj-; zhRMy99!FC9s{|$(g6%0gDLX|rdqV9)AASf@m@*w!GQR&DqRz#`eKh*ofO5l-ts>V4 z*Fl;{6Z+T7po-{;1j~G4w0HvE>kbu9TEV8jIgRO#Dr9b0PsF72eD-H7CV;TidFc=Bb-*BBxbD5CU+uq zMEnaEm(S_HIVT!3JAiSY8^E{10raPvQ&dhWcWFFydi8DiKutKn<=kUn`CkDcoGj{n z%sOvs44RW7&0NOlowoqdPr|JuQ4|NX-O{P_5#SSwAPBz?6It$7EEy3`df-xzrYI$B_}k2fsqoPMDEIsCF#ipJ#Z}Ei z56{WE!t;fi1DqrNEv9Hr^q?vYyn^4VcX`0NOkMuZTz~7+P&w0$eAjT6q*@nzyC)2*dkCA*2iH@8u`l6-(Y1csaJ-C;s zKSc6hF@0ZB=zbq*8&9xrKJh^~O11@^zYv9ad?QofUKDb+ri}@?^^_dQH!iwo7nnIh!A;R_6jKQhwMnadsrsI!n~l`pRcxz!txm`>E?4JEu@i;{OGUJamT(6tukP&k6(+V0Q4vCguj6 zH$))1E+B$f%~!mS&Nnp=Q^1pxr-spf7DB1qqc97~XB5Afb-N1~q_cdKCs)Z#c&Qx3 zd*+t7e^w;_%PKp?=c6FxnX2Qa+H;4Y@%E{tCp){kRzRhoE@4lKdipIY?C4=Qoi126 zY&C_KX<p2vkj`M@qu zndX6`8qd>WV$KZ=F({-%mtc}PQFGFvc_Ltc?0RZWnMv>+elVrAOTXA_$@gWzIx5Sw zaw#;KBE|(lq^o~j4F6v<%wzPSei<0=I|QbKjqmD>o%f@{7Zv@#$3Z}^1kbdWYtlcG%1xE^ zd4>YSku>mv@J7fT6fWJww_K}Pi$tOIOz?_@_#Fj2EF7iBst;ZKAT7uthC<}<&BUfN znXc!dR5(I8ML8@xn(Kr5(1!^TPb~*H*ve~Th9Xt1uwd%w0cOn5rR->avB4OUV=VNq z_dvZzIVbVJL4Up8q^OcfrUdCAhBvxD_ZHr42x#Qqs!~*rPyQ_moWp;W`GBNXCeWJ2 z;6x0ZKa4I@eBPTvECYZ4;+Z!u0`eB`SfJYbrgrrT%?j3_p(uz%qm6-BnUc;0b9-(w zL~4Zts9E>90UQ(#V2NkCQ*5%7Q~cZ9A6MzQUC;x#+;=Nj{(~TVZu($xn&T0fOX<|A zG&MGR>}Qq*mnQGS6q{R3 zvXF+(FCfm2Yd}}M#|LrhvHrrqbVkRoq31$xeBs}T+&PpE!01{{Wqz+X=jcbP0Ul)f zw%kvIxjhd`qJBd6+T>308RIJ^Y%1ZAh{yIXG3tLlXy3U;u1KT=Lh3H&)hrP@-aQlW9t@vHV=UCKC?r9LyE{t=>*5U_$GWG;k_*?u>o$jPL zg>vd&vBg7`e4wCpRDVt&mn@biO@ir;~n%)N(j)6RlW<%1enI>YF zh=}As4nK3&BQKQqT7iGwypTe9K`Nh(ZFfQogNy`)yHIn}Uzdb*=v8=fm-qViurO*ni^V@!ElHNRNvLm#OWvYR!)!MlrY zwnV$dSy*rrAEIh66|_|gy5!lJ=v3fYw`D+#L|(E9aLvCOROssC(C7zoimaO&rp3aW zO#+R)czqa?SKRT2j^hd5pLt77IETT`VsHu(=jTr7k!)c!QhFvH0Rdf@enZspa;!_= zz}G?Xz21{4fgt+Koekn+x*adi`ScT70tSQwC`0|+0A3OfV7DeY_xS0sT>ZiJ-N6a! znVSJF*SW)|hrfo%W+sze#;T9SG{|oK#&KL9&u>6n9MI31><|gf{Bq2Bn_}Rg` z&oHN#SyR1rdhB)zYsG&4{V11Cmm~6K+UYpxed5-dp1qe?F(7@M!p{GqnDoEZ(Em1G zpT~Cs4+wkT-@p9(d#CF1V?`~oCY^RMcA<;DM4|t)!}WRAG&sbf%VB6_;&jBdWWMS+ zUwqPja9F(e??=M_@(Jfu9|0`BOfo@YPS(|6OsF{+2t=yn=0=mtg#N%E!gFQ(RgL5R z4YSI9is#`Ke1@3+Sz|>DjhSQqlC%+!(tn#;D}-KifQPfF@dI({$4i7M<-9(hH101U zcb=1w(cR5$eJnZW=pU5^JP5i{d@p5g&%=EYp?l48CQ8&-;bkh<4FQtKt^QAlORw5% zP53z%!2ea4z1o0y*Su~>>A?cOfvZCId!Y*Nsiadm>r8FEF!|gp(r%T5kbe+q{wJmL zgp9h=ONl*Tu7HU5&j-P4x#)=KY9E!Jdv3_A1!-!J5*yHFa~?7TFNKy1m~RLyL*tZ_ zKu{IpmDhnS5m@7y(taYW;v32}NRhL>rK>FN~J7z@MBh4G#{oh|-! zSo;5@xOcO=K8iz~Pe~nN(?1o7Wet~g`i{D0LL5(7VY;|@Tq*_#aZq z0e$ZSBqu_J+h;@4`#B1t1r)``Ql8+x*qL_T22@p5kweWKSvCwoQ*u_kn z+maQcIWA0C+rAK+yRfJ${6sz>tQ+o9#X5RaXk6za(rKgtBX#bu;Aw@doh(q-D?lPe zI9Hj?7I2Mldm@xcOm;z@76>Z`SYDX^QLuFAxJ?`dPQt{3pmjeeN<=VHWZnu5lT41= zf(&*bah&XjKAPyX{0xAJ*IFJKsaCH`Pv^gTTXaFgV)Q(QeusO8&;pBoPibk3(AF`~;94q*7_ z25^anZ~({SY3*B|mYc~>I;<_Lk870x7#&wB@YL&pXlV-GPO0lpiN@3NT|wHKV$It? z_~9t^a=2wh$T}7;KAwu_)tk%?UX52eyC=grpz%{H zFSx8L@D`?$i;Vh@&GG(c^z?_Kzt4X!5afat+$ZMmU;cHAjUEVUMHES?W6HJ4hef`m zbN^@Oy%%J#aL^1pg2j(Jof9UP1ql(z!$Au4r8|SBs`j3iFwxyB$`(y8Ok? z%0*^5T0Og4u3V}7=E}z9<+|tASl*00^k!4Z{53aMZ_uwfTYhX~OU8i`-QA1qm&*3H zzWAx~#XwZ!?X#y+sgA6>g{fVFYzl{cx^rfiXoJqe8SYZt6 zqW@6+aG-CHwQW-O3q_Z&YxhWv9F;cITo~;eWM~s!Z-wZ&*S0Nh4Z|k>pj_q&aKgER|nQEo7xhd5`Vdx@Os<63Y+JO zF8?dHLUo`;VKMLDK1oE*&wAzpPw6x{q(4c=mMv$}&GxX=)6)oFyPo5h&Gd4^TXG$3 zUCqsW%|8?rY@SMsjgclB%SFeTVlo7IV>f(hPqtQMH&twrZ$>hB6S|ShVo-6b3=^op#b@|F0i(fA|H-AsSFK^?vuDpSS#cd_N@mlvu z@o#Dk#_IYlf{7LPf9G__CbOFRz09MebIfM;@U@=Cjo#?kT!M+}swA=c-u5C^alu11 z_Zza5fi!y4va*x|lhZ0rzIexP^<^GaQEIUuc zX&j7j`fuvebU<_sY^=N}7AH+PlJ7CLBiZdA;Ku*kW_ zBW)*fv>VA9wsyGi%;!i$OmgdT~YE_D@*lUs|VN&4}M{|aiNlrLYaOZqg?lK)=m4R6-z7VNsGpMUu5&cg;-{LC(}tsaq%5e- zQiiG8pqd1qD!==JhlX2rg-wlT1RMI;T!Q&&SK7^gt(?z112LAuG^@w0KV48hSvj1g z^mWHzYReE7MUQ`3a6Y;IVL6IftOjymr!CIg67W@e+qlc!a}F1VNE_1!F0L%Lj6t-y z={Cp|jm>zjV_xR46b` zKT|lCG@2YWo`-UW^(`K3VO1aa_GtgXncV!a-n4n zF+NFEsXXXa10KrVJ|IU^?7}bvuND+x5NqYjiSSn|ljB!=F$8whq1sTFp7BY3w!NLT zAVbi@_tYRjJ?mgol!8AR$_?0g&QgL?y<5tDyMq5Rpe6dc*m+il zQnMpggY~q z=hwV;^=@Qs$BfrAVM*FOjOHCvOlMp28C5GEt@5DwiBn6Yr4ez=Xib>cqtT%{C`+BN zc2jFr!m{xGGjgmx!=v>BrUu`bpt4Fcv}g%fwC%PwX!53--g@ckOr7D%q^L)=8Q3G~ z6E=a?sAfHFPUER8_2!k8MzRjhJ4iFh^0>3XDiz+F^1pnDfBHz^nZ4^^aTZpe+g9{@ z7r&8#B{5P%qu2cHN#?_IpvYKUgPrH!zObNuep|alH_c%Ij`aAMPS(CBIRoGcaOZbs z-Ex7CqTS1zjo|~7I(6{x$9%XozZT*?rSGvzm7^0q%F4L-_*br&axQp^r?em2?H`?H zCvhoH7<4BdH)L@OTVFGB1~=;^9Sjq%DRT{J$y+z z+(O)ZWr1U3I2)lEHqDk7@ZbAS35|2{*Ya^MPytU#L^R(8=Z;}-* zhTh#V-7y(<mvqs2fMj)|_Dq4}ku(t-C+Foii51X~Oh-O{5ifey$GU^2&SKBK~-D zr&!%k;5Tqs+nr2mTX8m>0mXK|bwCZTmzzLRFBsshqG} z4YS`uRIzK%lZ+xAOLRj#w@E{&cBJrD!b3uWtKenG)>Dy>m97%-P>y-R=heG~!*@VA~xQMQ(^@KfGC+2Y0d#i4>6#Gt_uTkGYXza|=JrH5FA+EP= zICaA;p+KPj6^3D!wfG~Ff=Wm7!H+ZJr+O>o_uRwBU#sNe-T<#fB^M_`LZc-S+PqiAcykM-HDc*8|jrnVr=gam^2fmz8^DW((V! z??iYB5t*-DS-K1>Kl~R`<3r&>yVsg|vxRB$atz@aV5T|PLUY(nM#3m56PyDzGM|4I zSH|dDHT9cVVqyqcUS~eHvE5kgJf9=xpO)#fz}XDuBxxlzSXSYB7xAK4=L_lZr&*Y~ zD3FRh778CRv$l14q17mxQ0m=t@9b#G)CaP(32PfM%e8(f`gJ7oZvr?U_v1ebWS$KZ z*b!zTUJCOZHa&T)l4Kmb2kCMn71egoCgu3(FQmr)qYk#w=W5PK_t;`pB+l9z7XHF+ zyge1$mblh!&Go#Pq~lkj+8THL%$97*YJB3ctvs%5mS}mHsFHp3XWHbeo!KcCUv4!^ z5B=2vjLQE2RH6zR$>&-U16|GqSzBkDk5BeoX$mmdIs2|-P>vbFA`^Uy*h_m4axE1& zpu#!99?Y>4Go{d#?H5_lv;NC~l#Ndm5=#6#bn=VrJ&-A&lV}*yxUXIo{o!pybr>5V z1XCZ$qeP74=FfuS27BS@r(r}=N>ToEATM$88{pKuSj^I6hOSgbIygIzuUXNe>~7_* zl{Pk9sCBx!VuI`G`)n_Fg@Yx3kfMJ86R7NVAQEsy$;=!TH8lXPMS0Keo5@A6UhAV$ zRx_QDD`Ph6v>21qFB@yyuRj(H{D zxo6eAP#3#%LBwn=XzAj7Y^z_g^i=}fD{+B{A7D@ zlxyF&+YKE0y*vu*^>RAL6Z|~nbakkPtrmL@7+vcu`lfHdGVsL%jZ1f@LnUbYq&)m2 z&Mqv}B;5{waUU7_ChvNc*%4AP`c-H$Bj&8DsoqZ=2l`V+8OoMDN{3JTRT^X4wxowe zg0>D}tjMIC{z%>m+@5nO`qov3X6jfAP;1h5oe8$BhW%p@X>A5xR=qz(`!v$7GHKB* z7je*{g6st@oaAgVL)k{>sThM6S<20zMU=_JQFQr@M2)a*v!5T-s!u&{jz8tKFXy(r4}t01wK1>_?98I?SOku6xw$AI`#>atq(dZ8eE7(yogNl2(q&l zwlK5y?N4z)Z6Ur!hMGQYxHr*g9F7#$Dn45tnWVz>H3gr2BvnrzWh>s)dUhh^yT3G8 z@$rhV9gsgd^P$Yf`ncO}mP=|E={QYfxYWh1R+9CO)4Fe+q@QTW!CqaBxmiz{qD-5UcIrt$~c_GH~y3J*Q*$fMCMY? z{In73K3rsUo}ivT)v-6JY0xz(CUuF!p{?JGd#Rn}N9L<)WKmlQ#@YsPa+ZpHQIn*| zC3(Rx`*)cFhp%o0pmOhWa7tli-Sz`vc$N8+v16^d*~jZ|$Tc>s2uoQe=DQ($h>P=` zDjTXw#olowaEgaY1jSD(BncR{6l11ETt#dKkw>Pm-ufM9b_rrtosJr4yYG|H_P){g zbsz2I)AGhe*L9XxOcJ4V(aBa}^?G8wP&oh;sjK$I;t$t1UuOB)D)JK;d<#AU1_kei&gV0QMRA!!eypTPP5@97zP6Q^ID z$=#aBvRm^mrYYYf^F1jpG}UBRA7uO(!IPvW(S7>E%MndB1L^m_ijOR*aqxLS-fx{- z%*^jIZx`3@hY$9->5650W8WU&2M@pp6U2QsT!+?@sCi#g^KX)vMTyiPR6nB|?$iBp zUic15(bxcMA3jBsbOEar#_`_1qJ0EKMPRX*SLClFiPnpE#?;KasJInbUgQ^jKJLcS zeT~SarW!5GC1lJ(KLZ7m{&iGD+wI=d-cxRtal42;F>&wnO>g^Z*C^>9yEPSQ9FWe95~=x?w=T_oq(yq*_EcREX3YJ#@zrw%?ld(nLn0<1h0v3^Ccc(Ev(mC zy$4_SQsn3qIn*M5vCvoc8I^rI%b^h_5zF1|NuT*AjK z>jthClV`KL{h;-oWy_>%+of@DNMrF8<&u&M1OrilwHWz{3U2-jiBkFA7BA}qnC7Ua zp&$|YiNl(hZQTndC*ooEL#Qxa5zlon)IO4^&Dfej9ln!JfK#*H(buGOf^S*~>pr>T z;@ed&YaA4vZ@vmCr8(`|-DhYSZ%~4jKazK61J2dwfj%TERVQ;x>p?Zi@{Vk$=O!6# zj}`BZ%gn@8d1~%!!R}trr@LHKLUNmNk~>YMu1u<`CnCIXt<=6Esq&yzFLZiK2yqjQ zQ?_g6Up!&T`Ark9Km`fa8*@BHukp6A-`m$#XzJ`xtWdjU)Ql`LII7+}H3_QL&4h|@ zU8@Y!O4NUp({Q)`-O2|HOL_*`=3cP^yYY+_!Y^jG8pVFugQxsV2xz zOidmXVEwuts+<}n-QPYl06kw)lBd)eNt_Q`XMSZmP_B5N1EpxYLwnv{Z3VI~E8FaOl0JR9 zk1&aYChMOJ6`-jl>>{+!%oD29@j|RtRM!MSdq@xA>oF5frbK(twWBQE`OTAIB=}}u zHl~o+YML;}f`(sC3P`fYAexAeEB@+X2=2#JA3~Yf9}x|YJ4WX<3MTC^0vipN`I4I_ zuHHcJf(DF`iP3(oPcAXSm4|vg<@AZHv5E#!xaafMBB<0(aT}J3!<<9RB<8|jOe-%a zO3z1~$9Wzr8XSt9AaBS?qM%4ChtlM{_R7>r&L20rKH#eB_I``Wg@D!;#@^tHCX$!s z*=$>PZ;k>Xu~H81qE*axg1$|&EZ$l?SdKTy?V5R*#jO`zW9Q^mpV|;8-Vr%Qq)%NM zLq$KS-i5hfjd1CAo1nq5W5v|wtwhtCVG3?zmqXHz*)=~q>Vx(A#&-s!nOCW=ni$Qt zBPXR|JuEb6BTE_>y#|TbJv(E^3YZNX)-KEKj1c7gOj7>07JeM%i~MV~wd!LnE`Dv1 z?y@bM{A(_ZEhb3{>0VQz@$as~dC^1N^Uw<)Xj^*qk`uG-nv<06$cbs~bw5z4n)1#g zZSDpI{G5oK$HBPT9lMG)rByL~``&Y7-PAYu)^+$fdbc%^P0+`z>IVbwPYl{%O)4^lTmm57DqWh6d*cg zKNIIWbqF;;KN7L20=su<;?nwL^Q@fK zEPQ2dJ}%?O^Ib5!zTBHwr1@7i;fo5=cAg#|f`ZXBNE}leeyQ|+YC{Ah2pr-$q&DOd zr)#p{PS0HeHqad!MCoexWNTw5cXBqpA_+2??_$uZy4?8bxSGNU1g2svYopURW<0g- z2XP(7>6y%kF^66IweqMb*RESCR>n@y(L?u#qM3)e@6q$R*H2vacgsn)%`zS+6je!k zCC^NaX`jmHlpngflV+?Ux$Su+Cy}lOo&czw;1|BXiqlVs8ybUo~;_|9N zxBZYB4aWb>F@(QQgJQ10pD>aToxWFP^fbo-9Hn6dClyI4yQ(p%DwSC ze#y+QBcsH6hzEkZwTB3udd!--A1LvPHoPv1&aJN7)}j#u-{an7=P&SF`QSyvnWyX% zUB}LC##HZ=v%j6>yyUxdHIEUSHX_ELVDM4u8r28LxQxvXo!-VXee!~w_vtmc*7hA< zhcnL{8W}124%3|JbSz@j&xTRhEop&vFX(%Ld~Bw}54d26YBC}xQhhlJ4O|LaUh95n zf95yuhm+u{l*H#7eS54i4fZ8CRPC~`=0H?ny9}W`c(p=9HfIehUXyO4Qaj!DDoQCQ zNiTNE`g?Wzb*Q2Z?_Y^BEjFh%xJ_)8LM$BIntM~nhg;!le?C(ke#se;nSYqRSx>Ca z%MUZ|Y>uvMXgJTIiR4nIZe7U9+rT(aLVq_iew<#@YFHb;_TDl-dCxw-JR29j8{$?M z)RjvOna4SI&=O5+244tHP(bk1?x&-sLf%n|sp7GC=Pb#6V;2VkL%xv{jB7T8ASRX# zJrOV79IxiL!y*nN-twk*aDX$`s)bNfC4nbTMN)l?Kx-K4@`2w;uao>H-EW5ZPH*Cn zgtUT5n(eNA9iDUtjyc`2nG}P*^(3DBuBmxdE&qAu3xTw{<{MhQpss)-?s`D#tW$oo z$*yeWHT>v0ADe3$@ak-WtI!IQp)+|y$ZCub*Zp~cnCK-6TWRV%b+2r1e|>R9!%=L; zHa;&m9_K;V#O_kJJ3d3Fc%JM+-g;` zW={pymd`98EV>!w<=<^GP`ISavprx^64ya7UsZA_81GjXHLz*H*tu@`k?E)3aU-vK ztPC?_Gq*hnvom>2Q#8X_ay7*tYce}U)iOQ%491+$<>iy@^oxoxbJSSDRGp~^kwN=k| zkk*jHym~nKGF3HE&I@df7K)lm{G{BmA29Ar!KJ;Fpqmh4`@@QahISmhsZ5?$DA!r} zQ@ODmE*#;*ub$|HrN$aWlQf}s11ov2I1N9_rcPWKPuGMu^|42NcUat0T-)97W5-5+ z5y^$)+c=vu+lS$v6%`F(ikzfOvms7N-Wd9<1z~JW#$xSD&KTwpe4>3qeq7Sr`8=UP zR}q%Hh-Q{8gN&!FZF$|BJ`epO+<;fudpdJoc~V#2(TAGJZniE=^iU$nCXdP7f0css zM#j5;=f-|n$A!lpSW;Vd!w&0y;B4`Q;~G(N53UyyuxVLT}MP zT&oCC$sCPxC2i)E`shu>f6aY&EiATm>nJ5x9$qqDdDxnMr?8=bmwi|VS zq4Ln7eaw6>X<(C{o9FA4fn8VdUZvz6>4BM~g6H||BFxtdH`g$4YekQBcNDxSx_V}t z9#V9x+re1Tit~1B!ER?hTG2i9@6O9t1 z@aD@T>H2}vj6JL~qLxE26ZNx8biQ=*zcMB`;t!M+XGP)B(#a$}H+kKzAZVy!N?AOY zTj`{g8{}k}yUCZn-s8yuJ?7y{E=gUF`$P}E*k9+=nfJ8SoKna&y`wim=rqWdgq^^V zB$85cvocl3=9gS3&R^)~VL2^}W+MJyJ7*TuRJJZ)lvdP;sI;b4CbbnOK)VG5LZaeK z14n2SMMR_(keNslNJvmy5D_9OB4lbs21P`KFq1?({`dcX-%{N|XpTVyArAw=BTgG47EJ8PpwlX5H9zKc9kL zQ=q_z4#N)&e&-IwnZ5uz@Ai_!oVVh>2+iz8_!{#edxL1vPdnr4%r2pT>_}%DKO~TZ zS@K8y%pV(QZVB76K}^e$Dq}s$GXYKzL|}d+#g(x+DQGB%!+0!F@JZ=csp>@U9 z$kr`Q)Rh#jFj(8_as%2DL3b7W4uYYeps_2uxps&!b@X5-8d8XN&KZ1U{>B5qRJ?Ra zHX5l8Ja9#0>4jXEE2OTc(nkA?eR7)iy?Z5&6P{bdV@LeTKHe>dijB*XEoTrzs%4ms9kl=r2NOpX}TJs&HaB7vHOz=PiadFtD=w@E*~$ zc>0uTu6RZ=*9q7#kxMWt*UCKmI%z3F%+Fo68?%rWIB?_AS_WdLV5)9;WdPfpx%i9vGXx|-=mghYYg+Y_+z7_8BkFjuT?LQ7$ezu)_y+)dmJN7lBf*o#T7D8Lf zz~Uiskc0u7eiG&GI|o1X*up#mrAysQD)Te`B?*?q+KFc-Ak@6&zJ(xYPBD<7{fQrBzeW*z^o z>FdA8xEZWhb*It&vE5}&9sY|$&>MH%-^jvzLnJrbe)t^df}Wmn(CK4Ge%0u*-~OoU z3rGO1wudGJ#)r^GH8!wJm=&=zaZUOgTOM`V0R>5rKi@vK3{XiaZG>z6Z?(788xpqz zLx`%Z`ubfDnPE36%MP>d5hTWzTqpY;F@0B}!D7Z8gD%q+L9w9P zxU!z-!giZXuMBKj1~`d}IxS%uGDIOaR>w;0zeL1|0q#W^cn&EtKU39hR@ox#K|uP~ zXsOBFf8h6pb>G;_rL>lr$edKK)Es@Thm>~_^8!2S&5npDZPHgqo&0XjM>1I;0jBOw zR0;-88lpRP4nGLqTj1Rm0|ibic-6eCPeS5814MWAP*xae=k;?dX@0)GL~UfWx_ zDLdcJ;1=_<1E}6P@+loAaMVf!2?6nKp*F5g<_#{hQ9G6NC-#z}&QAdAHmFjFP(5L_ z8LeuRE@!n7l%n~vAIhPRVHtG!BSWU&O4N#>r-s1j$f0;$B|%@8-}OErM}Md(4{U3l zp9|$qy9>*}G0Ul|H!)ykRnrr zIR@t2@Rm|Gea$n+msq==Kmn3rZuiD zrt3VK_F46!p%5Y|M}i_yXoo%hs3d&kRCd0H zm;U^Fq{Dboc&IKsN*Dej!Wxk@V|6lt8eS~wBBNLQVRf7B?;b&t%#aZMAMk0D`gk#H zJCgTdzH7DzmNG388#h|E4|4TOMJiRcLZooc<|9?l)ncigoq*It(Qh;cE~tvMb02TY zfKc!b?5GpZfH2gljMP%mv(@ntIUPKx^0%6~e(D&GCht(6)*M}+YHOY9XZ`T@mh*3Y zlU^gW0_{;O%GA1J-^;8~*!Ft{odalgP)8t> zLI@3=u2%Kr%ag#gnrgz*1!bz98cM@mZys^lJ*Uu4(1N_bKyOEujL{<$I# zEP`d+qkkXO6a?d|Q|gW%#YZdrD(%?YQ4!b<*bQ^s#L!J%5cJVrE}T)e1}bZzyLzxa z`kTBI(I@q;-%UMeRWKTBr}kWJ86XS~>xX#fb~a9%h|^$%d+>T2*vvXg2OFlZrZ)gNg2obUuOqqAV(>?^v zOl(&E`9-xK;2}4SWPxK3*+6EshiRFV%~huoOU&OiTPCaXF$RpGg6kgB?C7b;s43LF z!6fx+eRVb6a*nfnzb=Ob z@r>+fj)dpoU82lj_jau}_eg|2)c$Beb}!N8DUt2|vT{iWn!i|~)_pppz@SQ=r%%xc zmwuR4TaG=256Xto>bBxaXaCvO$neYT7;?xJ>gNU9GKQtZtG=fLa68};JgC49AER;Y zqvq?$qoU;(PdNTPFjGim>59W;(NOYA^`+VYP36(50aGe7Zm@QFoY!rqH8YJk z6GIC@&DgIr@1fuLm}zIC12AgR)O`nI!mdTC$85vq2(BBe2TzauWQW{n;fOBX8{-m& zpg?+iw)LwGw)SqC2~x_caOfCr*vIuUz^E~H*35<_j%-cYyfE_G-Dn`$f z5Y@1Q?qB$@gzjdUY%?oUWh5h7n=kSdE5-W@u&GI>KYnqyn(z%s9L|uk!;- zZK54V9e2og^mw~9UG*Qn*&2Ih!u3s2PWmTWZxC3oJS0xqeXQ+O z_2gCL(bs(uC!$pQ?Es~<6M}=BaLmC19%e1LRr_&~&`8Z3zplGA!F|X&ao=Ye<2pRu z0?{{9>OwK?ugYEFE8hUD(z~jBVrH}qBdj%ZRn1*D^A9|fDT!VZF!ZbFpefhAi(Txc zd3u65iPVbSK5)xwrVc`s#pRn;_q$Z18G-@u8S62gki=n_wr8JprMWKRvDCQ6fYm@sRl z(m=KT!zHX1fWCI1j6q`VH6PPPKq>gVpJg|jx84Rz75TQ-Z-18UY57;*D729p5D!U2 zkAFK0Ax?nMgQEcj511&p1QL-(3FptoMEgSI^Zk&l>x|MXxo-74g4{fJCU%B>4Paxs z>^N)Qon{|U!cWTA9Sv6nTJs#=gq$)>3wT&48UM2IeV3)-pNv*NWMbwdf1dHOX6rwp z-?Z;`zKfcQ1Ct!14r|pt;HhO%#wR^3S;S?~Q$^0SyZ`2N~G*j|jxXIp0>W+xS|Z8x$ez{U)qX ze!};avC}7wKaW}6w`yQ0TB7eHd=|;oac-BQg7H)8R%jg5`V8}Ip)1k#exS4mJihC( zQ!~6&Y^ESSI~zNqo>#1Wop+3+mDXqip2u+ ztc_f=DhmcSp(KQ>sTPKzxL%VN;@35w9F*b~+bPnn?4tTZ%IqW9FR&h6;~`(8peH>3 zq+;tT3Bc^MhkYtat5X4|1@|NJ_EDA4zbyPm|04^Z#JWt4A5AKcl~k0Y6%ii0n`&>H zc^-e=9pWA`H5Bi%-~!z5F+3g%sePH(?@6=EcO?6Dct-5@-{NJ;whq}{`J^Q6l@6mS zf8yK9`TT2Bnd`+?tI^QF*E&keYV_$G^+5OR#G|J%t^oJhI0|vvwK@+I{>%T}a3PZ$ z6#cPC?)z)5+`2e;@tK)_&{X|T%Uo$-cgy>vyyTRD+{D$FeP}x+UPF+pWN~^Z+bT~6 zZ^d9%`et_>i>EtvpyZV|>*1s>3wwRO;ViaAez30UMpu+h6L2=PdAr%xL7NsxcjlUN3Y!e4|}UE+W-In literal 0 HcmV?d00001 diff --git a/docs/assets/screenshot-levels.png b/docs/assets/screenshot-levels.png new file mode 100644 index 0000000000000000000000000000000000000000..b0dc80ea5e104fc2b72b5cc45caa3613bda8b43a GIT binary patch literal 206921 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�qi*X*9qjqf$;?j7s8BD@SzIGZb4)#(PW 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 = target.branches.map((branchName) => { const exists = !!state.branches[branchName]; @@ -36,12 +39,14 @@ export function GhostOverlay({ const advanced = !startHash || state.branches[branchName] !== startHash; return { name: branchName, + description: descriptions?.branches?.[branchName], isSatisfied: exists && advanced, }; }); const remoteItems: Array<{ name: string; + description?: string; isSatisfied: boolean; }> = (target.remoteBranches ?? []).map((branchName) => { const exists = !!state.remote.branches[branchName]; @@ -49,12 +54,95 @@ export function GhostOverlay({ const advanced = !startHash || state.remote.branches[branchName] !== startHash; return { name: `origin/${branchName}`, + description: descriptions?.remoteBranches?.[branchName], isSatisfied: exists && advanced, }; }); + // Working tree satisfaction check + const showWorkingTree = target.workingTreeClean; + const isWorkingTreeSatisfied = showWorkingTree + ? Object.keys(state.index).length === 0 && + Object.keys(state.workingTree.files).length === 0 + : false; + const ROW_HEIGHT = 28; const GHOST_X = xOffset + 10; + const LABEL_X = GHOST_X + 14; + const FONT = "'JetBrains Mono', monospace"; + + // Colors + const SATISFIED_COLOR = '#34d399'; + const UNSATISFIED_COLOR = '#3d4059'; + const UNSATISFIED_TEXT = '#555873'; + const DESC_UNSATISFIED = '#44475a'; + const DESC_SATISFIED = '#2ab383'; + const CHECK_BG = '#0c0d11'; + + const renderRow = ( + y: number, + name: string, + description: string | undefined, + isSatisfied: boolean, + key: string, + ) => ( + + {/* Check circle */} + + {isSatisfied && ( + + ✓ + + )} + {/* Label */} + + {name} + + {/* Description */} + {description && ( + + {description} + + )} + + ); + + // Use a taller row height when descriptions are present to fit the second line + const hasDescriptions = !!descriptions; + const EFFECTIVE_ROW_HEIGHT = hasDescriptions ? 38 : ROW_HEIGHT; return ( @@ -63,128 +151,73 @@ export function GhostOverlay({ x={GHOST_X} y={yOffset} fill="#f59e0b" - className="text-[10px] font-bold uppercase tracking-wider" - fontFamily="'JetBrains Mono', monospace" + fontSize={10} + fontWeight="bold" + fontFamily={FONT} dominantBaseline="middle" + letterSpacing="0.05em" + style={{ textTransform: 'uppercase' }} > ✶ TARGET STATE {/* Ghost branch nodes */} - {branchItems.map((branch, i) => { - const ghostY = yOffset + 24 + i * ROW_HEIGHT; - - return ( - - - - {branch.isSatisfied && ( - - ✓ - - )} - - - {branch.name} - - - ); - })} + {branchItems.map((branch, i) => + renderRow( + yOffset + 24 + i * EFFECTIVE_ROW_HEIGHT, + branch.name, + branch.description, + branch.isSatisfied, + `ghost-branch-${branch.name}`, + ), + )} {/* Ghost remote branches */} - {remoteItems.map((remote, i) => { - const ghostY = - yOffset + 24 + branchItems.length * ROW_HEIGHT + i * ROW_HEIGHT; - - return ( - - - - {remote.isSatisfied && ( - - ✓ - - )} - - - {remote.name} - - + {remoteItems.map((remote, i) => + renderRow( + yOffset + 24 + (branchItems.length + i) * EFFECTIVE_ROW_HEIGHT, + remote.name, + remote.description, + remote.isSatisfied, + `ghost-remote-${remote.name}`, + ), + )} + + {/* Working tree row */} + {showWorkingTree && (() => { + const rowIndex = branchItems.length + remoteItems.length; + const ghostY = yOffset + 24 + rowIndex * EFFECTIVE_ROW_HEIGHT; + const wtDesc = descriptions?.workingTree ?? 'clean working tree'; + + return renderRow( + ghostY, + 'working tree', + wtDesc, + isWorkingTreeSatisfied, + 'ghost-working-tree', ); - })} + })()} {/* HEAD target */} - {target.head.type === 'branch' && ( - - {(() => { - const allItems = [...branchItems, ...remoteItems]; - const ghostY = yOffset + 24 + allItems.length * ROW_HEIGHT; - const isHeadSatisfied = - state.head.type === 'branch' && - state.head.name === target.head.name; - - return ( - - HEAD → {target.head.name}{' '} - {isHeadSatisfied ? '\u2713' : ''} - - ); - })()} - - )} + {target.head.type === 'branch' && (() => { + const rowIndex = + branchItems.length + + remoteItems.length + + (showWorkingTree ? 1 : 0); + const ghostY = yOffset + 24 + rowIndex * EFFECTIVE_ROW_HEIGHT; + const isHeadSatisfied = + state.head.type === 'branch' && + state.head.name === target.head.name; + const headLabel = `HEAD \u2192 ${target.head.name}`; + + return renderRow( + ghostY, + headLabel, + descriptions?.head, + isHeadSatisfied, + 'ghost-head', + ); + })()} ); } diff --git a/src/components/panels/GraphPanel/GraphPanel.tsx b/src/components/panels/GraphPanel/GraphPanel.tsx index 2c8d573..ff918b9 100644 --- a/src/components/panels/GraphPanel/GraphPanel.tsx +++ b/src/components/panels/GraphPanel/GraphPanel.tsx @@ -261,9 +261,11 @@ export function GraphPanel({ state, targetState, startingState }: GraphPanelProp const ghostTargetCount = targetState ? targetState.branches.length + (targetState.remoteBranches?.length ?? 0) + + (targetState.workingTreeClean ? 1 : 0) + // working tree row 1 // HEAD line : 0; - const ghostHeight = targetState ? ghostTargetCount * 32 + 40 : 0; + const ghostRowHeight = targetState?.descriptions ? 38 : 32; + const ghostHeight = targetState ? ghostTargetCount * ghostRowHeight + 40 : 0; const graphBottomY = nodes.length * 56 + 60; const svgHeight = graphBottomY + ghostHeight; diff --git a/src/levels/schema.ts b/src/levels/schema.ts index 5c8dc12..d331dd0 100644 --- a/src/levels/schema.ts +++ b/src/levels/schema.ts @@ -41,6 +41,18 @@ export interface SlackMessage { * Only checks structural properties (branch existence, HEAD, working tree) β€” * commit messages are NOT verified. */ +/** Per-item descriptions shown in the target state overlay */ +export interface TargetDescriptions { + /** Description for each local branch, keyed by branch name */ + branches?: Record; + /** Description for each remote branch, keyed by branch name */ + remoteBranches?: Record; + /** Description for the expected HEAD position */ + head?: string; + /** Description for the working tree requirement */ + workingTree?: string; +} + export interface TargetStateSpec { /** Local branch names that must exist */ branches: string[]; @@ -50,6 +62,8 @@ export interface TargetStateSpec { head: HeadState; /** Whether the working tree must be clean (no staged, modified, or untracked files) */ workingTreeClean: boolean; + /** Optional human-readable descriptions for each target requirement */ + descriptions?: TargetDescriptions; } /** A complete level definition */ diff --git a/src/levels/tier1/level-1-01.ts b/src/levels/tier1/level-1-01.ts index 385b21a..a8f7033 100644 --- a/src/levels/tier1/level-1-01.ts +++ b/src/levels/tier1/level-1-01.ts @@ -48,6 +48,12 @@ export const level1_01: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'new commit with README.md' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'all files committed', + }, }, slackThread: [ diff --git a/src/levels/tier1/level-1-02.ts b/src/levels/tier1/level-1-02.ts index 210e241..f590bb1 100644 --- a/src/levels/tier1/level-1-02.ts +++ b/src/levels/tier1/level-1-02.ts @@ -69,6 +69,12 @@ export const level1_02: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: false, + descriptions: { + branches: { main: 'commit with auth.js and routes.js only' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'debug.log remains untracked', + }, }, slackThread: [ diff --git a/src/levels/tier1/level-1-03.ts b/src/levels/tier1/level-1-03.ts index 7d3d9e4..99e3cc8 100644 --- a/src/levels/tier1/level-1-03.ts +++ b/src/levels/tier1/level-1-03.ts @@ -61,6 +61,12 @@ export const level1_03: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'amended commit includes auth.test.js' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'all files committed', + }, }, slackThread: [ diff --git a/src/levels/tier1/level-1-04.ts b/src/levels/tier1/level-1-04.ts index fe9061e..0b6c522 100644 --- a/src/levels/tier1/level-1-04.ts +++ b/src/levels/tier1/level-1-04.ts @@ -64,6 +64,12 @@ export const level1_04: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: false, + descriptions: { + branches: { main: 'commit with config.js only' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'secrets.env unstaged, not committed', + }, }, slackThread: [ diff --git a/src/levels/tier1/level-1-05.ts b/src/levels/tier1/level-1-05.ts index a84a738..c7c8119 100644 --- a/src/levels/tier1/level-1-05.ts +++ b/src/levels/tier1/level-1-05.ts @@ -74,6 +74,12 @@ export const level1_05: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'routes.js changes committed' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'all changes committed', + }, }, slackThread: [ diff --git a/src/levels/tier2/level-2-01.ts b/src/levels/tier2/level-2-01.ts index 8b977f5..c3997e0 100644 --- a/src/levels/tier2/level-2-01.ts +++ b/src/levels/tier2/level-2-01.ts @@ -77,6 +77,12 @@ export const level2_01: Scenario = { remoteBranches: ['feature/login-validation'], head: { type: 'branch', name: 'feature/login-validation' }, workingTreeClean: true, + descriptions: { + branches: { 'feature/login-validation': 'new branch created from develop' }, + remoteBranches: { 'feature/login-validation': 'pushed to remote' }, + head: 'on the feature branch', + workingTree: 'no uncommitted changes', + }, }, slackThread: [ diff --git a/src/levels/tier2/level-2-02.ts b/src/levels/tier2/level-2-02.ts index 1737bc7..f9f5cd1 100644 --- a/src/levels/tier2/level-2-02.ts +++ b/src/levels/tier2/level-2-02.ts @@ -78,6 +78,12 @@ export const level2_02: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { 'feature/sidebar': 'staged changes committed' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'switched to main', + workingTree: 'no uncommitted changes', + }, }, slackThread: [ diff --git a/src/levels/tier2/level-2-03.ts b/src/levels/tier2/level-2-03.ts index b06e279..a35dd85 100644 --- a/src/levels/tier2/level-2-03.ts +++ b/src/levels/tier2/level-2-03.ts @@ -80,6 +80,12 @@ export const level2_03: Scenario = { remoteBranches: ['develop'], head: { type: 'branch', name: 'develop' }, workingTreeClean: true, + descriptions: { + branches: { develop: 'fast-forward merged with feature/dark-mode' }, + remoteBranches: { develop: 'pushed to remote' }, + head: 'on develop', + workingTree: 'no uncommitted changes', + }, }, slackThread: [ diff --git a/src/levels/tier2/level-2-04.ts b/src/levels/tier2/level-2-04.ts index b7bb66a..89fe294 100644 --- a/src/levels/tier2/level-2-04.ts +++ b/src/levels/tier2/level-2-04.ts @@ -13,8 +13,8 @@ export const level2_04: Scenario = { title: 'Stash Your Work', description: 'Stash uncommitted changes, switch branches, then pop and commit.', - concepts: ['stash', 'stash pop', 'checkout'], - par: 5, + concepts: ['stash', 'stash pop', 'checkout', 'push'], + par: 6, startingState: { commits: { @@ -68,8 +68,15 @@ export const level2_04: Scenario = { targetState: { branches: ['feature/dashboard'], + remoteBranches: ['feature/dashboard'], head: { type: 'branch', name: 'feature/dashboard' }, workingTreeClean: true, + descriptions: { + branches: { 'feature/dashboard': 'stashed changes committed here' }, + remoteBranches: { 'feature/dashboard': 'pushed to remote' }, + head: 'on the feature branch', + workingTree: 'stash applied and committed', + }, }, slackThread: [ @@ -88,10 +95,15 @@ export const level2_04: Scenario = { text: 'Good. Pop and commit.', trigger: { type: 'after_command', command: 'checkout' }, }, + { + from: 'marcus', + text: 'committed. now push it.', + trigger: { type: 'after_commit' }, + }, { from: 'alex', text: 'stash workflow nailed it! 🎯', - trigger: { type: 'after_commit' }, + trigger: { type: 'after_command', command: 'push' }, }, ], @@ -101,5 +113,6 @@ export const level2_04: Scenario = { 'Restore your changes with "git stash pop"', 'Stage the file with "git add dashboard.js"', 'Commit with "git commit -m \\"add charts to dashboard\\""', + 'Push with "git push"', ], }; diff --git a/src/levels/tier2/level-2-05.ts b/src/levels/tier2/level-2-05.ts index 295361c..0aed60c 100644 --- a/src/levels/tier2/level-2-05.ts +++ b/src/levels/tier2/level-2-05.ts @@ -78,6 +78,11 @@ export const level2_05: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'no uncommitted changes', + }, }, slackThread: [ diff --git a/src/levels/tier3/level-3-01.ts b/src/levels/tier3/level-3-01.ts index 12266b8..2c846ba 100644 --- a/src/levels/tier3/level-3-01.ts +++ b/src/levels/tier3/level-3-01.ts @@ -17,8 +17,8 @@ export const level3_01: Scenario = { tier: 3, title: 'Merge Conflict', description: 'Merge a branch with a conflict and resolve it.', - concepts: ['merge', 'conflict resolution', 'add', 'commit'], - par: 5, + concepts: ['merge', 'conflict resolution', 'add', 'commit', 'push'], + par: 6, startingState: { commits: { @@ -73,8 +73,15 @@ export const level3_01: Scenario = { targetState: { branches: ['develop'], + remoteBranches: ['develop'], head: { type: 'branch', name: 'develop' }, workingTreeClean: true, + descriptions: { + branches: { develop: 'merged feature/auth, conflict resolved' }, + remoteBranches: { develop: 'pushed to remote' }, + head: 'on develop', + workingTree: 'merge completed cleanly', + }, }, slackThread: [ @@ -90,9 +97,14 @@ export const level3_01: Scenario = { }, { from: 'alex', - text: 'merged! thanks πŸ™Œ', + text: 'merged! now push it so everyone gets the fix πŸ™Œ', trigger: { type: 'after_commit' }, }, + { + from: 'marcus', + text: 'pushed. good.', + trigger: { type: 'after_command', command: 'push' }, + }, ], hints: [ @@ -100,5 +112,6 @@ export const level3_01: Scenario = { 'Use the conflict picker to keep "ours" (develop) version β€” timeout: 3000', 'Stage the resolved file with "git add config.js"', 'Complete the merge with "git commit"', + 'Push with "git push"', ], }; diff --git a/src/levels/tier3/level-3-02.ts b/src/levels/tier3/level-3-02.ts index 636fe29..d02b572 100644 --- a/src/levels/tier3/level-3-02.ts +++ b/src/levels/tier3/level-3-02.ts @@ -18,8 +18,8 @@ export const level3_02: Scenario = { title: 'Conflict: No Hints', description: 'Merge a conflicting branch with no Slack guidance on which version to keep.', - concepts: ['merge', 'conflict resolution'], - par: 5, + concepts: ['merge', 'conflict resolution', 'push'], + par: 6, startingState: { commits: { @@ -92,8 +92,15 @@ export const level3_02: Scenario = { targetState: { branches: ['main'], + remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'merged feature/error-handling, conflict resolved' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'merge completed cleanly', + }, }, slackThread: [ @@ -109,9 +116,14 @@ export const level3_02: Scenario = { }, { from: 'sarah', - text: 'done. nice work handling that on your own.', + text: 'done. now push so the team has it.', trigger: { type: 'after_commit' }, }, + { + from: 'marcus', + text: 'pushed. nice work handling that on your own.', + trigger: { type: 'after_command', command: 'push' }, + }, ], hints: [ @@ -119,5 +131,6 @@ export const level3_02: Scenario = { 'Resolve the conflict in the picker β€” choose whichever version makes sense', 'Stage the resolved file with "git add errors.js"', 'Complete the merge with "git commit"', + 'Push with "git push"', ], }; diff --git a/src/levels/tier3/level-3-03.ts b/src/levels/tier3/level-3-03.ts index 58da547..8c20503 100644 --- a/src/levels/tier3/level-3-03.ts +++ b/src/levels/tier3/level-3-03.ts @@ -14,8 +14,8 @@ export const level3_03: Scenario = { title: 'Stash Before Merge', description: 'Stash your uncommitted work, perform a merge, then restore your stash.', - concepts: ['stash', 'merge', 'stash pop'], - par: 5, + concepts: ['stash', 'merge', 'stash pop', 'push'], + par: 6, startingState: { commits: { @@ -91,8 +91,15 @@ export const level3_03: Scenario = { targetState: { branches: ['main'], + remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'merged feature/maps + stashed changes committed' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'stash popped and committed', + }, }, slackThread: [ @@ -108,9 +115,14 @@ export const level3_03: Scenario = { }, { from: 'marcus', - text: 'good.', + text: 'committed. push it.', trigger: { type: 'after_commit' }, }, + { + from: 'alex', + text: 'pushed! maps are live πŸ—ΊοΈ', + trigger: { type: 'after_command', command: 'push' }, + }, ], hints: [ @@ -119,5 +131,6 @@ export const level3_03: Scenario = { 'Restore your stashed changes with "git stash pop"', 'Stage everything with "git add ." or "git add styles.css"', 'Commit with "git commit -m \\"merge maps and add styles\\""', + 'Push with "git push"', ], }; diff --git a/src/levels/tier3/level-3-04.ts b/src/levels/tier3/level-3-04.ts index d7c46bc..45efb19 100644 --- a/src/levels/tier3/level-3-04.ts +++ b/src/levels/tier3/level-3-04.ts @@ -16,7 +16,7 @@ export const level3_04: Scenario = { description: 'Undo the last commit with reset --soft, add a missing file, and recommit.', concepts: ['reset --soft'], - par: 3, + par: 4, startingState: { commits: { @@ -102,6 +102,12 @@ export const level3_04: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'recommitted with validate.test.js included' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'all files committed', + }, }, slackThread: [ diff --git a/src/levels/tier3/level-3-05.ts b/src/levels/tier3/level-3-05.ts index ecc65fe..0c65029 100644 --- a/src/levels/tier3/level-3-05.ts +++ b/src/levels/tier3/level-3-05.ts @@ -14,7 +14,7 @@ export const level3_05: Scenario = { description: 'Unstage all files, then selectively re-stage only the ones that belong in this commit.', concepts: ['reset', 'add', 'selective staging'], - par: 4, + par: 5, startingState: { commits: { @@ -85,6 +85,12 @@ export const level3_05: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: false, + descriptions: { + branches: { main: 'commit with stats.js and stats.test.js only' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'debug.log and temp-notes.txt left out', + }, }, slackThread: [ diff --git a/src/levels/tier4/level-4-01.ts b/src/levels/tier4/level-4-01.ts index 7fae298..6b4e516 100644 --- a/src/levels/tier4/level-4-01.ts +++ b/src/levels/tier4/level-4-01.ts @@ -116,6 +116,11 @@ export const level4_01: Scenario = { branches: ['feature/user-profile'], head: { type: 'branch', name: 'feature/user-profile' }, workingTreeClean: true, + descriptions: { + branches: { 'feature/user-profile': 'WIP commits squashed into one clean commit' }, + head: 'on the feature branch', + workingTree: 'no uncommitted changes', + }, }, slackThread: [ diff --git a/src/levels/tier4/level-4-02.ts b/src/levels/tier4/level-4-02.ts index 5ecece3..830ff28 100644 --- a/src/levels/tier4/level-4-02.ts +++ b/src/levels/tier4/level-4-02.ts @@ -18,7 +18,7 @@ export const level4_02: Scenario = { description: 'Cherry-pick a critical bug fix from a feature branch onto main without merging the whole branch.', concepts: ['cherry-pick'], - par: 3, + par: 2, startingState: { commits: { @@ -126,6 +126,12 @@ export const level4_02: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'contains cherry-picked "fix crash on null coords"' }, + remoteBranches: { main: 'pushed with the fix applied' }, + head: 'on main', + workingTree: 'no uncommitted changes', + }, }, slackThread: [ diff --git a/src/levels/tier4/level-4-03.ts b/src/levels/tier4/level-4-03.ts index 93d1de7..47aea2d 100644 --- a/src/levels/tier4/level-4-03.ts +++ b/src/levels/tier4/level-4-03.ts @@ -92,6 +92,11 @@ export const level4_03: Scenario = { branches: ['feature/leaderboard'], head: { type: 'branch', name: 'feature/leaderboard' }, workingTreeClean: true, + descriptions: { + branches: { 'feature/leaderboard': 'rebased onto main, conflict resolved' }, + head: 'on the feature branch', + workingTree: 'rebase completed cleanly', + }, }, slackThread: [ diff --git a/src/levels/tier4/level-4-04.ts b/src/levels/tier4/level-4-04.ts index 256f829..ecb4572 100644 --- a/src/levels/tier4/level-4-04.ts +++ b/src/levels/tier4/level-4-04.ts @@ -116,6 +116,11 @@ export const level4_04: Scenario = { branches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'restored to "add streak counter" commit' }, + head: 'on main', + workingTree: 'lost commits recovered', + }, }, slackThread: [ diff --git a/src/levels/tier4/level-4-05.ts b/src/levels/tier4/level-4-05.ts index 8c20348..922583a 100644 --- a/src/levels/tier4/level-4-05.ts +++ b/src/levels/tier4/level-4-05.ts @@ -91,6 +91,12 @@ export const level4_05: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + descriptions: { + branches: { main: 'feature branch merged after squash' }, + remoteBranches: { main: 'pushed to remote' }, + head: 'on main', + workingTree: 'all files committed', + }, }, slackThread: [ From a7269b27e5842fcc63ba33346ec49ce957dfdce0 Mon Sep 17 00:00:00 2001 From: Massimo Gennaro Date: Sat, 28 Feb 2026 19:27:03 +0100 Subject: [PATCH 2/2] Improve target --- CONTRIBUTING.md | 66 ++++ docs/ARCHITECTURE.md | 26 +- docs/LEVELS.md | 116 ++++++++ docs/SPEC.md | 13 +- src/components/layout/AppLayout.tsx | 2 +- .../panels/GraphPanel/GhostOverlay.tsx | 61 ++++ .../panels/GraphPanel/GraphPanel.tsx | 9 +- .../panels/SlackPanel/SlackMessageItem.tsx | 13 +- src/hooks/useLevel.ts | 15 +- src/levels/schema.ts | 11 + src/levels/tier2/level-2-04.ts | 8 + src/levels/tier3/level-3-03.ts | 11 + src/levels/tier3/level-3-04.ts | 8 + src/levels/tier4/level-4-01.ts | 8 + src/levels/tier4/level-4-02.ts | 10 + src/levels/tier4/level-4-03.ts | 10 + src/levels/tier4/level-4-05.ts | 11 + src/levels/winCondition.ts | 31 +- tests/levels/useLevel.test.ts | 281 ++++++++++++++++++ tests/levels/winCondition.test.ts | 123 ++++++++ 20 files changed, 815 insertions(+), 18 deletions(-) create mode 100644 tests/levels/useLevel.test.ts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2202496..d1b4ec2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -207,6 +207,8 @@ Adding a new level is one of the best ways to contribute. See [docs/LEVELS.md](d - **Target state uses `branches: string[]`** -- just branch names. Commit messages are NOT checked by the win condition. - **Slack messages use character personalities:** Alex (casual), Sarah (thorough), Marcus (terse). - **Starting states should feel lived-in** -- realistic branch names and commit histories. +- **Use command constraints to prevent cheating.** If a level teaches a specific command (e.g., `cherry-pick`), add `requiredCommands` and/or `forbiddenCommands` to ensure the player uses the intended approach. +- **Add warning Slack messages for constrained levels.** Players who use a forbidden or wrong approach should get an in-character nudge in the Slack panel. ### Level File Template @@ -237,6 +239,13 @@ export const level: Scenario = { // remoteBranches: ['main'], // optional head: { type: 'branch', name: 'main' }, workingTreeClean: true, + // requiredCommands: ['cherry-pick'], // player MUST use these + // forbiddenCommands: ['merge'], // player must NOT use these + // descriptions: { // shown in ghost overlay + // branches: { main: 'cherry-picked fix applied' }, + // requiredCommands: { 'cherry-pick': 'apply a single commit' }, + // forbiddenCommands: { merge: 'do NOT merge the whole branch' }, + // }, }, slackThread: [ @@ -245,6 +254,20 @@ export const level: Scenario = { trigger: { type: 'level_start' }, text: 'hey! ...', }, + // Warning when player uses wrong approach (forbidden command): + // { + // from: 'sarah', + // trigger: { type: 'after_command', command: 'merge' }, + // text: 'hold on β€” you merged the whole branch...', + // variant: 'warning', + // }, + // Warning when player goes off-track (missing required command): + // { + // from: 'sarah', + // trigger: { type: 'after_command_without', command: 'add', without: 'stash' }, + // text: 'you should stash first...', + // variant: 'warning', + // }, ], hints: [ @@ -254,6 +277,49 @@ export const level: Scenario = { }; ``` +### Command Constraints + +Levels that teach a specific git command should use `requiredCommands` and/or `forbiddenCommands` in `targetState` to prevent players from bypassing the intended approach: + +- **`requiredCommands: string[]`** β€” Git subcommand names that MUST appear in the player's command history to win. Example: `['cherry-pick']` requires the player to have used `git cherry-pick` at least once. +- **`forbiddenCommands: string[]`** β€” Git subcommand names that must NOT appear in the player's command history. Example: `['merge']` blocks winning if the player used `git merge`. +- **`descriptions.requiredCommands`** and **`descriptions.forbiddenCommands`** β€” Human-readable descriptions shown in the ghost overlay so the player knows what's expected. Key is the command name, value is a short explanation. + +Command names are the git subcommand only (e.g., `'commit'`, `'stash'`, `'rebase'`), NOT including flags. `git commit --amend` is tracked as `'commit'`, so flag-level distinctions cannot be enforced. + +### Warning Slack Messages + +When a level has command constraints, add Slack messages with `variant: 'warning'` to nudge the player back on track. Warning messages render with an amber left border and tinted background, visually distinct from normal messages. + +**Two patterns:** + +1. **Forbidden command warning** β€” Fires when the player uses a forbidden command. Use `after_command` trigger: + ```typescript + { + from: 'sarah', + trigger: { type: 'after_command', command: 'merge' }, + text: 'hold on β€” you merged the whole branch. use cherry-pick instead.', + variant: 'warning', + } + ``` + +2. **Missing required command nudge** β€” Fires when the player uses command X but hasn't used required command Y yet. Use `after_command_without` trigger: + ```typescript + { + from: 'sarah', + trigger: { type: 'after_command_without', command: 'add', without: 'stash' }, + text: 'you should stash your changes first before switching branches.', + variant: 'warning', + } + ``` + This message automatically disappears once the player uses `stash` (the `without` command), so it's self-correcting. + +**Guidelines for warning messages:** +- Stay in character β€” Alex is casual, Sarah is thorough, Marcus is terse +- Be specific about what went wrong AND what to do instead +- Don't repeat the level instructions verbatim β€” add context the player wouldn't get elsewhere +- One warning per constraint is sufficient; don't overwhelm with multiple warnings + --- ## Implementing New Git Commands diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index d1adea9..07e7618 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -276,14 +276,19 @@ export interface TargetStateSpec { remoteBranches?: string[]; // remote branch names that must exist AND have advanced head: HeadState; workingTreeClean: boolean; + requiredCommands?: string[]; // git subcommands the player MUST use to win + forbiddenCommands?: string[]; // git subcommands the player must NOT use + descriptions?: TargetDescriptions; // human-readable labels for ghost overlay } // NOTE: Only structural properties are checked. Commit messages are NOT verified. // "Advanced" means the branch tip hash differs from its starting state hash. // New branches (not present at start) only need to exist. +// Command tracking stores subcommand names only (e.g., "commit"), not flags. export type SlackTrigger = | { type: 'level_start' } | { type: 'after_command'; command: string } + | { type: 'after_command_without'; command: string; without: string } | { type: 'after_branch_created'; name: string } | { type: 'after_commit' } | { type: 'conflict_triggered' }; @@ -292,6 +297,7 @@ export interface SlackMessage { from: 'alex' | 'sarah' | 'marcus'; text: string; trigger: SlackTrigger; + variant?: 'normal' | 'warning'; // warning renders with amber styling } ``` @@ -370,11 +376,12 @@ Loads the scenario, feeds the initial state to the engine, watches for win, and function useLevel(scenario: Scenario) { const engine = useGitEngine(scenario.startingState); - // Win condition checks branch existence + advancement from starting state + // Win condition checks branch existence + advancement + command constraints const isWon = checkWinCondition( engine.state, scenario.targetState, - scenario.startingState // third param: used to detect branch advancement + scenario.startingState, // third param: used to detect branch advancement + engine.executedCommands // fourth param: checked against required/forbidden commands ); // Trigger Slack messages based on engine state changes @@ -385,6 +392,10 @@ function useLevel(scenario: Scenario) { engine.commitCount, engine.hasConflicts ); + // Supports 6 trigger types: level_start, after_command, after_command_without, + // after_branch_created, after_commit, conflict_triggered. + // after_command_without fires when command was used but without-command was NOT, + // enabling self-correcting warning messages. // Par-based scoring: 3 stars at/under par, 2 stars par+1-2, 1 star par+3+ const score = computeScore(engine.commandCount, scenario.par); @@ -451,13 +462,14 @@ gitquest/ β”‚ β”œβ”€β”€ stash.test.ts # 16 tests β”‚ β”œβ”€β”€ reset.test.ts # 15 tests β”‚ β”œβ”€β”€ reflog.test.ts # 5 tests - β”‚ β”œβ”€β”€ cherryPick.test.ts # 8 tests - β”‚ └── rebase.test.ts # 16 tests - └── levels/ - └── winCondition.test.ts # 26 tests +β”‚ β”œβ”€β”€ cherryPick.test.ts # 8 tests +β”‚ └── rebase.test.ts # 16 tests +└── levels/ + β”œβ”€β”€ winCondition.test.ts # 34 tests + └── useLevel.test.ts # 20 tests (getVisibleMessages + computeScore) ``` -**Total: 195 tests across 17 test files.** +**Total: 223 tests across 18 test files.** --- diff --git a/docs/LEVELS.md b/docs/LEVELS.md index 2ba8144..68807d4 100644 --- a/docs/LEVELS.md +++ b/docs/LEVELS.md @@ -25,6 +25,7 @@ Each level is a TypeScript file in `src/levels/tierN/`. Copy the template below. - Add a mid-level message triggered `after_commit` for longer levels β€” it rewards progress and can introduce a complication - Keep messages short. Alex sends 1–2 sentences. Sarah can send 3–4. - Don't repeat the level instructions verbatim across messages β€” each message adds something +- Add `variant: 'warning'` messages for constrained levels to nudge players who go off-track (see [Warning Slack Messages](#26-warning-slack-messages) below) ### Target State Tips - Define target branches as a list of branch names (`string[]`) β€” the win condition checks that each branch **exists** and has **advanced** (tip hash differs from starting state) @@ -32,6 +33,115 @@ Each level is a TypeScript file in `src/levels/tierN/`. Copy the template below. - `remoteBranches?: string[]` can optionally specify remote branches that must also exist and advance - Working tree clean unless there's a good reason - Always double-check par by mentally executing the commands yourself +- Use `requiredCommands` and `forbiddenCommands` to prevent cheating on levels that teach a specific command (see [Command Constraints](#25-command-constraints) below) + +--- + +## 2.5 Command Constraints + +Levels that teach a specific git workflow should enforce that the player actually uses the intended commands. Without constraints, many levels can be "cheated" β€” e.g., using `git merge` instead of `git cherry-pick` on the cherry-pick level. + +### `requiredCommands` + +An array of git subcommand names that **must** appear in the player's command history for the win condition to pass. + +```typescript +targetState: { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + requiredCommands: ['cherry-pick'], + descriptions: { + requiredCommands: { 'cherry-pick': 'apply a single commit from another branch' }, + }, +} +``` + +The ghost overlay displays required commands with a checkmark/cross so the player knows what's expected. + +### `forbiddenCommands` + +An array of git subcommand names that must **not** appear in the player's command history. + +```typescript +targetState: { + // ... + forbiddenCommands: ['merge'], + descriptions: { + forbiddenCommands: { merge: 'do NOT merge the whole feature branch' }, + }, +} +``` + +### Limitations + +Command tracking stores the **subcommand name only** (e.g., `'commit'`, `'reset'`), not flags. This means `git commit --amend` is tracked as `'commit'`, making it impossible to distinguish from a regular commit. Level 1-03 (Amend a Commit) is not constrained for this reason. + +### Levels with constraints + +| Level | Required | Forbidden | +|---|---|---| +| 2-04 Stash Your Work | `stash` | β€” | +| 3-03 Stash Before Merge | `stash`, `merge` | β€” | +| 3-04 Fix the Last Commit | `reset` | β€” | +| 4-01 The Cleanup | `rebase` | β€” | +| 4-02 Cherry-Pick a Fix | `cherry-pick` | `merge` | +| 4-03 Rebase onto Main | `rebase` | `merge` | +| 4-05 The Full Workflow | `rebase`, `merge` | β€” | + +--- + +## 2.6 Warning Slack Messages + +When a player goes off-track on a constrained level, the Slack panel shows a **warning message** β€” visually distinct with an amber left border and tinted background. These messages are in-character nudges that tell the player what went wrong and what to do instead. + +### The `variant` field + +`SlackMessage` has an optional `variant` field. Set it to `'warning'` to render the message with amber warning styling: + +```typescript +{ + from: 'sarah', + trigger: { type: 'after_command', command: 'merge' }, + text: 'hold on β€” you merged the whole branch. use cherry-pick instead.', + variant: 'warning', +} +``` + +Messages without a `variant` (or with `variant: 'normal'`) render normally. + +### Trigger patterns for warnings + +**Pattern 1: Forbidden command used** β€” Use `after_command` trigger. Fires permanently once the command appears in history (the player can't un-use a command): + +```typescript +{ + from: 'marcus', + trigger: { type: 'after_command', command: 'merge' }, + text: 'merge creates merge commits. we need linear history. use rebase.', + variant: 'warning', +} +``` + +**Pattern 2: Wrong approach before correct command** β€” Use `after_command_without` trigger. Fires when the player uses `command` but has NOT yet used `without`. **Self-correcting** β€” the message disappears once the player uses the required command: + +```typescript +{ + from: 'sarah', + trigger: { type: 'after_command_without', command: 'add', without: 'stash' }, + text: 'stash your changes first before switching branches.', + variant: 'warning', +} +``` + +This example fires when the player uses `git add` without having used `git stash` yet. Once they use `git stash`, the warning disappears automatically. + +### Writing good warning messages + +- **Stay in character.** Alex uses emoji, Sarah explains, Marcus is blunt. +- **Be specific.** Say what went wrong AND what to do instead: "you merged β€” undo and cherry-pick". +- **Don't repeat level_start instructions.** The warning adds new information. +- **One warning per constraint.** Don't stack multiple warnings for the same mistake. --- @@ -262,6 +372,7 @@ Working tree: clean branches: ["feature/user-profile"] # must have advanced (squashed commits) head: { type: 'branch', name: 'feature/user-profile' } workingTreeClean: true +requiredCommands: ["rebase"] # player must use rebase -i Narrative (not checked by win condition): Player squashes 4 WIP commits into 1 clean commit via interactive rebase. @@ -280,10 +391,15 @@ git rebase -i HEAD~4 before you open the PR, squash those commits on feature/user-profile. 4 commits for one feature is noise. make it one clean commit. +[Marcus, after_command_without: "commit" without: "rebase", variant: warning] +more commits? that's the opposite of cleanup. use git rebase -i to squash them down. + [Marcus, after_command: "rebase"] better. ``` +Note the `after_command_without` trigger: the warning fires when the player commits without having used rebase, nudging them toward the correct approach. It disappears once they use `git rebase`. + --- ## 4. Level Progression Map (Full Game) diff --git a/docs/SPEC.md b/docs/SPEC.md index cf854c7..a58c690 100644 --- a/docs/SPEC.md +++ b/docs/SPEC.md @@ -85,6 +85,8 @@ Files animate (highlight) when they transition between states after a command. - Messages appear at level start; some are triggered by player actions mid-level - Characters have names, avatars (initials + color), and consistent personalities - Panel can be collapsed to a single-line summary to give more graph space +- **Warning messages** render with amber left border and tinted background when the player goes off-track on constrained levels (e.g., using `merge` when the level requires `cherry-pick`) +- 6 trigger types: `level_start`, `after_command`, `after_command_without`, `after_branch_created`, `after_commit`, `conflict_triggered` ### 3.5 Terminal - Always visible at the bottom @@ -200,10 +202,13 @@ A level is won when **all** checks pass: 2. **Branch advancement** β€” each target branch that existed at level start must have a different tip hash than it started with (i.e., the player did work on it). New branches just need to exist. 3. **HEAD position** β€” HEAD matches the target (attached to the right branch, or detached at the right commit) 4. **Working tree clean** β€” no staged, modified, or untracked files (unless the scenario explicitly allows them) +5. **Command constraints** (optional) β€” if the level defines `requiredCommands`, every listed subcommand must appear in the player's command history. If it defines `forbiddenCommands`, none of the listed subcommands may appear. -**Commit messages are NOT checked.** The win condition verifies structural properties only β€” branch names, advancement from starting state, HEAD, and working tree cleanliness. This allows players creative freedom in their commit messages. +**Commit messages are NOT checked.** The win condition verifies structural properties and command usage only β€” branch names, advancement from starting state, HEAD, working tree cleanliness, and command constraints. This allows players creative freedom in their commit messages. -The ghost overlay in the graph provides a continuous visual indication of how close the player is. Branch labels in the ghost show checkmarks when the corresponding branch has advanced from its starting state. +Command names are tracked at the subcommand level (e.g., `'commit'`, `'cherry-pick'`), not including flags. This means `git commit --amend` is tracked as `'commit'`. + +The ghost overlay in the graph provides a continuous visual indication of how close the player is. Branch labels in the ghost show checkmarks when the corresponding branch has advanced from its starting state. Required and forbidden commands are shown with check/cross indicators. --- @@ -214,11 +219,13 @@ The ghost overlay in the graph provides a continuous visual indication of how cl - Full-screen level selector with difficulty grouping, star display, and best move tracking - SVG graph renderer with ghost overlay - Working tree panel (staged / modified / untracked / conflicted) -- Slack panel with triggered messages (5 trigger types) +- Slack panel with triggered messages (6 trigger types, including warning variant) - Terminal with command history (↑/↓) - Simulation engine: 14 git commands β€” `add`, `branch`, `checkout`, `cherry-pick`, `commit`, `diff`, `log`, `merge`, `push`, `rebase` (regular + interactive), `reflog`, `reset`, `stash`, `status` - Interactive rebase picker UI (pick / squash / drop) - Three-panel merge conflict editor (ours | result | theirs, with free-form editing) +- Command constraint system β€” `requiredCommands` / `forbiddenCommands` on 7 levels to prevent bypassing intended git concepts +- Warning Slack messages β€” amber-styled nudges that fire when players go off-track on constrained levels - Local progress storage (`localStorage`) β€” stars and best move count per level - Undo last command + retry level - Move counter with par-based color coding diff --git a/src/components/layout/AppLayout.tsx b/src/components/layout/AppLayout.tsx index da6bcd6..ad08029 100644 --- a/src/components/layout/AppLayout.tsx +++ b/src/components/layout/AppLayout.tsx @@ -109,7 +109,7 @@ export function AppLayout({ level, onNextLevel, onRetry, onShowSelector }: AppLa {/* Main content: Working Tree + Graph */}

{/* Terminal */} diff --git a/src/components/panels/GraphPanel/GhostOverlay.tsx b/src/components/panels/GraphPanel/GhostOverlay.tsx index b85206b..d6bff6e 100644 --- a/src/components/panels/GraphPanel/GhostOverlay.tsx +++ b/src/components/panels/GraphPanel/GhostOverlay.tsx @@ -12,6 +12,8 @@ interface GhostOverlayProps { yOffset: number; /** X position (left margin) */ xOffset: number; + /** Commands the player has executed so far (git subcommand names) */ + executedCommands?: string[]; } /** @@ -25,6 +27,7 @@ export function GhostOverlay({ startingState, yOffset, xOffset, + executedCommands = [], }: GhostOverlayProps) { const descriptions = target.descriptions; @@ -66,6 +69,27 @@ export function GhostOverlay({ Object.keys(state.workingTree.files).length === 0 : false; + // Command constraint items + const requiredCommandItems: Array<{ + name: string; + description?: string; + isSatisfied: boolean; + }> = (target.requiredCommands ?? []).map((cmd) => ({ + name: `must use: ${cmd}`, + description: descriptions?.requiredCommands?.[cmd], + isSatisfied: executedCommands.includes(cmd), + })); + + const forbiddenCommandItems: Array<{ + name: string; + description?: string; + isSatisfied: boolean; + }> = (target.forbiddenCommands ?? []).map((cmd) => ({ + name: `must NOT use: ${cmd}`, + description: descriptions?.forbiddenCommands?.[cmd], + isSatisfied: !executedCommands.includes(cmd), + })); + const ROW_HEIGHT = 28; const GHOST_X = xOffset + 10; const LABEL_X = GHOST_X + 14; @@ -218,6 +242,43 @@ export function GhostOverlay({ 'ghost-head', ); })()} + + {/* Required command constraints */} + {requiredCommandItems.map((item, i) => { + const rowIndex = + branchItems.length + + remoteItems.length + + (showWorkingTree ? 1 : 0) + + (target.head.type === 'branch' ? 1 : 0) + + i; + const ghostY = yOffset + 24 + rowIndex * EFFECTIVE_ROW_HEIGHT; + return renderRow( + ghostY, + item.name, + item.description, + item.isSatisfied, + `ghost-required-${i}`, + ); + })} + + {/* Forbidden command constraints */} + {forbiddenCommandItems.map((item, i) => { + const rowIndex = + branchItems.length + + remoteItems.length + + (showWorkingTree ? 1 : 0) + + (target.head.type === 'branch' ? 1 : 0) + + requiredCommandItems.length + + i; + const ghostY = yOffset + 24 + rowIndex * EFFECTIVE_ROW_HEIGHT; + return renderRow( + ghostY, + item.name, + item.description, + item.isSatisfied, + `ghost-forbidden-${i}`, + ); + })}
); } diff --git a/src/components/panels/GraphPanel/GraphPanel.tsx b/src/components/panels/GraphPanel/GraphPanel.tsx index ff918b9..0c066d2 100644 --- a/src/components/panels/GraphPanel/GraphPanel.tsx +++ b/src/components/panels/GraphPanel/GraphPanel.tsx @@ -12,6 +12,8 @@ interface GraphPanelProps { state: RepoState; targetState?: TargetStateSpec; startingState?: RepoState; + /** Commands the player has executed so far (git subcommand names) */ + executedCommands?: string[]; } /** Warm-shifted lane colors */ @@ -227,7 +229,7 @@ function layoutGraph( }); } -export function GraphPanel({ state, targetState, startingState }: GraphPanelProps) { +export function GraphPanel({ state, targetState, startingState, executedCommands }: GraphPanelProps) { // Keep a persistent ref of all commits ever seen during this level session. // This prevents commits from vanishing when HEAD moves away or branches are deleted. const allCommitsRef = useRef>({}); @@ -262,7 +264,9 @@ export function GraphPanel({ state, targetState, startingState }: GraphPanelProp ? targetState.branches.length + (targetState.remoteBranches?.length ?? 0) + (targetState.workingTreeClean ? 1 : 0) + // working tree row - 1 // HEAD line + 1 + // HEAD line + (targetState.requiredCommands?.length ?? 0) + // required command rows + (targetState.forbiddenCommands?.length ?? 0) // forbidden command rows : 0; const ghostRowHeight = targetState?.descriptions ? 38 : 32; const ghostHeight = targetState ? ghostTargetCount * ghostRowHeight + 40 : 0; @@ -353,6 +357,7 @@ export function GraphPanel({ state, targetState, startingState }: GraphPanelProp startingState={startingState} yOffset={graphBottomY} xOffset={30} + executedCommands={executedCommands} /> )} diff --git a/src/components/panels/SlackPanel/SlackMessageItem.tsx b/src/components/panels/SlackPanel/SlackMessageItem.tsx index 086a837..2fca69f 100644 --- a/src/components/panels/SlackPanel/SlackMessageItem.tsx +++ b/src/components/panels/SlackPanel/SlackMessageItem.tsx @@ -18,9 +18,18 @@ interface SlackMessageItemProps { export function SlackMessageItem({ message }: SlackMessageItemProps) { const config = CHARACTER_CONFIG[message.from]; + const isWarning = message.variant === 'warning'; + + const containerClasses = isWarning + ? 'flex gap-2 px-3 py-2 hover:bg-amber-500/10 transition-colors border-l-2 border-amber-500 bg-amber-500/5' + : 'flex gap-2 px-3 py-2 hover:bg-panel-800/50 transition-colors'; + + const textClasses = isWarning + ? 'text-sm text-amber-300/90 leading-relaxed whitespace-pre-wrap break-words' + : 'text-sm text-panel-400 leading-relaxed whitespace-pre-wrap break-words'; return ( -
+
{/* Avatar */}
{config.displayName} -

+

{message.text}

diff --git a/src/hooks/useLevel.ts b/src/hooks/useLevel.ts index 427763e..4ea9183 100644 --- a/src/hooks/useLevel.ts +++ b/src/hooks/useLevel.ts @@ -46,6 +46,12 @@ export function getVisibleMessages( case 'after_command': return executedCommands.includes(trigger.command); + case 'after_command_without': + return ( + executedCommands.includes(trigger.command) && + !executedCommands.includes(trigger.without) + ); + case 'after_branch_created': return createdBranches.has(trigger.name); @@ -66,8 +72,13 @@ export function useLevel(scenario: Scenario): LevelState { const isWon = useMemo( () => - checkWinCondition(engine.state, scenario.targetState, scenario.startingState), - [engine.state, scenario.targetState, scenario.startingState], + checkWinCondition( + engine.state, + scenario.targetState, + scenario.startingState, + engine.executedCommands, + ), + [engine.state, scenario.targetState, scenario.startingState, engine.executedCommands], ); const visibleMessages = useMemo( diff --git a/src/levels/schema.ts b/src/levels/schema.ts index d331dd0..48c9a4a 100644 --- a/src/levels/schema.ts +++ b/src/levels/schema.ts @@ -25,6 +25,7 @@ export const DIFFICULTY_LABELS: Record = { export type SlackTrigger = | { type: 'level_start' } | { type: 'after_command'; command: string } + | { type: 'after_command_without'; command: string; without: string } | { type: 'after_branch_created'; name: string } | { type: 'after_commit' } | { type: 'conflict_triggered' }; @@ -34,6 +35,8 @@ export interface SlackMessage { from: 'alex' | 'sarah' | 'marcus'; text: string; trigger: SlackTrigger; + /** Visual variant β€” 'warning' renders with amber styling for nudges/alerts */ + variant?: 'normal' | 'warning'; } /** @@ -51,6 +54,10 @@ export interface TargetDescriptions { head?: string; /** Description for the working tree requirement */ workingTree?: string; + /** Description for each required command, keyed by command name */ + requiredCommands?: Record; + /** Description for each forbidden command, keyed by command name */ + forbiddenCommands?: Record; } export interface TargetStateSpec { @@ -62,6 +69,10 @@ export interface TargetStateSpec { head: HeadState; /** Whether the working tree must be clean (no staged, modified, or untracked files) */ workingTreeClean: boolean; + /** Git subcommands that MUST appear in the player's command history to win */ + requiredCommands?: string[]; + /** Git subcommands that must NOT appear in the player's command history */ + forbiddenCommands?: string[]; /** Optional human-readable descriptions for each target requirement */ descriptions?: TargetDescriptions; } diff --git a/src/levels/tier2/level-2-04.ts b/src/levels/tier2/level-2-04.ts index 89fe294..3b4e5db 100644 --- a/src/levels/tier2/level-2-04.ts +++ b/src/levels/tier2/level-2-04.ts @@ -71,11 +71,13 @@ export const level2_04: Scenario = { remoteBranches: ['feature/dashboard'], head: { type: 'branch', name: 'feature/dashboard' }, workingTreeClean: true, + requiredCommands: ['stash'], descriptions: { branches: { 'feature/dashboard': 'stashed changes committed here' }, remoteBranches: { 'feature/dashboard': 'pushed to remote' }, head: 'on the feature branch', workingTree: 'stash applied and committed', + requiredCommands: { stash: 'use stash to save and restore work' }, }, }, @@ -90,6 +92,12 @@ export const level2_04: Scenario = { text: 'Use "git stash" to temporarily save your changes. Your working tree will be clean so you can switch branches safely.', trigger: { type: 'level_start' }, }, + { + from: 'sarah', + text: "wait β€” you should stash your changes first before switching branches. try git stash.", + trigger: { type: 'after_command_without', command: 'add', without: 'stash' }, + variant: 'warning', + }, { from: 'marcus', text: 'Good. Pop and commit.', diff --git a/src/levels/tier3/level-3-03.ts b/src/levels/tier3/level-3-03.ts index 8c20503..1a20be1 100644 --- a/src/levels/tier3/level-3-03.ts +++ b/src/levels/tier3/level-3-03.ts @@ -94,11 +94,16 @@ export const level3_03: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + requiredCommands: ['stash', 'merge'], descriptions: { branches: { main: 'merged feature/maps + stashed changes committed' }, remoteBranches: { main: 'pushed to remote' }, head: 'on main', workingTree: 'stash popped and committed', + requiredCommands: { + stash: 'stash uncommitted work before merging', + merge: 'merge the feature branch', + }, }, }, @@ -108,6 +113,12 @@ export const level3_03: Scenario = { text: "I need you to merge feature/maps into main. But you've got uncommitted changes in your working tree β€” stash them first so the merge goes cleanly.", trigger: { type: 'level_start' }, }, + { + from: 'sarah', + text: "you've got uncommitted changes in the working tree β€” merging now could get messy. stash your work first with git stash.", + trigger: { type: 'after_command_without', command: 'merge', without: 'stash' }, + variant: 'warning', + }, { from: 'alex', text: 'nice, merge is clean! now pop your stash and commit everything together πŸ‘', diff --git a/src/levels/tier3/level-3-04.ts b/src/levels/tier3/level-3-04.ts index 45efb19..92c4329 100644 --- a/src/levels/tier3/level-3-04.ts +++ b/src/levels/tier3/level-3-04.ts @@ -102,11 +102,13 @@ export const level3_04: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + requiredCommands: ['reset'], descriptions: { branches: { main: 'recommitted with validate.test.js included' }, remoteBranches: { main: 'pushed to remote' }, head: 'on main', workingTree: 'all files committed', + requiredCommands: { reset: 'undo the last commit with reset --soft' }, }, }, @@ -116,6 +118,12 @@ export const level3_04: Scenario = { text: "you committed validate.js but forgot to include validate.test.js in the same commit. use reset --soft to undo the commit, add the test file, and recommit both together. then push.", trigger: { type: 'level_start' }, }, + { + from: 'alex', + text: "adding more files won't fix the old commit. use git reset --soft HEAD~1 to undo it first, then recommit with everything included.", + trigger: { type: 'after_command_without', command: 'add', without: 'reset' }, + variant: 'warning', + }, { from: 'alex', text: 'reset done! now add the test file and recommit πŸ’ͺ', diff --git a/src/levels/tier4/level-4-01.ts b/src/levels/tier4/level-4-01.ts index 6b4e516..7656b1c 100644 --- a/src/levels/tier4/level-4-01.ts +++ b/src/levels/tier4/level-4-01.ts @@ -116,10 +116,12 @@ export const level4_01: Scenario = { branches: ['feature/user-profile'], head: { type: 'branch', name: 'feature/user-profile' }, workingTreeClean: true, + requiredCommands: ['rebase'], descriptions: { branches: { 'feature/user-profile': 'WIP commits squashed into one clean commit' }, head: 'on the feature branch', workingTree: 'no uncommitted changes', + requiredCommands: { rebase: 'squash commits with interactive rebase' }, }, }, @@ -129,6 +131,12 @@ export const level4_01: Scenario = { text: 'before you open the PR, squash those commits on feature/user-profile. 4 commits for one feature is noise. make it one clean commit.', trigger: { type: 'level_start' }, }, + { + from: 'marcus', + text: "more commits? that's the opposite of cleanup. use git rebase -i to squash them down.", + trigger: { type: 'after_command_without', command: 'commit', without: 'rebase' }, + variant: 'warning', + }, { from: 'marcus', text: 'better.', diff --git a/src/levels/tier4/level-4-02.ts b/src/levels/tier4/level-4-02.ts index 830ff28..518b3aa 100644 --- a/src/levels/tier4/level-4-02.ts +++ b/src/levels/tier4/level-4-02.ts @@ -126,11 +126,15 @@ export const level4_02: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + requiredCommands: ['cherry-pick'], + forbiddenCommands: ['merge'], descriptions: { branches: { main: 'contains cherry-picked "fix crash on null coords"' }, remoteBranches: { main: 'pushed with the fix applied' }, head: 'on main', workingTree: 'no uncommitted changes', + requiredCommands: { 'cherry-pick': 'apply a single commit from another branch' }, + forbiddenCommands: { merge: 'do NOT merge the whole feature branch' }, }, }, @@ -140,6 +144,12 @@ export const level4_02: Scenario = { text: "there's a null pointer crash in production from gps.js. the fix is in feature/gps β€” the commit \"fix crash on null coords\". cherry-pick just that fix onto main and push. do NOT merge the whole feature branch.", trigger: { type: 'level_start' }, }, + { + from: 'sarah', + text: "hold on β€” you merged the whole feature branch. we only needed one commit. undo the merge and use cherry-pick to grab just the fix.", + trigger: { type: 'after_command', command: 'merge' }, + variant: 'warning', + }, { from: 'marcus', text: 'cherry-pick applied. push it.', diff --git a/src/levels/tier4/level-4-03.ts b/src/levels/tier4/level-4-03.ts index 47aea2d..3020894 100644 --- a/src/levels/tier4/level-4-03.ts +++ b/src/levels/tier4/level-4-03.ts @@ -92,10 +92,14 @@ export const level4_03: Scenario = { branches: ['feature/leaderboard'], head: { type: 'branch', name: 'feature/leaderboard' }, workingTreeClean: true, + requiredCommands: ['rebase'], + forbiddenCommands: ['merge'], descriptions: { branches: { 'feature/leaderboard': 'rebased onto main, conflict resolved' }, head: 'on the feature branch', workingTree: 'rebase completed cleanly', + requiredCommands: { rebase: 'rebase onto main, not merge' }, + forbiddenCommands: { merge: 'rebase produces linear history, not merge commits' }, }, }, @@ -105,6 +109,12 @@ export const level4_03: Scenario = { text: 'main has moved forward with an API endpoint update. rebase feature/leaderboard onto main before the PR. there will be a conflict in api.js β€” keep the v3 endpoint but preserve your leaderboard function.', trigger: { type: 'level_start' }, }, + { + from: 'marcus', + text: "merge creates merge commits. we need linear history here. undo that and use rebase instead.", + trigger: { type: 'after_command', command: 'merge' }, + variant: 'warning', + }, { from: 'sarah', text: 'conflict in api.js as expected. the correct resolution: accept the incoming (main) changes for the BASE_URL line, but make sure your fetchLeaderboard function is preserved.', diff --git a/src/levels/tier4/level-4-05.ts b/src/levels/tier4/level-4-05.ts index 922583a..f7699e8 100644 --- a/src/levels/tier4/level-4-05.ts +++ b/src/levels/tier4/level-4-05.ts @@ -91,11 +91,16 @@ export const level4_05: Scenario = { remoteBranches: ['main'], head: { type: 'branch', name: 'main' }, workingTreeClean: true, + requiredCommands: ['rebase', 'merge'], descriptions: { branches: { main: 'feature branch merged after squash' }, remoteBranches: { main: 'pushed to remote' }, head: 'on main', workingTree: 'all files committed', + requiredCommands: { + rebase: 'squash commits with interactive rebase', + merge: 'merge feature branch into main', + }, }, }, @@ -110,6 +115,12 @@ export const level4_05: Scenario = { text: 'start by creating a feature branch off main. something like feature/notifications.', trigger: { type: 'level_start' }, }, + { + from: 'marcus', + text: "don't push yet β€” squash your commits with git rebase -i first, then merge to main.", + trigger: { type: 'after_command_without', command: 'push', without: 'rebase' }, + variant: 'warning', + }, { from: 'alex', text: 'two commits on the branch, nice! now squash them with git rebase -i HEAD~2 before merging πŸ’ͺ', diff --git a/src/levels/winCondition.ts b/src/levels/winCondition.ts index f3036c7..e31ebfd 100644 --- a/src/levels/winCondition.ts +++ b/src/levels/winCondition.ts @@ -13,18 +13,22 @@ import type { TargetStateSpec } from './schema'; * - All target remote branches must exist (if specified) and have advanced * - HEAD position is matched by type + branch name (or hash for detached) * - Working tree cleanliness checks for empty index, no modified/untracked/conflicted files + * - Required commands must all appear in the player's command history + * - Forbidden commands must not appear in the player's command history * - Commit messages are NOT checked */ export function checkWinCondition( state: RepoState, target: TargetStateSpec, startingState: RepoState, + executedCommands: string[] = [], ): boolean { return ( checkBranches(state, target, startingState) && checkRemoteBranches(state, target, startingState) && checkHead(state, target) && - checkWorkingTree(state, target) + checkWorkingTree(state, target) && + checkCommandConstraints(target, executedCommands) ); } @@ -98,3 +102,28 @@ function checkWorkingTree( return true; } + +/** + * Check command constraints: required commands must all appear in history, + * and forbidden commands must not appear in history. + */ +function checkCommandConstraints( + target: TargetStateSpec, + executedCommands: string[], +): boolean { + // Check required commands β€” every one must appear at least once + if (target.requiredCommands) { + for (const cmd of target.requiredCommands) { + if (!executedCommands.includes(cmd)) return false; + } + } + + // Check forbidden commands β€” none may appear + if (target.forbiddenCommands) { + for (const cmd of target.forbiddenCommands) { + if (executedCommands.includes(cmd)) return false; + } + } + + return true; +} diff --git a/tests/levels/useLevel.test.ts b/tests/levels/useLevel.test.ts new file mode 100644 index 0000000..a4e96a1 --- /dev/null +++ b/tests/levels/useLevel.test.ts @@ -0,0 +1,281 @@ +// tests/levels/useLevel.test.ts β€” Tests for getVisibleMessages and computeScore + +import { describe, expect, it } from 'vitest'; + +import type { SlackMessage } from '@/levels/schema'; +import { computeScore, getVisibleMessages } from '@/hooks/useLevel'; + +// ─── Helper ──────────────────────────────────────────────────────────── + +function mkMsg( + overrides: Partial & Pick, +): SlackMessage { + return { + from: 'alex', + text: 'test message', + ...overrides, + }; +} + +// ─── computeScore ────────────────────────────────────────────────────── + +describe('computeScore', () => { + it('returns 3 stars at par', () => { + expect(computeScore(3, 3)).toBe(3); + }); + + it('returns 3 stars under par', () => { + expect(computeScore(2, 3)).toBe(3); + }); + + it('returns 2 stars at par+1', () => { + expect(computeScore(4, 3)).toBe(2); + }); + + it('returns 2 stars at par+2', () => { + expect(computeScore(5, 3)).toBe(2); + }); + + it('returns 1 star at par+3', () => { + expect(computeScore(6, 3)).toBe(1); + }); + + it('returns 1 star well over par', () => { + expect(computeScore(20, 3)).toBe(1); + }); +}); + +// ─── getVisibleMessages ──────────────────────────────────────────────── + +describe('getVisibleMessages', () => { + // ── level_start ──────────────────────────────────────────────────── + + it('always shows level_start messages', () => { + const msgs = [mkMsg({ trigger: { type: 'level_start' } })]; + const result = getVisibleMessages(msgs, [], new Set(), 0, false); + expect(result).toEqual(msgs); + }); + + // ── after_command ────────────────────────────────────────────────── + + it('shows after_command when command has been executed', () => { + const msgs = [ + mkMsg({ trigger: { type: 'after_command', command: 'push' } }), + ]; + const result = getVisibleMessages(msgs, ['push'], new Set(), 0, false); + expect(result).toEqual(msgs); + }); + + it('hides after_command when command has not been executed', () => { + const msgs = [ + mkMsg({ trigger: { type: 'after_command', command: 'push' } }), + ]; + const result = getVisibleMessages(msgs, ['add'], new Set(), 0, false); + expect(result).toEqual([]); + }); + + // ── after_command_without ────────────────────────────────────────── + + it('shows after_command_without when command used but without-command not used', () => { + const msgs = [ + mkMsg({ + trigger: { + type: 'after_command_without', + command: 'add', + without: 'stash', + }, + variant: 'warning', + }), + ]; + const result = getVisibleMessages(msgs, ['add'], new Set(), 0, false); + expect(result).toEqual(msgs); + }); + + it('hides after_command_without when without-command has been used', () => { + const msgs = [ + mkMsg({ + trigger: { + type: 'after_command_without', + command: 'add', + without: 'stash', + }, + variant: 'warning', + }), + ]; + const result = getVisibleMessages( + msgs, + ['stash', 'add'], + new Set(), + 0, + false, + ); + expect(result).toEqual([]); + }); + + it('hides after_command_without when the command itself has not been used', () => { + const msgs = [ + mkMsg({ + trigger: { + type: 'after_command_without', + command: 'merge', + without: 'stash', + }, + variant: 'warning', + }), + ]; + const result = getVisibleMessages( + msgs, + ['commit'], + new Set(), + 0, + false, + ); + expect(result).toEqual([]); + }); + + it('hides after_command_without when neither command has been used', () => { + const msgs = [ + mkMsg({ + trigger: { + type: 'after_command_without', + command: 'push', + without: 'rebase', + }, + variant: 'warning', + }), + ]; + const result = getVisibleMessages(msgs, [], new Set(), 0, false); + expect(result).toEqual([]); + }); + + // ── after_branch_created ─────────────────────────────────────────── + + it('shows after_branch_created when branch exists', () => { + const msgs = [ + mkMsg({ + trigger: { type: 'after_branch_created', name: 'feature/x' }, + }), + ]; + const result = getVisibleMessages( + msgs, + [], + new Set(['feature/x']), + 0, + false, + ); + expect(result).toEqual(msgs); + }); + + it('hides after_branch_created when branch does not exist', () => { + const msgs = [ + mkMsg({ + trigger: { type: 'after_branch_created', name: 'feature/x' }, + }), + ]; + const result = getVisibleMessages(msgs, [], new Set(), 0, false); + expect(result).toEqual([]); + }); + + // ── after_commit ─────────────────────────────────────────────────── + + it('shows after_commit when commitCount > 0', () => { + const msgs = [mkMsg({ trigger: { type: 'after_commit' } })]; + const result = getVisibleMessages(msgs, [], new Set(), 1, false); + expect(result).toEqual(msgs); + }); + + it('hides after_commit when commitCount is 0', () => { + const msgs = [mkMsg({ trigger: { type: 'after_commit' } })]; + const result = getVisibleMessages(msgs, [], new Set(), 0, false); + expect(result).toEqual([]); + }); + + // ── conflict_triggered ───────────────────────────────────────────── + + it('shows conflict_triggered when hasConflicts is true', () => { + const msgs = [mkMsg({ trigger: { type: 'conflict_triggered' } })]; + const result = getVisibleMessages(msgs, [], new Set(), 0, true); + expect(result).toEqual(msgs); + }); + + it('hides conflict_triggered when hasConflicts is false', () => { + const msgs = [mkMsg({ trigger: { type: 'conflict_triggered' } })]; + const result = getVisibleMessages(msgs, [], new Set(), 0, false); + expect(result).toEqual([]); + }); + + // ── Mixed thread scenario ────────────────────────────────────────── + + it('filters a realistic thread correctly', () => { + const thread: SlackMessage[] = [ + mkMsg({ + from: 'sarah', + text: 'stash first', + trigger: { type: 'level_start' }, + }), + mkMsg({ + from: 'sarah', + text: 'you should stash first!', + trigger: { + type: 'after_command_without', + command: 'merge', + without: 'stash', + }, + variant: 'warning', + }), + mkMsg({ + from: 'alex', + text: 'merge done!', + trigger: { type: 'after_command', command: 'merge' }, + }), + mkMsg({ + from: 'marcus', + text: 'push it', + trigger: { type: 'after_command', command: 'push' }, + }), + ]; + + // Player merged without stashing: should see level_start, warning, and merge msg + const result1 = getVisibleMessages( + thread, + ['merge'], + new Set(), + 0, + false, + ); + expect(result1).toHaveLength(3); + expect(result1.map((m) => m.text)).toEqual([ + 'stash first', + 'you should stash first!', + 'merge done!', + ]); + expect(result1.find((m) => m.variant === 'warning')?.text).toBe( + 'you should stash first!', + ); + + // Player stashed then merged: warning should disappear + const result2 = getVisibleMessages( + thread, + ['stash', 'merge'], + new Set(), + 0, + false, + ); + expect(result2).toHaveLength(2); + expect(result2.map((m) => m.text)).toEqual([ + 'stash first', + 'merge done!', + ]); + + // Player stashed, merged, and pushed: all non-warning messages visible + const result3 = getVisibleMessages( + thread, + ['stash', 'merge', 'push'], + new Set(), + 0, + false, + ); + expect(result3).toHaveLength(3); + expect(result3.every((m) => m.variant !== 'warning')).toBe(true); + }); +}); diff --git a/tests/levels/winCondition.test.ts b/tests/levels/winCondition.test.ts index ac7c666..1d9de87 100644 --- a/tests/levels/winCondition.test.ts +++ b/tests/levels/winCondition.test.ts @@ -420,6 +420,129 @@ describe('checkWinCondition', () => { }); }); + describe('command constraints', () => { + it('should pass when no command constraints are specified (backward compatible)', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + }; + expect(checkWinCondition(state, target, startingState, [])).toBe(true); + }); + + it('should pass when required command appears in executed commands', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + requiredCommands: ['cherry-pick'], + }; + expect( + checkWinCondition(state, target, startingState, ['checkout', 'cherry-pick', 'push']), + ).toBe(true); + }); + + it('should fail when required command is missing from executed commands', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + requiredCommands: ['cherry-pick'], + }; + expect( + checkWinCondition(state, target, startingState, ['merge', 'push']), + ).toBe(false); + }); + + it('should fail when forbidden command appears in executed commands', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + forbiddenCommands: ['merge'], + }; + expect( + checkWinCondition(state, target, startingState, ['merge', 'push']), + ).toBe(false); + }); + + it('should pass when forbidden command is absent from executed commands', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + forbiddenCommands: ['merge'], + }; + expect( + checkWinCondition(state, target, startingState, ['cherry-pick', 'push']), + ).toBe(true); + }); + + it('should enforce both required and forbidden constraints together', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + requiredCommands: ['cherry-pick'], + forbiddenCommands: ['merge'], + }; + // Has required, no forbidden β€” pass + expect( + checkWinCondition(state, target, startingState, ['cherry-pick', 'push']), + ).toBe(true); + // Missing required β€” fail + expect( + checkWinCondition(state, target, startingState, ['push']), + ).toBe(false); + // Has both required and forbidden β€” fail + expect( + checkWinCondition(state, target, startingState, ['cherry-pick', 'merge', 'push']), + ).toBe(false); + }); + + it('should fail when only some required commands are present', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + requiredCommands: ['rebase', 'merge'], + }; + // Only rebase present, missing merge + expect( + checkWinCondition(state, target, startingState, ['rebase', 'push']), + ).toBe(false); + // Both present + expect( + checkWinCondition(state, target, startingState, ['rebase', 'merge', 'push']), + ).toBe(true); + }); + + it('should pass with empty executedCommands when no constraints are set', () => { + const state = makeState(); + const startingState = makeStartingState(); + const target: TargetStateSpec = { + branches: ['main'], + head: { type: 'branch', name: 'main' }, + workingTreeClean: true, + }; + expect(checkWinCondition(state, target, startingState, [])).toBe(true); + }); + }); + describe('combined scenarios', () => { it('should pass for level 1-01 after player commits and pushes', () => { const commit1 = makeCommit('a1b2c3f', 'initial project setup');