Last active
April 7, 2025 16:02
-
-
Save lpereira/8bd587372e1a949f4603024fe763c3f1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/python | |
| # Bagulhete para resolver term.ooo | |
| # L. Pereira, Apr 2025 | |
| from collections import defaultdict | |
| import re | |
| import base64 | |
| import zlib | |
| PALAVRAS = r"""GhO_)mC%Wqe#hS-Gtr4Y"C7lnC"0f[*;sJUmN8tEUEk5>:_`]rqt'^V^[Z[+gqtN6ZQR@X16G6UY:El"=7VWhP&*)!2tD]o]T\uCkNuT;T6L).=U3,gSsBUFDrtd(hr;Di^WIoI/Gq/AZ'6K'j)^?k`P32ffBWYXN+DtQi@h[gfS-ZTp&8%1Kk1"6o"N<E^*]@UhY6Ca\\.[/MFgSsguW^W%/]UJ.sCQ,naq_9+M$S$;?E1eY2^l)5q\5MB=K$uG-E+2KB.$+:[Y-Y8_)j6+^+SfEPM9R\QA@E?2^geCa>"dcJ:YN$hAAsl07Hs8TKs+8Q,#<,),-(1\*;pfSd8^7^A-^^Du<Dd2j?Y57:NYG_CcUIfBbs_S%>qg<X8kL?3\:Te/lEOnV;Wb9$Dhge9\sd'TOf0'2s^nR&EXYrD7GKu^?DG3SI0m16>YTiF4dnG>tpDhFst0)<*>lOqeq?^J@<Si7&J.K,T<?ZLROj\h\:**m=NWr,ENV)0g4H)]%]C:1O+p@cki*noB,Gl#q$Sj2hk&uJZiY3]jK:RcVFI`dRqj\A$dWo[mPZZMAKqc'oJP.pEj;?DIc4-HN0T'GaCet,OnZg_,mfuR*`K3-_'X-%W+mG')`l01e1M.HY"=YOl+`?<9T7.-!?K-We?j[b@qGN&#-hhAh[8a]^/J"Q$#WFhe!rZM#)16G6Ub4&;`CA)q0jXorijlQiNoH,VK3;cJ8CQNo':B-cAgJ`t/8KXJPg8&%%oeID?-fa]lhb@iu;EL)rRFKNX/gb]qWJelc4=t#I`2Ih`4\b<;C1L3edrL6D+o1W";OUXk(saSiq.)U[eC::k-8d[J:RoMfBV.iVCKCR,lq)V"l>':)dk8YS-Z,b$koI+XFoH[EP@VXYF2:"U,`U.I^\r>&HBOdDVgi8WS4e2,i"6=F\2Pqs=UEDHGh2$?jaOe)Ldat.[H(I.c:4p]bEt)(ku72FhE!0<=UE;E@.$6@G5R)o_:^ncmX+"aUtLP\CU(2XBti"K"q)atUXO%$RZ0tHEG7<`c,QUU'!h%?2QA;tQ,U@L;7;D2>Fm:QAc-Ca9?<meK_j_<e6V^_71Ck$]jPsS&^)A*MgR*Gh8MoHMCNX0DNXq[b$0+9PCMT`j\>UB%Xn:,,^EJ*eF-&a?>B16HMhH'04DSZ^e5!HPecUR8_Qo0oW5n!hpiZne](XlCGd2<c,<XGGL^b9-*qnfYM.a2s/seVrhPk30lb#N?DB@.8*Y!]G'?(<)eP<OjJVKG4C'X`Zp(YfI.I),)6QGfeVLIK0a<gS/U8qIOjuG+C<qOf%8W.odWH2J,X#)_,D-`Q`AR%>I<<HEq<-mkOjA_L]JKSo][-R7.tQB's3_]a1PGF^s1bq)eS)DVCTG1Xl>,_V9:cp))VJ.9gM18'(O9@oT"])dEb#rj)Y_gZP&DU<E]LW?nq/$\nP[5(]X;^BB]lETc>((uRW#8s[WND`rjpq`#h^/0D/%=3;esXm%cqcSU[`1a4[#(h\_i?N+()G:<D-ZC1fj!hokms@l9Q'UF\.Yge7u_&RV<2MO8_#h0sSA!M0Rp7[uNIMR!>Z<0R/:-a\9#0\WS5(6%1_TLAe!Ih7l_/qmZPO-%d3Og2C-3`RDLE\Ia3Co"91HQ=!;]Cc.9UV3(SX0t`grW2hpS2<Ut868c*O`qI!>2:b2UAtdc-?EIcC\V6\.<V+Y=71GCcD7N"qalRNcgqIM6eHf<[?`I7$h>PsH?bQ?:=\<Psbrf#'e[r#R)-5ct2&k>"dP!L'p?%pU=]'(fO.0!^1QlZkC,9l?P#pF02W8KO]CU<2TB%AF7fLYW[>jEt.-*n<MXa#8Y[YZJHku9>?:Yk"bdRiQ9RkihWS+DLp,@-'RBLMnDGtbK]%`0RRl/9!0!lM4[dkU;OCYN"bs)M[(?Xtu7\jlrH#?:/hPT-7j&<X0l??1AS,1sjmq*WQ)'u^;lefsGBR:'KV;0:?2C$,:hDZsIc0AfneXB[uN!u2dk]i4:<JU--di(/``m+:_)'?:cR-3ia/R^>^bQe>RX;ISdnsfCNAkX$ecPq$`5&A5obrg/*O571Gc"qS#ArPHQN&eM9]`4IM\+c]5)$cUQ7l)&?rOqIa9n.*Xq\]#Bls\c29g<LO<mBC!l*H!G8QM">A0oo"2Nj&1(ReIUAm<[k"s[K<rap'!bg"j^qilR.[-=K@nSa)!`qH8NgFcL<<7+,C-8[U7o\sJke'r)1S'B0ZRI`?pf[O:bSi8gD?$ZH.rOV7F9pu$^ecp'e86%Srl/j6sIifqcO?^7IgduS=h`Ir,fBW\;=bT[8Xgadl:==iDEhE8:r4GVLZheTdDE!=g>k+-Hf^Zaqpm6InUu\eEVnT`>U)P2cR7oP3FJHc^a87=cEqIR81J#7O,NZq)_8K6IWr1Z?Nq)T*d-3L#QI`IKDOftQ7Ip$A7D=mTD/%e]e'..SU]`$T0Pfrc9mr1_8M2@S2im69:jiu1/;:DERQGY%<&[;>=fT]:"ukUU5=7H%dg$-<di>?V,B`>BDN<4\jLS[E^!XERXd^tdo;1lgf"K\HpKBNDFX(3OicXSZ^1\I3c!]<r]O$jj<=\^%90+DcW\ga(W9'<j4]O#48u#uVfWC):dq399\t7Qf0fpso2hN$-s!F8EPOA\HoNs3$(tE>F3ZVV+iT\oiK*C;MB3s<(;E_rkn(3Q4h0@\6Y+7JD>G6.[XaXt3`m7D\e+Mg?*RWbRs!5"-^3Sq3LUZYZ<'25FK&!?kj,oQG`k"ON$l4di.1I?W_S'odKcE]sOLq0`/a`6kP)I/6*=r(&`REhGruMPl8pF/<.H/)nPYO$bj-5^jIrD1$>Nn+GZ_oPC1ab;K_l4VNj3hYuGUeo@54^THS_bBbOluB)3;)C^>N=4_:N)+h00]'ge,/.s^,X;*P15M&P$]J;j.H1hktQ0_.ArbXl6E3i5P9V,00!Z=::%Q2O#XgI#0AsKM:0&lYsc?QXsrOT/^H_ob*/FXoH$$#nC*osoJS_S#u>VsP@i`05<QV^cE9"2lB;GLe<1'OiQdupI;66h=i"fQE-guCjp!1r_!,-GdK?"O#U_dNW?n1n8uK/Hq+:NkhDLWY`FWY+)>V>$j;TEl=!>%2]]OlpbmF2$bIWqX[?>A(aNN[NH-q[YFRkd/csS+hhUIlLdH)BpSS<Y-j;A9-.jb3RK,m(l:6JkpV>77N]qtYo:%@qSG\^/pD<\/;]oE&1XlsUrqR.`!Rq'*j\o4A3gZ\LbEo'ioD_':&IL8<V1_4k9HbQn[[h\,]$M80=qUUP\>1$P)H>>rf/a'epr""4sa"6spjmj#_a!gJ_&+ZF?r2@Z>*r"4:^-B(PAb&h>?^h"u2riLrcW>VldPlX:oXcBgYFL'T284CW=7>oVgK.&IRaZ_neZ[Zgf*M10_u+,$RI.0]=0-Yi4!&X#L!RVKiNmbi66"_U\bN_pk95LKfttMFZU+s3I`C#V[Dh<-BUM_NH2>2EhsuRb[6JnjP;&nd6C[bBY(SKU3_T&qb^'4SP+HdXXo8.gkJ)qF0)i9R=6_Chk\2F/ak\-MRAg[F\3IGa5$u00Kt724GJ[U78KRE:5&V2^Qd/T&Y(*&BO\=ZEGe2ZC@4lp[8^D_PF6)RfY%,9ODg?_Jb'B2*9rW#.Z:Vq\%@]2572h?8r[V"'?U8^HgSAJGSkXONdL5kJ<b$]6[tLA,q,_7eaEK)ZC`san42tn\mrHgP]M!O:nh0$0b.Em^.IYGS:Sk1/"23S+9@)'SR2eOWKR='g=<:S,>WCbTN$NFfBF0ILSbgY-F1^K4I/J\Ec)K<b;L</lVmsa)0U1]uN2O22.\*%tlb0[Ik`1*J=GPVka1o?&D^B1__=QdpU$0lm0/!*>d;oOShXW0j)Tm!=oVV3KY=IlkAA'[a^,#tk(#pZFkeZof_+:;_%cbj(4cH#s"2f`",k:/,-1C8`]T]71(VQg37t]]<,+lqhmQ^,nT7nAdeK]qm;<j`0C]>\2kV-`%cHDM//6Zl;<f:!^[*h6(doMB->-uMJ9bqTOFCdG/g>R4=ccsq0>8k)[BoPPs/6ZQJ@NSN<N-n=r6?;InS8)3m.U#g!>0<8A;,6)B_UKVBm:"+qDK*6S_ECS[MqVNee&%I/Q"5rJX=1t$/+2%Es2nM#,i;0Krf<CD,[(*E/k)/T%/_`tm:?pj9KjiKMpZc+L]$n3<\tXX7`%U=/o#Q4V7[.*bq@#FAKrpu/]Oq^SM!C6`ON8l@@$,7#:k#po!0d$-3Q3<W7aU&0'[+I7uKDH:%Doo*uSQ)UW6j9(__[hfHDp5EKE:-`hMl:Fgi1g(,`L)@X4jeet9uI@F@&YL.U?-VOIbLF#;c.+g3,SiAk(*IJD__@TbAPbU3Xn#t`RO#05pq#PboH-bFQ-B+HWM_fmBg#.n$SDH<t\:Nl,<O#As%,:i37Oh?dR/p8J]r^^DNblRN.b'\^0s5a2TO-*uI`o"1oII^A7ftI-(n+tjRZY*#M<nsrir+EKJ0K$7NAMI:X$NIu%DL!olO?K&P6)B_>iF#1?nb1kRlZXq(9XSb=gp(?Up@dCq#<l#OhYXqZra<Upk'(ZkpYHub&E,%r<D'poGAmCb0A,rL?2LN=N9O(7lO1>=Y^:0Sg$9XUP%QW+[J@M:]DhC.V:-B,cr4ZPDB7eE\Mm;COtCD>T&#BE]=tW;41i55lT;`XZ6,M3m>&=khaU+@Yi:Z`':O./md7Q3DslJI@q*%nM=S3Aan<03E%WT#*qaaW#kLu4NdoI=KmWUQIW.N^;ZcT9K/:W,oqnX06%0=7pWZ7OcTepK&&hWl2u+'"IbfoaZ3'm!'DnU8qkXOUnJ(_C1U1Qr4d\:tMc^bRC[H4<@JjftZqQ*6T..IFF\kc74?`HRIb$]86JbWKZp8'\7a\rn[8F="d^/gPX>n),YFcn1hUP03Uu;s',m<h-T"V?oTj>OGKG/.(hb0AE=YU@4SX0rQ1@e[>R*5A?n-[W2Y".>(f:ui%lP48F=E2BA7p%l*SedL.e"&R;m$d,;_UQsJ%H3s^AneTo\?Z/VbR3?UM8f7/)&]Nf#Cjk7U@2Icrak51<??IT\(IOl?i'Yr^L(UAQ_&Zjl'Iujl.;9tae_L7HLY+bVl]OM/,G.>Poo8Z;QDHXqX:9D?9N/cdW7'[]'JimoA8da2j7#.f^&0/%it:A?G,aj$@]1fEqlTFn*orD8P^=RE0!kBY`uATO'X`sn.XrdoWU([^L89-FVf3`_W;$u>SC`+=eU=f:HNhtm$[m,'lQ[a!u"FG"%#2jp^gN\@9Cm+s7fsr=VBb)k@`sjk=9hRK6kH9/j.7Zpj>\02!oqDSA,$uRD_&kF-;I'J#AM-]#i855I5<@q3pD\QEOH*AuV5C:Sf?*eegh.=KuB60Bt(!Lqs>jj*'V#)0nOl4NWl=U9#+Z?c4^s?X^^kJ*0a9/92X<beo<"L7(+MKU4g`/K@6c9'n+9/"`k!Y<Vd1`4/G,qC'FGe?7619'7[pX)tN0FB,6>3aL:u\pQ2C]5"0Xoi)gkh&Qhg:00G]e]rL2,@Baus/J:J\Df*^J#dUmauQMi6/g<oE'[9b`[6A`IlI=8PMbbQZf$H2f2h[74e51*GE^Kh[NF)q&$,TDrMFPR)^P(J+@!pXs-;&-%;sm@jrP&6reFMRj/8l[VS8L(2tb^s^I`q(f:%#"lD:JHVI)9)dIs%WVR2ide"j"72[bdUI-MOJC-Q"j?+aHGFlefA1JF0A.<VK:`Ld$d:^G4D0DAEE[>h>+oZH@:]l>RE^>EhuWnFOe]:/,%[d+`8Nk2lFH0OnJeU,pI],#N;eO)thPjKW<LU')(nPK5*j//_Hpe\h_&jH#YaibiEa)SGYIn@t+qQKO]@R%hYrnNZs#:?hA7NQXr%pG)#I7VSV4dFo'^9Vf7`a#LVIcLH+4-t9.N9?N?^:'MfnPX\"E%^1m-0:JX?W)>EmH&3Urjc0Oa,WaA>75gOm9=>_;Z##LhU;=aT'XjcG=,P/af`co7Q*;q_:26U9hgns>6YaEH"8`[fnU%.1cqoP3gR#1/\f0@9DA!*74]+_&\]+@Mm9r4gIq12+[6jpMt+Fsabu:o(n$;E\W#W2ni8!3j)\Aa_J!2K%tDsM4Qp2Xs"NiTX=G@U?Y`h]0eO2N9A+u4XIs]]PftK[q(r/Wf+#:><X0#PVg_hA;qAT)T@0C9dDLVdRBC_EGkEMsQNu>>a=VW7c2Go%oU9e+;u86%J'n8[B>V/7o*J?YVmoKASRU!LMK\Z*[e#i.7sK^uOpB*m4#QSqF[o"%ia-O=,d/JYUloO>WV=0[JV9UQ:HM/25.OHb:QgXs9p0Plb;keQ.4eA!UbMZ[K+n!t/[\#^Z\f("V7B,s3MoWc-)LQQNq'#Aral$LG"hb?cbDmebW#OF2u_#[rlcnl[,+$LpMZHtSr4F%V6m?%LctWiK0):iAl1=AP$+4bPYY?YK@7:pDT:!TGJ!?gjhD0`HTd"ugtV46U!R7G(@nZ!GBr)2oDW&Mnk35S\1TeQPjl*;/Ej'XYBH+7/rY%)Q]tilel_ZjM)"=qa't!2[$E$8F:WQ6KCQK?c]dB3Tm?*i]pl66r&g-sjlsNUs"tuPC3`cIHqqO54'g'*#NNk7[*8MbgfTLS1jal>4,\C-P22!#rE`TF61UFS-@,.Q,1#Uk0`tR;/W7.E:#LXNE:?+g@i,)GN%0b5A+A]XpD`b^r[etDpF/hpK+@B:#Paqo*3:FMO+ZL4[ht)AM\0IhY$AUiBa>e;KS+ukO;F(efYpCe>XH07hdUsd2i#^:>)NVYl+s0+2);CoI^"V<\_l1VJSY)7Y_Sh8AZK.G0#H"gf'L/,jGc77L@+D:g@2+4XEqgro;NP-Z+CB8ptu*)n]%;50^78tf\ICSbJbO'[VuP:a5'9Gkip7'h'D7?k=tt;aknA9S&5)JRNA_('0_el[p'U8<eZ/6k,Ga3D.cu@Q?Q$VX9s/ip>)a1rprGU)=kP+VbVFd^AT4_ep[EoR'FU;DtbWD_ImK:]D):GX333fP*4]Ms-i`4j7[.9*kP9k2i?%>L@GqhMo!NaMAqD8>a1!5E47%G(GROO1cEd<L65Sfd=jbt5p*J,@<-+"7IqDfYC+P9kWct:Hn$YIXkicV7k6>CSQ8t,e^iZ5Sgmr[Y'k0bV#Tj_WiW=GCF^=QE'\LnXAW.VqX%8i@k0F8,d"BWj2ZOZ2cA&;L'o?8c$qZ`CP>2!4"."=5qG#$[:eOMDT/t%[DpC#`Jt8,'bVs0)3"mse-h4FHW+9P4hL@s:%)T\C8VHG.h/PNh(3>#bM(4Hk^aiJ^^h@A5pb!FN*4_L9ggf8TGc%;5*VBd4^B(rM:!/)BT+$T`?E?P98':qN4j>S%m&cJlrmfK!kT4]k-eJ'mH/?!q:ffd[TiXqeiP_7+h>6fkmVar7ue'jCY[dQ'DJ0!%S=TPoVT$FcrrYIXWOq$%pJ9(Xn@=tqE\m[-tKYP)XPhcjP:*VRka?N6[J+gG/pMGcL+uQ?aigBEqM5Q:90l?)h5UX[dS,lDZ71NdHo^+A%E9P+&>+mIQ[R"V\RJUOg_GUIQdYPf2o]#9(,u%H.)`;J*GD!J&9]IO3Vq<jM!a)h^!]8s5-?Rh=uVFk_!c#0QGL"5Np*S:DZf6gadZ`8Q%_-8/b(_5&Y`sG4X$trlKod_1qPIMuI+tq-^Hf=SS+%ZV;4)K4=J%lpf9<L.S-]P0!*4a!e]7Pr.cYo!R)="j)HV)W0I!<E_i+Pg>WBJ.:S4IpEoo],!`"55;f_P1e$TFtR^cbPL5hY.W!TY3bQcApbX-mXhqF$<KE8IQD]9-ggEo*k],jl/]a6SdOZV9fQn`;BqNPes1Zsa(>7".K<':?Z_,@>p?uY?rh?8\]<gfFEnO*hF*\hd7$EI]qgj0E(lcd@:m]8"ln).F>3.8cou-s_h-rPUQ#=]0qlR(2N3"+g[4PI\BJ$X:$EPYY>#<?mB95*BtZ.qY#/'R:hW>hM_9nt5=^eOXLMc\!u%k8RYF%^Q2**29.)mQ78J%DT._GVAYc0cJ'deBs+L^"_>cg(I#P=__H0e1:4ju/U[B6hC"r=h*qfsGQ+=/AE'\O')c9`Q53s^\Y3_36lm@BWm:Wf>B<E'W8%_Wdq'XGbPLf]SY&(=_O$#UUU.]doa>([tNH`a5h:H&rmVumrntbr,ZFn>"m>h!Dg-^m<a1_Ec>d.[-:EMgBcQaTGjmo3eIF>VhF.<I5\+l;SDg1u'Egf#(P@jAG-F4BR(dD:c>rZ+L>r[*G5A;I:[#Rp#_C(=J\73F;q:@'c;`L[onqMJ=`BEJ(T(HF:(eFVo8\=XH)(PpOZi"-Bpg9V)L-/$+8BI4Npk:emN&S^`nlq^;pO>tbW[IaC=>9`Lo++DVO[SC4Uj'tTq23r8GtPAQQM=u&'IKt_aAj/,Y=!2AaNX%n+t/C4o<c?o#J$[GPH%`qLE.$p]>F3nB1[#idTI%Y0)/d%[;(Sq:`04f1.cs%8KJ6dY!^p'/\+C_$9aZ_6]E(+G=\ER/EoI20HbBn=O^`8%PoBhk?VtN_LF)RS<jb1N1^,C$<\$rHhcYsg6S7H)dKp4mZ[MeTDC"kTdNQ$p^P\b(N!Z=4u8N@N)m;R^[u%ooV=hk9^\4'TBJ2NNX9P<j.(QmTC?*+(-YtW')e/nd$%Mh8Y>LJ6[5mTHEnG-9Wj_QHmd#TGq^O?A+3`lSE;rlPL\%/H0R*Jd46#U^$(=>Ln:sV:Ki?90cj5aO`4,l&)jS67;^Hc4D>+nZij0.JgW.dPEt,u9CS`'aAi[.Y>@5IC\1l]rpiXA=MFe-orlTs6Lpr'])-3trNt.)>"q5`SY,7u#$:5WK9c#V9)31\r3SM6=qO!$LnE88:M\q*`REm`'_=kPQ0b/_B)eDP[kOS\I^8?dZKE*i_F4g<_u@"uI9LP!Y5a2BaEm?dkFMUZq?q45_T?!MBs%-:ar=$b=joO9k+:.D:TLq?PjR=\eqDV-f(a/MCI2f'CI6K:XI'3WE8JGT8bKIQ^KDjGX_Yqt.$d4O`WrQ3Vj5HSb2m?^1+3niA2hA0O$'O4SlR%2/!6`paO<cBBs$p\0-tncUNU*@&JcWV8^u?Nm<lR,c7j+F7kagO%l9S:@_Nl>mQ=Kb4kbXg)>2q]:\]sBgda(Yhi+2OHO#85\,80'cGAOQSjlZN]V>3>9T3%rq4D9!:NP$i?mOI%)<oV/F>,_d$D3$u_Ik%<rqOsDo#Vs5H"f'08VGmF.nofm?p)^.Sl]-7-3U_p()O,UEQ=(EI`'$8iMVcu=_m6#=L=^D)s#0<qIrFn1o#CYOYP^ldeqARrQY+?gd>(j$YG1-\A;lu[(m;1TYY<,bCe,2`nh>.i8>FXYi75p_EqSM$ctq,ER.DubIMIDmA`;:OCPOXV?#Ws=57gpgi?>b=^`&SckJFb'K=>P2p[_1f>4P7_FUC'05c(bamf>Q2"D7@^MZap;pL@<GFfLmR$9$OVp&:6%#u*'g]p_hH$=I&EHaqC[OOrDh$3UE3dKn;Hht8ja\0:M=Cm.1Zo.<jOF-Wf_)u#Pp-rhErZLr_1O_(l%_b&RjhJcae#*BhT>Jpg8P&E4,Sj!^Z6Nn*>a;#[#6n*.2>7[t[fM-c,L76hif&A3Kff$O1J`o?[#1=$gnj-sMNPX&86'HNg4p&*^;&[Q3'!??<pcT\_5[^1GqVq)B7"U=\+J/=Ft]5\f`M\u@4+VRSNni4AdDh]MXcn`6C@db-aYjO?CW_l9KKXaniKr-&hRb>4VD0h')t\@/l%+5@bC4dKR!pl'\Y"Ce%`2l?(;Q]c?biEm9ac\InTTAR^K3`PEOhrM`mh3T`m#"UM(M=c7QG@rs\p&0b9;4F)bf;0`PV&=H(da*[[*"+,jD7EWW_sO;&UrdPKo5cGgX_@>j`]K.-i!?].cE//UUpbWU=Lo(5AbEMot1:*!#'BgN#r2[_5TT:'n7gNLDj*V80IR3?i!ffe/0pF$&'P<r&#Qlb3sBQ5dagp,o7f+At(Yi(DVcXFIIVD0Ea6b>D/c64i2DSaKfr!..a`V=/(n]70%3:C"?m`aa?_&YVoo(^hJNq;rnjAT`i<968,fZ?5N'l%$p>KCi/l<e2tK#]i.a6d/Ok,+L)$taMUEmW;![6j;=r9NBUoGH]6)nB365>o.H`i,+?HtQ^r0"?ZUVK]e7'lW%j@5l30`;Yc<XF0S6%h"P"mS;VW2u-%.&3ee'#R`7Urkt4P-@bR]+rAiT/iil@#:(Ror)`HK>[6"D7kK5?njiY-Z768E*oRj6duQQd)#$4\=KZt^p]!s('IWU0'?e:MIUci.33b'*BK7CekpEimK-U)/%F7SN^7OOO-5qr%NSfu$UMr_d-hio\@s9l:YFBuIUX`*2+VQrKM$;_RJhHtUNuq%$Z(7@dbt[gX'<A[#e_J)XDIPI^dAor9Yt[uu9hqrfXQ(X?fg>ZKr_J]@7..@dS(Q#?6F`2M:$spMgSB"V_T^7O[VZ\Y[Y\#=7,Kc):Rc$$-Kil*qN`QH2rK]:%np56I_4%oEZGOmM1sSMpG0#B$Mi@<D<1XB\bu0m-NEYhjmGsRLQXcQR6BZJ4m>!)leqf-pJYg&5#8<?PfK!f;bP3Q0`>N@@ER!TE4\[obdYsUErD<i[h.C_pdi_4Y.s6_lc5)LYrbZ<3CajF\6(d$VYlu3$hl>(AG%daHC@r!9rsp5<_jC0Vhr-$@eDRFoFrmFrR,*E;I[[1Yu@+TOX;!BM=,%,fkh-2:3IR(g7cW6Z,&oXihr(ajLu8Y-AC/RM;DX70:M*_-MjIQoYJ@>\9!Qk2sa88.flcNBLR#/'4&tLQYX+dlq!`);6i*MS/Me6=),,h<_O/WVXV>s][=cST"]pJNa0b9Xd$ruMVQ(`jQ.t(F\9t9YnbC2L*S9@,O+!?CJj-;N_N9.9f,(u\b&;]1KaE$jF>s!&'g;k="'C$N";NXS=ZUm03SF*;6ElW,\J2Gg7a?mBQCCp0KE<q@uG>C=f'/P[M[7)UXio(>-cQ_aed7\[2?:U$^+JP8lA7K\>2-2`E_`=@`LSg,-baJBV-X&//'%'/qE"q,+m!?Ub2J\':Y:m&'9kf0l!t0)0=R>a`m<H4EK"'L+;?#?-9dDG:>JrcprfFnouXndsnb:HDcVVBqfg?kaa&HVd*!-ipBK$A8X*"G!87i#jik,O)R;"q$>$n@QbGQ"CoUnMn"TabJ]EPY[PT400Hd@52Uab[C]j#bgXF)<\Di^$81](0)WrY-e9`!#PUO0s8EIKDaSc&Kfa.h$7dAtT68%UY2LXm6DNjm8OMjJ-CV<XK]!9p`3s3N4e()i9Pd?KR^@nuD/sN3@QcKO*Z7YdfSuWNct21ZS^Q9cQX,)\ShAWEmas8n-_\fESNSiCfOs1(eqdQ@)J4^gQk@.0\;AbVjODpPs#..GQrnH`jF>s7gesjgm7(KP[mB!="oH<#2S[;LHt![BdA0L<(FI]@'8qR$`Brd&C=C;4M;?%e@UZ!\S*8`Vp'Dm,@aQjmi[27HM;?%e<afI*0X4*7=<gN+&11E_K6^h1/so`W9^E!22?RARErP_Y-eB^Brfd<ZBoe8D[/ZIrZ[4krM)IAH2USs-Zu)!AgdKmTfi=YjDIo6+0,lItr("4MfeK,cQqqnL-i;pIT1OmOPm.a_mk>89:Qgq&,Y?=&enh)6)]\26a]`Vgesic6-9L7O>DsmZ^<'Naa]YslcM1p_Hue3t,SA4?-2_%/kb1/*Q@nG4:7P$a+7/is2-kH7noEQ8KQ_cujO1dq4j-%^A=n0%-%EmK/+g31VbA]h?uJ(GTt*lD4Ra;9R[[;Dntb5jM(9rS-Mu3>V5H9V2E:q!R!6BSVPXQ]#6!ZS::YC'A?m^+Y#t4[GDsitrDi^=?L1T$mPg=Nn";2CPEQYjiU'r*s4T5t*TV_4B-s6BrjWbndY$aA-b@QZDKDQ,SEMjY]$8>7[)kN)7)M%4E)&6[P9&r)%<qi8jt=njaEF1'qp*Z5#[`Y!^H<phLK#;nCS#$3H*X>13L)K_K/T)\H[SK"lK^OOQJ#OlZWg7<\"Lr_6(-P\1-8i$4'sm-=Vb?&8:S_\:=A1J$tm"HbLO\Dk?hq#Z^XVmKf06S'#OQf1Z?RUcdJ+#2d<o=:12=A:5/5QLiF#IlqD$SUh4h6bYCe?$>h(rak*.hnd0ffb7@YGF=*D=Q(q?><k2P5H+cT5O]8/Y`DXZQ`KEBoff>oiQ[p?kE&N/'\P=ZGm@MXIcY*.;ZQ8YjNqmKc2`n3">M79h-^h+*B(qM5mO+En?(0SF1-<</4/k%uUGQ0WcH[`\mN`+&[P%MaC:j+[l0/lU<00NCBt^hd4gPebTr6&/X.@m9bgpmBdknCRh!>f=fkPE5R[^GAApa0V4o3ilr+mB4GblB4-$(N'CJG/_VTu`h$+Z,lIgbGAB"u4_$NF>?bO%JIV=[c6?SR#[ml)[K=UWGss(>tKAnP=[Vcm^+!4*EtlqGQ0b/?l8fh-+)`aj84A1j:<LD;n6Vk$3jNh5,,-h9L'8V:&F1@$!G#&UPWF[`@;RL9r(2#3+l)fIqI5s$Wc[h"X?[j39XX@gR)qC9ljL66#L30u6f>mO_.\s.:cd?^M778LnN`KGB$Cu%$SpW[LV6N<3=D98c@ffF#ZNgni0172;tUZ)N<?-@.QZO.WkCSKMYBJ;/Ef?@8GZW5+`++1NnR-fXS<ZeZ5`OrRr]?$a)`GF.QG)Q-3I50LRT'^sPmM2A]JBoe3B=fO"d[Bu(ju#4dA$qU@\&XW3g".oh]B82%]^DBR(@f4u#K]i),W.>hk&Eo#2E5;+Zha=]2VNH"/lKc]s0<B3=aeUIZtHi#1[FA[9baq%o3bJ1B<Q8.@IC[WC1^g9]5(la2a)C<@9V\4)o((-G\.+BQl]dm4I@j6cTO1mg%&O/,]EM354r`aH=j!9ZVR1;Q=kB^+eLig;J<GEF$89gSlm)[p9/+p`Z^u3\CIGook[)\ZNQlEX2Aj(bUtaFCIUIV;9u=nB/Ah@IIGC3G;`Zsc'-10/1&V[FuBSs=jPCeVJ#V*@6ulLmFTMZNmFmCI\k;f[;.cR;.l2n1J?5c%I2l#F/5N0,[]]^ZWZp:#@qctR7JZf9![7uh\Pi@@J4B[B/d-AG#&;qni+\F^Y\#nP#'jn3AnG3@5,6%f/d$BE$guEAq"'rP-<Y=Q2BNQZgkm+c2:58l\c`7Ehq<SJ^7rd+o/\n\bqm\oN4u9B&g5NGaQo8QS9eZc,jVq14pIDbf4;HWe5X-%rVEYV!?+W]W4u^WaYmlPFJlrqr#ZH8hR#C]1J14=K@0<?K"5VE5/olS,>,0,jD#j8.>;Y4oLIlaAZ$(;<Z.TfO.U('d4A:'Hnn)b6YmY?nc_O`I9eJ\7<Q('_3I/74tl=4';E]pfHEq-D1*rUR]:/8^aUl[DqKSnA+WB5O$d0AMI]C@,.t%R*GG>FpkXerHr`J2+h6453rU\e$cG)mDiIX2OC#=s7Z&6IqHHFq5i*(@uQ(jln/6,-elMi1:[7'r@\Bk/*?*^MZ82*q&*G@cX=bh5P)-";N.FCR5*lcA`M\e5LFcU3>qcc:]C*0r$@Z)mEZ4+0@sQcS\+'!XPLah0RKmNjZ31k@#mBZnfPK[5B_\<841K)r&<L*rs^k^F->P/C"':or(#p7QuZT^2n1O)l1l>^q2'ReY@J.:Q`[,='&(iS%o7RC,)+=krAd[J2`g[]gLZt;d*pM5+5=4i:U?&hYAhV4kR;OJ1%*7n#K;i<pi$32*I4Hoq/\1NcWfOm:"5eZb+E`-@GEkC2ji5&$c[\Q+Fi5gJ)22qhAUn#!e8L2r&LbHkD[D&4is=?_;Ci2bl3RpJ'KD=d=hG^Z[_>Ts/_%VY.X3-PD2_VX@rk_:6s+RfC@1:s'+iY/T,l>X>h!(]*iuA`>o5B<k#S]E+'j#Y^Od4a5R'-N&I3dNs-b"O'>`3/@g-X*3F5&[2jLG:[ZVk(>f0tI/e!(1%N.Irq@'tp03k'3ulHn\L#:1##B]nOh3>;,b<9:*>J3d[)ODHDRbH,pCVUmRMH[FM](kj%q9N"H&O;8,ts93^U)/!jKV\12/Ff:E:gPl[HI*1^K6dVl!VQD,X0gnNM7sO8aL6,34AUF86E.W&Je.MH+>5&\Gm\n*m#VeN+q<XKmA;%^9t6@f#H]R)hX"!QS0+]]*Pr+mOdj/YUh>-dR>A+fXppQ`8Xu6Mm#Q#/6EZ'/.:3t`>9^6?\hg3+_$NqeguHQMjjVCOF/^k,!X1NbqAK`YJfjU&;tHl/AD+fq"d@d$b4gCbtfXb=1E8-+e7=ZaVHJZiYrF:S!euTbedO1PBrC_A<5fnB?h,BXCs@sr1KrZq=[JiB3,bdcQm@kZq\u7o=S3Y`+Q/.#PnBmY'n,0/@]*eV.MY4Cc4KP^.ImUTA7VpCkk+oHld<S#X>a/$X9(9>EYH2ZEq)XQP_AqNRqSej_pt09:LWXc/QaR)#93iZ7fM-N>Hp'`L3gtQ5uaa(c]u?I3i;U:Rg'VRJi-l;0m$$HY7?is5Mn>`GBTMgK`Os^UQLX@9p4DNEk+*0(,uOBN#`1Nu$o>(A#+keoX^ob0:fu`U3)OHefM31CG5f@+n12T!4VcqB]-e)_UP=+&"YLQ?-_"8&kQ`o1N4,>5P#$]8(dH.+5$GQAg)tkSE^)Q$^DlKrGZ.I4oL6%L^;&SsF?X9ei#9kH=.kBHE=0gV09D&N"qENSj<KS9&+Y0f[$tdEB5YfCX(kdjq%$7$>q=?>_TGjc`seH0/Bceda>OYa7Fr#IcDUd$M@c?euSP\)tEW'te4V?8PM4HDd*TbDS:C7>(5A7IY?@c-&7.0/qOrgeJN3_EC*;<A<\8Qb*Vc1Puusd>Pa&Q&FZ-o58m%"hj9b^M&1)G48j^n6b5K&ta)&buuQTT<+)[G3WFXl<j0G07'3+4jU0f(ZD$m.a#mC+YU=5^?hc4m%hCd]EemGN*Np@T=ddBoZO<bbYreG$/2'-Q/bJqnl9_JD7KQ578koXT>#+7>/jff;"uj^004t,mDNd;c:_uU#8<FEcS-O'Ct.AaaZ3BYY<?ahAUj)Y#OSp3":HaJf[81&c^t//O#?p[8a;Z>,[Y`2?Ine%bBHe:ls[Sd.^-*Hc@7pJ>oJr[]qguPo#jVN_)7CGc5:+uQa#Kf7Q^QhlWl]MG(cj8.q<g+0Mf$ApTdTbZAoe"hTXG^)a`u-YR4)2gEUr'`V-T8GaW-VB`864:Xe#NXkbG76"t"H+d_c/0CZ7ln?O;.Z6SkE,OhuHn?NGkZ4$0-qKUEc^M*URo_^ACNu&i9ldBAtD>q\*rh%RCQgfem1[omCrqlNSJ,bJHh!\Wm+TM@.fCt>I(B:UEs2S=<TDrpYDPb6Xl0qb)R[#4LE:gQ'-@^._gr_6bAXBecGIErQY&8eph#b'ke66Sc=6Iu:ID+WpT'hFiUXj20$Mce/GmZcCAQnI;%.a5To?$1nF#.Nt`L,E7<r3'$gXoOOhVag3o%"'kH26pmpK00MapJ$3Y'r5LY/\B0?/hn^EA]4X'0\FV9!$0FDBrHB6FO27>3YNXkMTC0r71SQRX;55_l^<BK*>meDJ<f8)m,B2enRTYNMrni^K,Q.X[^p(jPX[p=B=JIC.)?uN*BFtXj4thmdF=^C5!BeiL^'mAT^+Q`b/&&YH4s/pKt%?^07)'>NtES>5Hbe\rakFc>q)Ar[EM!N4BO?Fk:i)ZsCi;;EgG3B/E_)nlL$8%=[@#XYmi3r`7`kZ+m]a[ktb:qppMZg=og^H>>rf@=J.K/,`hSrJpDVV;#?ko%0UaZGKdJ?ENX_$<O==j8CeukHpj:$RautlM\#7^T9/qa1)p//H-CO8!qYt\Jj85rAX?>e_.agqe1*_eS;e(>/d[eri:C\=1\@HNI0i+gfMq78[F`)VJA%i%$mASo-QWSU`6?=(]Tb`9hI;mfu:R]G8G2[@&lAj@^_=iUWH1#0<N`!6+CG&AA;iTD-6$?<kAR:?%^\1_.qS0Fi2a;'9:EL[;uWF&E]Zm%Nuq23J;GZ-b%m70jbF@<%JecB*hZ:$S+<DQ(?Q"S$BQTC3?T-=tXBb9fd!u]&@CHhJdVoE-:#VFj_uAL>r'N78B\]m][U'NB:X[qXS>a5$>a^4)≈0[eK4(AF%[#gnTP*T]d0pn1YZ(>7WA[K%fBJ;</j``,+gp\/%m!+2;]TA%Q^K@)E0ift'G2C@sD-cdu78Io@EHQ/=[0ndXQ8TT[oA:Dm7t38n=]q`+XNkhec[lmM8]UT\4tfnCWt]=K9,3n]^Z<DU0KtK?m*JdVBIc0O>j[.Wq2Be^ao=r"g@NbS9=qV/ZeF_JmIfOMSrm\l/BV";,->`Mb3(ohjQ@XMD\e9Rm>]ZLTTDt.S8([N>I*[$h1.?'NtH:beh+nQ`E:.^D.S86hNEmj_ah7cPhS^r55WTh??R=>4a/ukmQt::KtakN$GYQgIpr>qNb^Mu>hO,!m'p)>>Uqn=Q0m.1-bgkqhRCsu&"/0W#?]5A#P5[dk@G%qS+0unF](!U5:sqBFEMNJl?)+PhO]*12?2+!lmo1pI]G8cX*\Y`4%H?BUTbl_.h]89(2IK,[Bd5Em0'Od2%DP4e0Ab-_=V*4'NaH2=6C5uHU+Y'M6$6)X7M/ubG`r?`BiU,M9BSmPiCtUip+gQ_=u3+OW.N[E=qVIdbl'9/'FR8H,.t4'SDr<-$cI+F6Q!YikNn@YO7<Tc)t-W4g4##.m<f&&&5FA=]tO$k1)0mglOqXb`q>P=#96/:4Bkp\T`gSojCD-=i/]?H=]aU]#f5o]jIn1F1$LFR^]MS=j<APMB0eHGp,teGDGctb5=#@?i%j?03hj-I*'/&p#Z3(p2B*ADK9'S3aC@gKHml(;RY*bb]O?Z5?MmD*BP=`BArIN-NARC/gSX-k'nZpCWU=O?-T=KqieogT)P!XFCg#%IjVEojHC9Qr6J7u5Im,M#pH40CH`_u"VXPkhBC!i9DB=c/1&Kcc,e?mX02n2)MsQ&n&URi/lJ0c#V4Z$qX`_0,tG!K>D8J.jiUW%ZI5^I?<"?oeU>EeH&ClL7<P2r\pq6$IsAV-e4AFOeLe_),u8*o;d&ZjX+P/0:ot!Q9:h5@BrFWKn"&`5i\4.e+`B^%KXM2(;[]'MaaC0n.9%gOC8Fb/'LG",MZ,-@)4ddG'icc?C'@I;!EE/cQ*)GJk0)3is%5B=a3#U)dcXU+S4]DPoBB:L]Y"#tST(tdWE(<tC]$$brKmPcJh&pWl4cgt[oIk2W3RkPCl57a,LniOk2V]"HpqsMX]DIP9!qj%f!us7oQ9JuCO9@1l139aV9;MuQS*ttg(%gVU`jNDC3<HX,#rrear[Ncku91(8eY4,GH+kpX8>8a[843qWE)14[uICf:USUW^S*DI[?+<YSju\'BigZ$?Mn/FlI*;JIP[.r0L&1i.m4c(C<;DhgqtN6PC(</AE-Ft^6+XU<ED<"Zlc2F#)2kDmrNhIFY]ds%99<'6LqLgOrN+Brl5GF]&BI=D%$fls"#d4K!eC^p8QV,eOc&m.?'NkAL1?)$`UFsWqJ%MjYsVGQ*"#.cD@h6$GYQ<cU9CO<@k3CYPZRr8bjjDX)pf5&12dQf)<;4b,DlrV-4s@?VmcR8,7u89g0(`%mEeW[)S8OIC4A>b\1%OF0=s1Xk#eg3iKXY[os5@p\GB&2j7EnJX'2W7V;-68IN!/Wn'AaHDe?n[p&6Rgg`6Bh54)PIB$;nTQ%:<UA_F))H>Eo]3A=Q>FtJ#m3O-aWnW')h7%.$<(g9a2$Y%>a8GZVb`=GB_YfX&ShNCGbhB]jO&MUiWQsO'/#2AT::5:NS[bXogf11fW`(h+.@Y)&;gl!O>47+iagIC/FhX_V`=/WNX^%lkb@!rg*ctL<I_<jiXO-;(9"SB7q]G7Y0d42eVo@+OZJW=3eD1c9HsO*lkAdNn37U'g=pJ%XTP=X0XaR4W:UTo<Vr2J?9Q-P>Vd[UJ^S1[Frp.g<m8N8;6Qo"<QC;qh9ZZBLZoaS;+!m?(ie'jA=(9i9Y.d"uS^=A.eWij7AQ)[4V^e1IC/n9ee5\DLPtg)m_CbI6?=U^]C9.=3lGhQC6r15-Wc"3'DO@D(>LdJh>&@9;G]IaFQ.m`]mFFueFib&>n9M?JT&t4U5rgep]:!h=C])83<kW1gK6d=@>!@dkbDCj+DofQIbqjtYe,;(FO&i\m6WIp#C(41rlrCNp<gJ)b43?pT_4A$AkE_h,FA-g<VRf@,>&=^\r7PSN2)q@U@tdq=92hCPWI)?"'3=H:TD<4q87"j\S"k/n/.?E`pVNN*hH+pT<8XaVFqt9(getF+#CX`U/hBOG4]uQ"hkJ8*onp4?Trl2ZO*l5QZ9556j&GcS<i9u<)cj">@C6^fPS,c,p4UtrYZ_Ql$f7'-;=E-r@@DW3h?DJhe]g+,#J$(G$b56(Nj[pY(/2eq"KR^.0!W!c['DBb/5-7t8^\qgRoJ_#d!qlmhdN]jfddP-r(N\7rhXc%;bm9j4#PRAT?<V-g97LLCT<jpX'M4;Z6^c_4#8K:K<"V5(kXTEEB^>,H`9aEKaC9<@foZ3I&hT[@qa5O,kGY!heM7WXaCAmH\q9pPho$p/_=oL^?%Kn:uV@03AQ6X4flf?DK*1tLRBMo03:6AeNVL@4)Y#bb.^?4&A1:]X"@[]$:ha11hkq9mWaD=]TAIandQCaG*8*fAa\WFT'DW560ZM:EkNgjfH^l;7WD.3T7oB8fa;V9`K%DiiHp&W\Q:<UlHE"G>,PQ=kGj[KGKdgBp2_q\Gic#QFbaKu/gXP#f;]h7UTF<momV&OVE/p"S\'`(8B&O2m:5%U3d4NY/6)#Q<Hgug*Vl$<^$.;A]"E6#%'#l.l@_p?+'7\<Wh$Zb.oFh'SSD6/g6J^^jf7'j.LebQ2coCk<Rt4$]oghsOd5p>\e?h5:>S:g+^T4DB6Gcl`1W:cL:WC&rXYjj4lp:sl3>>GXQqP.,@?M3cL4_>R]_uW_t@%33N'+[N90J81j'aQJ\h!a\OS813er^?@A?iTkRBHIELSU6KbZ]3C"ht:CW.I=ii2sT`GRohZ=;nj'%:I%DR3QVd1q>i;EJ7U+)@:hpQ>`Y+2$G*DesMS3e<8c?t3'ErVXQGB(_W,3\_QLL;+*C4e'*#8n4'[9hI;eU]kYef:2I+k'"nl=e!YcHaClOXIqN<jing2S,3aTCY6m<gZEiA)iMtc3csuTRZ0JJk'JqS<G,EQ5u/:Z4?^ar&uB^HmjZLq'q>(02J^Dd+'B\u4M>XAP(3A\>PZ%qjmBgni@p5g6h948WjQNC[Z^)aDn-^#0_:8U(L#c=Smc4C>F@UEaJ8@am#,`S`A[U&Rhagm05Rs2[b2#rq74#=pf[F:qg,T/gT8m_]3:\..lShV2Ra66DB[YiqQ`c%3Oc:S\$B.RD.UA+#@dqKZ-Cqf4`0nU2LA#b[FOCI.@WC%2E(hV\`P5$DWY;o4`5G!2J]&3m/^G5ac!uaF2<P!<[M`rU+YdDD0C^n4%,PYU<O1q@/>["U-[a+"1dM)`W%jR8JrLXm,iX@A'Qgc$R=!>`U^X]SJD*8*OJrSD:V"B(!p@ZBYC`(g!e`XEOI/@UUOf0.9YJC^.u;nKc*SaZ59iMEGY>R#"eGBl\j$a@^Ef$X=Q7[Mp9CRZa[5C9l+uQ2Q(@L.u7&8/WqG,9to,AgESYTo`p2MGF6),$EGaPC"j('LO7X-h9EHt5B#].S,)Qn$>qX5c=L)<.H`jljp+i:::k?/A2YgR2m_2^I!%4u*TV;#1OHFdm>fM_^tP;_fiSr,]<TF>F#1;\bUkcO^Gl$")p=YomJ!*<iF^ZMRI>!)DOYte2eTTYZ`hWdCGX/fbd',SY;c=gS(eN6]+:CeLX#8)B(o`?qllK@D>"u>I0e(7Z>6`-<u_%tc2;<4Vi'_Jpu0[mi\\ec`qCqKQd*d.RsPE"HOuZpLX"%UF8+VNG[kXb(H->qbphS1IEpsblHMN0AfkGkX0\3YCh=0HH^b8DKIMu=S""K&iI^U'a'IE@AISJihb_sRl[7#+_o%V:I--dmLc[Nq%%_J-A,O[91:Tiq\I,]R6HHmei-DY:I&<FOpq6P!:%IF2GG'Z!`7$FfmjtNGYu\cNKHji,#Y$G;O'!=`o>5MAnq6J)H66BY1$7b</3"nNTfpRpgp+-p$^-Gd83"cTRBmrC%h&+Ms&l=t1EC^oamV$0&+7c&[(A%KMo[S&c#=2W$hkG)\RGXK7\4cENY(>T3"Kn8qH>fUL7J6U2t$),UN[WGSL.dSQb(5E-sU_uLY^Qg"r#^XhQD*V@t(hlkh]Hamju&f*BV8Rm(.Cah)i7:SLsT]Q@$qiG*nFqj_g>qhh]tA[]rmkRr++',=uV!m,j(C/#t'T#8dD<9!#FEpC6P,[eH^5_W5\fBL`tC7qX""OZT[YbITkg\;(BSD=c[#k3eln<JUT;)U:&[V-gUBK>Kd!i_#Bbe^D)(-N#4g-N'ac["\O6:MmKgT9b[)@3iB\1H\"_A-<8jG0JEo>p26.)7qY7re*kL'6$%VjIK$9mN.39ZB)5RV^.gEb7M9n`Jt1P_r>D#[#cZTrZomcgc2RFFrj<DPX_9u0Tj[,oBf:WmBI;]=Z?q@,%%0TQ%i;+Wt9;84nM^4X#/lf0O[kbq=!I\S,[C*]D:(@?eS*/Ui>q/S1ku-aO$]9fR9lHB.9BQb4'\T]-HXOO?:-f9T+?RP(QR'jefcJm<gu'l7DSFli?HkgWOW0]5jP!.>K]@:#Q^+,\c6*YLpNSG.ZD=S`nmuDRXfDXjjX2^0np?jFs,MBZ14?UFS.iHotr(`b!*X#2/A[n(o;$GK9.-&OpZn^5UKA^-B#0MsYB`gthrg)#7AXH0Z^C!uru?[(!M&s&Ks)M]\_$RfN2DETn.-=BI7QQ(*-rp.t*^gcq3PNYcUZhq2:iqu>AGF;KoGB=%#AG+"h*k%9+R=T^RjRa"I/Z,UTteSE`^@Jjc8eEeFCLd9a`,;oA>boI;=QZeiOm5D#[B(ad.V%8k,4Y>`(bj(k3m@i2dDSEC1lk^2XO)X-FcGdORXu<>tjq`cmcEk(+YHde;loZ4KcS2W*jJu7^;RJ!6h!*GG!YKH'T2iUGo2YCIgC/36L!WAdU^A\pj(9sSYmtWP6^r43ZO>Qi6c2\JO.4ds+_fN'bmLg\JN!D<bmnZu)JrNMKBdZEpJ$')#;YGgCN@qS72'T<,>IN!lqM59GB_,hZ>/[$M7r:8Kr2kZnGhVL=++Yu(a8n6>d<:K*=kh'?%0E`G5:OrgQd/QSh;>&giEEp%UD):mB&%N>PJRjMt$c:F@ESQbOajS_N5l4eWjA$NM1U)r2s&_HQUMhEO0H9geZR)abD(p>CS$EUSLm0@Z3JubgXeUS+"?Tlh]c)Aoi"!fl:nQS=<gHAu4C4.lR<[C?JPCV_U9_dA^ZN2/RF:K3I*1ekU@0WKBh6?V9Q\1)X_n1DJ+5Eq>RKjt!^]=(3+C6:`;kD^g'lpT54fidHaZX[dc7r6&a(!q#O5J,e-e:cH#7K8JFY17CAiYi?<2P-jqG2f/(+NFi^4fn429TUXd#B(rjhI;X4u)dPk,MeI2EN@psQ71<4GG&H7XH0e$3VQ=eA2WhbD*`fe1'lIN8gYB!bb"KgV(frF1@I.#R3fRaD]%O!!1`O]=gHd8CP.8u9fnjU\feN7spsFO!meQ;u(*e[J)&mAJAr!tNTcR1YZ#XZ^HlFTn7VC059H&iH6)iS6b%P9l]@keRF=AC//k0Qu^31p3K7BlVPftbM?&@Z;e;CMbmU]5.)`O:FC$lCDG.keHDg\e`h0eOsf`?"d+,Bhq8Aq@&ZNkB^GT6M2:*Sfr]=T6lV-h!G@ieZEBSR3aPjP/D%r",$lB%T)\K/i[OG7G+#1_Y*Pk8kjl-2tL@mq@a9RYTSH*^-b?MFu+p6;RMN0j%?LH_*q`u]OWHC=B)NQlE5o&P7?:F2N&;Obs:2nS7tpJ2#55Fj(m@R%Q:dkY15if5#i]Y_O8naqn>YFlI+aER42^NTW<aY.])B(oge'Z?.L@^?k8Qs-Ah)XNh,\<LpePB9Pt3;qWqNqmVe-ppc<ahj)qj<g)1<k2?n2S8n3c@3++hj2m"%I2QjSi<+C0Hlf8/D2+Zp?TVJjJh%U%)Ien7XN_Mar4PgF$jPLRG?Rge(?$,VqSI>>*3&@Ad.nl)gtoR^LB#YYTr&\QJ(WJ&#P%6]=@L^ARG"M=17tlZM0jL8mk`GAeBrh_d_cdA:7r"4d_Q%,[-QL2W:#Nd,Qure!_<WB!8sPTf8n"#,TJshd1e'?9Y'QHLEN7Zk$nEhWB`&]]cnaT'I?'br9AVHgF4[fOtj9/Rle6\L%0PA\E?9McgEE3eYKo]=I_nbZ"J,D0AIUHb(REn)*5klV"oudW!<d2_R7D[_0TS;9L%)J,K'<*F/8QpB@s)04+>,*$<$$pFs"fk2)Bc:8(.ldG4ZQI+*7t^V\)u5g:2<jp%M5''%1cKl.P2\W=KZIRXDZWSMXXG;(>I8#+L[%B%U`2AY51hR0UmB^?KQ*Gf5pd+Bp,((5!*Y#D*bD=7"3Cr.,SD.C9+U6%];$[K;ET28.Ss(O=$bnkQ?UskcDcOD[iNjl9.B_s!n74b\VD`#&M2dRFrK>tp(YqB_(jZ8clgoV9<d5B_K^nf"1^rE%Xq6R=\BYNK[h#A6!m?JNpYM+BU[J>^G@.UQkP#esQk)dF'3SfkJfWg28aeb[<_<QYaHXkUQkaWT_o:YY2P-AS4//]?FL?>Y76##*%W`^u3edIK16JJUhI#k\_<&_5mNP<!O=#[UO2V&.n2*tf4d-._R4a(=Rd+gM4fGc[@#*#HF@oq%@[i;r2jpOK"(P8)/">sNlC+Kg_mfYN*$#70fe9iXBd>BllOuBoAk$FqI/rmpiToH5EKDF,edD-bs@@lc!X:^n>"uW;Z6P?49c"]cn7Pedd->b:LR]hi3?Q]dchNAI(SQ2GeC@48+>]+laii]e"_KS(?F$!<A(Xq;t4RYeOWPS4T2_m8b0/Y[A2*.f#cDBYRU<P9hbq5p>/ZI"nW6NScc!=#fSZ'e=9Hg$8nh5iEXl\BLe9iW#,hZ#8Z2JQX@;=*_2d]'i^(]5s0',*)2ON&j>LhMig78*`S35&CU$!,>oB"?]?DcjCJ3g0jKte"FQf_R)C=Y=!RbO57V:k(aF%^n%LHmqA.mc=l^D^@f;f7@)*n#+SLRqO0VfC?P!0&V3\]q+ac)E^ud@AT$9\OlLF>.j^g8+OnB_0KGFrC%WBQ48UDX9`ZDi$B<*eT<sND.SK9[-9ec+Q].]go\nBpU^#A^05a7WWKGZiAJ+IY=;Y>Oi)!9$U6l\'kaXO&>5KIUO<2(5u$6eRd"b)cDY987VPEm,0_/+-!s(A+.gtHSkF;NP.hln'RX:C$[l!>E7kC:sGu$judd]$#Jr_g3"f&o5Hb(k$(]89%?Q-qC%>a'Ui;h!trW:7qm@Hp*6t*+n`%Mqq%0F#=lFZUBM/$J'cYnL'KquV^M5L$td9=?f-MGo/-/cs14%;9F.WZIoud]<r^lE2GY9;,Oa]aUu)f6:Aj8=o(*=0)s`E3I;LmTh=6ofN!I<]VQ`Tt8Lh2+/CG)hgqRajqUa>56ZQmCUg]DOXIqq$WELqB2h(PtOA"tihCS]m/6b0YQLGhW\I853a6k4"BC""14?K*HVsWhGdr[XsmMsL08i"s<h$N`!m\N!&',Di8j&L;MD5ZtF___,$`gtqjm]P9Jif5%CL1h;+$_N-F6G@O0\,-M.@D6Y,S<r_P6@SmgP)f@i9:.A@^4c:pcK\c;J$&^XqUb">X+.8N[JJLTPZFWf.]%MmYe0),qd)j<7]+XXG1t6XJfF9K\OWRPlu\_L'@$at,SB&`Y37dU;_"@3ZI<$$HHT'%g$(*+e:*V\VY6Ka1q@;Jfp#poEcUTXdo^c3b>'kHBdO(]q%1_8IZPZ"In5(?p`]D!?QO8i8OtJR6]?d;c^tYbGK9XUPibnZUB0R8Gb+9*e&?H5\5&7=SatudBS.bO_'L(2cJXUCj]6D:Gjlt=Dg18fZZNW=@1DrQ/BH/&d'DpIGKdfCr9HY_@+'J>UcT_T.'A>-ZBc"/7\Vi$_<_CW-5QPq0^6]k/Gt0lr#564VB>H6WGqadjBn+`:CDGo0tgq<6GM"KFaCetn!D3E4V_.D+2V6R>g,O+(ZEG@oDkG:Yd7U"/=/E@V=#maV`>_1W5i9?jS#d9N?LmiKsU]0DsgEVqJsuMMdB(ufP(i5Pf>2DqPJ2@FJi<RgOMZjV-Mn/X)cDJ[S5cuXOo8d<96raKW6l/n>gNn_WPr4/kem;el$_leQVV;;T66so1f'?Ysa5lBcT:;A#FJ9:=+[T1Wc8eb'_[(2XPZ\5BV`HpYFfr]>NHKLBmY&YC2&5djoS[\aGt\pXS1UIPUrl/@[b.>c4.YZu_dEY-[BXZub%0QV;F<P,nO[m9d`F[[RF:oJA_?]TqtjBQ'TXV<tB2^Qj!/4h>P@LFL?SEdfOt%mM-^o2V8e[:r;_?YTL3o2hK3`Uss=DM%74I\!XF]0.9q,kkDaHG!"6f:@rd/AsRi?)O7Z:AT1c@\#-Se$aDQ[SGT.C"k[c>Gl?(Zu)ABD(pC%[V[]E^LSF*E5.h@^/>?abB2oY\oTTs5-6pBd[bdM:;1gnB\gdsE(*RAW+A$idX@1R46,5_auXBAVpXcd>+J-`dpdH'XA3EYSP8:T<Sa(-:.*R&8a5kHSQ;c>3-AE%:<V/OOh.kHS]+cVlD2lUF]tQVMO@O*Hd\7^&@2d;g-3sY&[/e>[GpUj89aoZ0^[$WLq>J<i>Gsa)p)f(](>]f:8ZL^F?5gDiP`0uqc\"6[Gjq_dpl@1rj?3-Q,]]MfQ8%$:1MaeCc[PMVm5JC2P$ut+#`0qg/DaY6IW*-2sDm]3fCW<I]DfWJF7$LmS9eMUjmTGUpJ,-cA_C$qk::Z]:$u_k2W&Z:5@;h&EurGA?j4:'H1KGD*#@)G;c8G`e92X$:ijGD](+eR0i5jAKkA5:X+CQ?FgdrSHbt?^i[/S:A<3$?95blVbu\8.c%Xr/7_i;nWkF0g=mYfN6kM6aINEA61T*5\5-[F`+'$3-q<e>k:aF<(O_A$1+\gm?=LS..!P+jDU2,cBWHJr<kG[Qh7^aT"Fu?jb2&QC$Ffn!nR,h=U-B&2d6;u\\2u"afa;ogTRIc.0&mJ#_(^=s4I;2n1@k3`8b_V8m]=@"Zl+cS/a_!+=H[c52AuE=s8=SbRX'MV']G)M0=P2"GF5?eX7's!h6"E'[8KO>Vrm]>q1+YFh8tRm%Gn4s]<@iKh`^5<Ggb84G,slqG(oAM-f*BM3Xa'T6F+3T[eg8$pC3A'ZqROhmZt3)I^3>XR^+d`\ohHN)XYfG\i[5PR'q<dX'XYYc7*jZ,Bn?rodfFmYXU^UdD@[Z.6Mu@,j]d6'oj-K%K1)$BCU)&CkitO#!8G?P)O44>8.RVP9&5#LN<o[(#NH=G?FAU<d]]"'+Wo[4KSMl(,(GiaU\'.*R6qjDG`Aq_@0b54GEeL_UF",r"jf/l'\>XicC9G8P1<U0I_RPGcClniCm^QKJn[8')V%1q9I:EY-X5E^LmIXro`&97<0uI\/+24r7p]\'2I-X+ishY,gV&f1WbPc]1Lkh`P2!!SJW1)OB+O>M0p&u.`PI@<jA`8=iIZrP>tl8.37bl_G=:EpZ*OpnAD^j%q!F@h!/jge_tJJ_r4XOOQ7ERQ%gd'd?>YQXG>Qb%VsV4>'9=,I;S7h;e"M-/W$*YjG0#eiI6O!q2rR_Oi*TLK>l-P@csu(4fiK*[C<5S&*HFm[k8Zg><(:&*59=2Ygkb8Gn4]I_j^==kM*fkB2DkmFoAM0q6(_*5;t*1\7<P]'76(4/h^LiFEQ!mV9;MuQS'ps?Fht8rNsa@p=p2022<j"*7iLB)k2J>c,%E^?rqEZJK]uu6O@#_jcYd"8hO\%8^A^&bG]H<.s(&C/asDPV8hE8/bA@^?-;^/OnXpNQJ(ifY3Ejufag#:+7;][I*(KS/e3pr\ZcE)=Jm.i_M>Pg_+*O*6c*7H4F$a!Y-!BgCZ0or9"<h3knsGg(EL6_GutY#<lAE4rl8dAYi\+$YoM?$LK.uS'^E[5E'$O\($OU/Ku9q^@(UHh2(mtQm9^ru:Y[T`I7`0Cmjj6$Ce]5[AiWu"*3<9Q/(;CNFDrCcnl>%W1=7W*YoLJMF'*dD.@I7o&*q9RqXLe=4KKV8CW=8\nZZ1Zra/<B]-XGVC]X0.qUK>Q[^rT)RHBSb[YLcqXI8h/)N7Jn&Wld"SML!;%(Sk5c>g'f)7%d$Ft(87DO'0/LY)u%m"N8"AVejIE9-<=SSqT3/2eu1NQMg1DQm(XU='KJklrZ&L#9&5oCN44rBj-uX;<cE6`c"cPN`XnDQlkRnsKtG.LYnpFt#dBdik@JOO&%<:0QgC,<:_)d-c.-&B+n`oosArH=#`<l#V,"kIn^oAFN>4]TYf_9aC@b<mPVnXJVdA=Ldbu?$MkSr--umpNiqs$^2`_h8"/n2*J^,k_TR+7#`.[r=<oI#@;G,(H99:=SVZCkYL<<ZMWZ`51jQXp)$.De)28Erdq<P<W9&#?%7jibhW.MG5hs?jT^`c@E)qUm/=cPBjn^]O/IQ4$m%+iqBOoT#7HNBh]/^Q#-3^!.V%C%#CDD`=abX=>D#qqONDV'Q+)!Rb?W#MNnmC`mEFo@L:D:l<.s0E1fgN#bb*^]fnVbPY>70,2Le,n)^<c`4OEcP/7SE/`(:e^*eG>QeX`sg#bk\"gY;I<V#QuKE,@TQ]pXAsIj:@$O0ASbq'5(MGWAjDEU249m*+H4%,C9f+7og7$1hJY;rqHF5+F!]Io6emKY\QMR!S,^\DVoG*k:-Z$XT4p_WMDVDH(oL5?uGsL:825f7iMIoZ\9BE.3ue.Cd:NBu_!kDMV6#0OofH*AWK^d0p5>Fl6@,Ncj8^#EEr24UB?+nSsR%hdEZX)#2d8T+-85T)Ej*mg%7RYItj04)h\;$bb&k=&6MUlIAg_T)/'.el,dKXZSBifH(/oRrs;R*B;r-o,TgJJ`e$t-Oa#\6aVN#"$L^dNBo8j\*jqIi'QK"2VLnopuNZ>_SA#>('m9\KSA(m%dSi9_%>p?U"\kTiYr;,#D9]U&B.>L"!;^E_eKhADm1N)Mi[jh:\^WZ:@%"t#M-[\%or]=NGYEDN]7?\-Tkh/D'Rh*\@2tpUY<^Gq<Z,uZ*4+L%EAEsNV0XSrG1fqh])J'^-[[B0Y$PP4Y(Dmk9%3KVun>c=r+hR.s06mDL0ZJ%[tWcYL&r?*o\=oS?%EHZ:5%>&,m':+8hANZS1k)(qBH/YJ&;Rf%jo>M*j8d]8-.f6R7=.)W@>:%4Z![?.L.sk/)M4/+U]2]-"Q[J\*#6qghNbq"-l@3G:M[%Xl]9%Q_aPrM[QCLrOi#ckgT`)u>;0Hn[E^\[_Egl@5bi)SE.5*<![r%p]#D+X)(sF<bBTiR8UC_:fLk?sIKh/USN/8B?FUEh9R+/o,!k4,m[EjTB]k`'>/K.L'tee4QHh"B#.Hs%*ZV((s%8ET`Cg[[^dE7MqjD%(Qe$m%m'Ko7bp\pc#T@T9(3)15*L4Ar(mij=Lh<\'??Xo&JX#F8])a$q6=UU)Y^Hi:Xq5Zf`/#5`lQkq*:&Q'_t"V%i"h)OUi.o5`lA;3/T#B@aXueSpfSj=;WJuiQt5V`"F<"nE,EHYJk(NT$4GPhk3@q./\5XC+5Zqa_G!=lbZ@L][Qm&XZZ7UU&PZ%J#G/9St`nMg=r@8/_\sBX0b8\/=^kQA19W`dHVLmHD,P1C*dNc&keqfb9`lLM0p@l5kfU`P0`.NZI$ZTYDgRrDdRf0%_DGD'HXgKJr;7knB6Mm0"TuX0,Io5;JdfmAL!E7^\1fQ^4#+PYPcuO[s$Z_NK1M^LPp>cE77,Fh4=EHe*"4/rq>aM:FZ3aiM-c&?23X#7i)Xr\A>P$WrFp<VmeXFp1^n[UOpK;/#>Wb/3ItC4Xk^?U3A6;+VpLo_crJt0=@'oQ@>-Kk4BC1FbY@5;4"`Fpp?r:j)uBNgY:Q@mP\O`&\F%Tm>Z!jr*H;qi#70SJ/7.>(Tq&QBV-(NR!76S?Wai"cH,;Y:L1Kp_G)[WMmU\oo^,$?<*J/lkqood,PZioY<;^:rAgPdST<\X([>#qjl5B!U(3KfK8!YBD@ko`njYX):\6I9n(oQMY/37:*kCd]Kh!bCEUXHM<n#S7*kCd]_&5AjR5mN6)uPpf[h;+S/:-'FYq9*`Mr(n\`$j?oTP%X"2ZceJ>G7N$b$--Yeu_QWG1"hU?#AQ4$a3i\mG\XS\EjjkYjg?m1MlRg.:+0Oq_!8?iO]K<]eHd745>=qo;s(7%"DRXlf&"E]KZb,?$PbRCG5>1X>4%(M1o&@+Vl]BG_-W*OQ$@?\EnqG2SMABejjmD>2p5?0rSp&%K.:'A^mXE*qQM`;#4G26M\?lSl1VlMSCdTj5Sasme13Fj*[i4\$\$MZIf+0hh"?f,tZk.nBhU[B3M[O$[;6M[=0m3:7`BC8#,9kMf-#fG)KD1GZ^2DLIJ7J3:Xu8BdFgkKbIglrod'K[):UAI5B4Dn0"!lBJ;<2kIBlAA%24s'V;o25*V!a`<.</"Z)A,D%"BiGjW!E5@CX_V>G'*i"Mi3b25V\hV]I)'D$B+Drh*QE=7D5fDfFVIhBf,nE.]"U2]>8=!FT%mf,Uh>VsDG<lr3gLT00Yk3l.E*JtoKk`LeT6d[4cB5hpQpPR:,d4?*J^@:eAK5g@)=I;*Bf3EFB$X_&Eo6Bu'AIdk%1'2&7T"ROT0-'i*2saoke`i[DYHF[;=W$s.4_#F9#q,SMNbJ.oT3h<b_I",Y\o?5SZS$Rb@dRO4l,$.2*HBI.f+I?.3kdDZn]OAU>@P.0fRO?:n3f:%o=YX3,Q)T@QOCQ539A"+(J_M[apU0&k`q@[_B$5!U[-IZ)qgEhILH0[ptoP-?Yo1h0">l=Kd/2iEQM6$7+pDfWS%Qio\==X;nUH_R+llHU)bjHPnkFF5)>fFr"78G`Ob<9;p\s%igPK;#H+64.7bHUKuXGI'/N\U_88JS9E)du(OQ/>*V@qVk6+)$T(7l2Kg[%7f)?sRIc7mHhd('t$hmqI65BCt_LjLhU\N!j-42tDU>-GiJDp`/Gjs]#:j`;$I_=mbMgi>&a%KC%iYPGh!fE:kTtUs\@%S7'Y]06R4.pg''YSdKU/RfJ'Kp]gK9sZ4_&]7peu=KhIrL$1n@.t,jj_;q^Vlutf)EK%r(p-Ji"c00c]<C$h"+?kU-DL]mXM"E?%&K?..omu6>r)XBp>,/q$U/\o7GjRIn$"2`D`FS$3XX_Tt`eQoO64(9cl9AL`\qQ,:GRCK.'o^f!8fg/D1">App4nK@=^WmQ%,6:3!11SG^ZT3k=c68<Q-^C>E%\gpOl2dCo4H(&N@e?Qf2(ar_=)j=pRgEBYH.TlnE-TL@*3.XNiK$[r?"n"@s:BeR1)-,N-n%:+!A=,[uJqJ#r!f=eok0\WTW9(qH-,>dGQ$aX?)\eN>FKm@HsQ6Kff&LhKQPrjIGqnKJ.-l*E6StS\DMVUV(;CFHX`QisAAg?&_,./gW#'JV>jE)g$"i\'G`-X&@MhP@/^F$cFpADnd+F(b"lpYB0/C`8H%uM.i4CU2aGt!is'R<-hi4SRP6'R^_]M%=161iA[[LL3IU"D.8M+!IpPXloc,#KTu$b^IiQaj&'`q/))qn6qjp$;HH`mp".iM'u"7'Tkh7OdFLpji0m/3Ir1,I?mCnt'mql3g+-I>r4u9O>o#%eRWk?!m+;9StsBG+jV(73np,-JqHChb,<RlQ8"*`d@Y3o&k_Qi1[fds,(m>.Y#KV0Y"rAs*&:]YOD)/#bF8q0##5iPNoRU\^#p)Jer43(qK#&#u<O4)u><'Tc>.ZXoG?ea11YV]H6U"LbhYBhdPf"AF9V&c&]cmE#.%MB;u(Y%6\@ml]Dp+,r#_]i1`>nfJ=C-f;*kC0_B#i/lA"=VpU\mpQ@c8&rUHup,-=r^/E76>F<.<+tq+2hr3k<.s==sd/UU'.k^Uj>euBR.pQhZ?k.Fug_22uhuQ\14pgKjr2om$q,GWZ8?fXY6]7d*V4LS+W@*gm0!V""./=4R8/3aST%7`$fZ$L3@8;cJs4ZRqG0'`2q0ti7\-HB`'b%RWQL'oX,eCfgU&i$iLL$8gSr)VAr(p:(r]:o,[>5uu0N\:%..0$?rX5(k5IeO+I^Jmu@eStE#3BSp42E:,@I>jkc;RrF[W4,0VNmjFPB/DlX,4Sn0[G3f`sQ*6\Z9r<Ok;<\SM;LD7rUsY;*)4\GaFOKk;C-R>f4]&^?3N)ZnN^Y''8-lG([*o9+AP[0&C5BN\A/u.K;US]Rmn`;d1WYp!q'dbp)\6>"%%UB@S9+9nM(EW(f>,HtS&AR]kDGUmgaGZ^#8@9eAD&PFAos5qPQ&M\4J*SQ^-.Q@1*9^8%m8gu8LFGX3of;"M;52GVNKVV*pd0:V*8e%BLcB2,^>C,(=/9XVuARnU4m-+,-dbr_e*-oEGhPHkBk:TThM`3m]jS#j$:"_r3QboWie))W:G0QkCa^IA$6q,[@XmA\RHSAsaa7].<!?_=BukL?P2Y>5&<)8#!(Bn)#uVu-e"@@t@X=-!mS/b3OjZ"eo+p8.>HCi[TDLKo'd?s4Q,0)s'@PAL4Lc%i.oQ259BQg$*!\!Z#]HAh#>VRMrL@d<bg6YtAD>d6_Vkq.6rn-MlMJfFQ@^7cOLWZaEuhJu(kru4b%)l.u.6Dd?JRe9=[IVI@dc2+9YoU8Hl@:f]/QY-3EUjPnNfAq;'(SfZs"D9EhK+tIk\MT^YMpN*l@@f=u8E$!OY"@T@'Wt$dRM;pHes^EWajsWBOl"sj/gP.*Oqp_5EfLL$C]2b?\O<mWA8;R4N4D?n(48Bn)TeMQRV])p;[K0/'R`(9/c*p3CSb1<Zj8-5?:qP0=nl%#&%]e[p%?-K4Q$OpcdMF5o@!7$h<Xj#1]Fj%DDg4@]fg^hp@dk?g"ZJf-gum-4(VjOb8rhtLluu>A)l:K0".j>/aHl0\LgcJ,+l5iMnok6k<R.VLi_!"/N/I@_@8pCG#9#1_%#OAp@]76V+!dTkT7>abF'-hGG,rSBKb4g/^n18T4sl5/ZMC+kqsu[(<L*\I`<G%q-5`_hSK_6SB9kr`0(n@Uh*MA2D@j3fA`)Q)-r/&d\LqY3k%qhb[b]aJtI(dg(3:LCbi@E6YeHa-:;RsZR.hNEjK?s'AT8XNJ!WmT!n,bc?EnKZS3n#'Tj/"UtNjH4.-jQUe0<Er/_[YUdYc-<\t0pPiDp1AX%pM,%5-s7G?G)754.P9\WtOPAIc](Wf!N]R96?kCOW]V=h(cXnAg&d[dGn\[kB(g?CYc5.#<CF!0=/mF9th]iX\<8g8i\O`OflmksoIZbpLc2pM&nq3<dTOZn5,-60f#$a\luNG1++RQ!a#lo![[?mtOuDGn)Y]@-%ARf,ga57+2.J'oR->![@E*0*RNqllEm1[2f;8*8904u@O[MhKk:1n*l#Zd<A?OIK4I7=Jpa%kSE7bH'8>1\BWZ-GFI]OZ"lfQLA3iHAL`iQlY4E52tJ'>5eJF$]"`Mhf+B1]D%f&q>HSne_6qP38@7F2uW*f]6<-pG@oC\1nOGCZmRfGj@p#-dm)\EWSL;Q[uAYBPJAdLgWbKHQ8S#ph>!k&]#>c'rDRT7PRH+0]kM"ps+TA7BCJ^b4HDSV.Hb&fbLUda6j-Hf<XoX\n'Nut=3Ygf2_Dg>$ZOi<DEGa1l@+qShq%%/NSNU:pCWngS*]YlA%[61`VlsmEm)BUq$9[)bGTFGFP<81R?P&VAG88j]J"X^^Q`*JC=q@1ISP4Y8In")kgL?9o[F7U\XFOTZJl@Cb.2h52gq8KXs\#M8cKab+Gt><4[7J\eNIKIT%cL0O6c(s$k%.RZVG;b=_0Xp9P9XTX>6>EVGkWZ8srF'PI>HlT1nF-l+Ab40:U^q[Sq&+f8#OdF)mXC$e)2E:(*7;CG<0X9?f&nK;Jo^;q/#8.o62$8RF9%n`_\\r<4Mgc(q,&F=U:3WO3CbesPgQ4ZOV0a&2m62=4/fmPO<+e*]'[:=K1um5C.L@F?AOr/L8Dc?CYXT-X5r,_$l?n=8S2_'_?RlAWu;&:Hpf#TUSXiO^2j0df!T,f-']_G%8pBuVc144n'Q2>K:-^-_FK-,q3CS+<H[GF5H-6eXFigSR,HMPMsufHppZPXT0+U9a9,C,!rmBh\*,.A"Q?q_KmHP,rK*jI%QE(,!o#rr=`"F$9""" | |
| PALAVRAS = base64.a85decode(PALAVRAS) | |
| PALAVRAS = zlib.decompress(PALAVRAS) | |
| PALAVRAS = [str(palavra, encoding="ascii") for palavra in PALAVRAS.split()] | |
| letras = defaultdict(lambda: 0) | |
| palavras = set() | |
| for palavra in PALAVRAS: | |
| if not palavra in palavras: | |
| palavras.add(palavra) | |
| for letra in palavra: | |
| letras[letra] += 1 | |
| letras['A'] *= 1.5 | |
| letras['E'] *= 1.5 | |
| letras['I'] *= 1.5 | |
| letras['O'] *= 1.5 | |
| letras['U'] *= 1.5 | |
| def prob(palavra): | |
| return sum(letras[l] for l in set(palavra)) | |
| melhores = list(sorted(palavras, key=prob, reverse=True)) | |
| corretas = [None, None, None, None, None] | |
| incorretas = set() | |
| ordem_errada = ['', '', '', '', ''] | |
| def valida(p, erradas): | |
| errada_ate_agora = set() | |
| for n_letra, letra in enumerate(p): | |
| if letra in incorretas: | |
| return False | |
| correta = corretas[n_letra] | |
| if correta is not None and letra != correta: | |
| return False | |
| if letra in ordem_errada[n_letra]: | |
| return False | |
| errada_ate_agora.add(letra) | |
| if erradas and not erradas.intersection(errada_ate_agora): | |
| return False | |
| return True | |
| while len(melhores) != 1: | |
| if len(melhores) < 30: | |
| print(f"\nEspaço de busca reduzido para {len(melhores)} palavras:") | |
| for i, palavra in enumerate(melhores): | |
| print(f" {i}: {palavra.upper()}") | |
| while True: | |
| r = input(f"Qual vai escolher? [0-{len(melhores)-1}]") | |
| if r == '\n': | |
| r = 0 | |
| else: | |
| try: | |
| r = int(r) | |
| if not 0 <= r < len(melhores): | |
| print(f"'{r}' não tá dentro do intervalo aceito!") | |
| continue | |
| except ValueError: | |
| print(f"'{r}' não é um número válido!") | |
| continue | |
| palavra = melhores[r] | |
| break | |
| else: | |
| palavra = melhores[0] | |
| print(f"\nTente: {palavra} (palavras restantes estimadas: {len(melhores)})") | |
| for n_letra, letra in enumerate(palavra): | |
| if corretas[n_letra] == letra: | |
| print(f"Para a letra {letra.upper()}: (v)erde") | |
| continue | |
| while True: | |
| r = input(f"Para a letra {letra.upper()}: (v)erde (p)reto (a)marelo: ").strip() | |
| if r in 'Vv': | |
| corretas[n_letra] = letra | |
| ordem_errada[n_letra] = '' | |
| elif r in 'Pp': | |
| incorretas.add(letra) | |
| elif r in 'Aa': | |
| ordem_errada[n_letra] += letra | |
| else: | |
| print("Opcao invalida! Tente de novo") | |
| continue | |
| break | |
| erradas = set(''.join(ordem_errada)) | |
| melhores = [p for p in melhores if valida(p, erradas)] | |
| print(f"\n\nA palavra é {melhores[0].upper()}!") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment