From 82a5491188f1c6d3af4283eb8b7a3bd3d86bf52b Mon Sep 17 00:00:00 2001 From: LJ5O <75009579+LJ5O@users.noreply.github.com> Date: Sun, 8 Feb 2026 15:33:48 +0100 Subject: [PATCH] Nouveau node inject_preparation_prompt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ne change rien, mais simplifie le système --- AgentReact/agent.py | 6 ++++-- AgentReact/utils/nodes.py | 23 ++++++++++++----------- AgentReact/utils/state.py | 2 -- imgs/agent.png | Bin 22081 -> 26465 bytes 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/AgentReact/agent.py b/AgentReact/agent.py index 9723362..1de10f6 100644 --- a/AgentReact/agent.py +++ b/AgentReact/agent.py @@ -2,7 +2,7 @@ from langgraph.graph import START, END from langgraph.graph.state import CompiledStateGraph from langgraph.checkpoint.memory import InMemorySaver -from utils.nodes import call_to_LLM, should_continue, task_ended, BasicToolNode, tool_node, preparation_docs, weekly_report_tools +from utils.nodes import * from utils.state import getState from utils.tools import getTools @@ -18,11 +18,13 @@ def getGraph()->CompiledStateGraph: # Définition des sommets du graphe workflow.add_node(call_to_LLM) workflow.add_node(preparation_docs) + workflow.add_node(inject_preparation_prompt) workflow.add_node("tool_node", tool_node)# BasicToolNode(tools=getTools())) # N'est pas une fonction, mais une classe instanciée, je dois précisier le nom du node workflow.add_node("weekly_report_tools", weekly_report_tools) # Arrêtes - workflow.set_entry_point("preparation_docs") + workflow.set_entry_point("inject_preparation_prompt") + workflow.add_edge("inject_preparation_prompt", "preparation_docs") workflow.add_conditional_edges("preparation_docs", should_continue, { "tools":"weekly_report_tools", "no_tools":"call_to_LLM" diff --git a/AgentReact/utils/nodes.py b/AgentReact/utils/nodes.py index 6513bae..a2fb619 100644 --- a/AgentReact/utils/nodes.py +++ b/AgentReact/utils/nodes.py @@ -4,9 +4,11 @@ from langgraph.prebuilt import ToolNode from langchain.chat_models import init_chat_model from langgraph.graph import START, END from langchain.messages import HumanMessage, AIMessage, SystemMessage +from langgraph.types import interrupt from .tools import getTools, getWeeklyReportTools from .state import CustomState +from .InterruptPayload import InterruptPayload # LLM principal llm = ChatMistralAI( # LLM sans outils @@ -16,21 +18,20 @@ llm = ChatMistralAI( # LLM sans outils ) # NODES +def inject_preparation_prompt(state: CustomState): + """ Noeud qui vise juste à insérer le message indiquant au LLM comment travailler sur les résumés de comptes-rendus """ + return {'messages': HumanMessage( + "Ton but est de lire les fichiers présents dans la base de données en utilisant l'outil 'search_in_files',\ + afin de générer des rapports sur chaque semaine du stage qui y est décrit. Pour enregistrer chaque semaine du stage, utilise l'outil 'write_week_report'.\ + Une fois terminé, fais une liste de tous les outils, logiciels, méthodes, entreprises, techniques, ect.. utilisés,\ + et fais en une liste avec quelques descriptions que tu devras enregistrer avec l'outil 'write_library_tools_details_on_internship'." + )} + def preparation_docs(state: CustomState): """Noeud en charge de préparer les résumés pour chaque semaine des rapports, et la liste des outils et méthodes utilisées""" model = llm.bind_tools(getWeeklyReportTools()) # LLM en charge de générer des rapports hebdomadaires sur le stage - print(len(state['messages'])) - messages = [m for m in state['messages']] # Tous les messages du stage - if 'documentsGenerationStarted' not in state.keys(): - # Si ce noeud en est à son premier lancement, je lui donne la consigne de départ - messages.append(HumanMessage("Ton but est de lire les fichiers présents dans la base de données en utilisant l'outil 'search_in_files',\ - afin de générer des rapports sur chaque semaine du stage qui y est décrit. Pour enregistrer chaque semaine du stage, utilise l'outil 'write_week_report'.\ - Une fois terminé, fais une liste de tous les outils, logiciels, méthodes, entreprises, techniques, ect.. utilisés,\ - et fais en une liste avec quelques descriptions que tu devras enregistrer avec l'outil 'write_library_tools_details_on_internship'.")) - - messages.append(model.invoke(messages)) # Invocation LLM - return {'messages': messages, 'documentsGenerationStarted':True} # Je passe une liste de messages, ce qui ne devrait pas ajouter un message mais redéfinir toute la liste + return {'messages': model.invoke(state['messages'])} def call_to_LLM(state: MessagesState): """Noeud qui s'occupe de gérer les appels au LLM""" diff --git a/AgentReact/utils/state.py b/AgentReact/utils/state.py index e91964a..3224440 100644 --- a/AgentReact/utils/state.py +++ b/AgentReact/utils/state.py @@ -10,8 +10,6 @@ class CustomState(MessagesState): ragQuery: str # Requête envoyée au RAG, pour le cross-encodeur ragDocuments: List[str] # Documents retrouvés par le RAG, pour le cross-encodeur - documentsGenerationStarted:bool# Permet d'indiquer que la consigne de génération des documents a été envoyée - # TODO: Ajouter la source des documents sélectionnés pour la fin du rapport ? diff --git a/imgs/agent.png b/imgs/agent.png index 1a00776e2c577a88cfd6f00eccc8e03cf93e08b4..e24f8c4b7775341237af07fc9dfd3722d8c4f400 100644 GIT binary patch literal 26465 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 literal 22081 zcmb@uWmMHc+dfKnY#QnAQc}94yE`P6Zlu|S8$?06OS%z3Iz^D~Zjdek={V!_yzg1( z|KXfZXSrDF-oKc+=dQV~YlzZNlgGv&!+?W>!&X#~)q;bA{{((w&=9~U(p3{QaBvVf zMOi5w-^{}-R1<<9clPfKQU8+%!jr@7 z--mPTu#fp67wKD1@e!ob`1lIl$J>DtRNvF)vmCwcg6>u_=AY4jR*;1tNu_?olY$^w zin8dUL2KX=*^s0R;FO4F9*_DFhPjii)cE)^-?m6R+s# zHZ%$EV>j@m@#v_OWbpp@l3gqN%F%s}!$)*u`ixxqLaaph%yOGt~ z()B3n7TqXGn>UHB{&o1h$u&wenuj_}{zQJ)1y3{n94|=1asc*1VEb7bM1+KZI+%R+ ztO#iwlkiiy^o4r=NNQ}g){DuA0ITd;R-4z|o6kNUV&xggOTLnHyVl@*hmSWfPNhMR z{hSeBA^wMv-0x`cG7XAaHgpF6oqhsNl|+UQ1M^Y}?oZoAAAa~T6LX*w=EM`S3?#Ar z;(DRgE4bdXdXeZT^iHY)Hd@T#^pX6V+i97lBE%G`6|tK{KrSBam+{v2&6ehT{yRZC zs=?vgo$m?MCZC>&6W+WYahRW+o?OhNX@)Pv7$-Q%F34JZm~Rc&w8)8P988BeyLtOx zEcPkla51$7amhd^fpvGo&i$>-Bvi^~f7Z(Jl6RXnj0UG<(^1rZqmcTBtwfaXu@YI7 zEdk*V_$V1c*hR$RD&bBp|Zn z{~ox$(Z#YeLHwg;PpF%d(=ZkCQB2><_EXylfmAdWm}Ov9P7JTW_F~IEztZ2sd0s6RjKExBoeE1z>IB6&x-hK>`y5yb ztDblBL}@`m!SBHopToIYx6PkD?{Ou9?u8hfmm1wxTHk4EYSufh$55f>N#K*AjvOC$Gicje>dg{-(gS*-5o zC%mg8Cx>#_>i74py80+O0n?A4KfBkNn3z~uSzQnBZ_ZnMPJ$k8y%aLV`~_en@8aI5auTNU+8ydo@VD|9v5XL0L z{MmKrvTplmqZ4YM2^C+VkVLyApz|QV4p8u+5r_%WQmN%SW z+%6{7`uc~4SE!Z1ey8tR6Mf;wv1evx!cefugj_A`?RN{6QyLuSU)$JBe|IsT4}84Y z$r&0_LDLDvRXAJFzLlqeq@`QQu(SCh;~n(~GS%jI;Ug+3D4?OEhaOA7VW=g>dws zcsl4yi8{;5wq2Ct^1Dz+b7)|CQ6GoyDU$VC3Mt10AXa61m1NgGz|F$eZr|flN8(T} zlxj2Y&U$!y23#J_1IL$2^1Iljg`fdTw%87noj%%*WTvI3H#^L7jd3$G7dy;WNilrr z8+@l0W|SrR?(A^BZn?$hy;HvK@zeQ{hp*AYCC)!bsi(>(m{IlRwQV9nA@xS;*!)ux z#4CoT#Ww~o>j|xWcCsrMaP^VlrwzaTi2{h4adBDZDTgE1qiYf(5eiY?)2r2B{nVt- zpYw+B!h9n>t%ShqBw|@|pe3*lAqY+m535?vG?|Y7ENVS#ZwQK(-tni&|Xw`=j{Wr4N z;|Y)!wfVa|xRk2w1RBN>T$l>jQt^c|AR&w-2*-s>v zDwX!^e+u&Cv~+0oANPN4VIoY*k3lj!!L|!WC%iL}SACMrgqwMwh!qlB&8y~k&*NE} zf<8Ob%xw$uRG_Q<-{SD9MV}6;w-wb>_*SEgE|rPDynVM zpUrq9f3|GT{w6#Z73cSqGKB7e8Yo-si2F%FvA@CN#ih&9T5lA*{L|qL{v+Q@5oLp> z1}{lmX6P;oxNbGzf#%x(q}av0jwL$P@RYOSBZt%V&!6{0F`_P*=f1MeGwg2BFuHdR z9I^7~5ocbcmxRnwXNSsC`T1|YF__EZ#aGj^D21I5jo{nZU=VD6ozOWz^3=-DmBU@N7#73o((c$7XZNRo$gLl9Cd=TN-~uHu&M$`eJ``5V`+r zxLloQEE%?~lCIq;Cn3%c_f^3T4xEpe`t z|I@E0(Moq5f1u$&C>)@{>)=p^IMcjCPrqwpV9||4V=P@p6NIQUTEcxN0Hedhctv;I zXNirL2fw8Df8XD|sYw_)-2|P>5QIa8uvgF`JRNT27izY&L=^^Ic~rG&RCEN z!3!fD`=DhL2Wy;1^gX=p>QxTT`(Cd1XK&UA?Ku{fR5_?cjXi@YqXmn)W!Ie&P*-G- zDLEIs>=#;QCC8xUvs^|-MtbFXRzEK+%JKCqEnQG>kD7ef_le4h=N1;6R=(kSsv#qV|CNmBub{p>d`-dy@V8^A0>pwlKf)&lDqfWQ? zKF13I$0w8K9Y2LcT5ff#`7Q4~{X(zRvW#)=-DIV^zf+0`re$QzmYN0+?f$~SK^_u( zIyRk)FYJ(Q#l1Q&UzVsoN(Qz3?ceN=L{{S#Z!v|P^BdVf7A0#q8TB!EK3NPry`A%q zIFu`sRi-;1c1}2qzv37zFL({oF3%Z=X6%kEXZU-b2)^0im=h1Cwch*sj)+}nrR8ob zuImdf^?b|mRZ9*w^&hga($yJ`w!f=h5x=R$8iG&Sk51jjyQh2J z$F>Cgrq+0-VBYqYAXQUJ%8A>w5p$Kx|7@|rMKow*t$%$Jms(iRcZ@{{NiA#ydWK6e zhyK;;elCJ?@snuKnd{vr2_5t3ii(QT$v)wiO^&O6zSmeb>;PtlPr|w8%7r59Rf9mdy<9A4j3LY7MXt{DcS}44F zY%5;;esVUOwy8lgj`kV$BE*2mNH-GZYm&5`v{)X{D_nojB{y9*-MKa2YV(k&Sog*Q zeWJzdNanGtQhs%jnO=SgS?8AH=NpVq8qNi6_1zAwN zjI`QHyT=!^<;a`Cla)%BNhVHFQFmhXpfd)-OA7HrW}D)y#LRClPoF;1Gx5Eh!V(v7 zSa`v4`1e@MSomoyVWvx~Q0eN3SE1DboxP^atj$kN2Z6~_MdiY!!`a&nkK6I@t9+EVuim6 zq9{Fgj#W=PR$2p-va(bepbCkI$lc%je^#>TRUnvc6{}N=iVcoa7aHp6&9Jf}SCqk_ zLOb^Mjp85CR`ToWFx#-jxvj^A8O1z!a$$1`fu?!VHl=n~9ePLW)Q;EJI;$5u3pRs0 zVePZks|AS}BI6V?r*N8OSa_e~2w(fwm6oP?E)FeGJW7{0G&F=_6KHD-i}CUjcv=q5 ztgh!A*8ch9#)bjUnIT|hqNle#Mr%cLi#T3hyNNPL#l=Y-5{Vs2-WX&7A8Lx|J)c&` z40GSu__30fHguJqVcfa;?Hk4Bt4S%vs3>$#bgcpj3{fdwUXOVWOiaw%4{LVP6`a9u z)@}_A49q&*kXvo(>A%_vxT?Qa<-xST)0PLdlPbuSoZ* z%1`Yjn7-+!vn%a!4)suBWgE2y$zMK(Ma4UYVoZ$uz2jX`;vW;2maRj1p4}5)qvqY- zUAefdHlcHk=OcIE|HT_5#DRa+h^AYzKAe|#Rj^pS+KNN~moIwb!*1SA7yh1RMfU0Z zPZiFCrxuB#CG8kIDs|xk(nsP)R#8-*`H6`M3Xdx!`s1I&<+6;f;%nYwfn;o|?;h{b zNuAZyMhY| z`E72B{BfHB-)!ucH+$#u5FxZVnH(c6t=CG?a~AN^h;JI7);>+GB2`pYAR0G>nl+FM zR!QFkKRwLWZlX4OAIaeAu^?fS@kLA;)V_r;!G}%VBTv5JCOy4!S=-)je>>ex!kyFG z+Y2SZ+L`=fEYbgVv53GVT(^U(+5e=&;mPdQLJy&Q# zFctFg5OhsfOHcDO&_o}EY8+M{ zvpOv)URYxV+~+9|_LqzTR0YMuZD91vYGhlonDs@8A~rc6wwcfu<=I@ZyN18V{53w+ z)QXm@n)yHSBg&EI=Z}Q>9^5qaPvr`iKhrc~ZdW7yCgb;$JZYyqUhbe24MsMB^t=0T z*IEBb2L-KrkJE&&yehco`4?uH+k&V%$x^$K?76-7#Dn@MJ@3>qc@n_9f0VJ{?UHI}~Y*erRmPd)MHJ@Hz`#fg4_zV0_IG`haars|d$51(^B=1i2HeY9?OEUQXB z(1LtMm3HK{{iL7V;y>#~PHx;y@!v0G3IIgL{K=H&l^lD-F1%Z#)1;YA)6fJfy1gzf zMMO7F5<;%|AE{Kte@#+%({vNEa0nWdCgvY>Ifsoj?dHZAo&nn_@AiUgf?7Wq0&sv! ztMR4`vJKTfpk0z}r6PDs)Xk((hK2vxH{KXZa|m#|{|D&#LRMwSm#JtM&K-%~s=f9z z(+9U&f`GPe2&<)4qK}bjcx6Fv)aEC(W2W!}&??gXH4*`k5q|i?{hj`|!jI3N!+}SC zj{iNBxjckh>8lPAAUM~AJc!pnabOoISaSSDM6WyF8V{R4 zpTTB(Qjif|VSHChul@=jH<$SLe4H{#^(%#_@cjF|8=RZR%0vd`g44va9FuIsckU;4 z+8XD3NoFjsR71q|T0cNx+21UvUZMZ~H2hK{Altoze$;GZFypTN=IRT>6RS(AC_URt zwbNrm_tz%d{e{0_mLZ@AUlP7M>OBgN(UH=#wX`$JCB#lDN{q=#RxO?)x61Mn{Cqp8 z@QVs-SIDXS10D*olWz})v|=^egC|^E}SmccUf%@?1{ui&-Vd4crQGR z2;&Av0Q3yTJmYN-yt8!}g#F?H4c^X3R?F*NjC|hw{Cr7ldOEr_3r@2J{n`Tn`LMkdMmzCBgfDnbiBMuD>!9xE`s!KfFopfAGgwmno;NXmmjQC$3 z(!$I-sU!>Fh`CIJy!LhGPS4KB!~=vTJuwK8R7CTw$oStfm<~Xo8@Yym{`>(58Y8S7 zAmW4`w-CgThB4kE(B14W4(hG$Dn9!TRPEV>F* zU+a3m5YxO3x;i!$Cf?lHkxy0f^t>2KBddO8f;N!Ej!H%Sqii=;PEHQuzzn16G9Zc% zlca&eWMpN1(*;G|+uK7Sjnf)F>3C{?cWyfuQZ;J)-5G#;{>#l?;1wV!w!nWZRC<5> z2swfiMrN%TW8F<%Y!4I}C;1}x5r8)cS5bi*|`FJn;RL5ApHBa)>X;w0Q=7gtxPrGBSt zQj(Hz>;F=CW5CVVD0JG4g(tt+DJH6!*X6064voE`<~gB!=SU zL{CrHIpt0Ym#N>)8Kb8;e$fkHX#jciFl>!J(HH4(;qWn( zBE(R=zX!9-uw+TpxXKV}q+n*XOj2TETL%XRXJ=FmwdF?)s+owz!Q)d5Ran|FMomdLIN1<^B-&X0+3gv9#7Ubi-C zY)s?&Zg-qMI5>EWl`idLI4OQwT3YY*L{3pi4OC}5kWv9psyv#q(`g@AEKArc=<&u5 zS`!Vx`%vE9jScBIx)7~i`-#a(fWVJ8dpY>{T)|+le-H%XHZYqgRW-oZ!=1i4&Y$&v zrdKgoe&3dh*srm%xw(D<8l*h8WG+*(N3upWyk8tA9QCRrITEW4PR7m5NURhT-^Bt?-2j;s zA1b9}5rmvvnY#-v63&AO%K`@-9o;dwB0VD`NA%qb9-cUw^e`>m%#d;TN4!c6Z*T8I z_u~siTU(~j9G&t8I7>FW%zI;bh*Eq=g=M}FG$h##ywjTiKS#oYB7s?E*QnIZJ|a9p z!S5i$fd$N>Ne>y8Sq))CZu9?^24_nsggjQuA9(8tWkK~cd8?#6C4o;K)MvnT?&DU4!LyT&w?86<{;SC=uGQ6%`f3jeY(7 zpDrfV0VTo=^UKvCN&;Hf`FT|FY>X#2zr_eiLBaG z5PWr@K_Un9H;|k%sNLP&vl_!}-oA zw@G6S0Ni1IotsAc?aLj(5<)_aHiO9^k)=Pkl2cJp31tuDHgBh}#`(AM@L5orsc>`x z$>rQr^WX=f3mk#3U%$evFJ5NV2R-=pBQP3$wMOUDnV$eu6R+I}g@iU#2f}Spb9qDdF+g+s;e_sBF#rc8+~q%!l;}aKCoP2SQkqz zG2sN4J&H{(aKHYZ+R@Pw&<_}~fi-S??gpPIMQmTcMi>p2m+u2RQq^qHXGSA?lf{LG z7Dqi-(!`l?nJ8I|pfN25pop0NWjGT?11X<`^A$nY?}!}Hp!;j3B(^U8_tZF%3B$>b@F_Q_rMoYrK0`*pQBYFCNQ85y-z9u_ff|5Wf=@XF<*?VBU`cXJ zCbTc1ak4O=6!W_PWZIbDd5fqCg7l$lo~W2uAuAD^PF$PG*dJ6mg2qt{Zju536G7LT zK*^00oqNVbqTE*mDjIUxZ;&z2^O0l{*&^suCGB^wj0#vinX@t{^RRaFp|3YLHgb=C zCF4@>eUj*p|A4JrS0K5GgiDxj1j;BSU`HJOLd?~kQ&JEaYEg;#$#%TM9p>lZas2_qTT7Gv%SeG-g|3iP z(b&m&c6v(lj+=yqkkk-NvLI8$=aT|f73dI#GhY%ozYevMPsPfVAh&Y5g)iI}p%nIP zblXJn#Dsp5yn5-`BV|V+WK$OF?&0D8XQLMsFe@vo#cyvAKQUa~N}X8B$|8wwbs2w6%-iAi}wx)fh2K_fp^~5 z(~x@F8!i&h-tOOTml|swH7&fP&G$jfpu35&9Cd~wS_DW1qgisUo#yMXhT$gjuJgHf zF^v)0BZ6#^FCk6T;r<%~3`B_7?=uY)QwtdfnN$e!1+0Q&XdR{0>0QUuBVu4Fh|J#u zN$bCYL1_haYo|G^T0Kj6`q!^01yNZW!&AK5Wl(X^i;zmTKq<|gHf{CA)4|V_f>9`U ze8^|<#`bv6lVB3^Yh(lmD<=#Uw;TCS0^A=V*s#k07jC7X^{ zJ5~XVvdfGdhKWSUHTx@pnHEmnhiM>)lHsfU^)BF1X$1PJ@+|!jcgkNA0BTrAf6T!Z zYdtT26%O5N7}tG08V19Q_tPS%#-r9m6cnX3zNm0H}eIG3BdID#LzGzoe-@;%I(pdV9;elc|!h`jyIDi z0##;hN(RU{dK&ObN#3rYgq`c+%HodkGMRyHZzzp7T*O_4pYco)jsZQqq5B2WYEUikH$5Vgxrio(d2La?#{5 zx}|W1N+NS}b6^LCAD-pw=VxSK!1rc?L0mkWklOygUt^K-NcMIMpq)Q|{ybEC2{7HC zHxLVzkV*Bp@uj4sYHMpPzD>IHbep>}nwXf3WQ!?78sH;!fvGI4e#J8a{yw2d&}AiH zszej)a_EKsV?JG72BUBG@C!(|GTBH*HJ!0EXc>S0{xt<@ylolulDoX)qb7m>89|u> z$m)GPJu(8l%gb$`{Xnwhbz1ngH(gHR7#BCd`8zQ&5&Q!}8TM~M%JL^#d|Y-V^1n+p0ft`+q6YV= z)e{>J@(=mX0m*b1|36kLD-jYA5phT_3rn^F!%&I>48~$`m`az(NBQj)%d+XOf&O^+GX@w7o_hPP zpSY=+p5oBZNX5zWO>fo@QS+ql;h8S+%Hitow0$=cMLU!OXny&>xIk*9i|F7q=Zf7~ zv)|b2DtcBAG)Dy1HmpMfZ4FAt87jid%%f^uyCIW=fZ3MCzOsJa2|t}VBg0!$q+g?&?iE`O zy%GXD8!T+HH+e7b*jJ?5op{O2c}%l*lr$md zm95(&tcIg@%;XgqUZEH29R9Q~jed-K=XlgN@Q727;Dn}SZMLl3{G{%9BzZ>$KNDW+ zm`SELF-ezO&fcY{iyhfG3O!(^?}9tvA2yvAA4)1C@zJWLh}svUl#wvnUW@iAWH&p?eUwK;0}G063*B$~|zmbrBOlAZpb?b4cffF#L1K3*I`9$e1leJ3StStv-8NH2S!h8R=4K zcRbv=yi{HubSd{WR^0z^ql95UHMVJ}&Xp`H26FLm19V@Xd;u^4-S*3nc%x|U12Vq+ z%#?A$PLS|VWK&@8A70!=u>IhHFHhIfdj5<}cVn`*sDSr}Gx1M=$t*cf3@ewwtP7ZO-SSdADExA)^27YMvobJS7f0%y5NO3>(i7 z40lrL>3ZJhMRX73<|uUwf1+4keNn3hAH-M0AoH61a-uWNnrq?pD zR1bO2WGGN4)?ZheeqUN_xxK$(FH+4Sp{D-sI?j>*5;2%!yiPutgk)Bk-g=zdN)@>BOay2K zTPFd;rLJyp(k^y4Ry|uZ-1wa1YIBnrSJ@!B#H5r>fs_wmI&3G)f$sfltP360{+-*bOv~yez=p2~|n%afGkePyUU+w}#;wz2sbW@$6Tx`1M##Ua(2u1OK z%?r3-?IbpFKnCYEcf06#>+R3JwHF#|&&)Cve5mz#Sa5Rf?!vT{WK875jzNr55YOrG z{I!rYDAlyaX)U7W1^xB9Ob zHP_8jJiQR%->z`fsAb)faD_vX>eZ?Ov{-Z!aRpMMO82%D>wp>ndRDBGosgW2LB{4U zL>lP|-{N_UykXED5MjQ}ktXQUBzN%YLn5kX+9G1fo(Qp}Wi`7_307swBN~yQh5s#FO zRyjC1m0SFQeAeXBwUMcz!CN_b82RM-SAs^Pvjw$esH_u<(iM$)Ibim6hrgo~TeKzrK5B<5{Afrc0(zHfol+pA&YO^mhXiGd z+7KdfuXi16T?g)+J4F99AciUtl}jVX%dx}3GJFRNMuZUpBx~p&g*~vONwr+`wON!R z@`jl@9m3Q)`(mkdt}4-~^R$sg8&PqOC3B-!@&az66@MvOe4Ka+Xe}3+6Ok4*^CH%$ zcBYr;FanFX+T?IvXBT@O%x|wdobxQU30Y;+rWE{xsd_WV*2N-&o=^n=UdIO`3bh76oxucu+xVgY*>Y2s6G4z zro-|R!y7<4OjOu>!$v!SuJ=%8PSO>2ywH*IxYRn+HI7bJr+*XebG(AUPN@@f{0TWf zpFV0kgdKYWe~nG3w?Hlp-dYYGIN1g+RWTg7I44zB{r5?w&i5`4i`c90!Icl zwkhc049F#DaFF3QZ@MO#)u^Pd6ifT#5h#Pb4g@kuL^&B>g?6nJsWLZH*Fdt!>)+nW z5E<3dkwP6H4kAGtW3bN;(hNtL+d!7|wA>C)ZXqk9noFtj@h#=GLmXx()Hms~A-{vy z-KA+Kx@pr}+Dx9QiC*RH)U@>aH_M6*EIgRWoH-qqoBOdj;*xLtFP+2WcJ@j`_aRLT%I4iz}> zE8<^U@YVlo3TeeCd%w?NnA?p-wiGyj1~6}~gh2#tv5L&O=$z zFi|Kb83QnK*5RY&^FB`F8JSlRYkUPg38eVzAEv6k0HYsSbCsAQ&u#j(!JD&?yS>D) zyeleL}a7F1|UtI}h!Oq6 zY7mw@sFcmF<}Y^0&_bjI?{h=x3!`G%{vL_&X(#i0?Jvn;XW$8RPIY0>X>pk9BruN* z3~Aj{g+w$VYa+tL1zf7GZAfk-(3vDd8BR%OzaU&?a@K`#88>qU=QlV9Ho2Rna4j(| zSWOnS4SYRxJVLL_HE6)Ga1%48q@Yk7uVJ%9enP9m3uQoiHjCK585;C;?yucpCHLOG zoIx1O<^XO(hXw_vfp#0^vyuyMY;K5caTeYStBR8iC$;Z@xw>&8$``bnz0fIhjdWV> z){wGL#ihxopZjjjny>vs2Kua2Z^?HVm6b1^%R(<=8gH5Ib^b%QMm6C${eM4UHL=%E zQP>W**&4!_%X>WsW9HD)LQY*kgn8+uDCjL(_j`BEQzFS z=lFCY50({y*;{D=DJ;@ZNo(6ugUVEgrc~o+%a0`rZqwA;q?u>F8eN+2n z3-Eq~C@KzAEq6;<5_=Su9Z6orRwtn6J2}6X)i1S^PnBQn;z~1w8Z%p=zmB6Yd{~(o zFHq6#y%hgqZlj=#@0dZY+59@HS!!gv0f`j@s^WeUaF{XnBe~6V@GhO8=<6H5)cP-P zj)>K`Y(9KbBkZO#TTu=0KF^5w=r&ucWG85QYpicBj;{7}^IYr|+zu;Yi66g)=sQ`d zFn8GjyPjXhi5pk8zfmU2&Oh=={}~hDZ`Z$boTJ|$lg$y$oNdN<CAs1h|q-u zICkdT;ZkQ}z7%v?;G3u1I=Nt zS<%X!8{h*RGA-Aa(dEGGDT^kcFf%KY0ne}q*Z!d0wjmfPr)yI+NIqCPy| z^9Cup2G2Lzuic7Q@FcMNCZTOg+_@v+!?PNE`LN3oLU`BmC8WEf0JhFB9CW|=1A~1`~_0tT$%Sc z1vOaI;$TNG;EB5pBnAMg1q>nr0>b0toePx4@n=l|o2Y0jP>4j-8D1#5y1E(|kg^i4 zp@4p@xus>2nl{Ai{`wEQeihcU7h8ZYL6Vw_f{&O6vj48^vx^G`M~kig&)}5S^O+Up zUckAUG<%j-SD%bZJPqyCIj$i($j&oz@}lBu*R|n#i~**Xl-ZbyUVJ04NF(w z5@0x`AbOS%Eg}MfNg!B=jLFf;VOGy}Ty4*?PXhG(6F34yEfI7$Q8;+C_#GWugB0cp zN1NzuYb$5aABu>&h60Y?CD>=cU}&ePoSdA1^~0#;gwhN}ZfYU_VdYT)=(il?6&M*h zQn^*%CkPomTDL{xA)KwXwdcXiM?~Sjebm7Lpf}$Q0f)xkhli)8r=uVt{iBv>(6qb$ zIvR#(u!Ku4-kk45jVP$7Af2-b3zOZVvg=hSK*B9u^~z|F5S?Oa(jjDI7$n1eeW+Db zIQEjH$byuec=U1{M&DqrA5yr@rR}43;{oA!vfT0=tO(#km%h7DOF@2y;Lv0kwE6L0 z%=|rCOxev&V%J}3bVD3s2Z{$MO)vIr!Q1{gTA=-~+8aai>K_@|R-|cWrlWg3|J7!D zdz;1poSs0EipEuY8Bz||gBEYj_g)x0FJ1@--tu`m<1cTnuh)XT2k_s&C#%6gHuIm0 z6{mskbRp506e}h$fis7UxA}&3wsxc0{QUfd@&XVfRve)XIPZfQ?0az%5|Y=X*0#1q zMMVn>`(Dp-3JMr@sbgYdkb)tod^CQMm|9*y5Z&1+37G!Z3a!CUR8ts!2e6<#R6fA* zhgpOQDnVqqYgXXzFOQ6Y^afkCI0WcSz;TG{>pz>a9b<@OfE8XS(WIvs3)#i?R@OaP zX|sC$8q2$818~Uq_xD?RrQ^5~_oqF8a1sxGR8gOngvj>UgJo2v!CC`qh2!I6Vq)R~ zwA9qp-QvxTF-Zd@7M*&%gM-=Xw$@e_etq?63bc}P7K(d~Q`Ed!uZ3@KgmU4>Dan*| zrKSH#dsv+%xw=x>{O-Pe|8Cc))7#gFiG)BTBFVKxcugxSSmF^?WzzK3`d2*Q7Iol8@L+?< z!#reZ?QonHge$<5H;S){SQ1)j5wYm5udhGdtv+RozLWM;0rBFz+)PA7^eWbo22Bfz zl=+|S4^}%mOkT^$MW(C8(T>&GjrR8|*fc?E5pq8BL;@X5 z0YNSKE4;ol7HEXn9I+^b{*hB1_h*=nJw$gqIl+LQ%gW3I5&__#>`8y`4c$MB2b$#+ z;Ws!ff^)gN*F?bgn9%YCUe%ZFN+HtdYCHi!AhPZ$Pz?c{3S)d#IXFcNh?B6H``d$R zAUjb`=70~>)Ff*R0#r~K$iC8&#XyH-H=K?)P*>!dC>%=RsdD{laB?=0MH9gpUdZt7@@Q~i0Ln2|3Wz-D zAI20$W9eEGYGviYFJ9_A|BD5ztywhsbm8-0M3sbj7YqyzDmP;jeg4EHrA|6-l?vorF$?)pajXz&Yt*zLBux37_wQ)p-eo+&BNGf9YV!oUs!{iviSlObnyP?X4FE0zTY~{(P+kqP^5HnDND74W>~qn)SQLr zV3>1Cve>zUxJEdMG=g_LyCkO2Xs}P3MfV%%63!6u;W982@jkTZZ<#TI=R)|5r4d&& zmXO=+6=&NeAodr^r`!F@7PbU_z2NCAzfkO913B8@W}_NUGs0%0T@Qvo8$NoYSwBHYKL;S9kE zPnI#D@#8W9{`KR>4{#{D(|HZ)=K5MPg)Y3%2G>#q_!**93U+wUE4a$gAcJ|1IOax# z368xHmBxR^Pt$ib%0RM2#61O)RqzB^Sy>JsKtd|%YBI;*J})UL0RmDP1u7-q zzxzZC&a3SYpxe0MH3upRw1gv|_W(S&#fwgHfR(=YMx#QtY&;-&TlGId49xr=m4{>We-N(vFz3o#EuWo{c7_P&NWXBjvM?3({+B4!C)tLh8j#+L$a?~!i2GfvS&%5vZgTBAx3uDvn$JF z8N%06X&OX!z6_EfjFDvb-u>P`-oJkT&N0Uv&pg-tT+emi=jS}h(O}SeIK1lDx}{DY3IQY-b&dvaAHG>?{aUnQ4lfmWzJP_cuXL0+i5=Xgq0*8)=mAFM&;-mDtx&>f3 z=FldovVaw)D*q47~Xe{m6r+Az2;_}{!*ZgO&R21EbMTgF*|>VW|a4C4^pWRO2`c7!lI zY@P#yvTD5n-_YbK<^gvckj5Z)0u~o;+wyQ8jESU$C$w$?0kD z>T-c0X7a%_&I2$E&w&VKfC6Zr1RbbktwlMNMJYn zGH{C1q$0$urH%3JHA!v?%)Fi7@+DoSRB5O22PGo{(sqt?SsY8KMLwh9)mz+ z4QFt2IV1Cvm#ey9rRzz~3GJb7`kwnB2XA{xxbxx6)~vco&{L(Mfzg(4z+C{^ zUYZFYSXRbsg|)=&HF)5C&|*^_gHQDv67iAn@s}*!Jm=3@Q2_9kEjK3|12{(U{d=AR zkezEE#_$toA9|d#+PP%rdkKO@$e31vm3VP|`qWF-G>iz|wT#VZLT1}Ryv)g~%h(LD zYQTn8mhr3824kX{nwnFI&t$`{cFbiFR5tI#;Rp<&laehd#%wLVD!Tu(yyjf<%Y_ct z*X6Dr9^6=DhyQtAi%HupY^YEHH|rLh+i9ag!sN@qW`Mz?C;qd|hwU=Aea#XUFuDzF zHAwWQgYcSbU2)u>1sDY00IDrflW?Qb?pT|O_>-_3#NQ(wGm;grpT_*ndz>=o^)6(m1@jZCjyOx>(larSj-y1${)eOHV_#17>Z;q>^$ zt>>2OcH6VP#NNu9)3P+GUM;TfDY)rk77Ofo6o8(X>`*h>qy1qa@)EL&)nRJ%tAfA0 zZ1&d|#lWe`RdwYU$;$mdz1GvIR=p{tU-7mqFC8%F`J9(;O)!iy_Jj!NR9dRxvEqH) z8Cy?8PU-JmFXeW@wC+T_fON7w?>95qwDV&tHGh1f{l1bXKxc(hxS&9_&DY;Zbx1Ld zOIC5|q){P3g!}qqUwpv0dvU0g!*O{qW@@g(b2&eO9(6CmpSjdLJuPM3et>jSl8;RV z)3AAYDX>Bg-`nDqH4qny zw&KY|9&(T{p@ym*9HAj|?a#LVl=cg&t0SB|txL^I3V-MjiMteb98+}x zC)?z#x>PAg6Ta;#3!LE7k(HFjK%K#?9Gj8N`%7yTJ)SslSXGqT8JfDW;-a6$zC@*PpU8&L_02_hEDm(A?fYE zxz@E)+h5)n08JHPJy3mnT>Zp*G=JbJU^G_eGJsL^)u7VWHqiW^&np~yeY531*Js%#B2wJ+NTufw0CK6l$@tD+dT3n`W!#j#ak( zInI?2G(sY$qYefS}JkW>S11)iJjDKb&czG zVT-`>@i9@5ytdZ5lHC4t+!u#y70O17D&T51{$YxM$Lp~)o<~%j&*;?bshtJVrW*(;jwFJG?d8rYJw z&Lwjj8Kk~EKh9~>JD%R`JN@;wpXRt!dzbIl&W@mh|H7NwCmkt4agq%qe?yLdh=i(6 zcwi5-r-zFG{%2W<<)FyQD&(npX59X4zOms}_Fp-lmC^P_@;cKk@2S_(jp+(mcNM%x zuo?ezqXV2Sb{n|S1vJ8CF5D`?59?j4D=-$%ki=?=Kvq|=46}DU|5RmUG;QAqZA<0Y z*_h|zELBO9STcEFlZBbPe$&`2GUP;IBMK8>yQ03~n;vgEe+&9cH4gTIhm|eV0pHNP z?E+-Lc?#y78OozF`5glSK~17pF}C;L%>|o0e%>WC-~Yt+L&*L%?V;AnJP*RENC~Yy z{}O~&c#UVek5=4b;s!^VT34S(C_yAt6I@XGm-H?3B_bLP?LxL<%?2+GzD49_WkC`D z4hW|j3>t8;GM1Iil~d(qW#O&5;?V4z058YI|HiObe4`90v9VEq-!w6~h1I*N<#bs> zYR9|MywuHtNbI-xW)AREQp7#qkX?4_A+AQP%?sLAI@@c6S(R$7|Dhz4&E>#tkY zEm6*u4e#bZ>AP|Nd)I9VIo4B)`ln8H?q21pf{wg}u~2eBdb*U!=f08qA}smyFE)q? zm1q1IOor=G;-DdDz}1cpL=vI#+{zOwRednMkKMy^YCx&J_*bd6GvuIz0bEtcVbW~)C7&LgusH3eC|2yEv@J3TK&NY=P;NZEiA0nJv-q^S8z zdTk*L1LfVkIC%7wuSSfy{Y?GdE9SgJNM~&5>VmoXq29m#JMVwbbq<#hGHbKaUWu)X zqkBX}H72LMWxjHHSdq?y;;5glDKdNw|LH1N{ALJ3L&MnmH#@NW(&>U;lDZ89Y6kCYEJRoT7F z{k~mbWX+F$x?0D!pp`9+x^|GB0Q`W)$$Zy?h`)bk4!%;OMJ-VmV}C`JgKj{_fVl_w zycw;Pnbk|~?<=hR@)aE7nj)m$e|Fh%Y;E%X{gGDo&TP8hpN%n3_Xwx03=?n|(JQQh z^Z(P8P11OBPc58MqmQ2=Vc;x55K=H^zQz_$LT=dwdqhkpKR$nE*t_=jDjap zQg0i*NBOV2vbX0Z)W8-TtG1;BGS;RV@g9^XU)w=#1|L)_Mg3v2eR{xtymKXdy>+Qj zceH9xt9h|o4@VAV6;`@GgY%#?X(+y-9UN(^q5v27rAs-pP!L_jWMu2z`H1udHyuBF zMJ;}wx=Y#gbun(saGAM#blPIBHB;%qSWl7&qo4b)PavkM=WM1ZGaPw+02j;&C-Wws zq}^msj5`=A`=JW5u+DQ$v8=*`qGBw5`Z1$0-lz&+!JVsPZ_^gYTg_-P&(9D9QBLU! zHlxU9(LRrm#Jd9@62hHrLS|fqxc=H>4KMUq@zU9^wR&P{6lRCK6O(fVX6~cj|5u__ z4X==?Hpw*=y^#oKr)R1TU`LscR(1Z0sr+1!|55T)BVmf*`J;D{m6J#qxTo-~-z^wBZARq!3^UN41aD*gW^i+pab5;iqL3LO=Z2Vh#Q?{it8~gYDde0^HQFE z*=7T=$@b>?GNISfnR`~fM1>F-4v|=7b@J<*7jZw-UKJdk5&C6SVm&?C6&rhJcJ}0| zfBm@vs!pZ2{V6(G%fykHS}zAgp!Ao2je9zunr>G)BzO!&hm(5yMv|qS6HS6#tU|aH zMY?^j^dfIrSJ8Mg%~rTACBHq|J`6$EXV$mMK_3iva+{+;Q_UOn+FQ#My3rF?YD|Q~b3*^LC`%8vc0+w)= zsI)-ch0et_T<$`w*cLk?nAlXpNHFGH@z<6^Ey3BX!SzHLEeJXZYFGtPb8)@7^626P zsV?~+R1=woPlCv*33O#8R)#;fzz#|0>>D$ht3ndZF}aqmn1s0rkK+^TbxXTE*pwLo zSt_)wj~}CVkQ+wNC(APzr^YUKutZz_+TgqSFi}Q;^<0sgAb&YJo!aDe7gQzk zi1_K96GoM#`vUOKejdYf@mA8Q7r45Af5GutWj89{@_9#d!}Oj;>I_vFD(xYXIzxk1 zJ+M#~HTZ6{n-9#><&a`h+ILK9SmieV(jRPoE^+R#)3g-HqJ*&UJ