From c1364265898cbfcd62f014668f3c2658a0c7fef3 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Thu, 28 May 2026 13:55:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AF=B9=E8=AF=9D=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent.py | 28 +++++++++--- chief.db | Bin 4096 -> 192512 bytes chief.db-shm | Bin 32768 -> 32768 bytes chief.db-wal | Bin 24752 -> 407912 bytes model.py | 4 +- requirements.txt | 5 ++- router.py | 6 +-- service.py => services/agent_service.py | 27 +++++++++--- services/db_service.py | 54 ++++++++++++++++++++++++ test.py | 5 +++ utils.py | 11 +++++ 11 files changed, 122 insertions(+), 18 deletions(-) rename service.py => services/agent_service.py (62%) create mode 100644 services/db_service.py create mode 100644 test.py create mode 100644 utils.py diff --git a/agent.py b/agent.py index cea8062..746dd4a 100644 --- a/agent.py +++ b/agent.py @@ -5,16 +5,24 @@ import sqlite3 from langchain_tavily import TavilySearch from langgraph.checkpoint.sqlite import SqliteSaver +from services.db_service import init_db + +from dotenv import load_dotenv +import os + +load_dotenv() + # 连接sqlite -connection = sqlite3.connect("chief.db", check_same_thread=False) +connection = sqlite3.connect(os.getenv("SQLITE_DB_PATH"), check_same_thread=False) # 初始化checkpointer checkpointer = SqliteSaver(connection) # 自动建表 checkpointer.setup() +init_db() # web搜索工具,使用tavily作为web搜索工具 web_search = TavilySearch( - tavily_api_key="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", + tavily_api_key=os.getenv("TAVILY_API_KEY"), max_results=5, topic="general" ) @@ -30,10 +38,10 @@ system_prompt = """ """ model = init_chat_model( - model="qwen3-max-2026-01-23", + model=os.getenv("MODEL_NAME"), model_provider="openai", - base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", - api_key="sk-52bcd98e9c1d45908437c4e8706eefff", + base_url=os.getenv("MODEL_BASE_URL"), + api_key=os.getenv("MODEL_API_KEY"), temperature=1.5, ) @@ -43,3 +51,13 @@ agent = create_agent( checkpointer=checkpointer, # 记忆 system_prompt=system_prompt # 系统提示词 ) + +title_prompt = """ +请根据以下对话内容,生成一句不超过 20 字的标题,用于记录本次对话主题。 +只返回标题,不要解释。 +""" + +title_agent = create_agent( + model=model, + system_prompt=title_prompt +) diff --git a/chief.db b/chief.db index e491245918cbba150aa05c9bc0521d08e455860c..e86923127066564734c6c6ac1b4acc3dcf1c4e5e 100644 GIT binary patch literal 192512 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 ThA)n{!4Cia9S#4+#3}lJJmx}6 delta 37 rcmZp8z}=uQL7J73fq{W>Vxv7bBZFSJ7cY>@5+teVz~Dk^giq| zDtg0X(UD~Lxe+&ttiF}?>af3A`E}A<6}ioUyv`#{+mDVxl8h8`HFm1EVteA36sf!fVXC%2!T#DlP*MpWU?VJW>YqAFS408-JsiT zpB-0MuQ%tS<{&VxPUENcvN=Acp!FZOjZQ^JWdoLa3T^SlNA9!i55i&{5yd;l5F+NCfkw;f?0cF d&oh}d?U<+1zMi)?fWX@Z?Ae@K`dRiV^%oZDMk4?K delta 202 zcmZo@U}|V!s+V}A%K!pQK+MR%AixHsS%FwqCA#55bKt)_dWYh+y`M3qmFdyrLbcak zq^buR1qL8<|04mY@WgsvL6FtVKn%2=fdzR{bpih0#bjO Q7?~jyNC}X~2BbI*0gjJ1k^lez diff --git a/chief.db-wal b/chief.db-wal index 4c6b933d26647b269eedc0ba84b927756d842761..a54e76e77380f31cc45188c2fdbdcaa1adec15be 100644 GIT binary patch literal 407912 zcmeFa33MFSc_vD52e?4CEK@QqyF_XsAr@5o!pM$knYNjcWLY8;E3$)AT~$pY0s$D^ z5G5}!*a4CN0dNOF5?lc800ELBK`exmnT+JjoSEc#W=@nh89Oqnx_jb0Ig`ZkOy0?P z->uu-Xf%KZKv1$Q7bG^&Rd@OCfB*a6d;eAaqs3M8*mobCH}AfA;K{UJ9w0p`uyVkB|i`5tbgvMuRmKDwwYi_*-j(Oh^Re({=6?R49aHXpFrxw ze-_~P!o(N+_S#GNKG~ny^YVZ1cUI*7a^8}hws|Wb%KhWz%!;4o{Oz*8$5;Qy$AFIk z9|JxHd<^&)@G;5I>9X41;8D>io88&Gq7)q+J!R;^y0RsAj6rX30umK2BRFK&Dr^dYk@hl&3b zTFjQ`w{HH*<`|o>nN8caer?P1sQcXJ=eKT1mJaVIvkj{Nm9}pF z##ZL}ui@XeXP;%ZJ-_Aa+cuAtD-YRa1q8tH<;Dtx3&TZIzBJKE*tQD7g=pYQz`)im z&uwPDwE4@MwmrL*d1l*-F9N6n^6;gto1S~YgKj;$c=4)DtFz`67F+h~aaEFJ zhZA4DW)zj%%om^i+7~CjOQo}QNi1$)#^Gt)*FtLp6CdCP218h%BuIke^-nHbyy~|f znriCl1Qzi0_oC{@vX-n`yEd!tW8TD%bs9?fbN)CINO|$0r-M?X%m$&2ft(zGsS6>D$ifMYRlTGCUp$JPywIvh1}(r#+fZgekbGwL+5U< z(VySjyMjEVq6G4n|Knr8$AFIk9|JxHd<^&)@G;)FVI|}O zi{Jcr`Tz45|6H6y9{O?tf(8G_$AFIk9|JxHd<^&)@G;qSn$P$R1!F>E9u?1!uUm#~*e$)S6k@L6n7Ny1)Xv@KW zXwCoeG2mms$AFIk9|JxHd<^&)@G+3Uz`c(zko(Il*^e*a#~1M93rreX!jCWD#fkV0 zk1z1yfe`}P8fjmZD)W5CCNj{zS8J_dXY_!#gp;A6nYfR6zm13m^m(ik9m z|D+$mzdZZ$!!`D&cg06cYze%$gdb@P_=EE?;A6nYfR6zm13m_P4EPxEG2mms$AFIk z9|OO+7#QbA@ZCQT=l<^hI(jaHAHg!9Dm72xB7C2%AHgy&Pa*sWmSi6s%Tw5veQ;Uq zH+LfZk^30%G2mms$AFIk9|JxH(lJmqe<@9<_sWMVq233ZPw(FQ5iEaj-oO6l`Vp|% zv&v71)Z$(qGe1vZGRx#d3v)kDp`WKPo?3H?M1;R~c?$pNmD`_Fzuvyc_ajK(mHqEN z27C->Xm=Da%5%eN^|9g75}v2&WidKFRXZI`Mb+6FAp#O-15cC{`0b< z%Zz1tIscF|lvA7Ye9o%upP;(`<72?bfR6zm13m_P4EPxEF>tRjpe%Z9#kMSg6BJGs zG+vZcKFG_4tl6v`kR?`;IF$_qgF!ZE3#z5-n!&5;XOq=rT8)cW6D3v*ST?H|vdwB7 z$Fq{AsT~z}?SyqjQGgp%Vq$*J$g`mcnB7xL2 zKAl#Lmt}8klFqY10ElX)OnMVpnb$;JmsDN0gw+|UDZBRiMO(qa+y6bcN?MUQ+mnrmV)XS`fohG*zc4;RRqZpolgv+7D)|rdX^ZY5|Ip zfMzKiCe#2bS52rUP?VssY6t+*qVpyK+<>eFc_32>esaoc1{*L$6Z6J-W5YD+CT}Ua zWGF%Lfeh7jK>;SE0GW7D36BYobV=uQMf${))pXXjWKvBvC`tkbx>6)d739GEnX6&C z6%e&Y$`)tJnq~wAL6JV5UJc|yR)C}_tiW*!FeynCNL{r}RpboKkOCi@vYN!&w#A`0 z-a`qdQB^J806A-ta9_r1W&qPI>J&&*;e(=V24&Ocb0<{8O9G@C1dwFCnVg3bk=1S8 z7Ilpi6`fx>Wi^|%NL|Iyya^E4pedP(!0TqfR90lDW@?;HfsC(iTT$&GCkF+2`IOZx zHb_>eqT4|_Z=fnZsOVxqu$5&Qt0@375VYd+W*WSq+dSyf&S4kb56;C462*j!HEHOe zTgiw|mnH>(15GtJP0pTJTH<-oyR2Y>2*U|ls%A^3D2M@Z>7=DG0IY>LBmq&?I8`O#OFHA2jvbIQAkF9xZm1j*9H7yzcOmV@)(nf#~e1Kw*VQ5GH9Jo~^$PJL zn7`=1&0D$xAO4Sz0UrZC27Ca(283ffjq-YDrCIWb>UR7sVe!=O8N@U>{yNMzuQ+cEOfipp63>1g}jKEtvK!-XZqMp415yNt5!p^CmTJ5*Xy z9I^`%o_`gc;WtX{F0bWI;zIocjOPc}ca~Uo5dpN&GQxJjABIYbdz0YXWg)bhI)Ha1 z99c5`@cCT6B#8q4*HjMYY8Ii_VzM^;DXdjL2sE& zh6l_Shu3`n>WKw$flE4 zlAiXzH8fXxqQvyxP{-ZV(>sr9I<7d9t+6~8G;jykO*UW!ZJct0x~%d74y4*-MECY5 zURiW-AZ5bFtp}s<;-)R}m9RUp68`G`&qpgN-4i2j)di<(_`RXZ=tx_vzR^8;6;C3^ zYDW7HIDIEa`v;wU7k*k%(f-cS z{!8wuerKdQcDBPk(c-l1dvB=GZD@6FU5gAhkM<9c*3MjywA4AbZ$_`yj1KjV4%9{3 zdz{@(Xg_lBLaehT(tS8`s0#q(9kylzIn?% z(dD-F#43&fn9<=n=UkP0^0>RF!o7aTxpTxBK7i*=Pxa{F71B;~tJ~NWxi}Cza>G4Y z>2#it4;O&%#eBrUKXe0_Lh-yjGVI|4z!HW>u;if^Fy-Zq_V4pvyKMu}>S1@^g=kZY zd-%3{y1{$>-q5j}oV9D$GH!QQ>=GuZ0#D+z12X8Wr?c?hP{YLbfhmmhy`kMX?y1{u zQxC|(Z5VO-`$@IlYWHxPd#c{4ufxb$)C<4~gx7A9n(Zy*^I(U& zhcpyDc7i?!qGPrD$&=Q;=$=0O;haA{+D}LqT>=Ya_Vx`DsLz~?T|4g7UXLB@NuY#f z*>MywfJF;R2fiwu_IA?w*^0=GGn5Y8Jzba)v=j&eN0~7D^A1B(c$B*QgyrOT-u938ynR1A@a-@rqs`K(*h;SQd5Yno9OPXQ>HN@VZ`zQ*dC0T5*>bcIB^ z+hY~G0Usqb6pow+A8K-18e?boxu=H6T5GAs8pJsB@}f8QIF-ln89UeJoZO4WGj!Cc zZJ>)LGS~*nrBt*odi92T6wK>bWN^r7X#jGZhPu)IZbGOHb%2;Oa{1`!;MwSD)M<%U z93iB86U5y8(~8#7{)2c38j4jOz(e;eX0LU9o;MF`L7-jr4Bp4i9R~EYcQOz4`$q=` z=tC4|Fq4rx`@ospzRo|nMJd+pz2P*S2d#k)@Hpr5Kw2DpaEgO{d3k6E#EFWdBPSw< z+Q42Z>4I4&*95^z?S)wNg~+u#P7~qLPW`FT+h8QI_M7fC9CGvVkHig3+6(;2vfS2x z{PL4o#9rX>`8D%$yK`U8U9_@q<+oO5uXuBXv0}yY-sLYX`^B=hWl!h)IHxM-vFx|A zU(H^*v~TIwCI7tS*pkmJ{>kF%#g8xg;i95NxeKo?+_vDC3)&Zae*WK}G5^QMz$`HE z%_Zb8nmub}h$<>vkk=t|mlTl=${OVLJjCc`fY(Js;0#sa9;b~jeP0@XET!@EGjzuD zF{GVA)mBwDsM(&JT4Mtulp8|8k_A(gc~R6KO+m|~jZdY1QFU7obX{R3UQt+^3z{rs z+YkUl3aau3uUVS9b~?!C()gMQji+jWGN^K7fwycE65N1J)Ebr$Uk0_ zT;N#SFo{l04e*Ng>1iOJQ{$^AX*{8M%cw#N1Wnn}Ar0XIPy?#G2+gRdseoMOR7Hfo zRFXe630lS)&!A`%pb-q(Sdy|R8Y~a(25SX15o9mfri>M;3HC!7A)jO84`zToqpnZp zEdiHUk+l?4VS~B^6@&>Tj;tyYAFwRR3h1jcKtAWjKRF%bQ>hzeqIou~APdD_kQI3e z+8GgAB?xmws9H@!5bX!1gM2QHe_~?eNsVVl)g{kaJkRSWV+cH}nwG|LrWs^aRa1h3 z0hPAE-#-y8;~Jk*!6`zgCrg|Fr5O*jNC6IdO_O6qMGNQwmA8$c^6_aPpHt%>o22oC zjy0pQR5ESC(xK^-vBPmHrdAiARkfiY#2%xFrpn(p30lS)&!AEbLO%<(tFRiBo-Ahr z`$`}nvq2S$-{go=U(d}5`5YTxnE~>QT3zgyf&k4h&O@LU5QxoUV~$Rs^=lW48hU%zu&6=S*z@X3{3EY3uPXX)o}zU!MPjtY1Gy>;)Dt`mgg= z{QdGjUjDTuyB2>1U;G~*13m_P4EPxM^~6BwIACbG6bnNe)+*cdL^ z=xNo9%ZrMt*vC9g^U{Y`SHCZPCQJt68t2xztAU|Mp%V7FsDTx1;Hqw_tSSUy&Zpu) zXW&Z0T7iJ625>G^Onx#o@WtmIP2lSCUqz!AZTH=brbO&PnIK^CWB%ekBG-oeLjH;OpOSOzu3Xx|KO9Zqo7f z_Q&?m+T!WH@}vcA~%z!aM+?!D0c z6H|v2<0dHDVe^pGse>uP6o*(1c{YalijJt+5)4+HQ!rDLGgZt8aB% zy4}-fQJ&aKz|3W^7Ir)^Q=rC3k*N651F=hubgZzO0F2Q7$4=jdDGW?>&;qsC@xUPl zTTah0V!$x~`-h6r!C_b&z;=NcgVgo|d9Vn=f?bDy`$GpZCOp(#9n~OE}LU~ z0W{$M_!#gp;A6nYfR6zm13m_P3`~K6q?hibfdZf&#pIjYa(U0vYTlJ}U7AhQ9W1*$bz> z`!ul^STO%JFTMbN`9D4eJ^&2VeT(sgmaF$X>p8N{>WDNGSLV!)tO*}!9Y%K(99d}~ zr>V|oX^yN_Nk`UScMay%G+F!)Cb&~qkGVL%BWCiY#ybJ-)G&WiiMnEVt5BD*2fRDhdip%k1rl7#=o4uZH5*0dKvPb>J!q-Hg!Nr91LTobgcS zOLnofzbjl)QWR>f@dA!_hmF??i{3yCaHGuJ(MjTzS9g88+%9|L9Wm*4M7@m=QP(+e zX>_37X=ry3_qq*-5#SktPvP?ePa-e;X$RUaEi}&~qPJaU6kVaM7Fc#^c*h09dJV4F zwuKPq!=_PGRDfuR3c?{G@R%S-BtEsMnTVP$c|p-H5-1Buxtgb+NH~Gj=S}4zJ{SB= za01Kvv)MX-!~mz^sqwTq2H4?}10I}tPfoef21L0Ne*%W}MKD~N}N_)v&$hv+ptBDh&d z%A_GKB?9#zteB9}@vjdVTq`X0BH|Z}VXdX7oW$)ZHAztM5+aa#1_3(O>8jvrrOEW^;`8CCrF0_`7Me1R--&0Ajb=uaN_ z!+EP8dgu$MH^2MpyDxqH*}|~R1WU?x8evA9ci+7E^XGkmVMtN@6Y($cL-H9cOnkv_ zuf3G-ll{4TUjFa>&WfDBowp?W;JlR&<^J(MPR;^y0RsBlX2o%{NWaK1iG3hVvnHM*2+Paz9y6KD0Zf4>SnRPix z+~)lhTFjQ`w{HH*<`|o>nN8caer?P1sQcXJ=eKT1mJaWLyw)l} zrLCL4v6XrLYxuYA*=Lz;&u{tqw#{SZ%0qS;5y*}&HugST7%rOfrRgQZvY{hDHW1@ zi0>h14~_pSj7Q1%m+J`F8&Gro@(1VrtB2NaeW=h{@WJ4f&0f4})9S2wg~gWrdK`g9 zdAP*;4$OKqR=~&q;B$XDZz)-Q)ms)US@qCES#>)-r0puhJcQ`y!f|M)&r%36L6B3B z*ck033Yt4?^VL!S6fP(ZjVH7uu{`la#(L>=Jh3p*BTXRpiNy-7*OSXAu_z{%iYJjB z59`EYL_y`1nfS`f*vowJ*{^+Z;=9!4yDo{v4a_(^jr&??ZD8U9+`wQ6>yzu8;CTI$ z3m32Y?T4l!0Xl&NJpH|>`mwAftJbc~s{5EX@nfBaQvRGjjs#L(eCX+b=JG`v;3Un( zX=ma*WSG9O>Ql^NA{+7)ukU7x(L6%FEWE4jd92V)}WaM;|RROuWEF>?RER_7)3;tlXrWJoRf79sjDVUl7 zWVrhRe3H9*_!Nmu>*W%s!F3V#*6DBfc}MGocPpBZo%uRK%Q|-&kU!U{y+I<@4xe(5 zH#vJwqm7)L=($Q~sKPnF7tNs|n%6p3+l0*E?wgg73wu#JHZT~eK1celZ9pz<67RMF zNq0$j+6lR`(FVY0tmqgiVyp16f&@Uf#4>izq%LHw=Zz88MG8ucxlbsXw(bK2B zM9E0+i}cA}p5@UyBW}|zWSAz&!AVMXnmsu>(jGnCNOLH=`}R8n%^v6#k--L<$L^jz6v3kdopdIgmh)(Pba0Q` zb_`ZXqk|Qrw;RY4)IQOLc*3ZSB*;eyEzF42)2wqkL$GDK$96d;(kt4QE+Z-)GJWbu zoyGE+AqGt;2m>fS#V)7iZp~fh9N9$D1s$=pbYA7)JHxBVcpmS_)5Jv)5f_CMkOfi| zP!S2z6rR(B^!Olm+06LpCL~--VR31BxS*h7^5`bh1##g4ti*8|GG}s9y10yQ@aVFU0A?3{AIqCR>OT7SFFB%FrWOWHHTKU6)t+h18?soEM6$tMU{JWvUgJ zwop={IE|eMTi@FEt2+@+YI!+fD@uWTTGE@0EXI=_X)Un_Ody!nv0WjR-FoFy0#UI% zZX{1J_}K6;J|6oNJ|10#59R@UeEJjkc<^KRSe}cI>}B{^N+beH$jyH-kq?Z^M{un9 z$K2q}&?iZJfk(1`YtH!y(1icvW5CCNj{zS8J_dXY_!#)8V_?b*0l1Q?L3nuyHgcI0 z87&{MINOi}$qE>cOj*rl?Evy&`}qh`lcog~16j-^6Y^S)6Iq$pL|vCuUABbPNleDW zs{8o}J~;s;0+pI*1{*Mtaa|EOBu4l15y*z5Nq#;8KOaHB2FDFr0kSA0R+pjV(gK_= zsODmJ5risPWAYS<{b=SRAU*+N!d~E?|KsEKXR;n1BJl;XvcEGA|NB2a27C?WjmXKv^DsA%1Wrp={mEL! z&eK$XV>jx+d5N>`y~O(zqtoVjwMZ)tn5pu*HpwFW?M|@8!Jm$a~Yo7f@5S zMnAql3NrjZeGK>*@G;kwbSiy4@(7kJO$o_t}jOC^{6?A#xbZB3mRU*KNu zb{}|KrOUD(gClnKlMgIMNcYK1W|SbS1cGsQG|M!2L$`S?$lJ0K5Q4mFv6i3-tTJiJ zl(c;B#pOjsRcuZojC}R`(r0=Y`L~Ad&L8Jm(l7X)#75PtX;yh*13E7T+c7sIesD1-s9{h ze$39*+tI5hM*F+rs2v?S>Rvkyuj#lybkzk?;QRrnr72o}iFk4k?u`sK5%=WXaOv*y ze7l<>9bK`?1Mt}%9X=E}-|Msvxm6c_T2X~hxLBi@)4C^mbvFvT75m_CoGjzC9C>f3 zBPYi_awbx96UE`A9;v!LI#7qQ@C1jmcC@0_sjow}VmybRIsCN&5#S{t5OA(gPiNXs ztm0U7q@KDw6HoP)t8mYDnhr&KPCE_z->o=^|D#uL#g6o#uh{VlIJBb?r)M|3u2C!6 z+eaaqk!I(E@O(Bn;_s}ostw98bQPf#w4kPoylu*gbuT=hw=c~mu^k9YNh4R}(zL-& zJjYfmAgUUt%7(%t$EVDzrp2+cXik-PXfjUn$dbg$s9t;zyGmafZ{5B-26B~9Li6Q> zM|{VOXkaSso^A66Ck9y_sZm);R^YZS8!Br`oMl-&7tncbGVW1hEl%L50n?F)qLIT6UrY#8RIC?wlUuMfa-uW?>3}FT>O-}a_Ad1P$ zLu`q>JgoDa9H-%!ySs@lNRr>Ay4e{yie-$*22O34+kG~6=4jgTbLx5{J$l>2 zup{ssiu!jejyuB#z?!h6BL^>}1&E;QGs#cJxWL6Lqy2jvEMOX-qHQ2rJ?zqe4f`7j z7dTMq?mpl&)H%1hMu(4kVGfc}FG$3L8O`?xwB{9F&{&mMMPwn7Y?hNbEW1D;Uk2CoA%xCcN@PqjH6p1--|Htu>OCk*{Bc1{|B-{WI z0VLxNe)0={_ZR;q`(OWG5?>%M>%Mup-MKI4E?U{Q@>?sjSG>8xSg~Sx@A8+H{bE_$ zvZr%?oKuzaSoYi5uV$}Y+P8G;l7C)uY{};q|73CX;>Q>La8c2s+=bT`Zd>rn1?>wy zKmTv$*UWz+>(8=wqS0T&pKmVlWC>Z5B!|mrTZb4omSsv3t8$241_Kq9H8j~|Ay<$k zP3LV*)AMNKOW&8q*Jpq{qvzsG(gLo_0QsC7e_}ewap#hNPw&nZv<21Db(7+@--TdI!Bjjk(@t|$s?b3vSlL_`bI;5DW42CrF~x^_Cq=hFC^35}pwQ<29 z!50m~bE3q-JfPtq&S^ZNkf{o;4T7PtSd12nTObbVJcL(vKry6%Zs@YEFc~4AW8|PKPR6GOct!j4G?34! z@zs+wJ|magK+u#e1af1!0H#FcMIv+3R6vd>Zx9p7Or_hJ_$MYdF6mSf zp4ruz=PaJ*b+|(t$i)gFqsDTk8Dz0*C_%vhhZFewC!%Fs<7NQ7MFe9d0r^aY4~jDI zV1m0q49@fRBdWY-*;h$)cpK$N>4A8(%&R}NIW?a1(h?%|Ukab{d#0kwrfp`Yw~6VyYdyl!Dd3z-n@h&pOch9qAR&&*J`vm_ zAd5O@$x!y$GZC;a9vgdVn{$$kjTjWP0`vxPtkdRs0;=MoRM0m``nhD z$eqn-8yTWD?K>SEIq4jR@^p9P%#n91hTiLMPSZoXeVwx@8ogQr9R;K2%Zwl?4C%I# z=rn1!`bH*J+aEc2JTmxZboeUNG4Tl42$bEvH&S&t+E*8?ZJAl2cvo7!z^Gb!PdvAg z0qC*nVG{KF@Cm2Z)4O(!Lc$$P!WB7@Ui5nS$+w*a7Xv1#PNua-i!hOoU$s{E5jM zL+WIYD6~4D6(>Tgq%=b(CUUqfa`Ymh@?>KZUL+8}GjPk2#!&Fh;%^qa9bJ**d)@XM zPUo@6-~spKaWBxQSyE=N*~lP7vM%G`MjVLBj9mq0NpaXN4&x0mPWk=@=DTak%Zl)I z&5m%mG_>)lr$T1Fy?uKq-!z^ov(3U%JM@&fqp%pMuGnx15|Ng$MzO`B2pb9)ma)OI zH`tI#y7cT7NlOIf2hJj>d~!fQ7?u~qGMj13%=egQXq(JSg*!`&3WJ5VMcNnxZw)mk zAR}B$sAJL=$y>%5xr~_biQ>#?{~)xL>2At-jZbJ(K%wzRM z@3cqnoQ2-iX+BE|Lu)$J4E-*F2C4%DsAmKZGS46b@#SMjZV;LV$BOOmAa5eox1+t) zlf8Lqhf!veB18+@)Qh%ZZ9%@TUCWTf--p}C7e->7=1XIwv<~s?-Mtsxs|TZZsv~tB zfNFiRRIL3ZrUhUBWSEII-gFw@5-%xYurb z1wg&tTYl_q5_>2h5GLmpz=}vT9^HRDdSJI#J<<1A?a1}RiJ^6O#V&PvLvy`98Q%NC zIK6er$#5F#F$cVJwV%N6>^mCiyT0D(8732t$vy!inMT;hATI%GxqX%H&1)q2LEkVw z-BbM_6buzp7=7~=wu;DLU8K9+9qe@W4WbOGd+-9bCz$la+LP5WsZ1OqZ%&zU5TO%7 zS`EEGFnWV=5N)1J-rhlvBoehnIv&DQ4%T`F_fpiNW3&;e?jBcMqQ%{VcR;vFEMo{1 zp#)m2w)*SzE2uM8-x?dNiSEXbQ(%_kSoG-My>$!b14(oOctX7%S4Y|zd22(qqnZY?g3mxXhGuriZxumTfxB4@6W)ZV zGY(4b;rdwL5Sg9Elc2$r63yLC?@)B)5(b0UK(KS`gwuLG+H?ykJ;0Bh<~^Vh*;D7$uATAb$oaj!vcI31yF!Ycc`Rk?LXVTcKlJk|JJW^XSH zh3zuiVoHjcU8OsV@=MCLGe(Fp7|VXmE-ESAiQUI5pU=Fst1xWtV8SJMTUu6Pm78JY zQlyQ&YQI5Vl-WB=UbC4n=_Ftj7u#j|>AM>*;*ufFczfHK|9YWe?kEo$#oP1ElAZBQ z?kS#ABu!IfZQNG&(~1_l#*s1PrxmS90w;@=9vKr`OF@Qrw21=u$VC|76^!=pMb;R% zVI*zCORzU@VMPY6I$by2-Fw~rhv-BQUgm9LalYZP!RW0HFgR=%PDLBe+=O|dSnGA{ zMc_ANHyZ|x5E{cKnpmCVfbVUN-nikMy-Z5+V28w_ulhQQIQ0WaXoBYGKymtWE?*=p zX{0uGdeGf>9vN9+sT8TajK1F+YR6s>sXh;GMYF%4dn7|4XW!cE01?GV-MS{HVn5+q z3Etw|sil7t!^z{9oSsIf_JUJ?!f78MqpH0guh?*rm@-lRINav;UnK0GoY?ofht8sR zMj#9wj4v@r)E>Rv5k~^D>QGz7J$nee9z+0#ECvrWm|kJ=#RuKjNp^@6U8Gf!Y!EQ4 z8W_NJX7u(cxB4nU^M05=HKKWHG>KQ>#wd>S1YW@wD>~9fP6N%y(F00iTft6%Lq_D_ zVC+sC3^5}o+JRY^QDIaBFTJg30l?xF`PzKet?2;kiqGWGF><`yb857|*SXqAy6$gs z&RvLJJ%s=1){eTMD+01a5OMH=J5mw3amuN>LO1;}yuert7G5p;NI!Qf@V|TH6m~f; zt-x4GBakm(5c zBgKyIre}T%7`@zKj{)N2I|@B0ISuX3AR#H7xR4kLDq9|MK&XruUfhVgn&7QEvO5n| zY$`3qRv$gmOx6TiBu6^$B7uw5B#%4}oV@&?K~5h#p-+D`AuUc{Dz%gJ8wvxYMGhPX z`GUBkwId#k;~%9~S8>6C(sK+(4+4)jk@Iow1@fI7s(0@t2iUPk-W6+-N96vWDi`Rx zpM5jEAz&<^ma#_wGFE*dF|&2Z zM@0%U7$t*DSke9cv1<+3BfUOSzK_QOW=c)Dpiwdc5-Gof@pSZNt^4Ky&{+zF;lK)r z4qb{i)=XP8wL5Zog~4t9!LbvBwR(kN zW_blA09a(;e59uWmf22oL*&jrQ2)<6j^Zc};O>31;|C%!S_;}omt=PVFN38ykmb}O zjn`p1Hy%8@+p&{D*n*qB(^xynBYIMeTqA-DEWc=VW3=rKDL3g0EJ(65)*f=n*~MF+ zJVrP-QlTAe!v>zj8Nv2p!b6gbF}}_9b;hTlzaOZjXHnCTqwOYk!X%xN$w{uN z$<70$7sQGh?XSm%=f2q-J>S5HV!jZ6;PFHTVqHEdRUBhLQz1E(rgi zd%VHv?u_oaPO7DU_s+Q3x9B~V$9>n&==B;~TuO7^oo}Yi;Y5&_jo9g%U|n#gK>j+Xp@M8--c1gKkKGn{ zj8tF7W=C)dzpJ>$FgE{!wo-n$*UgU8UHcNb0_hj*QvX+xga0%(c0_TdIV z@0{*&oa|Ct^lp|jY>_Uy$k{_U6XJ$Vk4xm@+}j%M=?4K2{OmqJ&v+@=pUoK=r$%}( zB@4S^KbR?L^xAElP03{xrt+QO5f!5Y?c>Lx&VpdP!*BfLJMO?co6|0VFLB_-2@YNbif3&W@PRu-x^Fq%EhM3#cX0s)PQa=@ix%TEhkF9qxAsNa+v$Y?gNRik zg=7*hhV&S} zog@}(Tyk{q0$G=pmm?#CV5Wq6Qtt~?@``kl-o+tpkh5VEXq({BYbJg`_oOp%2H4($ z1qZ;rz+ul34;Y9bG#@n>!XTvpsB`oUb+1g0^Q8F9*!A$qWc~a#ua=jW#hkiB;EJ*XUGlP`j?>gI&h2XvTz5P*4JnuUJ@u@j=A$B)qVj^LG|mCZV=*q~EX&Kz z&?$&b+(T_dyj6LO(Dv~PdRR>!szLK8?Qw#{p?cP}Q$Zu=Y(Yv@$Hh+UcRTl^A9^{0 z+>7)!@o8!+YQDs%Ldsbkyd_e*kBYy%>M7sHS5z5TPL9>2I6*SlT0lS-+q)1)L(6#+ zvfjNAe~yhkQ>oNWG@xIS$NFICU~of9Tu{9s)9a~7Xk_ft%#z`9>{u=k4s))xuN*73^Ua`jRFqxzc zhkGF=!QnM_#Pifny{|!|IO)6ORUpX`$g0|p>m~%5-WtkWB6SXR*d7Qew{eE%Baa;# zp==iyFCsA8dk~x<&V4+|8N~%1B9=N~ZwHUZAeXJF!&iDsrkt8g$vtn>8$ybXoph2> zhybY$A@}Oj(UucV({ac_4q-%bdy!O5I-`O(CXx|fghfg<=z%ii1h-2FzC041NkQ6L zG(}7^RyF;pw@+?{`U=wnci`{Ql}s;qM3BFy!nt*xRG+TQcp|_mO4+UA?4kPdxZMT! zN_0@yS~Qrp+Ci>AUwPYFb-Qd5Ud2%6)w zl}I`7wLkUi)V5U+zMQg^;ZW@EZKNY7&7^)$t*7PlkoczToyk)HS&g31)T{0ZQgK#D zK22?ebgpnI^qX9;(cwY&#GS;2y@6;3dT&4#N~CX68BCUq+B^$CIuu-aU0YF1!=BLv=*d zQN&W@o5g~&cfcDFQD{#)rX&*PB+T<*qcRUzQ?$1bdD4Dzizi|>Pen01`Uopr;gxOA=>ur>81Qi1>g2YRo}8NC*`0H=aYAN!H%EO5B!XmyZ(s z#Cw{}l^&8E+?-%*0vQI08UdkUTwKwR+F$JGHMjc=WdvkPC1RP~RN+d^H0b3z1&G;P z{ONF^<|QUno(zwQY5-gutLeazD+QIVK*~;cVhUoi3K5GAddk_`#DoP=a-cjMBOaj6 zlbT>02`NKwD?xSDZ7Ng6_z2G9!j(!$R`50{Q=y`ixUMjc_SwiH2$-G_48$5|uZbZN zfNC#9F6_nlsGfP;_&hle_6FRtQ?NZ7K}Ccb=6KT_?YT(1kDk2^X$ZxSCuSKhA8EQy z*t;h{N$GVqvQDaFrJF=@qZ!*=5JAL~^-!}O(uc}s5}*NJ7QjQ`646a1L83vqVq)837sm`0T*+d zdfe(-r|wN+ly~R`dPc8ACED9eW)}+ZeZ6G*Z(pOV0~R*WF-K2#f%u`cNDyG7C)y`V z+=KNPEez<1QCe>wQI&i6f$R^j7%_hgGD=)j90*#QNMdxA6N9hu6Q8=80V~=WyCzh$ItE{gv>$fgtdAc^QF`VT#&5M6qf9*MdOghUB20#z3g7H%rwJaQ5)-5;1P|XL z@(4RrT2dUc3&MpviBT?}uM6JeZ z!i7P@4FBLG=glw0 zhyU{%hJn(&)X{fOd_9uMU0 z&*dySI8+4FLvx2wSPX0YGCMy}D4#61%UkjB92O3oWOkpAo5TOr)AxOM4R}S_8=iT6 zLOVtG0$4yf2QEQ-3I0v)>IOi9rD<~cnuTMJ7= z*ngQVK?b9OSt?>xmN7fPKhbCr=7k9v<)*#Cdutl7R(-Xw)T*HY3J*dZwkHV9tJ z03E2mv+(tNW-Gch0x)NVHEbENX|)-%q~ujnIE-HNnJ<+TKM`hvu$Z;O#P~H-9tfFb zg#q+dRQM`B;dsG>h#SBo%vWJ#n}oqA+GV^EVuFQu4@29+&<@fHdHqQIGK#@@s9{1S zJ8f9fhHR#!u!ue~ca)Tt!eWq_nb}T8_^OR5E-z&^ z#L?-E0HdJ|#L6sMup^|buGcarU z%rlq<27nY6#m5kzqEJaNOdT3w8+4` zcntyd#6CJ)Qku_vxv&@;>>IQjk1EUH3&Rj<+(77tV9sEI_AU?!I0YpFJoBur4a>8V z4%iG@58D0To?c~sro9Y zw1lws^IKMRZldTAlbyQHFvdJIGo~ zpo{`J^9jjkUMRCm38N60GPF8|(hbbI{|l~V9J75r^GrEeJ(PigoM_jHmAHX1@w%`W zWLjE?SScaqSp&SKEb+~Q9A{I^4w;vL9VQDlY`-2Z$F{^gQ)Za2!qI_{B6)8xfs$Qu zo{?m)Q!KeSza?a0fR}-!60MNGLpYOye1I;`;J+{&B9u~f)!qC(4S{>w%2O^3WBeN zaAN#vCwZ!&cFAL27x9a+XQNCH4+S(Ma`@)EI+ zq&H?nPKE{v-j__gBy=hLd!xg{u!xLryla{FZw%ioe&t*17`XnTQyi<{QR3ZdQw%}J z1_58*BqnjrqS%`B(U`BPsHbX5=n&z?o4hvDMj*d~nqZ=#^o+~Jtx>3jw49>bpgqFB z_ukvj-1`=jqabFy;snQYxDOMV)ns#!P+vkAGovy|>m8j@CiIi)U!0uhRQ>WKb3Xoc zLNh;Ju}tRzD`DaYuq0>U{y#+nxa^YH0^{-&{^Y*hm5qN?I66(9!rw}{DEoN|Q;^~R z>0`jhfR6zm13m_P4EPwhml*K#6#97z<4Mx|JcZ2j+n#-v`O@YuZ`$_kR_2K(Hsr)n zll(Q7EDoyF=@Jk^D*fsViurj8{XB&U0{f`vDO^DIu7th7e~X-Z`a4&vnu;1*%!0RvVRMW_&+`dd<^&)@G;NP18a`864;iE0p$?gbm^bG=*?0gJN@NkFy+cE zP%T5|lTS=pEo0h|`!iRYD(Am4{5)FN9%4$gP zVIzSs(jj>$@$y1hJQ7W)nk3wpvD%awIC3XcOQgRD0!XsnOwLR5f)v}fZi~9ciHgpz zoU&TRlpHHERLhVLWBHWTGA5%~ma*EDnILl5Mac3nE+2ztAhEb28S&}TqyTWBsRpOX z*%M1=NLs#h($Z7qWmu9ZJ(eB84j}uL60|)2E+Id%BqOmBhs<5(;)$hAL;;^7Kf|KQ zN>7<3VPSe{5ouINCN20UP!cwg^wzXw{4>P`6H6NbLhu2KK@O?mO&j^FBpYE|=WihR zo@vekY|$dwrW103Km89o{$^L+H-6~(5iG8pm;D`l_&+`dd<^&)@G;x9szMN_2NlO)0~y>{ zD-bZ%fF9%&lb_7%@a?QWTXb+>D)^1Ui<`E@Ay4{UothDx)!lHsfeS)Gndg*pDd{yC zx7oNi5BM!ev=B`U^f(*1!d*M zEX(n_tstEu(#s(^ri!e!$a`wxPNX5NtsJy)ff7@#$pM)p-nvfuBMJ;3|)jEVIW6u>2MJD3VF5(u@v^;Xt_tAwX* zFEdJaU_yAw)SJOmK2446^!8SFw&dcckHqdaZatdSWrMb?!pBH@4(wBMhdL8j=(9-8IAs(Gb zzQ4DZX6e1@(!EdN@9pP{PX^C-?tUxxk5S53GKP@AyYN z+eqS_F}$Bk-p?iP=aTnx$@{tF_aBcQh=m%N`#-p?gJ^IY->tT>i&K0Q5~o1PjjB||oi`RD~e z^z+60`QpbC$s^OmxcutFnhMR&C0~PN-^?rz4g`P6 zXw-f#`LPW1sfRH?mpoFz`MKm_!R!S}B=SQX{%NL3r~MAH5{ygsN4II3C=zk?X=2}` z70hpJF8M@MdOu%0k}0MJ?Du$ZB1gvL5&u)zw4X1&zd5<82wpPfizoMg@-N{>@ZXF6 zpOa7I{!gCB3X+ZZx#Yc*gP%)&q@M9}$@{tFXMfTee^~T$$@{tFoBNXoK879?y{oF9 zOa9tz+$EBU;U^@z_jAenx#auzBFQ*eK7KBFKbL$BO(~pAK0kh|^>fK1RWWgqJMNkr&Rg;x|Q9lmK}0!-FO+Mw^M zjqz~>NU((ud0YV+(4t~uc!6}3&LqBoFvs`;|M+QTlVXrZxzZ%Up*FOOitUcg*!ym0@wYZsHteopRxB0JmDx&M;;i`>7@{aJ1# z_ubsT&izZ|F7#g9<8AMQYOZuyHi`F}{p1775rLZK>EWeB-Vlh|bB9m>M&%569t zt*CYC>zvMdJdbs@yf?HP5CL8S0s-er>{zpV*L{ye zkedbvdax0E-3DbCx{6FLT2RwP-Zo{$N(n*UaeUNsR1 zUKUM_m1QHyT9zTOmLvp_^h`i}bbc~U^2n0J%BWs^54%cV8E@UbySVvR2_-aN9v!Rz zh0c+CD7MWToET(zNflU0R(RwKGE^jm<1EYKxq!}dlW~t4YjFZc4VaFxIZ0yX@wB_g2^+tO7V)c!YeZ62u z;5iia?^Yalh7W)>VM#|0UZ9H^c7s^P?^c|k>odtu#<;-6E2I5;94ufg`}2F|ljFOJ~|?0)LRT{b6@*y|>%*|N@>x{1t_0o!B^PSRwgsf6g8gFCB1oX>C-9ruFPdIxJwB5crI=C+{FWS=O)DAi) z>Z7MmI|JwP^1#IK(Qp&2YxK?tf@ZlD=kxML`#VSbFGU7#pbS`T^mHSDa~cohIO7a7 zlm3raLUYF0(2Q z)Z|blu)Jo7K~oA!vc%sLwmN?jw(6~8qyn@I3pa>hkQIf1$XSwXT8b7>z~gls@q`cU%Fk>cx*Q`r)FYMY#*FE!?)? zmkZh#e187l%&(dMMAn~W?aaCl&AuN$-&{hj`%7n?a99#}-VB-+D}sPn%fS9%St1Bf zR!vh9f|6k>PtwM-CvQAM?jF#uWtm8zs&Y2&wH&7+Bb00+7nUGPn$FvrrsrjZe2$H; z&j5MGbVj0V$dafba4E9N4B9G>{_)Qz9!SW|dqq zOr-TT#ek;EINAzI;4>K@pL636PXqasX}E30;Dw+L0@RT*&JYb;1Ofub;u0=^U#bCK z(LOy5 z{4L0`8nm$_Wl=O(Ua=JxS4DcSHD#<&O|T!z2>Bcve=q~&8FP=zJQ4s3GBO=1Ch`dC z61Gp1gVak^BtBqSk`>TbWq^Fnjel}F$gxTk>|Wlf(&9{6(~O`%W-F)|vS9^T6S)dm z5ywa(L$+KIEU*2mA8$c^6_aPpHt%> zo22oC?j~dMcFD8}OGoB$89N-OVrq4w#j!=;g-13{Q|0fQ1TABYXGrlLG&JnPK?Sk| zC^yv8T2< zCwc0k$>E$+n+qqlIcGuRf{A0Fv(RJyirdZPZW5_M zR#xsj{O|wFn|Gr4$%Mv#VC8IcY0pIPkS=9Uv!V|8y)C@Fgr4ECN@|D z`D^qJB(p?;@3!B7EIuy}@?(g9BL_PoH%>u*JvzKET2mFRx|Ej(oKPupWDrWb2CAkz zeu07qjhr*oOy$DF3gC24w5O8@%Lk9*52vy|+H)ta@7s3)$ipz9f_FLwBBv`{ggZq* zvu0@9TBAMvqr)VD0Ri&*;isaleGr?+K|FE_Dt4!?DR$~mVLj}G2)Du({;5i0PG9lJwi;LVLx)Eys#C*-CAYz!6} ziP8RJm=4WnsIrcI{f`=N-*;_(*E|7^m)(Q`a6lcNkN|{K+j6a+J=g(^MZB zI3L*!{qHgN%>!;Y_c@ zA{TFZbc&#=k%PwpVXV3mv+nkJajzSzh*?M9b$H}L7m8-wYlCi0gIm)9#i^&Lja5{E z6x{0TLn~}4(P@NDh1&Gps+gJ|;429<1?w0rZn;H6x*ovGa)E_%?!9CxORz-O76ZlU; zpR_wCCok{k9f$TaR8>XT!qBP6`J<6On6flbpMQ66UG)4}6b6^z^9d4&zIfmerZ3hF zMN$KGZuMxJU?Wo9jR*lWx}kgZpmX~=%uq-f5>ojXlr1n=@#X+d^bJ^Gqa!Dx2d=m$ z?!;FI8i!`QrPkfs2n`!bj`r_{GKXRV1CJcv3lf52o#@uRfk3-WG)WDEPVIHXJ|SJ# z4`8ThIdZ7YxqK0;gkX$V{}HT#%T317LtQXsif?;1dINnC;QwHn;yG<_NYu z&YlZU^f*1$k($Gix(>9Hmm_#+h}2y{KbT%jX&epB(4T_~5i}4S3>+f;4;(@P_uw7y zfJobLq@fP959s3Y9~i>veQN*fJD!%`I5JPG6OK z4Yj)??MI#N7NT0j*12yG>fll4zS5NtPvQJdWkTR##UOeFy>wxK0whI(1VARr z$+0K9*-R!g=R`i69j}b4?#|=Lvzg3#H)rPTcmKb-ySf|Q1W4LeCWS)+-BthN{`bH4 z{`bHC{qG&0fQ%=!I|cl3J0L#`$j8rHM-PJJt)?c(T3fh-J`%`fcbDR#zkd@2lD99~ zQfCY^*jtX1V(Z;OTJV@J3XKXA3^oCkv|PjBDb&#QTZxwA=FoK_EasO+uXJSE&88Bvldg>Y$9Bc1+pidGZSyO$-(UsNKhePzl@VhwMW#i%! zk1yT@BDn7?lRP-)Z96f2YoB>{DsceZ(ghbclD+RXTZi{2PhCWd(^LDc8|^p^20W=_ z?_vq(;@>3L*bsJ}0JNx!=hL_LLVQv8y!T@A7L=VjG?F;hlo*^$92>x-q5d?ExbIFR zr_NwB5+4^SMQu2Nwngv$y@IvB3j?%eZD*T#WzrV3iI%e@6uS11D4A>mx1*Ef<t%p2D%4fn@FG`NKfC~tbBs~+8`|;1ZxfigePVIs_11&1HxNkBC+pPmo#BfHxdwTqsIduwT zhr!^af8SB?Oyb%ewrtb%f;F0kfp@GJ5Y@y=BOT_QRwZ$^4`c-S0MQLxVZE~arIM8)8S zIerrAEqDMElWaL@4fQ3ic0l^3t`2e^FK{Z+?fz!+$7<;&_Be7baS0w;O^L|^sl(U6 z;`mGo_3?hRi~@=FDRfO@h%e~Q-vW6~Ft@x!$1N;jTs(0WgQFhcEr-Wg;^0-Q<)S&& zXI{R62_!CMo~*nkR%lcp08SkOoYuaM1e{#23;;n`$Vmc$Qs6PR=cv^>I(@r8xeGe} zNV1h&RIph7fh}#Az6z;31Wy#MYSK~n&8tj(JeO*LBMiBgTBoi-VZ%JLb+!{Or`CyE zR@Y^K2^waS^mL;6J?r`e_qH%ck0q}h0CXhp;9N2FE-*p9xM`<2%olV;&=yod3yXAr+I+9M{|u0w7(PaC;bI5Rn_V3c zk9hdADEQX+cRg(Qds`&Z5M~S9eHa@as!1C}V~ei8LiY%sdi2lcA(p^! z#rBGg6{}YK{ffIQdROQx)-M0Y<#(31Eq{Ia6U#nac5zvJ*$c}SFa7hShnH$g*OdQ5 z`DA%(`D^7X%YIUJzO13_H_H~H8TZGW$- zoxmrHRx5cSPbgij*loC9&s595istnwp|F9#2e^2Lu}L0p!0%U8-0q2J$`^`OD|tQc z^QEg5yPNiFdDWa3!|3)0eBgD}c4d}uB`)ao2i35=szkLCm(@O3qFRZYVowyUR`QzG z<0Y#Vy(6`01Mq~IDaBjq5%UHKJJ3*ds_CyG`pd3ootlGTddoT(_N zmcF(U0g%LRx~Oqd4jMs22?h|~KPaszTCL<&n&l;`mAJ>UtZ228mq?bDtXA{}N4aMa zZfE4&qX=jS2bf@L-BxGR#>`3u(3yHEM4qA#gcUC?5zePgj=h=NSMiY zFX9?`RV5G-apP8BTv)n9;G#t{l`eX_VPSr01=pV<;A$fvaT3-wMbyJ8{_Dykg{4b` zQ(3T<@IBkR23VjKTBOtd0tbKRf4LMnb!i9PBY0$C&%CnlEpEmi_s7M6ivbq{zcLIo zpZdyEODTTHs-5pY*8Jtdt30K3d=|M9YEmhM-VWN?c5>UoQ}Ngb0`-AtWe5ebNmSQ) zgXj{TKx<7<~ojzTfDcaYM=KtwjFFT!>4V<8|7n)nO z)%Jw9zcJH5Y|=5pbLm+m}o!do&EzTchjnKOmuIbS+FAs=!O zQgXo*4Ft775I_m>O2RsVkRlun;(THQB|AFq-8EFJZ8b*X+O}xTj;ffUHR#ntlzKVQ)}kJM*0raab%*ZkLqVP8?{D*R&$BB zS`{|x3&YkbQ~H^T<9c z=lWc-cgem4*>6KoI3tYpbV}E1YN`+d%7++Gh_)ij2xn&mlz^@wM#&JJ(4LRi)zwr{ zx%&+goRYpSzh3!PNwo0#SFe=mG2P#P_UfhIVufoGi+iY~4)$3~GaDDmlmmmB7YNoFciQI?A zLKGFLtEs8mUe#D%g_dHJ_BDpqD0(MeYPGTLMnm>{bSwI&_uu(0-ZmJq#+o?$`u)|7 z4K)Nsbv#}lTlf6)+qZA8+)>vUZwwigdfnFNw`*~|`nR{eAXjhu=2zeO-4{3g>u*!< z%sGzg@e9wX19zRPQ3 z+Y+s3^@(GtEv#}>HWnvcQvftB`P~A544u>XIN3W~fLWSe#wNiMwuJ-A; z5UFd}Y{Z3loe*mb#q@?~2))%rx8S!{8x~^KsQjexbpuThgam_Dvt8Q}6Cy}HgMo*m zv1)3CUOy>(r?Rs0y8;HsP$R_Z;C~p>Vunx`t>KUK>bm-RBa9xmYVo?YLZo2_0k>6% z)(W5)p&Fixyre2@rV(y2FvX4a!de@hYy=n_Z@@+?YDDaz)B9*#*lrN10X_I{{9Ypv zBWPRe8f)X!CdU&SV07zNpo|6}0dckIhS-<246ktkI(MwD77cU2Bo0_itFa-qAMnYK zHPX}rp&<>dr*qVk$fX27aidar3DY0|kZ6rP278KPb&)uSn4v9yN~y_sbyVMC)N%?S z%1DD7jXzCP#@-spB^0Z#(J(KpA)sEUL!G+%O5v+fq+hPt!MkBp*$~BK5H+qPx*^PI zLd4h(B7vmfM1W_}m_S*KFjW|rA)s}*mvSNt8#PfqTGtp8z+G>~qYa)2YjYEuU`9o6 z>J8df_=tvu4d@6gN9~2{Y5_ixDVG&MuT84N6f_|jdab77ptE(HVGy3+MMKvbK~@wK zxPit-#AM@9hxCYUBLIn}wqf4|GOlZg3;GTnJjKRNM3N>fqUma*raq6pY}7q*8dj!645^K^7X&Y8Ityg=hXiP()GK{H*X&BXJKG zU?3;nb(#~A&kC=jwV;stC}MlYgjcZj1#j8k801{G)4YU?I5BM8cqiV7Wl4CcLDRPg z3L`~&uL+^L?Y7Lwh}R-4XUkh63k|XiBt-;GtbYaVP)(a<>N{C8;0C7b&J5MPIG47ae*@iX^#sPx#*nxg22>M(p<3Oij~1&P?S_s6145mXPCZ%7o=DG z{#v0xUD#UrPE^C{5g}$GeL=^7HrF-mcwRz?H#y+XQ5FyfC!-y3`wZ?Bb2|*(9d12W zmG>G~ttm1PQy!{#ZXbN%CLF|7sAAz8D1K0$;$R&gMtBokxrU;VnAnfl3vbuHUAvLA zAVKo4!-a2zeV}@RNj?5V!UD<_51wx=w5|p5%2$W8tnUWas zAu8(xJ919C5sHm)qZRQ8Ff9Ix#X#wpb-84^M^W(lR58Ct?>dIUo5$&%cr)VIP;`e> zKY}&&QVfl*0|){_6MT?Da%9G6Tk|M5L#Is?-R(Sr1umQa0$R+BLKYNN@#T*~UB{vo zW#Dtn!HrfB4PqYQviq#c*gg3xgMzQ1AKy&#Od%%v#t~cz0VQUb^W4{bHiDHh4o~t& z0Zu3!0nn}{&USI8`)Fz~apVpQl+u-KouHrxpv0TQL`HX8&5<(?+yJM;z&Zqex|JL| ziEu5LdW0%M9EA^?CJ})t17U^+=2A3+T~(011?UZ~6L_er#Ke0P!6Qxbws6{cFgdn6 z+1fL^LJpGgLvrLYnk23h5CwtgHR&8Bk%}Ps~}1V4*=BlF3@8gJ6ZZ&R`^H-P>>|HsCb<4Qi!C%{(;z&8MgE<#GY$t=3g&znn@iv7wqg(51q7m$;@|JrZDTPM(6j8^FEz(*fTWXF8ppKtv`xdZTkle42RV9E4#3_a*NPB=4L?s36F3k_3qAHrb7UIRp&_e`)I$ zWCj^aPDl}h4qX>O(>(4Fy-Bp(qJS+kym^z13RHxIb=N4@Zsk4udwLL2!G7(-% z^xC?0g}=_eMZP7(_+bSot`Sw1vTrlkLjjotAS(clNH?DB8%*x+VAa!oXKN#3TY6|C z!>J2HY-l_TlpwJ$0%9p+I0izl_&z^ zShIEGDh~7$V^b7<>%=$+1w+LY!e9k03W1dpBLmh10=!M24At#FN0GVuZ=?n?)iJ4p z4H27DAqOIKLZpRojsttq8)DD#=4tZwPB4;4*H-v=NK*Gh%|OAu9JS~eZ6MN6PH`_U z&O=#cu#6#agc7uf*4K88e+6~&Xq1RWm(z@DW03{Uvu@r*)SwJH0X$JJgPhu%IGdOl zL900p_?!)3z6gS}m5?g6UIq}LxKtCubWy@9)P|t8qe-%GkBIn3VJB~21b$iDjF`Cw z$YYpMA3p%ebc1_@AMkHx*U99~D+sg&DWXU|di(={2QbAGh;FlWFMpUC9wVq&Y*V~a zvv17qE(&Fuegh6n*GZhZMxg^c4Hb-HtYryswHiPZ; zTWcy|DHSxBsDv==H8pkhTVX3_5q_7;+v*;xlY!G6YV{%JrD^(vscf z7QW+6R9T14BWhOh{VkJpg2WgraT`%6Zy@xb)pvkT1j#bCXSU@A6NAZ{$06XbT$oKq zpwN@>LNNp%ZAQ#6ij{__U_>B9Kr;hB+MT?9-8_AfN=Xoh6f>^n8peQ-k1*b&IX+Np zq8GtJNhBe{r6c z0YN5#4!TW?Ak?0|b=*b*Vj1$hy?gc$ybL0=O3c7OLmE;rpFL6gsJ)k6(6|4jZ>z3%BNZmPN z$IU~GIBdlFDJ&lX0ip!}i&ylu`!r&aLUh?PiMYbBdQgnaQAEX zqb}AB0@+K5=s#!OMH~I(~D7q_R z98+k@alUH4UCR|ExC)sQL{iYW5Si_H4^dVYRIJb@NT zrDGcjY^-K@#3XQL^MeM(U{*uF_tu13ymu*QC;2-Rfr3r%9|ZYQ#L?Ef4946?&gy<_ zaF75j3nPPo$tG^FqwhTKDJihbhQ}VI1DBV4L`ktPoa2&e#)gsG`&JKRN&=<^CeNr8 zr~twP6p?)dIe^fJ>Dk+j)R|OJz(^3VwKdr{p1RtOb&&Pp_?|mb%!c2w3FD*!L~)r` z%q+$rVjI+Z7Ik(Ps3hx{*Pq3#fEepc3Ur|%k{2wnFi|vcd3yxGW^FtlJx1b_6-JEu zODF+*9YqySThI6r>(7qU{@-aA_(*O3=|%Y`zm8{LISf^vY>N-M%fowf2k8|84wO=t zw7Ni+A?rG=J}kN-Lv+yMlI9fZ-ud0OTtnpBCT~z$)}+ka zO|OI*8qR1C)Y?q?06m94B5dba@T~W`lV{rnMX8kS2kcBA7H3h)*ukiV08=)^td>lWX~O4#qS?I$L9c15IehPo5tC8&vwVw1R}XNAxd~|Lu@-a+lH9g z0%);=g0nrRHHZ+fPSDuSa+WRHO7!UiX6rC^*j!zrjWf#<0RkZWbnNFko&)=H(UGAw za>bP7Zc`rwEj5Zv1816PGm5nFEb>15iF3!{r~YO+4yOFtns1K6i*Wm`!?V(`et0^xt+qi%N3$PlTLyPvzVV^*2+P=g9B0tlH z0fR_2BNKKPw;Gt;hiFTHSlUg9YwrYK66esHoezLf1~{;ocjfSAc>IdY~zqO$hn9K2x`J1YsOa4nRUh%fJmPLI~9^7 zTsz3)h39oOCy|iei1BG8WZu1)NgRL_;$|mAQ_ghFMNlO74)fguHl*M#Y95Ojl9uef zgB?zC&q=(^Ykn?LgJ&a1=OO4s;BjORuw_#7QQBTj=0iUhf${J*)%G&|aZ((J=`x!Y zf6hsbKzU@a-C@TxRL=R`sjK)aQBiaphaq$v^ni?Z4SDDBNUAw`0%jBLLkNw4Xd9X3 znXe#J5oc*83DOGpoNGHlBOP4!I*;m7$NDJPe0p;PyBGCV_|(~oztSuCWrrS587W%# zaq}0e?)aWt(Jvs2aJD8NC34!gX4J3`u>|7;G<~F;9eb%#&Q1bAzgNxnA@IRq_mtkC zvLW;D&WirZfDmwKm`MBpp66Q-4k#A~(A2@Qm_U|o0=sXD&42w6e$z4Z?$*?ioY~_F z7S63{C=a{MT=;=q$H4PUfq{S`$$^Jq34~{TP?k$s0`EPq8Ew024rOO&DdY`;pdJFN zIQMe1I3;CMeDC8{Dpuq?m9=nR)&}l^kz>pDe^9(?q|5(>A=CTlh!e2Ea9a3d^Zm}A63RZ8=I>Sn`r-!|CxIP|L{kD z`(J+Yc&&^_>j$m9{g4ctx6^5HvOZW~brNqdn?Y0Eg%nSn-0Hw3HNl$a56(J#phns7 z9B1s*Nl7CDCHnxmx13D&95cHHVIx7}i(|GgiBpo!svy)v8u59!yR?8-xIj)zJC^VV zPuV2RrXX)E=`i7BtL8st>*NL;Utv{59*rMxPUagtGUV@RGH;%x>h~&>OCa!AaI99g zcxbtZ!!>Hl`Q2I1kE32$buQy%s9{GupjNtBnI?P4_LtVbyn!0KM-gZH0j#1U`>KggW<$4*Jcodva<5S*+3e1 z1Ot;9A%6jlJBLK-jB_dj| zr@3tDDFY!pNrkP1@^Hau$g(3slso%N9lmOfoZ^CjmQ*s!bnpXLJIhzwZ2;{6VlEqh zK3t@4B^N4Yt-<(clsI^0(_H`@Z7H~Q1wOxgCFUSzs!$HM33fPpi(FWE+Py480Cmi2 zf^np+45Ph->YcZ6n1IR{AK~0Kt~A54g0~r)N+$K1W5jc@MG%1P~Iq zo+wE??qN8fWXR3x}#4x45qbK~9f9FH77%*>K&A7QRI+<@ZfbuP9} ze#XidiOfQiU0jg8joEs*TMzXyduGpZMyTZDadIi=Tdbs%Ro2`yz}dzex_~1|U^_$A zI2slaO6}P9tZb$Al7tiAo5+KeJ5uYc{CmEX}Prqihw3@r$Bd5Fr*U>Y2rSs2G zq$vcs^&99pCau#;$*u{eYEC@+jBg(PO@`h>$5OYWI&sM*QQfEDdb-)cqcJuk#m~B9)g|UQFdVJl8p%+LoOu-4kEd!t&pPh>?`Ch zwE@9bsOjFvMwo`}gl}&4syxF3j>Ked5yOLhH@6;FgAA5g0vB(j%AibU3f!>7E#InW z7|&K4Qc%=1uj0`{y6*7?6`v;fayJaCMb#WN9^3Teee_l%_FU z597_JqvP}NLql{|d4||3ES{3+4NEGn@^~U4CF1cSHJ&G=iij5I3&?)21V<>*xI_)G z5D);dbjXNvT0=Y<(e(Hqp1}>wcw_8rtWn2pw%Cl}jNIJqzqH)#wEw67>G%Sk|LwpZ z{`sHvvRnmjUiaf&*WA4BZeDjcuRAV1xOv^(yzWS$4oYzIy1RMZv5Uc8+s*6l=5=@T zy1RMZXS37&LJp8d};e@Z8t`;{TPt z_vfE2$FunrKbwbt%x*ws+#eSME(Tl-xEOFT;9|hVfQtba11<(!47eC@G2mk0pEm|7 z9{Ez4)1-jWuvh|VyTF!z@4b5RcQ3uh{RRH(yo&$&&wIQs^ezTm47eC@G2mjr#ejfH(8$ZQ3sICmX-^SIzTZdGgI~zCt;H zkSrHDrUhl*WAhd)nD-SyKv6Ood=>xGKa22TVfqXHvi2O`XZpB&UgfubXL?ax)HomrL!`C*vA-w*^##h(B z@onK>ZTPmZ{;f^l*!UXizPjPHO=~lyX(C8Pub#?>sQU67p)B&@7M^`8sl~BJ21;=tV*&!NEJVy$6}AQ zYS5vCfnp{{5i^X@;bKWR?wN0yOG=vvl z`NoTd@0{%WOa_ZZ|vjE1bB*&LWu(C4##$WoJu?zf#^y95h|K{Hwp?d^heDvVFiodKF zuGn6&v0~MVzh7~8MehoI#oFcnxctuYw&kxce`48(%Pua9FMDCx;-!DS^zc$`>6-F? zD4#5EEq|?iW!X>4&X+Zm{bt$1NB;~Bxj!xjTnxAva53Owz{P-zf&0RMZ_$^Qzct_K z?ObgyFQvNssRJS5+k(j%dmkidK_RSO!XDpG4I}PtdOh{r*ry zRsGuMOIK3?q~FVdlp_IAR|ryF`?b7klBzNwy+O$n0f4BctJIs~Q6&UC3wr%QH7u_x zQOzd>0Hj}G)nt#~@cAT-=FW(Gu0%Cii-1Zr%|=Ni6hL$}F(7$;(i26iiJm|N!}10E zL5>n6X9|%u#~EeoY3DVLoq&5U+*Q zKtuvEeUZ-=t)_WGnxbRgL^d`|V^EjEzMxn0MU>B!s1}rcz@#@s6Hla!3GfEJK{4p_ ze!6J2pvMTSRL!q(l!P>N<@1L9vKsnS>1vp6U%=of35&WK2xt*m_IW>tfLDI3WHmj6=~jXq zNZltz6jhI?x*=5*RKrUG(jNhk#BaLDP@;H(M$k}#0mSeNN-K(1Gdy9c>(c^k0%T7_ z_v$`b3hE)m5^-s zmX@sM1CXIe*q%3Cle8dYGvsTzXVIr1%q7{&F`ecfL{{>YFS}v zuSB9-^0U-leiiDYb z_j-b=R|P+cLD{b_E-bC9iUj#A+lz<_`5Y9(sv0niMKhI_G2cO6TJ|Vm5h6$o_+`mh zm|t4)7z&9Vdz6&H z0-Wm$Yxe9Ya!3)wUR4kK0$83ETB6hb0)Mu8Nvf;$(qEHPz`_MP=9PVKar43+d~knU z4E!=M(0uy)Ut9|9@2yok|72nFZ_QN)WHhe^ODcR@W1H(WeM{TPZ3|DuV;>0Fup65Y zc0(1{DM}?4N-XHliQ+m@WC>dAhD$1-mu*9F6*Kq7S~8(b`+qpOsDH{4khHGBsN4!$ zJVKJjDyti}YPFZXPQPE}&vu{H>k!PeHhwh|GvudD%{*+#95T)fvzA%PnLlKM@TrR7 z59)r8UyeX(__6$H0iWUtheEnP6pV;IU79gN%=|xH)PK7e{95$<`i(Z^9cjo<%nHuD zAjKCl8E#^ZP{km-7n@Ig4~^gKhX8aljUsvJM?%FvM)i>HrbanCET0rrAn{pmBm1ToCDdH z=sb_?vvRJ_C3~0bOOX9G4bC26XegzV+A-cfpHUI6Mr)yGMd5FfPKy`ox!g!9RaN>p z_77)LX7a-A_x|vQ^Y>pN-3GDa>#HkCfW(I0G-|_rJVyPmLJ-^^Mt+6K5ftPkAj=#w z5~xA1qy!W>IOpUDGc}SoTlY+kFjE`3$q`yUUda(;!W>K-emS7P#w@FnDivf!=*vSx zMuq(T>R4T4gKn^d2X%GzEE8tjsKPH3UUlSr-PY%~YjM5$x3|3@S8w~~SKs;F7dQRuZ&UBgosjC8`_7r;?WqHItpi7< zr%rs>G?*C=&sY0l(=mq{)tR`n&+NTs4jttgmCe?6o>V>g-c9S+Fg0y&ps8`WQdo~H zt+ks4O@MzPc`$CTrrR*vqP50mtwAtq;ot>#Lm^&`D>60Owz>wPF2cSUn>WWQg-y}= z7_tBh8zTZnCDb<<5u-t<*3iIa0iK&NA*MCz##;7P*J_2>mS{bz9|JE^Ta>W}Ws!^( z`knxEp#IkAJ7^kRYN5Jq=v`|tSRK8tZVMHTqt{B|<+|FZ<8*Onvk@2KbwaE$6w@1` zA@o)g-Gbj*ZCHp^qwoPGx1~cLfZN zp+<<+!R0fg#SEb?TEidd)phmtMi@Qf!cg5>A=0pefZHlWYXwk@P;F>&UQ!h{(+Ia1 znBvBIVXci$HUbQeH(;X`H6r%V>3uXVY&VG1fFAsZ+b0ksXj|(VYva@=#}gZ1bn8~2 zj0PY9akc4&*q5~ouW@+EYO%UnG|T~$IAAfY#)i~>z$ZV}NK+4lhBUCA&QVXolw9lL zMy2o)ra=H8(HeUU_7uhHB5@8eLtFloQj_uOsJ_LhL%o&!RDb9DOlW z7?&ZS^|%q{M25{$RFBp*#sqNJoAGFaC&Jp?#3q8sdV!LkCZ>u@jM`35#gD+Ni0|qc59ZiAeOink?rMAb^{Id=LS^Ipyo1(mKH) zAc2mx!bT9O@GavGm>rszkP#<_jT`U88)38*UTT2pR8SZx(tAw^)or(BMn=3AVL4mg z5?SC9B9S!_G_^vXW8`-pjsjh@41vO9MCnAnw)D;w+Kdz$jI9uz!ZVGv+cg+W!_NwJ zVUR$ip>C_qEJPQ!d}qCIa;b!<1PBmU)bn;QI{L`6A#g+7n0*brlVre(#wyTDs$j1s zX~`)(1BN5X6|H$z_*OM$hYHf1qcbK;k-A-cfAl5J*Y>zW^s<(~)}L7kScxK~Yk%3^!=otFlWm=@m%URiG|xt$Zh{VfBa*Gm*ZaV?dkh z8g@J{;m8kZ(Q}lApEmVmv;%H=$*2bA&{?zfTvgs{lSSG#n~z%84pdo9`=)QT;|n*= z{IsdJYI=Mx6cDTZZl2;`9Uo2%?zIN4L(xb~>_-+-N>jg)v>-w9uM;x$1j#E-kGCbe z2NBCVb+p^O+k%RMT{1uglT%acUw_?Rc%Kq}abtM9_B-EwMvxrP5zvYLbLigc*l$iY zWd|Xz6EdiRp2d+lTr%CGD0q=;FTY3cI)=iV$F25WKr%hvH9dJW)qe!jnYi3! zb{#Og+i8LilG>OVqiv@f8~SLn(pQdRk1R?h|pN(LpjMK9G zQGgQ)s{`$7;%paZx{sy?6G!gA6pDFDwoU;1M2RHnj>c(xB*Uwfpvm;M@$A2v;XG~S(oFhc`#DVo8qD#+df^aj@nsn+pC|6pR`z2wxD49VNV zY3IS@*zRO&&+H00NX8Gzk;`b3xK6OfhEgq4$urFuq1oC|NZ+Yrr)F0uGpe8M3ZkC4g>*l|g3PuNc z#D#@DNfW(^j)COPwA9Fdnt?wcNQI3-C=uSz+G342Y<0a0^jODEmVTENK2ia>OOQR* zU=x=g9w)pQx;c0pohCZkW>dt5KUk>4jH1&B6X%mY33B602biX$@?}z9z2pb zd>&+!ZNK0}8Ud03qnkFb7ChsuvhS~oeWwQejvQW+Z5i6ZmqA0 zMzEjCTkcb*k7N0!5k5uKF=LDLRxs~gw7PDli(_@4z{*c=%)UwpE zHBa>&r#Fd~TglOunclofMg=ND!n$jeYd7@$siy?%SdVq^2z?Q}g4ul`OG?imk%_hU zymh5Nd8Z|@`#7L_Hd87!@GhnWU*De+lASlq&LhGza-}L*S1y`eZO;mcfgZe+=(Tn0 z3V)q_o4P$=UA@H$fO^?mDf>2qJrs~h0I~w$h;-x0zQN@F4pu$gceZxo+QIbDMut-t zhS<<7_EC`77r`9eouMzYy$y39nODXMeska9#MrfG&C63X@tEvmhcMZRT{q00eW(Q^ zm38APJU9|#Q}}J27zd$XsF*?+te{0DCUz%A2CRu8bKeBYP~HA>Sh`@;N)2SHV^Reh zA~vT&4n*jLNUMDm2u5$y<0HIzn!LRej3m;v6+Rv!sD7v!D7crS79FFFM9WA{aW5}! z_1^*EX0VJQaD)=HJNuGt*Z5aZXR56?HL)w%fgw9!R&6XY`nPW0#Bpf`odBMwmqAYL zO`J_kjG)z=27Jy2Fkb}0@Lj&DP^H$(00I=3YU(z-u7M{|8-hC3wA1Wqw|YiWtzC&D zQ_!iVZ(js{S=)@5xdw>&1XoZWKLE*egL{M@@NZ_<$>hx|skTl?5k>OR;~xmgT|1LI zFW?D8x7oUvKTHje5mf0{YW9uU-389fya5NM>m*KHvqrC*od*GBqT@VTl>Cmjw;>9y zQ^$^H*AC)AF#7VXZ^h8p9j0t#;Y{)RO0zpaW5qA$mb2bkST9-~S z{Bk5e1s+ed98c`-h7x5RY)g$z((H7;3mSBk=pHdgCzE$CU@&+M1e-UHLD5fk-85TA zA&<@OJ)kcdcZTU(zu5I`dDoTUsK zL(b#oz#VL6G6YV{I(`y}APK{FvL)W}CaSDM=Tk#H#rLx}xP8SOzF~FjwfYY5 ziOBS1%MB(5lQ)k;z+t&Cn~p%CC*cKvdaq$Eg1n*CYzj0&G=@bq&7C>Gk9H@oUpG%* zq*4;ZAv9U5ZQlCOcDuO*FDSdk9_z z5rYv7L!en5U0^6SLWckN;Pk zvb_%-#b-h}J4&(+Ux9Vjx_X2kKvA*54u?UblW+X6#sKm5ioz8oI02axL{iYWKAJoV zk41PM`8~2%kd$@U$H|QAxJ71teLX+FBA!5tq|&jC1U6kWJYo_!v-v@TVlba|DAS$myiDUzt}kc%1`lZ!+mt=#A%??D+C-UC2(kUfhFU?XL!Ul)x=dYYCtw6TRM|R?ohcIUw|QLWo$iQk?z76H0L{` z5HjdKRBI&l^w1m4#VZ*lC5Pys#U;%t)V=e&ZMlZX=caN2l$JFq^LEoKVTRmkaxxq@ zlRiMbz|#=6b1Zn)d)>*i?E<{-W&1(@jpU(jSe!*EV+W%e0!-Nuw@y1mwi`|skhoxq zervGZ92rXPxklCUzcU>d>lWX~O4#qS?I$L+1g7uY#jMjd^yuZ>?%Aesw%xPcu{CiN{jt5Ua~y0tIopQPXi4^tVF$qX zoYo*TJ7Tj0gV9Kwp`Q|9RbJ2DQzO=#%4HDYBt$KHK zSrffX`*z|vFbDV`9TFoq&5<5xz`RjVU;$Qxb7;|?IqVZ?P1~0k7~mTQ3?kKh*Tm+Y zSq;qYL$oF6KAdc7&PA^z&Y?HHYv5F2-af$R(23{-ENEwrV8JLLM`=!s&*v-6thVK- z{~YmU^Tov72?$f79_N06A4neEg$*%O=Db19MNFV=!XazMR?wMs#uk7BJzzK(79a^> zB4moVlN_WuiG=h~ALY-EceQ5Jun%F5#tCTpNI5(9Ql*@o1b}|8>V%FB z5xb}K2G#N1S%sQ(z#VNOIs|SOVcQAC%=%mcV<@Yew6ynnT&ySqgcB zAgG7HD$c#!EKW(;6yN)}m5LQPPh~CKm$iYrVC2{&VB*U8&X0j}9_1S(oZG1EKBbhk z0hh-*_Ci5T9XjW%%mz~AT}Iu{aJ|!kgJCDFW6W5>N%i?|9zvdbHa1se6x-Vm?&th# zyJtK6tiaAB!f5~Rvm9SrvquNZ2?Jcb68>3Kz&}X_q#9u}PXu zLEc)@VZzB)&40?)$qhKZ!m4QPJof|6$$W!HhWtHE=FPKI{a$5q2?QPsj@8N*4=opQ zxJGR`zdP&sanviT&SjhoHSCB7)Jk_I(_|0X{?huFH&A2uDB^6NOhrz(xRwA{Fi;tO z!_aKc)-d)9bo$QPFaFxuwjaJvs$(gGQf%$*SDjXQ@#>Wp(LAGQWT19{kOI^id6*r}Dw!Zye0w3NP=(H;nT9R4!pxKsry=gXMt zY}=hIddZT<4R>Dke#~~?tKRYU+f|5PLml8t`eUxSPMIFRK>P1r#>0|z;+Ac^Q#Rx1 zh>oMkQ{?Sh+1z`Zjff7k?>VLn5+2By$6#ZJwd74P&_nj5KH9~TnT;J$(y5UA6<;b1_sTxML2R=H%t`y!+(oTd;<3{4g_1u6=~L;uOsB zTx^~EjFm4EnT001xQxQhgq?~rw;mc96BV;!_8ez~NtEJW4{T?~x z9k`C3(JP&Qj&{@R;sAW#C{6#Zt6X%z!v<%}$&E6din1;=f%;B4xy(-V}fFm*4Tg32S-_5PZ)gXiA;=qj@sWK>& znSv5)#Nvp7PxoRCDJW{1m*T_ey2l$-e4b!PRxkyALzG3ohG=xFe}7EF)zy0h?9rN7 zY=$Aat2{&06c&3*^oAvbAoY79AtmDR`ea1tQxVb=(H>>LSArvyXk4NOs&rg^1c;@B zL7dYX;?anv$N%sQZeYe6V`pQHh=Lc3%@p$CM=O3X*Z5UGUS5Sg-(g|Rn(5nDp{zpg z5QAPimAtzTt~&6p!ETC#(b;BFa@h4D$n-U9%F9!I?YM=2*V7Yw;GDvb_E2=q8tj@g zdbseMz*!4>=QV2}EpR-C0~qLyIL}U`y?-;BGn5(}3K9tIz0>2jsq?FM;A%_!MGirG z&9)Qf@FC7v*1=oW$##HaH+$(0;2;l~o)PQhX-I+TiB`DWm{aGi!~3RhlZwL;Qg{@4HN`;Ai@CvrVn`fOi%6OUW{wjU`*U~GBL3W&Wq@;yd1tr z96W2}H2MAA*$>fgc6239UQS-dX5?sU;xInY{-6G*;|qMU>W`Pc{1=}+O11*Cxh;A5 z4o5FXtT{dooya_XJ8`lJ%R5vmh&{gAPfw8}G7aF`!RNU}-Uk2B2^^$CF-V;{W)2-p zwY4R$kC;PU*0G)NQ$!tr%Q1&hTAdw<*0UH9yH`Fvano#?{NqCq>NrhK9lc}TKC@-cDoZ(pBzyW84#F4@%sL`;vv|LrLE3CAeQ%RL@Xc{wdaKRe#N8^3zbec03m zefpYU?ml7e9!Q-zi0KpFze(4Q_t|Yp54jIR}<%NFdF8f6cDCbn#o;_`>%EG#N5LTnjCDQ4&Zp| z>V&nc9e!nu!qF=oe!>&C=M7Agmyi^7r9lE4|3ZDbI&>G8s_De z#IA#I;zK)Y%5iNQXh`h7gnr1&n-7HzF@pxe!R-UoKRctvwg)nRjx5>fETFT`aj~^x zqvRW`49Ae3Jam=}B}}D7x6ssq7~l_7jSB>@7eSLE$4KrUaP1(_NwxaO^N;%`lE@x9 z3km}NnqxbyOD93|=$hD+xnBXhnC;{h91+sq2fcv*tb-$vI_5q&Rm1HcWP%$3*J)Y7 zuFApCq^aFL1y-g;t{zUDJ7HZLPVBkCXAMH?mm?{oIPSlc| zxAM7)={qUdGPMWJt79B| zuH(Vj#H~(1BNsl@Ay;Fs9)agLrUTOl;R7$2Ul6hP>c!_3^oCkv|PjBL7>U& zaCSa!4#AfcD!@T_zR@cjl-)T*G^mgel{i4|$jQqmN%p?mY#rX8 zJarK*PEYN(ZnWcC1K>#=dlySM7yl-~#)g3V04;PQ6wjw`?S=TF?s@OU8tP+n0rpK!oxx}%J}yW>Y=*#VoU-=s6|DVT7@#d{JKM}FleVCRrw$2) zu0145m`fBoNnReEo&v#>xd!B7T^(opsl7m{EkC&nReKw*`Voa?IJWgNKp2&6^bTCd zHi>*uK#eD^GoLClc4F1V&JUI;BC~zitv4|VK$5{486uzI{#IN!p`9bU>y@E)>-=HP zVI-ZfINZ9yn1x(It53`c3ME^GLRvvykUgpGgf(#;91Ot^aSJ3- zv7NWTI#7MV1DF_`&(Kl()ecDC)YZWcoBHvO&W^G4?r+A5Wwvw^dmK5JxO9nHm^_d= zd<`s)&!lW0??=mYCeV&cS4<4?1>N}@X6oD16HN#jkm$IDC5($F&SHq@2zblk(v>)P z)oQtDPW3@!#{?3WUOh>U{H!Lq%#()S1hxd6*1nF!V25>uT=KDylLP{#v`krhj#{m7 z+wV{A!tKA2WNR-9V6prITiP&v6*p>z=xQIktw`73Z(e2UBRMaduJ4dCeyxP<%vE zuzAI{RTUlKLVNBv`WK?nQ3#=URaJ8)s$1_5PuyR;=m|n^`_beT$eLZW&N1rad&gPf zlyBto0!Pm#jABp8;DcU-@hJ7|6Tc!vi_y1nTos5TnxAv za53Owz{P-z0T%=RGBL1o!J|u7u39y}>6b5WA}@)-hqEowfy?D2X3gQ4}iA1kz0{c`Z?DO^`+ zt5?;=a%m|;EKfgOvL1+k(}sVuNqFrW`2W@`uM`$W4B{;~1HV_XX!xBB8x?QNPD^#K z#whavD^my#OK9~FliO3=Q8vJ}0)~*6>i)Tfi&y^k6U9h?PhgeA|1N6z()=YWpL%Nk z?oY6Z&rVLv@o_;82{>MS?CF4Sq^q(Zr-`C)j!H~lwtA5{Oef4J^4ck(pUE%^A_-R; z`j+}S?Crq{IbWmUyh&9TEMB?ssbZ6wZ75bHIlerCmGx13b!B_{v|ZrxpDxtKcKp!> z+Uzf__;*xfW5qvJ{I`n#Qt@{ciHZ*^{<`9?D*m$Kf9J347XEqtsb5+~d4S5E`^+)~ z58?THDHAQvCrYV0i{{)^eIYp_`NN*DjJ%;f#b;0oTx7abe15;*>-Pr&VyFR8&#TwP z>(;SEN)(!RCp;FY%SS)Is^u5bCqk98ly`OtqTUD33&hXSV1~bc>*fbv6eT2#jUZR8 zp&)6hS4VQ`P$Zyxq%cx@Mvwtj3VCO8D{8GQD@U$P!dC}e*0KpsOQb9f1^qIzqau%~ zsv!xiqRU7Oi*%^4T!u9@q)W)cmyf0&E!Z$;_oeyIScsT4LXJFiq&RSyd~o3TfbghS z5Eyj?hGMetvoi|#LeRl8^Jg;8?l*h7a3YTa(-V6W6L3+$?c*jKJ71i&W@VBlc-1sS3B8VCHRx{?nz$hKw%zfIa9{$K~TKo<>l6)Q{;+-V~WF9aGZlP z3Y4WIYj&z>drRS%X9(U-EV?N>Rbb#;vdJSPmf>x{SPO(oB-% z$t7vdXj%LayUOQ`AKtpZbCN3{C$sw^KOT8N>ESaBNfY7ID0%%z52_+FdQjE;NEVMw z?qNv`1toDN>9H%kIE|xrOh-Chuh&x|&9EV=x<44yC<(ZV4&kloRUk}6#n5zJR&+y_ z^KtZ}`TsOm>G8pT2FsAN=;<;?4gpbcFnQ^nci3q#T>O~d2xmxgaA`rj^TS|cIq4}F|? z-iIs19>3&QkdDx6ctll{LRu&kGD7-8;rT@lo_7*i(d^VnjTrJPNRJqag#4aBz>k#d znjv{qzv#!2mZXFuff;#zVVa(a=O0>E`Skp8;Q65HLmpUPfHKdAJ>GCQ;0efJOK-&I z_i4d^q)Wz3Jm2=UN76XzdLxS?mZG~@LT^JOu6V&VvK zIh+wDrkJ;>Q$V1NJQ=ZO4O9m>BtRj7uNbL=E#rtw0B7k-pkNZaPq7xYERAm3>(PV8ay& zK9XJ6Y)o*O)Om|S&jR#|hphwckWaY#Kxn&#xMlm&-mbV0mOOcqdm8t3!Uu;rA0r+U zLQPvu@J%MSkMRrK1sS3?d9su4dvqRzIs->!20A=>+PTLy$DcWV#_ZmiY-&MN3>pt} zR_4y(@OGuCV*Vd&s<>)J7e1H}h9@|m333R5ljp=9>&Q`ZiDMoG^aQox2Y(r{Rv=x6 z50Pv0$40CMBOW6hR6Twu)TC75UP(YxBDy!?RlU+f5vvPk5UY%jB@Zh{+zJOn!e;mI) zw-UcT^-27ysKBqKbnIWg6u-y>kntDz_whgd>AXYVoWB6i=2sl2S6{CTymYo{ zuPjM=L=Sru5RfOVVSNaP6%e56*LANP@oKv7Io^2L%#D}G=?nS|hjp*l;};Fp12-N& zGRCXA2X+P38wg59AP`(r67mOZ{MizamrQf4sG90k0zr=vQ38NG81w*I16l87F`|Wh zN=Or*DFOKdH~#d!Ajh7|3w$y`5iw+cI2a6QNCfIvkdRsmhVj~`z)pZM1SHk)AY*k< z(PUBc`^4Y47vvAp_?H}wbGwrw`gv+;MfLRymPNaL#u8kba+o8y9z#8_cGK0ihaw7_A| z@cAT7F?898sInABrnMjxd=WxFEQb&V7`&>f5km=ukS9e`o-9C%vvFCA_@RVrs4a?6 z%tHYv;$nczfqoyh4YG#2dy*0MU>68QU4rq-2>CQ`D5wS1pid|X`2#lo>m?uu5kxST zzJMPzOw@t}EF1>&84^&VM6{sj!<48#+&`3Pi=k_(M^`XB6{@Z53w@yk0AX3R|iiV9qNESWVgwy!^A;}l`wR=GRK#i}O zp>dg$BB(H=VYdKRN=7YU*q|JdYj62GL7%?Xz>4NVpOFb~T< zull(e(2{LDDEmO?-Vg}_kfJ076mQTQ6oWpm4Aevnuq2WRX&%XE_&nGu@_ntYfZ_s(znW z3WdYoa45L41mq9g_-F40Ik?1!)r&0_VNq8D0WBiaY(;#Us)ZvSJ)%P2gc?a!{)h+6 zrYMF_*JQ=`%)KCgkj6h<*tj=nlcLvy{iz7ZB}R&DNeD|C7K{M27BMVIQV?Y{ghq#v zG2jt(J>tQt;fu%`B%CaLst_$Xjq4%E76pQplx-bnBZ>+<=#VZ_AfkF9hkX$VXz_+{ ztz6WhdqWQohWwJDMSP#U2jmab_$Ov)JbiX!z+pUjF71c1krr z&kzquq58m+gz8AxA27Vo-;|ItnDTI;K#V}@LU|*aayR*#)vZpSZ8O{f4b75hd4{T_B zq;Tx_WAwo0`D=yz1kPrM+q7wWz_pq>pdEVJUtsv}#y7p}zwjT+@$9pYZkksyQt|DI zMgJ`90`ulAIf*monYZq$tU;%V_^@2iLZahLPM5vGh!2{8YZnMJ4i{ktRH6Bby6jgC z*Di41MhDj}Fr(4IwF}H>ba3qgu3f;j3p}7Aynw*5WbGFY(Ut$8bch+poH zivbq{E(Tl-xEOFT;9|hVfQtba11<(!47eDW3kK>v&d6>L-5@+u5CPxXOk}q&6dFVy z+`?TDP2f-NFPgwFCV|BVUkv-g67EjJEU(Hi=lgMmS;MU;kKsq?qzHmr`GYftc*C^j zi;+TAMcTm;57$1xcLYi$Z$Wp7;rJ*V!*|Kivbq{E(RVZ2HboEZaxA# zNdLpj^Wf$qU?_F-5flqu@8%;Yk~89e_Iw1Cn;;Wk;KZ3H$G-Ph-~BY*BlyyzRr8R0 zV7Ov?#m0(NEB=1P-4(qn^c8ED|KsvI%iET}zWj-0A1=GNEWYf8Ws8^o`O?EnwWVvy z|Dk-cytVwb@|9&jDLY@*Q1+W;3m^TnM-QSY_s7M6ivbq{E(Tl-xET1CjRD^x#0Z|j zqn#b#NC;|WAfPO+C?JR?!aO3_wTRGn!7r7pR`h1W7mHRyFg;m9_^=3qSh5gWIwIB? z5j_}@4DVCLs+GQtu)0LG5;26IELyFklfO{98bXfE7$xV|Gu84#*LpolC~P369|H9P zB@(WT`2DJiXrK{I`9jfZCBx}{zI3%>v21@WubMNEEJcgN*mM@97NO4&y%RTC{6RG= zuPRZkL~z^Bm8e!Cvg{K@tCbAv`gqA|MPsV2EU1))Iw??A|dvm zFY?)<)k+3g{Y;5!B_f=Dx@fhM@z6e1x>~W=o}bLGmIsFn_M83B;QZ@S3BxgwR85j2!wKvaA|X+_a$B|~p6 zFHx;T+{{F(>X~KtlpCpI5V|E8qsUDVzv=rQOYHct|_99n|OLyR~{)Wt%Zo-LmY!5Qo!j3;#T8^pBh-Omhe5>7z9vH z6jD*r_XvL8^SSs}QsHfMk6_U}|GcvAEpA@evtS24&gQ3i=r_K!l+psM+W9AMH-EW^ z=SInZd-UN9{WI`K9Gb65&k!c>N-_irzn*^L>dmr&xztXQ9Kn5 zfAB>|!$mv4Y^NQqV#z~eE$7lcA_pEk?O!In%Y)>c@F4|GV zl1h}MA*zAC_kW!K{O6qi{O3RaIbI}Ov-mORPDCn}5MS5i^LV^Y5AyIiyyA9Ae138N zf81|!ov}T^nUiGBkf!81%hAYE@J|2ev|NQLG5IT{P{j;?QC$-}74XS5SAx}Yl@ypD z+uJ1x6!zP7mw)`(GzERE?qBafK|AVz+C&#r`1VFYW(0xXo`QDld`AlED^gI+@la&G zMh;a6t3q;lI)Ce)CdQKyYpM88=!BTL_Iaw4|=nIpD&3)8rFLNVov)i6e z76m)cA&YuluoTHc+LkOZ;a{kWO3!K&9{bLA6JB^S^$9Pq729>fMO&E#QRyxD6JEIU zoC(jYB)vsBuPmuwDupV^p@AuR+&s@(JecWHUVMekpu%t14ZOF z@gebq3+Zc+7Ze*Pi(v`tKFive4ojy3m1oLBvQ*=(m>_~}nEX+#Tyy4^Ry|Q0Pu)hT z*m|#Ttqv)%A+>)FdDtl1WLE<+nJIOH>f$*h?wkw(IkR;~ZA_oi@Bt|!5a3d_E7Z9+pm zIcU%)=Eu*5g0(eX`Prkwvz5VM^|MEWXG3AR8sA0ySuNGbRpAi6{rD&NS{cH~!!igx z4Dw)gK=`!PbhW~ZDz{}F3>lfXB^JjSUJO4x%*E{2>JC!oO z_(I7;eQP9EH1q~*|M9a-y`b5-0|kQ! zz#puv44y8ptu9APA)0EUfU4TcO1zY+LZ{`L%=f@a^iS`<{{y_m4z0G55zP00{A_Ja zB|%XU4p)bczVy=R)2GYM1Z%^!9=XgLJo(aTDeSHI;;AoKDo%a-t8f3_myi9M-=*G} zFB{cUI;N0%H+61PJvV^ttH_&2p)wE-SIWZaia=NvP6evu<5GiFpx1Qmt1$!rpqN zDj{?tP|fNSgHc;pl&CC8SZ{>@bfEspz}sjVT}qzdDfA8oWOcm3;0Y=mMz3YUSAtc~ zhXsGI=C~Xd!a*Ta>j`;l0v_~M890GYsmdpWDp2_|!fP^`AP5Ntsq(aRCM5U+crOXQ zK&XORq1T@gzF$^W_5%TfW2g~A!IQG!kwUT%3{>(*-ily#wd_NWC#7)kh~Td|L%^LB z0#yPiMyP-Y;3e(CaT?(X8B<(aEgaF%$wq*|@dh-sqK01^I=v5sh0`*T8qkCPXyt1L5b1%Gg`k2e_-r(#7!))C)n>309X0Uky}2Z8^icVN_WYz+@0L9wE9R%t?Y@ zJ`Ey)q~Jt=XMvCa+3dqqVO+9+*0D5jBJ;_W0dF8!8xp`>Z-xUkCO>QQ7@J^5MQ?g* zq?4XXbo44Z0?Sc*zF-x=Co<)-0_fF9m6(DiM5osZDh@h3${9v16TU2arCN{`EqFCF zHX_jAK!XlckkSnWm=u6{QA`)+~GQ+t9 z2;e3l??wP{PI(Pf8Wdy#66iQ0ybdB2z6Xgdd<`EE3^dmmJy|NjEUycv1C^DWD={J7 zKs7jv1PY2&5U-_C#(~`Xgp>(y)X20_3l^aUt!7YqL^%8h0<HQTXT5N8DTAm42oP7)^Jy?T`pB>$a6{af zc@4aiWWb8XD$q-+psglp$tfHL!;$0)RK6g5uL83}1!>MnUm{s5h!*qD=3e1^t&Q75 zFRKV#z9M`pBVf7M)rDSd7^KG~5|u{7Smi=NY;0KbU#-*@9ePRQ)?~I2#2{;g5NNZE zgT=%UG4>G%yAz;IZCt3xMd$t(1g1@Tp}AniHJ7>FZnJ17B|$n}o>_`XuYhuyr!Jf< zdpjUu_3#rjk-p%?fQ|=i&b%Z-yN2eRr7Zk)q)XQhxH&~v4UpeniB6U0yjEszE6dB= zuu`r@I<{6~_`)qNe;w&A-&$^k0;0w?a})=4bTTpAst(j|RGytUkv>>N(c%_G~qve|%&f>zQ+1(WORFTe4Iw(veDe0XDctLpndI4p<; z=m_XU-xRu6n|qbDNM;b0qk@hq=vf?@+di5-tHc@wSD7eS-J(_4T3rPOlbcO^h}NS* z;@tIQ+gZJl_t#>{+fnu1UQ7*t1%2)PwdOsSOQw4?3pR({oZF-AC_~}WD5Yqx8{ArM z-&z|?^$lP;6EhK|{hZPnqY3UOwNW3VW_+8UAf1sDMQ1G8HK|17O7E2qp+$WZ7Qt$_ zI&w#0KPr4M+Bd1gr=w2*@<24H$?5mk>h@Gd>&aQ>794r~IJTQ-Op(&FtaM(cX~_p6 z`!$~pcbNr;sJWv6C*)TL+U<#}?VRb}Ums2kY{0&Wc}hm(z&=sp(j<}5W>lHJa@P%T zI&>Wsl-ZT!{CINnBBp+8xjAv^{CknL_m?|$2z46RPf;DacEMuHL$CX&kcuuR`i2wn zca!V0I>~FoslGos-1c=q*iZ0VrL z=Z+5YhzkpClH%Qo=AmSLT59Az)!}yuVt!)~N`&{TnpoovtL+zo9(82A@Vkug5%b7h zgzQm=BV2x%jPL?2%J3*UO*A*{rHBTC#x$1 ze(a}mmiyG@Q7qpy!sm!Owr!E#3d-gUwS6gF9IJaAD?hzadfJpLG5iBla>+*uNmrXP z*Qu=4L+ov>H!3Y-N)(c>5$8V1mU(q-2_jxyisQN7=~jFq5${wWQw)oj&U8xW1vS>S zwHyIwCO3wX8<&;NS;%oJ+&QeQb^djvo}k%^ucw+i1q*|$sZp6|QqSK`oxdf3rm>o* zdPeC@qG2UD*Rb82H_50#MMzk;&vEUBzCZVzppJB@{R8wxun9`%^$aN;PDPs4)@$l) zUvi@%(KrgIUeHUWhAv`S@bzcwLbC0)(l#I*wv^cgb@qnR-t>Zy80x}HkzT7Sv;1}D zZE7{HF08NupkDS?%)HgHhXNK7fUE#GBHehhXE@p0%&MpR&eTpU_NRw7J(;>b!G@-? zKLwF}5tO+`oxYS<6XrlvW|s+mrQ0kTs71$UBhfIORouplt9=_FTpi08 z0!Ju83maY2BL52NOf_|<;%Af17_tFoyM{$Z|LW2b&Omi^0(hcc2067CznX|oqt&bi z9L5GPUj)JAW@7b{I=V@fqB8&j6qky0D(#El3Dkz5PDSdKu9(_2or<<62G*fdZLQt_ zep%a$n7Ias`2<%`AMb!9}{JN%o{KAv2fO*OSaidaPlJ$^?>o~=*TU&j-OZYA2v zAEqYf399rfd*+SO*$&Rs-+%+tbrP2r)wx?rTR)&oG+#rDqSNqp6{6r4b!>RH*pCP9 z%mW|}BTL?zqRNI&Q$1t!M6^2?6Yw6{kYQv6f|Af9HZMSPR{Dq4o0k}VIg+0Pk0%;N z6OElvqSXGT)chLFPTNJ$prJ(Pv@*Ar+`Nv#;587eER8_XPqr^9(K*OtrLzU}MFWqv zBte1l4f5QorY)rLhB zQJPj^yhn4oo~PWnMj~l5ni`L*9aojuZS3h1bvMxW`)fm33la@iA*~=~Q4HNHGlQfT zM;8Giic#Ihb|un7aw{!cl#M9=8jUcY zH4^_oe|?X74qK)n!9oHZbekR|YHzKKYDidXOASY8WGyWOFN27|2!Fic-gD{3r zK$+-NCaxu$u4A!<058xrtT)(6q!xy;V4!{8HPm&!Qe}Fd7{uR%a(0xYUYLb-R$Un2 z2T)XOxY=OPXyY3{tT8~mwxV!F37$PloJa~9*ZXUO@J@w0k<(r-4NZrd__dlblovQ~==tipV@duc?Nq^z1bz=HpaQz(@pjIhyQQPA$Z+4zfNB-?K-G z*>D;*VVqQeC@#}>GK(>Y_Gm$)vfAXk%E&rqb7p2=Nc4?j1YlS6N%DfZl@Ub)m#fo> z=9q@(!4VRltnde;lQ&TUCa1*eRo!~Vk61q#y#RHc?1%TPS=#>_?E>fCoch;)_P>4N z|HiX#(5WtUX~e0k%qF-DC?#-cb%88PMxwO(L~n1!`}w>vSeu8ilEDyzoxai*-R2S3 zR1*ti)PQVCHnb%NHmKaTFTjwrGDgp-q`NQ%&HBzLgbcd()EY@W-SbAX@k&NX(I7f# zaY=Iub#MHxS*{`Sxv5+LrDaUYyxsIlsFOQQj?Qu0=>yaY+y`Mh$AYK6+nKx?6L2ZR zqCH?|`mi{gMcqo{iM_ZHP4`*0Z%dp~NDzgt46*2p_90@R(@0fyJC#1hzIdG3&Gq9h}MTo^2ZU z+CAGHtMNhf$M(X;aj@;=UK>iICD}cX9RS~Rs>9Iij4iUA9FR#d#8`Ppd=O<8V@c zdmIN-el^WEOX1y*woCA(6<%nN(B3uGySZJBcQftVh-cS6;DdBXOfMO6Pgn5_DcjM&KG`1Yb1oqc^^5;8dZk zp5t?9M05fcv?~KxF!IPz+!y2X`ARdZW;yDcBEGDUtQk!~XVw`_01kD5;b2&RB!r2ODdJi9+?Pm5Z^ZaC66I~)NJU2Z2$hj0 zr46DftNHy1ie&2~-#uVM3htuj*-lAm-M|hf*)pDwsQpL{Uv1ci1rvl{0=f>MG7MR5Tlo z!w|U*dVsE7V`FYIiFRde3}zGVLkNw4XnQ!q6W1&x6`g{`Y1jeqQGPJm9@W*b z_h633326FAIWzV`rHq}pfPS0Z2ptv&R)IoLkdS?sc2l@B_Psf#;Y4T`sF=aor0` zAROV5WVMhbaQAuDwe9kKl---9kT(c|x(BRc+{^9Zl$1^J?#HcEY=`qy*1{cG8@LNb zmH`4LuB`9;7&z-uu0g`Mjmqp(3RxR)Bdoa<3To>7l(8}!$PVvxbzkRtqXP%SPFly< zwuF)DbKN|I9QSN&uE;3X+6V6E{HwWV8~m)m&LqP6hEuS;o^8ZeZdu^cnBd86l=lBd zyTBL!=1AYnFUr4!XWzW*4%zSwXY2$(K_dbzK1A*ftq``!fshazgt&^|f_zJ6{T0iv;=VZRYBSU^m zL|M8@)pskCO(5`CFsxRZcxbqR!!>Hl_}y5~iKAYN-MEaCp@tptfLiGyWSZygi#(PK`~wF2TpW;A8hnIRRrg8tOl2z8De-I*0wXZPfKTpig+Z`fmWGB9@w zN1TGC6c!CNz9#jT?tV>WpzJ@3jU&1G(328sR5x*r=84!8XU~ zw2;21YYzlH4u6?)T&Mz-bLgfz&30!o+sKl~4R<#CotW+ZUB#KV-YOR@Y$LywW;`saV=J2R&Uze2M|2!To+58mS(MgQHX=IE-gQhm67I^F$6#ZJwd74P z)J68B9@@o|nT;J$(y0%_QEtQit7g>c#~_Py5-@!?FW)5WXg`l_WQZNCs)Z(Jj@UeP{*t$?B*G_GR$=os_R#{O%>xKoNLCFI#^clR=25eQ;K$0 zs7>&GY!L(|GlGFwHSwArB6@{dnV4$D`1m<<*7%s62Wta%*#>Oy$54^rjyY_alQY+N z_sPpEu!eB_Ff&WGeT2E<k8iajxVmNP;b zACHksIp1O>B|mMYWr(wlGI1TJl)$!5)#RGMd>ZJ$vaqDtetr7J5dnbR;_0NwbRs@Qyi}{*?tTI^bc0Gv?&@B#0k} z7HI-(W2Sv#aR%!kFAV6(DQ#|^j>;K+VEe->+-=N2#)*rY13_!~B*wX%9KNzA-pI{> z742-TMA15VMXU{i@4;{Ib)*S`iU3#3{3CLUNkn`cJFdwb741jO%sjmP5jm#`>@V2) zT?6x!*W@TVhFnSv^{ekTX$mPy@4Z6yQtJ{N`I_z>Y=mjp9LXHM{n@K>3=cRGv)Fbp zJZN`wdGsW@9*7$`Vwu}QW(wS}#4X?QfRFCQ%A(sWNj9rV@_4-_o7?Izxjhyurobti zEoP^L5OdG|WM0D6Rl1QSRhFMPy?qoODZ&CSOwe8BZ9<{2xN2sbPqgDIkIC<``b{>6 z#c%Q;hO5be@M}(+2uCQhe3Ker5gPzv;Rp{?2vrd9OWyELuiyq|xHfb(REyAdq0n}5 z9DZ@|o&AP2`->;avFE!Wl$LI-Ex(zoL%E0FKt|%?-do9x`3i>iA_y zfvtEHE;q{hHT6Qr)+$c=V(^E+W@Kx1BDsOZi`FlA0KxmEv=j;gJP_dk0MiFNeYVy+ zxEEt-DaOQIClm3ra9%`zB_;4h;^3*%m&xyMqZguIX>L!9&m?EC85vB)FW?WQt|>XQ z!BNPOM>n)4nv~Ji#CQZtIMgPHHd@hX|4;v?;|{+3@E1CI-Cz4dJiBjZd25{YxvO#i zwYGZ9J=~zl!4~QOj;9vl>e(3l${2;CS33NJCvL+cTb8b3%Lhv@ilZ$2QL!|Xl$2u2 z4sKvqvbaNTavc6@gQcbH78LI6z&GoLPLHo_Eq7=_75+T8(8dsV^aTYGl{Tzz!Qiqv zWGq7i>{`YaCDGA@F>=hRon2cSL$Eg!1+>4LxV(hwM9>@{P6KLNlX`BBL-XEr7i{VR z|3$`&i^Lf)*r``>s@rCTVn^^_goj)+hE@8(=(!%vjz%J5Z7gvWKI83FlX+pPt+=W} zSFs>LaB&()pmlHc9HuWdjjIDOzG^VqCT!r06RIyirG!JCva$#@fXa{q6`d~Ap%l#l z&YojnzOBuXWbaLw3N-FO)S8tAk=Fv5=DRaL9b}`$@SsW44-Uq#a|J43zNFAjEPStSx z2bthTz%5!TXI#)^ zY8RYW=Q;RX$AhtnTb+PLE_|p%uEs75z;hhaf$4+r0h!Z1yt7xx=*sRDU~MA|$46*o zzAy{GA=qd+-n_`g7r#TPAww}LOfc94RMN1B z!Gl1Px8UqNs!YI_6e>VJJm2UQ4$3yp6OAs7lORUZ4Gky&xlOl6=5cjE8!%>nYkiSl z%>nvEGe2oVS87ua6qv;1MJ#n}TwLPqAcA|YGRcFDM$_2VN{6z!o;XMD$jO;;lD!w} z)C;}IOE=Ks)_SjcJBDiwfG0I_5z9Ll{|dpzhJgD34Rj+E&$m`uA-<@4-uq7S7L=Vj zKb;tfB!<`E(Tqt$eQYkkzRC3~7>&rs1u2Nl5O|GKR&T4I_O@eynyhVWQfAjQK?_eE z5(@1tBubb|6go-H%x$fM;K^JAa#0tS*?y`ODAnXAccF?k;i?}|n9i}$8GtZn(a<|| z3)>{}MFBOA-C{mfWbDMMi=7`VQ$%JR*sVvH1R%+vPEU}}a93JE+B$(o%p#(+f}b$RzNN6$7H0SZTT$p7hoPu2=SqLOwur16Nq@G>F$o zED&b;p>;H&VHk$-hqgy#PDeD|TzJu11^@J$eIQLpE65A7CpC?!@mt_v2!4oLAc>0A zuYh%+`ho{AF*u*0qxOYnNZ-`L@OzOy{G+pDEWN#TSh19bPGXONsl?5j)WX`i)P+T` zIQ}MOd$bQN)0sdFm#&x?;tRU*6K3kwt#|}M0}{sTEzb|clEim_iQ07M9)(_}N-gRBY4GypkyB?u|4~Yg{kt`DZ0~pHI zMk^OV-1C)BZRiYjOg!v(TdG0wyk!v zAqHsIoksuq`9G6%@;PDWx^ko2{j^}nL8N6U_~S$zJ-gH4Hrt)Z`C-P52e%&B?w5B^ zITyM+X(MOEyT%)|VGOwLWp*Hu19Fo%M2Ewc9dD3=Fy39fK?nMd zeaGep|eI_Ro zF`50M+3s>V%Xs4lc4~abq%0oUC5wKS&jeRougPVxI!&U-;WarO9;YPPJtDF!nRbEv zt{OkGbK`~6NZ2f*==FPjCace8G5I8~Wb*l}KAf-tTQ-Z|CV3q%?u?eg!TK#8tIy{} z#x$o{wwn;~+KFUBb}!N>S?o5KTa;ZccWFV$3uFS=OXDvTfV^P-0;^rJ+pI3+nDbj* zfZXji0a_Uekw7ex$6@tI=EDUbzw5@I-wpDevN1ZX$TT6keaL-=v`v0H#^4f>#}BC} z+*U-rN6>roZ|(;9-8B9=L*uy#Aq!@9^ja-`r|iTzuS-V0L#NYa@>s1%y5;fNEnZwW zwOZYuHK1kN#&^p9=yb~#i`(rm*|2#s$!0&;)av$|Tu8&_6eZE+b2*>e4f4Bb{Mo$5 zjVUM#oL?5E9x{*l4j5L})iwB_qz^jtoFIznx#8H#1pUFduvGD>KCn2ERHj9Mw zdr|h8B(GOAA^oKnIqMwAYv`8TcDF+)2>D$${^pAf1@ay9ZpscxwD{d1KsR#4NLI-O61SL5vgEZuUOGLZ z!}aUCKz>(^KeJ8a>C~SEb9j3EltCAH@XQ{k+vF6jW)mz0PC#xqI~_0`IBfP$ZiALg z;{`H(A{B?zFM}l!P*5_74%uPy`CV3!y-oJo!J#gT{B%Lc@3Qfypt`({|8;+X>fdRx zFHe8)0_7=u@Ua{B9sK#h@8VbSr-*?f28tLcVxWkDA_j^WC}N<9fg%Pz8W@N^U&az! zKKiL=n(x~ouk(({x%XlsOlQ~95?prw;sN`<9mMZ{ihEVScZvL);i$1WuGY=Mbx2u9 z{?0aX#9&^fcts(9HygMQH{4d>)kcm<@blCihv1D=S_+Rx?ifaHp=;99Da8RTE&W|N$R?#}Vd3FDBy?wa(@upFdTstnz!m(0!NP%Y? zLCGS^b7w8M5yCGEE*ZKHix$u_?S7t|y+VFN@zz9~2G1|HD_sbDJo?e`-msV)v=?gFZj*cGko9f&nNCH``&LqQSvwUJ#wJ$zJpI6`oqVCC;n^6z=6KU zQri_TJ}Y9Nh=C#oiWn$jpooDY2L5GYp#FhJA9?bbXYOzKepo_6(h%t7eX`_0$C{oPkH<&eg- zrixNjW);i4XSs}bddV|pBmX?EV+&sa@W)>N#;d|tUj6FJ-~IYA;g#=x=R1I@oF2Y; z?B#E~!GL?=jYl4S^2HbL|6PuPA0gSKjI89i!A-e}v%gxhQIh@gFoAspHD7rAsr&w( zq4ftJDYTaV!{F6);Nd4Bdz84Z;q?a} zdGhI}?{7TGkaoHT^AO^nAIm~Je`X*=PL2XnhHgt@8QMt~^j65;6V(7HTwWE*rX`(N zo`1ezy<9rZFO2lYC-TTWzgWQcw$4UrrpPa)Wu4E4HNRN+3^L#n*NCzwr}n;xnCw41Ye5MFNHwA9*_9j`!smkkdqwKMw__FH?PoIXo$cCFG}- zc6fa!Q=BuY_6Ht*^7ZF-n$!${p>omiH+i&m52G7IxOtJ=9+@7B@*zFF1vb9UVw_NxhURwM)y54~w4oi{EJu-AnuRl=Fc2H9xVewB z96DHOSVlB#+`;FEEcin|dBNX2NCDy@;BTdINokDZEssEod(?DxGu%ueB(BgcT7($E z-E~~BMFJvRH%qs!qXB?wzWF(McoT8J)yjSKLI%+bE6Vd63paUt`~3MD)Q=r=B? z=VClC5TR`a*>XD4F;) zSbQVIAL27X*N_ofB;KM93{oHlc8i*xpf;i}%^<=*E(=edr+_+pBK3cO%feoqG|4`< z-Q@JZ0oQGn5zWjcS^Zv{-)6Uo_u{xI?+$GPZj2)SRZY0OeAoM@7TgWBxh-y+Lv$la zmCK1wUF7`IUhw{{*=$8^vjxtXP75kp9Zm-V@>_CmecoX++1FrcP=&9-T6Y0fq@kM4 zxT5Ve+pKmQyj|UsCxbq@vMvwe-P+m?ZF$#UyLChsxb8|Rk?;7rYvXS}z*n~xSN7^w zVCB*mA(RnK4xfY@A%4H#WW}uuv(IMt`W$;$-OOcfv(xPqw_Du`be^-i)$17Q{-?RR zLjCVqlx$xbQJjiCm`VWN>^O&b67j&Ie3NVxTZkXxpXYMCvy6>6B(z-7h zRmHnz6uaAL-+@tf;=mk6smqA;j7He~^NxQ!jqs=2DSLTKkpb>qNpCy(oK1SvT6zu0 zBbe?Cii{M(%CktBVYwPx5$osh@sfa#BcH;@=RS##&pwF{;n(o->%WSRr#^v?#}DD- zz+?D$lq>>|(9Zv1vJcSzx?Lc&wD52L@=p)^?-XC)Hy=HGA8Y`VhfW`Q{m?T9|F46a z2fGh?4<32q|9N8LiKZvsc;e~D-+TPV) zMIBZzZm*hQc9bNK#b&oiB5vybW`Sxp*N#rlpDS2xM<3MB?pO_B*exQgrheQ}1&~&R zS@5`JKWrSLY_PNC3rN|==M5p}C666p z{Jd7#;s0NDtXA+2^{*AER^S5jukKh4F)Dm^3G?QZXx_{wkK}-*&gOGk?4DmKTn*Fh zKvWB6+VPpah=C&cEx5(~uX3x|+}tAMa+nY^59b|LMD<{#>~_jtr`0UE5HH{pJ65xq zWZ7p%ZzAIWOrz836D90q=Or$A3zen zdCd$ZR+C$H%T~7w;q%<$!5yo~CLh&>h$YT5TTC#(dL0(g?e%yaPZX%;b(!59NQM%d zOLjPAzuE4$*dO1qn$P67IU!3R8~MC}szg6R?|Ce;BVC#$77p+Y3-bk(s$sp(91~8QFUC9 z1o(!9D`nwy1>Iyg6{wPrOErRARUwh982pcLy`fS%6|510e)dg1emqnr91B#3korY< z-7lO8)(X`%vR|$dDkL;;T!7bINC-)_Uik=n>y@g6(1}1bs~>`ah1#OrASg>G5Z(&m zv=m1DlYzIxy$^(i({g1c#^3{tKDg`wF@kh5SX&jQHaVWy00Spa z0%bG+5s0fwH^jaiVR#M0!%+$atI#k9Oyq!tq)H7^?E#{39n!p1OO7K)W)DqQ7GsSbBGz*a;KD<3|9oaC*&$l0Yn*Ta0B7ziOSep86H@n z>PiXo!WshVg&^t#tILG129QOj@(k~WQDsd4lR?yYgy@DaCkcM}G>8Pp-JA&UED#dN zgAP-LamfN&56eDIWH{0Zcmu)OkO1y_GaRTf`B|IC*aR~wded7YorD*uPk0p_f#s+@ zU$6?`6Pfyhm6&;;S0hzo3Yrj|UMr|L=^h&KSIJ|<95 zq=I-YjWQ18-Y29?c%w$9lQF>})S%T2N{QxMN{!?_Ay^qH(tAnp z1W#)+Ll>_*u$(4ui7aq|jL4b@np&a1L*z5;3jke|LN^Q}hmo#ooW(z^UTqA@)n`Im< zCWeTy$p`cV#-oi36}jl#|ALT{cgyWIixjlDMmi0r9867B7)vo-%lyd^;m6O`)>P8U zToDdehmOAV(#f*70}@sbKQWUxc=9DL26Q}FbLJ%x8a{GiWho0t1El+ma4!-#PiWU_ z5js6ORi5*j=Z4}X%GF2*BGlsxPdS3L66Gv=1p=;b<|q#8=p?ecAmTg}jYPZ`xeX~d z+3P3aNF<2PqlkBptQS;I5N+nIzhLNJVRV&5SF8vd)4~A=WQR&o<*Vtfl~BZ;nR>wugiyM zJ*uS))f=JI5Vxa9$ADpRryiC9rg_ihv=rs8GP7Vq#TAdUBSz1xH>#j_u|dQ>64PBf|j_b!;=|*{}Kh=jJ=-vky+l9|6#A zPh4&1O!xl!aAIJC<%wxeM&slRh4dOrlavr{GpbBqx$6cvB(9^#d$p3BA4j$tOg%C+ zA&rEViaecogi8$2z1PBag}C2)tQI*cws%x?^Whj5GBDy%Ur$5H!5pg-Qa~tV+Oh$OYqRQ|nIz^6_y%f>lcb6d%d_MdT0NWsSyGLmTG(*YD!>N(K zHB2BC-GysJ<$7azFVYAQ1(-c;nMP@S$Y1($7kJn!T;!*KG3GhI3KlD7g|^N?)f8wL}U8563TLVVkD#uV~qX#_MKy_exO zst*>^1gn8yVmlf1D!e1S!rK(y44ka44EV91%31Dtq8J+eb3{4Ywn%RU%23t5lrE0d zJ&u*1-cb6pD>3{7Q*y~ixm>!C6Ak%h;Q$M-%tkG5+G?ZPKZjI5NUlTfyvWJiGNyOB z6^C~x65A{rnOk2Rc;XGd2rM-@cKCR$uFUe+nYVC7 zMv5cU7D>Lbw_@h4jy)8x=mo$n>Bf^i!^z%eRz2N!rZ%!-riaGT46>o|ELeibz6eMq zsnZuykRx@HsLU=C{7MH>6fVA?%us$no;i<lWV!IfJ_Cx9pFWsp;QJbQM1PgVmg|8}|o%ojnB zUe&2mbOu0x;!+W0DMK=`S=5FQ*OF;=O_P`Rz&d5!WcjaI+l-jG21u!}VvRJ_?|@`F z!9Bt|{F~A~o?Mzmo-s%ftLUJ|?+84%E1p2CE74Z|Ff}<(P$8ja{dK&uXWl5C?Udy; z{RSMEu9LX5NSPDc`VmPe(R>ZnM5o~`IeOosjt$Qi`|-e?c>u&=WXW4oRN2sJs%MOz zh;|2K0^TDVGWqj&A}iQBLL5={wEkga>}6!mX`LkoZx~H9BDY(!+TWC#U!&P+y9gRI zl;}kE^tI&Xbqoftfna561d2XoNQ}-w9xI(l!Zl3;kG3R{#_numvVS(K2^9>`(8$HL z(uGvE%UQ2MZpmmD+9pvsKS5m|BSTAw?6>$`BOedIT33VZFKh;ur?^*zW1h~5PY33Ld)vz>iCakOZ4kx~3Mdnu$k>g%xRkUT z8DN>dv2E9|-e8xJS{O!NNVE?C&^1(fBs|UPeF8UTkUF`6A0^?E6~&NS7~ls`1mtkD z!JyH`H-40vbD6K2Z&h(cNr??9@l~!@;p!9a!igp%gs|8I(Rx%gAGI*9;})5htE>6> z6>$z)B$bYBGO+2|<`I*?`o;(in%x=gefMn(wYYmJV<)-07Xe61^bUi3DdB2#lfjt% z$XMNp%@49MWME_vFxf=lr^{r96`ixO?Ah_CRcc%YZiOl2#DNE5voA6()+yc>R2C z7(C5G%H(YrTd>ndGUja_acvYCPbp*TS|r)fmK@lia@)S39MzMz)#y2u^b^K}S>G8I zkkR&@S{$jTd){a^Udiw%8pH!FAZc!(?v39y>oml=X4VEZWz5FB-Sldw)2XhHP;1+* z`SjdoA^SKMHTB)j9^hB~{k*ei>XF4v{ExwNxvEOIgPfUKK9vf$E zN65dh!R@HhFsZ_IE-I*P(%7~!v5MU0x7FrWwdWkyZ*_!e+c8#*@6W-lYIB6r#Io%* zmN-LmY|ppX=AaRzXDT&*n-bo}dT>Kki6OOm8{f%+DOj%N=|sZ~Eau!IfD5gl2-=1Y z&SZDbHjR7jp6!m+I1<@MkR(03A-0{|YeP+q$^>Pk*K(q>J*PSh&CZA!wzJ%0i<%Ye z@;U5fvBT!-675NO+WMg`!cTKA*YOP4-;a(At&uCHBzGe{5VX|j!V2_3+Kl4D^aM^U zB3r9N+2e3he|sDUQ+_qgH%s9~#(M11_onRB=%Q&VmB-uC$t$+LuU3Z^ZaC66I~) zNJU2Z2ywe!X@h7oQk%FRL6K~ot&S zjdXB}&3IIo8tG9ddca$Ja|F8=^_KtC*ow2vCO9nyJsz?p5$)jSFIL^~J-eb)KuWhv zO+HG5dx+{P+Iv`nmpk<%<;>U%l`?kX0{U(COdkRt40ccH4JsQl|8A`4EOQAigZ8Oj z#0ogdw;&u)E)Jl@gRL-u5UM?+*s;JYqux4?PdbKfjHU*%W{)daIJc&u-0L>8;RkjN z1J5x9x?EP#;<^`>K(|dqF3m!gz}@FnS1il-QFd>ZLf#+<>K?F)ai6z`6I3?EyC20; zu^rA@Sqpb$ZQw2#Sq2E0xU#QLMEO+|T(}bI)e>8a_m@Gl{Ui;S{vd zvyJ%5Eel*46Fm34Q8om_89Q}S(1-x54v}=jc(Q9mX&;6iw zonITCHGaq*tMH96N71vT+?7DN_F%W;bXrK?)3pbJ{y9yxE>wZaIdn6gX4kWrZDi%+Mm?MTPRw@y zuHwvFZVMsIHS&!rBh>oMkQ{=5Gi_*GEzgcaj z@E01Bj)c21<}ui~%>&*PLtSJ~>Y-gcnc3J8B^~>)EiaDfXlZ1C!KVb$8WsSUyf6TQ zTC*hXXHUp56cd>Gr?AZh<7A| zG;>AF*k9_xf;xSP3j$hh$t=^%4_vvM2H#v8fY{H*pAQ$uyyQZ~Y0$&6qiR!zL7he!ZLrx3Rht1N9;^-6WgD=) zA45fgJLa%yPR?B8-6t=vz#78w!^|w%_7UcalQ+lvv32q@R=!B+3r%KmnS-0j>{cA! z#5Xjy**mjmIU|(u@ff+3^DS1=4@UbYm6jpSHp;|xoKgbYI#rWvLeq#cw3?1WiQHji zPler%+-q)J!zCm@oFO7UPn=KqRG~SZCrxdLDvj@wQ{K5-=o!7zk?0)7kfZ>d9dk7O zD+^q7z{3V-%*pXd5I+T+WJY~z3N*}EoWVNC3*!knrOnOLQ90ud*#7VecN;U1apL0U zK+sw~iE%C`hp+63H*zx|Ks#G2QM6885o?3sd+-~49f|ayA|x?wc}L_31c`VGc3hJ= zD%y{lnR$5oBXUj?*k7=-y$0qfugOt#47rpT>Q~=w(v(${-g|}YrPd`l^0nYQ*a*|G zIg&Yi`?FW&7#?t3hWu>X8yBky74mb(q{9ixpGgl+6~iQ$ir%XMeJ%prJfI?nF2ktYqPFr^C1#TX_b#0_eUg zi~70 zbPGa%*kqU0<&}Is+Y~~12Kc9DHZr@phjm$A0jF zfWWS+3s6=ecZjQQUP^9uP+(QWmaV6Fw|dxJTmynkr+kE|o)~T+;5DMM!a0Q>?V%_O zm#gdH!i!o8L+qUqWOj1^$8#hwF2aB5b|UTlt830sYH%n>Af)pOCKfi}YD@eD(T5}3 zCPW85&l!uykOeqevo|*Y2YJYJO{?RVAqBSLQ8>LQ>(|r^9b2n7>5IW10-F(pl}&D7 z@uKw$9zgJZDJ_M901rgC3c&OMPoJ&z4(`QRT8c4o*U3cuESwk7Ur7mkkq}%LgIA|7 zli%M)FGN43eH@=j&R{b#n2KM(A4*+Qa%O|05QYFC503V9)Hk}C7>{5HhuQ?u##i*M zb#gW)AQ$^z;#PMJ#Pee~EXCrVx-_Cp^rxDdlDDRniFS3Q9=?dE1CTg&FcP(`IT1ym zUT%TdiZ3aVwLdz~sqG!CV%^ka&IpDoeVB0i^Zb0#l~<`^2l^(d^D+*=kx zflFFA{ZU3s08F0412d_}AmKUBctiGWIQup)KnsSC)Yj%aEh!+#=9oHslLihorK@dg zwF4L+zblmAIIq-ol8rs>Lx^ccU+^3Qt`c31$(e=3wcCtNxwr&`sfIdoN#j0hZS|O6 zxH^*)EtY&7K`q49voZLNF)Bu{bimmagF_!V;$hk9ybNnDilZ!iPFX19Qf$l9VU@Yl zZE_qwX@jMu?4}d$<-q^yhE8*@Y%O(k)7ma#=ibTnc79P2y*DeTQe9qsQXE-#@v5i|#u(}&vDgqYJD z()XsjU{e?PFEVUgB+h`rPQ8j#-8L%}I~vbW z%nMU(#WfbXiUkRRi_<_5t$VBI$RTeUR|jHz)nIf_n8Fz+R9}8d35PsoWf5usl_3Wz zI$fqiDViUgJ;%U&Tbm=v-kUHLXqD)wm^2Aj#lrWVR-I6On6!J6zipLED*o&Y^kz*wH z4_NF6I;mCmuFza#zjFc+GtF0*9AA=O5M-}7^xt)Xj$!ur;Xbr8*tYL@}JOd z6#kPjKz(_ zdg2_or9C+_PICEToqC}+dFcjP+*Oi?*AgQ`m^9SK<^t@ST)%?RhZkehmI9RyG28jy>+u*~*Ttw5(3y1O0+XJJwO;&Fm)Kd-B{)&WXi?F`eMA|K z!6App3+buhB)NVGWQV~(m~;%%4r;Nbv=kuG^nx`alfXMx42WuCrRipP(pwX_df77y z`2f)kTw%S_AYLP}K$z)=M$&|aVHn0A+8&WP9no}i;YDlJ$WY>DA4n6@3i5*NNljyF z{1!MEf*;}*NTOo(D_|X{zTg2&49;%osC}Us(l@m*{9dFF|LE)(OK)!-RxG8Vlh|Wm zDsl5BwXk+Bbzu=Kj=xFS9_>TRbS4nPr7I?e_=0ZygqeDkr&UNauV4w|;)$~ua(DyY z61a3F`WMuO8_IeQG66+ViHtc$Y20kPj z^hmNu^bcSt$mhXD5ckR@f5mx9$dR0-^y)lQh0=9R>FMGMK2K0W+8}BA-P{b2m>i+E zxMP82BWIf-9x(&tZv5VGTj`!Qo&NxtDtvI-x4Ik_1ja+8Imuy0FfTuHI#~SJw%X12 zB2&dbm#pExc)-5zJ@)-ial(Z7r!69AeREu`n}zgM*3S_OftEYFkP8K`=+@+B1K$RN z^Pw1!Y=^3>%U%fd(o!gmd~KzjIODkqtd+{x^~BXVzR^saYeRE%fX&uKz9+^SPyL-A zOU|sKb!?XOEx6u3G$r0NN)mTmn1ybt^E8wLf^vQWixOY&pow8=16Au{K)Vx^-oYnl zuaM}Cw+p&Kbr|+|4T$;EcoL@J`=msfixygg!(k&W{g|Uk+5s9eYkR!SzU;PFBHj7NubY%F(W}`Fj&oOoQRhP+oS`= z$~#T~gYEw@`ad0a@Ds1C`mOKPKKcY6-v8L-efU@WDPo|Afg%Qq7${<(h=C#oiWn$j zpooEw0tV`)zWAGuAs@(hpQ-=TgLR*$6vAe>4Tx5olf`(qyRjkNIV*@>ra%giLTQTa zNA2dLR-`GmxZQ3?ZhpF5I?u^Zmr3N<|MRswOG>w(8y{fa=f;OUSq65923 zqx4?KZC>~@k$-!vUqANaCLP#wup6!pc&{Fp5l~2~yvhAy%6)QmxME83ouUBbKDfyg z_IY80yr%oeECi~M4?Ey1*Pn#CW@;(Tb@@p-EFmbcv~5DdUwonDp}w`9l4et5H;&;$ zOPSrAPMQ4|pa1xepJf;z=b<~m0qyU34Ds^X>T>3Zgh0Zy%#Ph0j0o-|lIiLNr(WDPo|Afg%Qq7${<(h=Gq12J~c8+SUT0 zj46?p-R&~jd`Ji9u-jZb#gk34cto>|lus`C`P^!I+mRIW6tW~?qQ_^JC7d1lJW?@F zA-uF!7H|xHXIquz?O=g#)Tm;&;m*Mc(X>;Zu zYMSp?2^%r=J7P+*)z@bk*`0qcp`d72$FYxrke{ZrzdKkcLUB`&!9=DQPb;ANcbFrw%;*=-Q*@k3R6oYGx|9>a*HRcF~E%XSgqFvihx} zBq83H!y=h^)ngnv{t7{^fa#&>CA~u^vj635GVDVUeKCjINB+GUa zF0MM^mTdQ$EG`Q?G2Ei;a=A+jLVlNxzfb^j*(7`HfZXi!5#(l*(_^=K{ARDkX_u|= z8nIbjZj4dM2)oM3cJU+X{i)?3BtNXJCv~1fr zoP2Cf@VDRZhh)n5VL08g1+M?N<&HboCfV!k-5|f4#-Gh= z9QW9ndy>s9njE4FXu(~4LJOSPWrstQh)ZR^-6HyAuk40%yID55d=?LKO@db?yI;0? zJQkN-vVJBHEyl(zlHX}^ND^ujhx$D(+&njv0Z4>^a@#Bt0z`_k&m?)hB80lj3)XN* zHji6!+uaVKAmn%1_@@g%4kEz8FZ}tPpkd-r#E$m)zbL!~uuR{>g37l4;y+ae&Tk9ufq!ScopG&24j=-3}Wffja#Z zk-~1ZN+!`EJ4`;m%L=l$$zD4+)Mb&ME(rNuHvSY8x7YE%9$(<)zx~hOuKlZyW8^RJ z5R3x{e}3@0kKHJ#Av;0wr-*?f28tLcVxWkDA_j^WC}QBBF9xd32bi_&#b0~;!?2fm zYH&-q;%GQ{l-+=)JG1qUm&kYGyN`bAnTFr^F#0@+fckU?SM#&z{-^~j^xM3+PeK+c z2X1uRthn3lLQ(+Orra(WMjD@8_HTEgJ^FlE8gb3{We}HT#S^jJmSH-<4g}jpY-s#8 zUFwp+X)q{Y+3OIet)2QY5o6u^bg1maQKncdmLW? z4Hkcj7${<(h=C#oiWn$j;6uPb?v4L!r*s^a;S`Au-w3;Os&i_BLV>P%x$p|tCF9mi?%-l76A|kCgT{g?d z3s&=baH4O8I|I3BcpakOYWMo>URgYpR}C*&pa8gXn0+#&vRNV^ttPkZmaT3VqUgKD zgF99$#uq5Y7kKa=FuuUGPygvle|NPyO#T87KJ@o2z5sp|e~K6=VxWkDA_o3NV4zVx z%*^c1w7g{ubG^4MCR2EJiC4F`yV3B)x9@N_dZ+zu&fVxtnCpKw$Ah^^pMIKmjk+Oo zw|UoV)D~Q$cDt=^8}31v?GBtGSRMK$@;j=X3*Q|zl6{lA-f)vUGq$_EEuMELyeAiQ z9TCPW;yKx%%y)A^ycl1g7+;_mU!by94rK&&F&_cN^N-Be$f0UPpwGn1FXkgC<|D}D zANcU|5oE;|c;@F_-T(Q&KNTc@flof%aR>1QP^tJ+#6S@PMGO=%P{hDJ!GPf^-L~QK zcd`e5NObS=n zAD|dt;EsbA6ypmN;|mny3l!rE;Es&u5~4?=pvVZt_yRgw?pg4Hy!ZlV`hWQ4KYY)= zO#T87KP(vH3*bxfr-*?f28tLcV&Gpq2AX~#rZ4WbS7t7??$M)Q58L(Ji+jI#@Wg)8 zLjT1B-&E_TkRSQ|wYtR6jMChm+#Em%bVNkoir-XbSCX?M2#TJ#d2?$yqK=HKw_|GE z?E7nNrKPBs+`OPJj8nel&h8WvVqYFrN4nJIsM3B;>Ag}~`qz>Al9H|U;jQIWl%{sB z)@`k>DjieGatw_mXP4BL7JAh&rwmWwxfAi+}ucqtVHLME%W$W86Hi}H|hzy z>21&O?I;l2q zs9n>kXuI0KqK?N<)tYX-tr^2lcA;SW#nj-2vU&yMPc?NaZT)I=;o;JXz4$P_3ld0?>VYIeJppKnX2;LY0|8C3gFR(eA1DBJCfHwlBUnJhi8I z`8mgW6Cq^dzUK+X;p^;xeak5#S{Gul;U>C7DXNgn&g=3RGMjhZY2NN)e1Vfv)y>yx z@%arNmq3qu|KVg*_~mDd@ddiJHip2x>e#Zf*`NvB3lPYIB_*Y$Vws@lfiEq^1524e zVsWSy-%23ax0WZ8k*G3uJ#lr8OWVXblC}^w>TqOheG&3V9ls1&L)?CTEIG4^#o+&M z@A_k#xbC>^KtclaK;4wGtkrEaA_+-r-<^FnnzS0~P3e+AgDu9`W|{M4M1{0qv$AQ^ zl6c7?78;4rG-<0et=i|^+2`{) z_8_4^+wVc1eZKde-+k^qzq|K&@AF9woXsT1QbW^-Y2=?7JgH~Re#g-djQ=t-%sPq8 zE2kHJbuM#*^aV&?Kv&SU-llwl^abqfCO7X#ui(TicJ#(ozUS#f2O@D^ zw5_u_9Ja@J9#PqlK?r~OZ6)5U$nW4)%g?mG*xR+XM|M52w(f7Xn%Wm^_if;QyM|x; zUfr467gjGU7M(sL1PB2_fDj-A2mwOi(}}>KV^vLkLxVlBCmz|mUyb2;wU^B_)?S?3 zx&!`TfDih&b_Dp`hkR2VpWAw)e0x_g@YO&!zoWao)8DVew&O3<(ZPqh+Mf&s3h@rd)I)u+M=Oq2I3Dkf?=O2$!FR;f zXgJ=B3?4_}gYBIG{_((9{GpB@zb(|=jWUJVhdYD*&K+9ens?Mx*Kgiz->pM%a6j%+ z!!h;XVYN?DW5v5dF(kzYn^>`1k+ONs1GWz}Sif~o!5Y3ZxVF_+*ZUjnw%)#|dL##6 zW3L*jBODmuRo5so$`{K72p}?b$=P4lzAkQ3SjGnW-Y?D`c4} zR;WAqh{`@ydFmMyC?4*M6<0K)vTWK^F`cy@mqw09Vo#M+_tI#+(IZAP$~TJASjxUg zU!S_axU8ko;@^8lZyTkD@YsD=<+pZh-&%Ui+pkKhSOMhLNXtdYVZ`^1fUawvF!k5NOZyiNdz;xiAuLrtkXt+@1 ze5EM84izq6A$gf=ctDLuqLFx{%;BY6V#`H!JF4s3H*vb@3Ow*~9*QoF)?(;{L<^i~9%n9+%<%%Ke4=Gxs+4NA3^Y@3=WV0!vRD zAwUS+MFfuRsj9mla?TCo-x&B3Ol)*n8@Je|ip-fu^=fWNt~MniIu%%jDN&^mhjC49 z9*809f@G4SsBp!B@tE6NX(hP0MeuHMdLHr0_$OIcf=iXZ+_Dn9V2yq9tv8ltjr}UK z#vYs6cI3!S5qpaoVZZaR+Y=E*S%9;S+!KK;H0<2q3Io$5(Jc!Ca8o_XVhXOmuln|_ z6Wady+4CT@QDku1C_Xdvo;?rhVt)Gh)Rmu`DQFXQ2^J%DV`O1!JT-I`>?TsA&mBu0 zoj@L7PA(3le%+tC^iyQV$d@zMvx!;owhNQT^UUz*!u4b(aglxZ(1<}$gAbWc&gxwD z?DJsPb;1~Vn7ML|+BS39j95ubX9qz~59lNdBdssYWv;)Het8b>GpAn5j{bOINTauh z-%JfB4Z>UFwMQ8zKY1yAagY`F)azi5(<3itt|U_0pP}5 z`q-Q4{!1+_prAm}XOdSDCp-7E?8In}*47AZMmwGB&m>25I$Ot&k=kQ}+5QBhwsAf> zVXblIV8hs@8pZSj(D}Gj3unjDr>|jFfe!He^+|oIfKFh~Cy%DjoJ}21=oatzHkSIO z3t+O5`u&$LoMtrkO;zk z@WGJG2Pp;keYs>qKj0lVtiLL4B4ikx0?eOe0SQHq%*@RMs~*7;vndu+VCoQ>&3!oB zzjQGL7$JILnB|m2H>|JRz6+Y}|3FEJ#Y$(5V@!X-3R{UV!wCb(3PKF7~ zdMvkmA5c8z;`21%OJg^?Y z8V*72Y6Pp;h(HZ{@~>v&14VuW(;u8~diTE%Ihnpdb4}v5`w<{Z+6VzcfDj-A2mwN% zJOYLmb*busyjNu7czZ=%XIoXIXham4`?#;ULNY0;lv83LKLSk*T!DwV+Ji9;mnv^?k#Ri#KQap$s>DxR-T#}eN^~zEB$7$uqW@em9I-(PESH3Bs4-o zBW+HXPxVBFk6dV^gc-kcZZ~X_mf&%EVG%3(U^WSnSMM#)3t23aVsifWOwjVWB#+N6 zLeJQVS+=r!ITN(320^7$28^F|^NazDQ_iv`XrYsLvW`AKE^yxW?8>V*CN$ka2lq`I zcLf1$ga9Ex2oM5<03kpK5CVh%AwUQa0)zk|aLWknbX40K8}^81xn`^+#lkcJ8kw1i z%h}75>0eA@C1-kUEIaqQv63@2Je0aTgO!{tWt-F8CU|+LHjFHaopzS#c2lO3oXgZ$ z)TuA?OkKW~nx58|Rzf})iyDiwlYCnw87JjpCzc-<`2NA;n;tsukFa$F4(?qW_dWvJ z2mwNX5Fi8y0YZQfAOr{jLVyq;1PB2_;NytEx~fLId04{1RW;TYKG4Pm1e}<$j=;Tj zbp79V&Ag$lBjEmN!++Wc0YZQfAOr{jLVyq;1PB2_fDj-A2mwOilY_u&dsTxy=R4x~ E9|fEbUH||9 delta 294 zcmaFyNn*o6Mho+Lwk8JMM-mJS0t_Hl z-)8o0@i|+m%>e?;0%9OTm|;@POPCj(jXrpQYjdLky8v9rG?xYLWlk>qaGP0S)&glJ zkjbvHqkJ#CDKDtT5XfqE%%71vY=+ K+8ikGpC15J!(sIR diff --git a/model.py b/model.py index 17ad5da..15f309a 100644 --- a/model.py +++ b/model.py @@ -1,4 +1,6 @@ from pydantic import BaseModel class ChatRequest(BaseModel): - message: str \ No newline at end of file + username: str + message: str + thread_id: str \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index cb45c85..92199d9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,5 +5,6 @@ langchain-openai~=1.2.2 langchain-tavily~=0.2.18 langgraph~=1.2.2 langgraph-checkpoint-sqlite~=3.1.0 -pydantic~=2.12.5 -langchain-core~=1.4.0 \ No newline at end of file +pydantic~=2.13.4 +langchain-core~=1.4.0 +python-dotenv~=1.2.2 \ No newline at end of file diff --git a/router.py b/router.py index 396359c..84205be 100644 --- a/router.py +++ b/router.py @@ -1,10 +1,8 @@ -import uuid - from fastapi import APIRouter from fastapi.responses import StreamingResponse from model import ChatRequest -from service import get_messages, clear_messages, search_recipes +from services.agent_service import get_messages, clear_messages, search_recipes router = APIRouter() @@ -13,7 +11,7 @@ router = APIRouter() async def chat_endpoint(request: ChatRequest): """流式对话""" return StreamingResponse( - search_recipes(request.message, str(uuid.uuid4())), + search_recipes(request), media_type="text/event-stream" ) diff --git a/service.py b/services/agent_service.py similarity index 62% rename from service.py rename to services/agent_service.py index 0fe6574..2b38bac 100644 --- a/service.py +++ b/services/agent_service.py @@ -1,23 +1,38 @@ from langchain_core.messages import HumanMessage, AIMessageChunk, AIMessage -from agent import agent, checkpointer +from agent import agent, checkpointer, title_agent +from model import ChatRequest +from services.db_service import exists_session, save_session +from utils import dicts_to_messages -async def search_recipes(prompt: str, thread_id: str): +def generate_title(messages: list[dict[str, str]]) -> str: + response = title_agent.invoke({ + "messages": dicts_to_messages(messages) + }) + return response["messages"][-1].content.strip() + + +async def search_recipes(request: ChatRequest): """调用agent搜索食谱""" - print(f"[用户]: {prompt}, thread_id: {thread_id}") + print(f"[用户] {request.username}: {request.message}, thread_id: {request.thread_id}") try: - message = HumanMessage(content=prompt) + message = HumanMessage(content=request.message) # 流式调用Agent for chunk, metadata in agent.stream( {"messages": [message]}, - {"configurable": {"thread_id": thread_id}}, + {"configurable": {"thread_id": request.thread_id}}, stream_mode="messages" ): if isinstance(chunk, AIMessageChunk) and chunk.content: yield chunk.content + # 总结对话标题并保存 + if not exists_session(request.thread_id, request.username): + title = generate_title(get_messages(request.thread_id)) + save_session(request.thread_id, request.username, title) + except Exception as e: print(f"\n[错误]: {str(e)}") yield "信息检索失败,试试看手动输入食物列表?" @@ -60,6 +75,6 @@ def get_messages(thread_id: str) -> list[dict[str, str]]: if isinstance(msg, HumanMessage): result.append({"role": "user", "content": msg.content}) elif isinstance(msg, AIMessage): - result.append({"role": "assistant", "content": msg.content}) + result.append({"role": "ai", "content": msg.content}) return result diff --git a/services/db_service.py b/services/db_service.py new file mode 100644 index 0000000..9accfbd --- /dev/null +++ b/services/db_service.py @@ -0,0 +1,54 @@ +import sqlite3 +import os + + +def init_db(): + conn = sqlite3.connect(os.getenv("SQLITE_DB_PATH")) + + # 业务表:会话 + conn.execute(""" + CREATE TABLE IF NOT EXISTS session ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + thread_id TEXT NOT NULL UNIQUE, + username TEXT NOT NULL, + title TEXT NOT NULL, + created_time DATETIME DEFAULT CURRENT_TIMESTAMP + ); + """) + + conn.commit() + conn.close() + + +def exists_session(thread_id: str, username: str) -> bool: + conn = sqlite3.connect(os.getenv("SQLITE_DB_PATH")) + cursor = conn.cursor() + + cursor.execute( + """ + SELECT 1 + FROM session + WHERE thread_id = ? AND username = ? + LIMIT 1 + """, + (thread_id, username) + ) + + result = cursor.fetchone() + conn.close() + + return result is not None + + +def save_session(thread_id: str, username: str, title: str): + conn = sqlite3.connect(os.getenv("SQLITE_DB_PATH")) + conn.execute( + """ + INSERT OR REPLACE INTO session + (thread_id, username, title) + VALUES (?, ?, ?) + """, + (thread_id, username, title) + ) + conn.commit() + conn.close() diff --git a/test.py b/test.py new file mode 100644 index 0000000..296054a --- /dev/null +++ b/test.py @@ -0,0 +1,5 @@ +from agent import model + +if __name__ == '__main__': + response = model.invoke("西红柿、鸡蛋") + print(response) diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..d9295e6 --- /dev/null +++ b/utils.py @@ -0,0 +1,11 @@ +from langchain_core.messages import HumanMessage, AIMessage + + +def dicts_to_messages(messages: list[dict]): + result = [] + for m in messages: + if m["role"] == "user": + result.append(HumanMessage(content=m["content"])) + elif m["role"] == "ai": + result.append(AIMessage(content=m["content"])) + return result