From 5486aa12199f778d43b868ffc7375b00cde75c35 Mon Sep 17 00:00:00 2001 From: chflame163 Date: Thu, 26 Sep 2024 14:42:07 +0800 Subject: [PATCH] commit UserPromptGeneratorTxt2ImgWithReference node --- README.MD | 14 +++++++ README_CN.MD | 13 ++++++ ..._generator_txt2img_with_reference_node.jpg | Bin 0 -> 106290 bytes py/user_prompt_generator.py | 39 ++++++++++++++++++ pyproject.toml | 2 +- resource_dir.ini.example | 4 +- 6 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 image/userprompt_generator_txt2img_with_reference_node.jpg diff --git a/README.MD b/README.MD index a181693..dd30faf 100644 --- a/README.MD +++ b/README.MD @@ -116,6 +116,7 @@ When this error has occurred, please check the network environment. ## Update **If the dependency package error after updating, please double clicking ```repair_dependency.bat``` (for Official ComfyUI Protable) or ```repair_dependency_aki.bat``` (for ComfyUI-aki-v1.x) in the plugin folder to reinstall the dependency packages.
+* Commit [UserPromptGeneratorTxtImgWithReference](#UserPromptGeneratorTxtImgWithReference) node. * Commit [GrayValue](#GrayValue) node, output the grayscale values corresponding to the RGB color values. * [LUT Apply](#LUT), [TextImageV2](#TextImageV2), [TextImage](#TextImage), [SimpleTextImage](#SimpleTextImage) nodes to support defining multiple folders in ```resource-dir.ini```, separated by commas, semicolons, or spaces. Simultaneously supports refreshing real-time updates. * [LUT Apply](#LUT), [TextImageV2](#TextImageV2), [TextImage](#TextImage), [SimpleTextImage](#SimpleTextImage) nodes support defining multi directory fonts and lut folders, and support refreshing and real-time updates. @@ -816,6 +817,19 @@ Node options: * describe: Prompt word description. Enter a simple description here. * limit_word: Maximum length limit for output prompt words. For example, 200 means that the output text will be limited to 200 words. + +### UserPromptGeneratorTxtImgWithReference +UserCompt preset for generating SD text to image prompt words based on input content. + +Node options: +![image](image/userprompt_generator_txt2img_with_reference_node.jpg) + +* reference_text: Reference text input. Usually it is a style description of the image. +* template: Prompt word template. Currently, only the 'SD txt2img prompt' is available. +* describe: Prompt word description. Enter a simple description here. +* limit_word: Maximum length limit for output prompt words. For example, 200 means that the output text will be limited to 200 words. + + ### UserPromptGeneratorReplaceWord UserPrompt preset used to replace a keyword in text with different content. This is not only a simple replacement, but also a logical sorting of the text based on the context of the prompt words to achieve the rationality of the output content. diff --git a/README_CN.MD b/README_CN.MD index fd52b07..bd61a43 100644 --- a/README_CN.MD +++ b/README_CN.MD @@ -116,6 +116,7 @@ os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com' ## 更新说明 **如果本插件更新后出现依赖包错误,请双击运行插件目录下的```install_requirements.bat```(官方便携包),或 ```install_requirements_aki.bat```(秋叶整合包) 重新安装依赖包。 +* 添加 [UserPromptGeneratorTxtImgWithReference](#UserPromptGeneratorTxtImgWithReference) 节点。 * 添加 [GrayValue](#GrayValue) 节点,输出RGB色值对应的灰度值。 * [LUT Apply](#LUT), [TextImageV2](#TextImageV2), [TextImage](#TextImage), [SimpleTextImage](#SimpleTextImage) 等节点支持在 ```resource_dir.ini``` 中定义多个文件夹,之间用逗号,分号或者空格分隔。同时支持刷新实时更新。 * 添加 [HumanPartsUltra](#HumanPartsUltra) 节点,用于人物肢体分割。本节点是基于[metal3d/ComfyUI_Human_Parts](https://github.com/metal3d/ComfyUI_Human_Parts) 的重新封装,感谢原作者。 @@ -805,6 +806,18 @@ ImageScaleByAspectRatio的V2升级版 * describe: 提示词描述。在这里输入简单的描述。 * limit_word: 输出的提示词最大长度限制。例如200即表示输出文本将被限制在200个词以内。 +### UserPromptGeneratorTxtImgWithReference +用于参考输入的内容生成SD文本到图片提示词的UserPrompt预设。 + +节点选项说明: +![image](image/userprompt_generator_txt2img_with_reference_node.jpg) + +* reference_text: 参考文本输入。通常是图片的风格描述。 +* template: 提示词模板。目前仅有“SD txt2img prompt”可用。 +* describe: 提示词描述。在这里输入简单的描述。 +* limit_word: 输出的提示词最大长度限制。例如200即表示输出文本将被限制在200个词以内。 + + ### UserPromptGeneratorReplaceWord 用于将文本中的某个关键词替换为不同内容的UserPrompt预设。这不仅是简单的替换,还可以根据提示词上下文进行文字逻辑梳理以达到输出内容的合理性。 diff --git a/image/userprompt_generator_txt2img_with_reference_node.jpg b/image/userprompt_generator_txt2img_with_reference_node.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88c10c9b9f9a950c1c02f18ee6101ba736ee64bc GIT binary patch literal 106290 zcmeFZ2UJtt)-IgTq={4!1*HZ8f;6duNKXu%fK&x3qJks{h=AsmUPM}?2#WNM(z{4e z2#88klp+WypnwQs_inOxFrIV1Z`||#_m2CGe;gghyeC?6rP9|Me24 z1EYa&{@MJOX7djn?dHGqbab?I4D<{PU)<3`6U>uAz+Zps|;X*JP4md3b{8uMzFKp8_7%ll<*ybM^ zS{NOio?#o{2JpEnI}AogL${5QnT?5tb{j3tHW-|SmX3p-lS_zU8@B~M@vg9(yn>mf z(^E!XMQxnVm4ux8JR+h;bj-2VE`MFWojtH~m-s>5la+&0Od(2oR$?m7=d0RR^nLx5 zRsE}(5qx1az%+aQ^a1pP>;~|m1_vAl2Qb^lKu1SUN4xnU-~$Jp5T_hB&k-|oi@&&p zop5*W(<>(2mOrTdQ~`fwYDL7k@`FxQ`>z);R$4d^FD(b`Fzgphs55;jB`A|1NpoTS zl(+}sWVrf9lBUTzYzc0E@jOp8K~6j{uR`hsGvUqlmcwQQXS3tmUK`SD1rlsMUTEz~ zKIbE~@Pa1maOVN7Pp}ivh?J*L+fOW3*a zxm$%Ha70tyr1*(K*i8*vrWa0xln?jbU+mJN$IU;n8epZ%T)N&|b|s58Luu`Y{w_B3 z$%drYEKV`)8w!{9*TPmeVAX@wA#jO_IqTtSOW5T|$G_gOf-ih=Lc8hj(89qN&MQkU zKLWKZ87^$gFUyBVX@3{LD$4_J-IIPP8}@L=_r+hZTin~cnO+ZPWda{x-t+TWDZQ5U z-b{K=K~~hn{29`7nk?0hb0$M4b|qWi|2zOU-TP{1x?enl*q$-c*IGj1jt?wPGzhyg ztbJ6cAD>_}{n1ykE0EEb0zxvckNDyXNti;L#z9ZnHZy}x%Z2_h=GTK+Wx2bU)W@X*?C7<&sd&zRjg{q${(N}1b{6dz&7d*Bk(|J^<5o{i z;Xj2gZo4B3zPPD`p4!>Q$^gE2Kbd5i`P$|Wdkk9}u5Oc)I3D^TpC(JW!^dPuYgdxP zz;e7Y6a3i2`uCHNZ&fgNM$d}+-<*BX4DZZHs87LXl=t)HRXU@ z-9^7NIU78EZq_dPQ;-wdViKB$eyqI6s%mQI+80BbjdQE5A5=<^~$t)97M12 z@_R)yFTP34s)}flkq-~7`*Qq(%&Z@}%w4iT6~k~ws?x|#6^k@>B7Z_NV(pS%i!V0M zXy3H8!harnulCr`MuBaxNY$o4Z96L)3#=Z827a8CZP~O<_ncJcyZ>`X#+z2;rh~7T zEywpi zttV)_T&>=ZRFwtW7~8eq+BC}g%!jf{s=Y8r)ps{I(Q)W1j8fP`kldLD1pp$`X28o8d-Zca0BVreF@FcSPHMtT8^7JRhuyI4W6_ zQJgU=mri<@WYv#FTcncVe^o;qMU-U}Cl|0_NNeh{FnjFiI zliMI_oRl0Ns(Q`lbMrGZIbI3UqKs9L)EiB07}+D-x673+vzN>5*#*eKF}eB`6EhZ) zH@<2?7B;M~E54;)U6F)>|A(~U;Bz!?9Kjd*B!7YF$CBiI?iNY@So^|w{@W(0{*gLd zVWd(ncXz8VRv8;mUe8Ds`=0%5a8J{M3|^a2Y>B`5<5<=Hz-ch6IZ~w!HY*hwUl^gR zDy^3IOOB2-R=<&+f^v0Ks>ZVPjb*{T0kWzHw;C%eLdx6+kr=XI+PFyXE!0(qRnM(~ z8B>|JyL_g$Xqi;{6%-voinJ)~7bKOZsROz3y#(j@I2MVfxY0x$mK+HZp16esO^EXl zk4X;nmkpMvE=PkpS+aI19>Ev;B!fBuMA(BZowa;}jNMWYlz#fs@}7fdXD#zo31o7K zvk;FV`uodP%T$-4bdFeCE{v{RyA%ZJ^L1!l?|6}U?SfB6U7O#(MuGn=JeLeU0sYz{to&H4yFUZ2N20T~*J) zKwdSMSBks0H(Ja_HRANlY zM-6dUtu{zx@)k0TTw)LpuuVno5BT3~3D}G{Vqf~%x<4osB*l#YY!mV9qJyo^^%Zhx z1To@^Vk@6wi^+K~>A0?!v+u2o?0k^McCW$G_K(a#%wfI8&!{~cPM&RsYTIgKcjhhT zd6RfB?Oc~7$E>SfGn?Q149+4m>x-_r#aLHBIzmnxQyt6k&u zAg6wxt>(bz;7WQN7WAfD3(R>P(XPR&zh=0AlJi)aY$N}pt;TIU@Ix1?xqv>`A@Hr| zmiSkKKe&_tT3yS)GvXb3EuZj-TZKR$tO)s#OOvJ1Caw5hkQJ@mKwS5Po9>(D%?gCc zf-hhrZ37!=8`wx6dV`I$15R$Fk}z^3JwgB*sU^&0ZyDWt*|wvfCqK0~XVKKJy_ND{ zpfTP!>S%S}6k5e>6O$Y3`4D!eYbr49-cCDM0C_!mgaEE5C1K>H1OxcO`jGu9&2u;b ze2F^ZFMp{eOOo~w?V!~ltn>CIt_P{igvsrX4x7PFM*Q^s1$!J#TTl04;fXQu@x80R zU}r{XvZSsVU#X2}5M4fBGkX?p%0E?CuprBdmU{Kw16H`ho5e`oke2i6l54P?mgTn3 zVQ=@gu^LM?WPEVHLnm=*&N@~jRE>fHnx!FW{XGwi@73P)+SC(bEGst^yR^X7lq|TK zVkUsAsa;IurKBYcTuQci4<4qUy%^yQBQK`IX~>IdOW5BH{vqp*W%1^U1^5_kkh0NahWgbFw4IaJ$r6b)Mcvyc;Upf!L#bF|Aq$t4ghSsmM1V@4iBjl{`H!kNiS&M zRUuRO65OKzV2N2vUq#8OLg0%DdkgLJUC^rnzqTUF2?kp5Mdj4Fu+`ub>I8Sf#nUf< z1^I#Y3xjaeJyQ(@3&3i$1{Sp9QW{<0OGZE{(nohrKZF8(*r=+%gqC zXD8*IHZ1cC*6{>x^!>%b$A!2D=|2)q4JC?yw zwb;Iewvs%R7K{G6MIu+b_2q$J$SmE|)ycEPp|@)J=PFj9$?2;uR?dX3RE)3jYFUsG zfGb@cyFDtTF!tE@=_?368vXUkI;KqX)n~xRlG1>M;wq zF28yUd5V~CNw@>f_BtpRCqKE#8Td1iVpV*nSB6@Nkf`-Jse(327_TpO`DnXZzG?ae zgFJ*^n7C{IBn_*&^b6KTg(58fr|0fBLsTeI65YNhk1f3rMf|ofzXApI*QtqOy!Hk3 z@>i2A2Al9|#tnA}&@_cK(@)k0$GI!5S+_D63)fDmyJ_-hE zI8kdgrBLkf3l_0uY@GDQOrdI`Z15EvMW!2#+j^xxQ>Ml8cL55u#+C8m`Js<}rJorP z=nYHm>rv0O8vee@->x%Fp?t@#$q{Lq!8$+Z+M5bWD3Rp+OMZJ30c z0sziK**&mlL@J$2vOr_opkTQ~fEO;%rV=`;FlP7aF%=z;y34 zTI5DC5zVhJe}@vu6{?IDIB1$AwJ|)n#hj-tmH@wqlWVsq{8BmT|5Ea{`1=UelJAh7 z;AbaF8-xx?Z3NRl0rf;M%JG-*GsJ8tjGw;%1r1ARIa}85ZVBXg2gR6b6R|(r-Mz(b ziwaZ<-jav?h@bC(-aVvbQ0A6As1O7hL4%`0kV1Sa1R;4)BM9LPqe74((g*9&bAU)6 z`~PHcnYgPPpN2(x0YrqLvQaKI6GdRrc3YY^W*?V0Kdg0b;=85;(pu);)w2-GL9(wZ^EVmH?hNVgNd07lhY6n?i2sNm7`v^Ylz$rqcC|AIle)`^QeNX*ksST;VL zazKl%2P{cc8m5#HDh*STO{HO|1XF7mDwR4g=l?8O|FdNM&yp2dvJy*86xTu#FRvvn z@#*ySTS(6Owjs}OJ<<@OG48Z2T(w&u4)^BL)I`nQjE~^A9as63oS&OrB04hJyv>z- zEmIT6>7<@>#s1d7Dsx0U{h~G(?%|_PeN!{8syz7CSKQ=l|FXNwkZZituB6U2_yOFu z^P`EO_PP2mLuEUVD(2(FH{CSX?;aW)V3%oP_dvGyo_F|ykEbX5!PKSlHPuXJZ;^vS zxxq3ak31<$dFLLqn09w@Mt_4nXilr~-I3~S%l*+seT&341>;UGlxTZjadKRPBM=em7Fv2MV^c6J$BP$o)PZx{0fS+GcaelH@Thc zJi#bppX9pJ8)de@%K9(#(#`<|xq|d;ot!BWHcJ)b#AobQWapV`U(b9CH~pxPOlolO z20eu(-Q8Jy==#?@U;I1>4_w_~wRlu>;cMawP@VF5d@oH^l+c@ zONEGppJ4a9NXY zXU^O6IB&aPjot0b`3jtwauc20uxJDO3K%%R)=w}U1H0$Jp;Qs+6h%MJ2K!Oq?Py-2uPWK0pP%f!~1SJH! z;iYL(@47=l6;ncd#tc%QNuA?#4xn3WYngax((22SWl2k=pAYt444ekxrt#{u%>}AJ z=5TKoIOjG2$vUk2sbPmNUIiLcqhyW3r2GVjqS||X{oYm7Q#7-&PmOqcR-DI#sF^9yUQn1g0S*&AND&M#J#|MxxaDcTQx`j487HQ9pEGW5n;us^Xm@c1BASGsU~+@@W8X{f%IgWBJ)^pP;$!j=X&L!g z(jozbn=Ui5#%!i;SgIt&5Gq(N4il|?~~_AiZw9F#80meqJhH zT1PVu#TE#cTaQ82j~YfO1|w=1Vc?wfR4{^K6xy}1&r-ODqG|>LZmnG~VaKtGglEDV zT>{kV24mhdv88T!I<=G``BN*Nk}K5z=M>s$j? zAt?aeWH;Koa-8>)eJg-0MNi4vMR&DkIIDlsGF5Li1wn{Qjq}-YSm9^~a3!eL5l(lFK<+ajQ zl8XR60Jk{MO|IROv4B#l#2-{L9FZ}mx_gD`%y82FV90l#sWne4gy6ia{T?YrC(3zfDS*wfT0taP|Gg7R1Nsfv;motsa zznzC1rW?176UwQ?4wt7L_YZ}DgyXub45~}QNcIsFYiy^nr!CbCUz&N5KBfq*#ptMH zN1Tl!?tN8}hQFW{;M=wP=nG4`+;6ia2O%i#4BH{^1rZOumVh+;XFX{$er>!NW|fsn zmUc-%LLf(JK1M59>62pc{(X%PsPH=heZIdw+m#MexFHtQTS`;y=yVCc$Q5cEEg)(n zv9T-yM8^zHcx5nJ^j3A@27046`74D`Dz1fPq661n?zqrfN)P&Q-?Pi=I61no0XTSR zoZ7>8U1t<-bu|XD3;fsYR9hguaVbA=(Y1F94gqh}WheR$dtW`@L4d-!8zp9)ihk(E znn9_h6#@jkj7o9$C!%-5(fHr45ewhV4aB@;0pg;#MvWuI-XAz_ah(cBD2Tr}r{e_L z0c=BBU3;eByOF0cYLPe0mikvygwDs^fQXmEjmZM?HdB%2yT!X0Go9S1yuCkWfWWvx zgkiQg-K0;%z4MM=@V5-DK*5T$*6`$}n|*Uy=JSn)vMgO++zSTQs105USGt}ZdHx+S z*e>7NVapz>%T59SN-Ez$gF=u@Uss<>Yu*<5*%gX4YN>;YYr_pJ9JF~ucsKw>TtD;wU zdq8*K+ND(>BueI`RkBgv(AUma1T~oCLj2|TM$6|q$e(>2hC?s5`9b`p(mI9b)LLhU zQbVnE$eAcAty9!MrFE!yb^f7s3gxJ@PO;WmX5g-r?D*UcC~}lqSS~T(IFLOqJ}F~9 zPqF7gU-)W7e<0@KM|q%>?!IOly`2serNulq6{Hj;Q$xx?rF079)JmsRyFZjpsbkbi zr?8G%>6AJ~rF2SFtghkKDR3!S7?*Ec-l~hnlA{JdU38G2r_{x5{HJ5*cgDVye>H}0 z{V)nvXxNSDS`^T+{4tGclxdZ%aw1Q?Bl@1nw;tajyFCt@@LqBX4^&Eu$Z%3-qmS}< zYj=M6UECL=6;rAU>rg@S?+^EOn?DdUSD`ys!++3!EkW?wayLR*4=4?<1Oj zcg@=Ak^?WW?Xxo4Tj_sc8!a?giCygpJz<}^Ni_#o-y5g#&mzl+oc7j z+V8h;Rx&Pim|n(2!c=ma=YKd-Q48c?#{n`Qi+Xwz&{=I2)N2E`NlS85A{ca3T6jw(P#NpMJq(Zh`|EmTJ(kKWnxNf{E60y z+GNkz)Q~ULP0rXB$S|2C`?(%B@Hd5@MigU8`8A#{i|4kJ2Ql6GVf%An>QRS!QZo{? z!y#|pf4_HlS^VNO3ppOd%hlknWA#47&KsmDvimSGuJ^^*kd)l=k|}VE__?LxPck?> z(Qc!Q3@3~VDKeZeYNW!zF;qx7ksaK25V4-Cis(9;4+9OHpi1!~r&ty7BJWzMM^OKqf$k@YpozE!dK3B0o zO?dGAh6n<5$jB=3#x^#TRF5E-sj1_I?H0~cB>z0+bAC88_2>k#|h>B6^{foebF(zn=>g&Tn{;*n2?`13SN+#-5n% zQ7`@s11GBgKIv&C!(D*O{|K>^dD<;kAS6X<()h;%I2kgdjYZ2(Da^(k6PYXAKzDiU%x!WQYZblHG%4NUiTepS4#tUdyMzFReR_ zB8EgXYRs&ql6ehR+E;S?g}rLMJKi74dNu-W^IY{}%gnO<5poE0FE5$Ym+-RT>yrZP zLHFpggKN-t@N2~3AR%zf`ya!OUHvlVC6_*v^8(|F`ZQF0zcR%89%9Z8r!9=|iQ(iH_8loU& zjFDg8A(dpfXD=rCL6cFj2qZjkRl50Eeq`>lV(dS%2%t;}$|xj4lsFR)=Gwbr$O(DZ zdscnmMqL{?Z4DO|Va2xh?MBi7SS7aci`1MPcS!H|Ef;RCfRB>ZXvQVB{~dpe1Z&$adfor*Px{aP zr2p(sqSuE>Cv>;yEO2>rChHW49k*`Q)Z(r+5MJL=$my#@QkA;mFttXo>Yj1Dz0RgG zoG>6Q5xG>-nluX^JsYRDu+J2+;F*ZGru)|M7FGsY^6kvfF%WaG`)!F=09C{*IUA%i zBg;I>A2XzRTP20l4=-jvCGb`jnvK^1m0NDjq%j3-9RMw7*hN{YMMgP(`pVj}LK&5b zs;m^=oDQ0e{*C$B(n#Wc&6PGc2bBC3d270+4senz`V@0aRxI(p%t|{L(KZ40O1<3f zbjQKi=xjoiEcV{&xyPHK{XO4Ct zwH#;v!U&BqD&RC@%OD0jt^mJ#lH-Pt`){p~16!*74f`EVr4Be0t7V|b~mP_*$B{BBcb1t*efFSMMf{~KY zP#iJ>#V0j6apYDj4HyZ{V3BAhX-cYD6Zj|+AQ@cZ_TMz5-#%J_VUpbnx&muXZPhkliE0k|bVMorrzy>Q4+#Sa z&D2#-)G3T4E}zTl1)gLeF^}6U+`z{0#MD$dWbqZsN9U3!f-#XPi z!OYuiVJHPLh@&%KK-8t;asb1n&w2j?c*cLevBwWD(ik`|KQk);u~9}X$y^3Y`W(^i zWG9kvF=B`YCnNf92HnuE{=}IwrZEX+U(OlWF)Ik>5Ux_kS?J5b+46pk4|sq8&qTZ;6V}c#56C9#AIe2DfMvu&EDP+8&fRq6psUGUTzg&B?0 z#zHxXWt-dq9pT7qiQ zkH<-d07y(s9!Y7{I=FY*f&r*e_nJcv2X*cBMUc9q?76n2$GcVC;J;-FQR=rWDW!v2 zmQbivvZRdqElVg?_-|QK#{91Rlp^%I_J@J7{!#lW1p0gB?04;#10_eGs{K|Vp{Q&B z2g;}|bRfTf*Zv2tLrD@MV%|raDWd%?NhlGxr!1njn7A+JL?5TbQ)++p0!kcTk6zx9 z+y=rNI+cO4#SjC-{RP{g;%VnAnm1N5{9#8t0UGlHC&oSx{4BP-19+~9%&1-exZODp z+MhyO5AIKab&~g-6C}Ys=kTb_{V9Sx;QkbtGq^v6nE>ujfkUsfa-AYtwG1%ug*H6= z^KtPJbpp8Cd>7N^ZgV+PaJM-t9eF)_B@5hdA5L@p!7o_NA`gt`VZjkQLs?G$M%&d| zW&)e{%faPgsyVpa)8F{WmC3Se{K=V`WwNAiH#loS{uJze}hxA zC12vdqrtz0fcL{otL{BNZ;!#ijcO;rjcPnFaHCoqd7~OL0o{v9QAPL$D`LgI*UCdt5nYu-t{_F-3z_1Qt#s{SzVv#+8hkq zNxl*>W5FC;lemPL!viZ+aFo5hY7v9+IZ1aMP?N8BxL;<9y2stVfVH2Q;u{NWLz3UR z^3Gl@QPlv3$!K9!`%^!WVG*_6;4f6b)x9!ZH8W=DyI3SuJ@Bp++8y6jr?bG(!x{(*;YI=m`Dx^6gF;&O7kY3MJrlk1()$@UYfMJnMA5u&vX znE}h^cU2#UwR6fj z)id<=nS|sybD%+knLaHefRtBOf35L)R+dFNy#FT`moqZdy0pQlL%x24U_pM1p2K@4 zFRh`qi1@G@%CyS+^iNhVYTsNx{#nZp43io}$P^WbZJ;S?5MiLF)F8s338_Fl0nzlk z1xpduCn?k&w+wN969E*5>LkZ9us|AC?rQ4kZ3>-$aHlS<%!8SddN#b zNVG-9L|Cc~q#RJ><9XOkqv)a|t&?tVAJ@Fm$asF1oHG_P?|BcTMM|P!+-ooxxXQ8o zJx&s~z?0d@*OEa$VYV?5Xw23A&yO#B!9dx29__@lC}ZK>SFSMyB~RC073t=6uGkf~ z$`1O;RL9+Z9Ou?VMDkyYhisu`_%qGRWE2z5?K6Z%&0<`wh#N}yjBA&i!C+_rWEQX< zIMLnX)zyjHvFLAcN+hTo7a$oEb)?JwB|j-yFG50uo0PFI#?cazj9FceyMm4*KWyzKXed zy^j!jxL7Lvwt)~(>laSuhO_rwj8eO4O*hF0u*(ecg<8O%p5jyt(scvNk>;q8gx=h3 zpwO9xr+SVm_yk)3PdgL935@FVIlsjm94j)M0T!cRF*5U>Ss;4ga$_!h)dEMENS>6e zu4t%Ao(cR22Q$GH6QOKgax@BI_wWhinU|hy!Al#NnSOVX8E6zWdXSo^(W9aj1wF`? z+y{&*V>QG+S}i@0yosNLTiL9 zfwsS~nH^jzfTtqKf~O+M@+&I0f6=@<_IFMt0*?}~gprRD=z#ZN{N;n3&dObIoIBTb zy=|`}`E;Zc;OR)w1oG)fe}OL{AF_D|XWrL9e7(bo z?G6M2cr=ur*56sI^D92SAK(Zq+Q>&kIT6T5L-D}CqoMvr@Ex?@dX}X&4{QLBGoY-~ z{!a8rnd#%h)r8Z^^$F|mY=?tunzyZ1~5 z-8#nh>R*0Mp&U)sCQj7x319CvDvZQO`s#lb^>y)${s#Pv5dLQSV!RmFj7V=hl&G3lYpTG!T7h(P+)Tk8*aPAE#2tq z{<{v|%&w+mQ!RMdmLvIu$2Nt0hXbttL7=CdF4j9>p}K>vU7s;^{K!LcADd2 zIS?6Sk?uugghYhpxoiU~gJTu-5Uw<4vY$wYZgUn}Ka+`vEZ#KRK^&>mEuB^CA|XL{ z;3}zsE;mi1u%Y|0!YuH!bM_d(YFWE+qu|M{RRr2=o=yv3L9VnehB^nT{A}D-~<_S7BGuU zU7b3`0;r>J6&k0_@X=t#V2)7{N>+O8AquGOl6c4u-fX8w!~|Wzz5%@CjDno(42f}? zT_1%cZe^ekqbh$zC6pr(?P^Z|ebV+$V4sgbTYhC+t{<|`g2Ma*U&xU^@TD+^8ebUb zM}$C$WABR>h>8c9W9(4E{*p)yblnTUCbbCcRRN(ik%%BI+GSheGo5GQ7!aTgj7Fu2 zgl=)>dT$mDNF~HOUDZy->|jpGLA5Smhah+{udvf2L-|NO(mg->a5xAGS5#yKHq-hE z-aB?Cn_{tvi_Jq=BGfx+G6h)XLe!oX8fMGQTjLwYNi=9d1UR7E0o;6!Jd&0>gYAaq zro&*=ZjYglA4$ua(aoL#9x0u(i!itMMXJ5Q6AxU7Fosz6FL+BgB`h?^mRz*PF^MZ| z(1S=Jt=o}^i4)=%^PeR-fnLK^PDP%7VHHfT%t|^f1mVDflLfvrbPBIKG|6aFh)~19 zX2w=HsT)@sclS8(^XjJj1nIJ!-X{lWi&<8bI|xA*4`uI@D)Wl6A^FB6Q|OJ8{nWEb zZ~td91c=_R^D;ep)s;DmjD3xRLZG5SGlK!Xy_zvLSTFU)w}UC5!O5{NR26?^Gv>%h z)=mQ@$m{I%NK_AyVBqSkAY?JaURUk*P;zUCdbt>{1Vw{yQ+-@r%or6EGomS~hF?VR zkJ@l+vpy0RF4s}uV#8#`3DLPErdb0&y_1XA{>~2I-dW@kKGFQGbci!?u%({QGs%kk zc2y7ffC<6l+@<_70?kj6=ho^!G)n|l(?Df}AJRn=9?3FcI*ROG5pA`xm|vfo8jPX z;*9-hK}zMkD?67c9BII$vAGQuB)fima9F#vL;!<3l0%}wkRfN%i9HfMafHv<<+O|i zH#L?}RTliCKCn{j{tB2=SQRzsl>CY6syPi1HLs{I9sHfY!c;sep;IKZ9N0w(#;7H} zorCQL`f(O;x4=l3QX0Jw{K-`+p^m^t+wLO}6_v7uNJ7JV-X;tuj7Tj(F~X7onO_5B zPF(NJg)FMP7VxkPIeIiok!X`9&~@P*OP(%5nB2Xr$t_YNt zFil+%C}RDiB0zKh(b)K?bq^JnzuXY~X-D|A8GFR!%PBqbp>E@#-}N{#h2#?c24MLN zc3o;*Au|4fD}_4LxKb?si7Qm>bYP=WeD|6=)5A|p^NZ+pAsvGVQi*qOeCy*3J24@z zw2^4u41B*M#!gP0jFZcMYN!~R|GGr}mLXf;=6feHr070yhy;tPKhC1*Iriwsoaj3R zJ{^xDT)+PX1547LG6!x^tq!H)f z+@h-XMnC3Qo|JM)$?LD0Ov>`5T5V5Gt7}bEXl^Gv1FK@bUzwz|F`)0CYO@(<8}6yJ z()+yg{pQ4<9HWUkw}6RYHLUlu*Zd#Yy&*ZdkR6sd<;LT9YQnp_LSxFF944)I{Q9%^ zfusb-pwPYO2j`Y$IZyM2M0#K4<<0{(=8@xsaWU;Un_V@5+WTcKf(#*DrJHvm^5+p+e$ac~oJ*vl z_lfh9l|D&%!4z$sisExwc9)U^)z~xV=gv1%#sA8Os20Ka&(d#yP(Wfe4-|%PXaM$ z$1v?Kd~;@_qoiiSK67)#`@qnLzhHwnwS4jIF?~n`dXOO-<@o)H)9{OB8DnC>2kp!X z@6=zguU_Jo_knqgQEJbXxzrv`+>-G1YwAtP^Z0J+P~m;!=Z&agIVHJ(Ffqs0?Yb-d z<*znED3gS#J5DM8*z_WYH`UBRA8_cN-^@nt5y~7#{94-2ZO-uUz?tR)pU{_cVb96GcIQ+CQy+%`Lxlav1 zqi3M{r-Vh#64&L;NSUUWncf@zg6U7YiU43Nv6Vjyz@INW9L+)*ftWiWn>(R<=QN^h zy^cY^p?q~_-u5y#^2G+zz4`h~3;GL9?LOwNAvpDoC6kN#TLXBv+%)>`=!6<73Nbq* zfAb%pkh{D#W?Xb->40p;0M^?J;TzMUX}a*!=9B^ck$G*N#hDfNNV`Iv`t} zCLejfFdKU&|Jp@enG4PBC+k;$9BhI9*E!yLGq?25K)UlZ?uP-fUjtLH<%;nh-c)l8 zF@L*mV#}ATE+EZvzhIle0r_ffP_w$#MKc0Kndo~5i1Hc`B@i5$2*25N*7+kdx+Q3L z)KsR!{bgnf5q>+NFSC-7T=Z(p_{Ynni3EB|2DYN*I>(!8;Z;f-SY|1hApgKMl+>qPg}(hf+8;tJCBr zpW=?4b(jj!SMdVi750+iw-YX(#}5i`IgQq9Yx8Nn@2DfxExoc_q{Idb}b zVVZ-r_vK^%!VS)@39c7uKd*L@^Z;-swlecO-zGJ4+_MTlc1M+1Oz-`^m6_ia?&c=h zu5FS{b;;z?tAF;w3&6r?<|sq<=}9~9-#P%YO|GG`)-lcE2NB1B5_t(Iky`_{N@V9G zPyjR0sRy|_kV`u*Y!Ps?y7B&k837rQ0jAh4Z@j&8<)11G?{{S`|DUvb^KWF|${w{d zyCZXFcHn5Yxyj}DF6;A+H@H98XFGFcua_i6pN>M)2oT$a(7JtZme*2qfHsac6JAB7 zIi6G-Ab0QoqO+?Q`qaPt)(3av32{YuF6YKB%T^ltd_LUVhUVl8lO-Z~Gu{NOM$g2* zS-BiQU~Ru^+5fopaL^YF*l@+Rv$mH!+SAX+^QIYG>A<`=_cs2h2r!p=93MiSnZ`&* z7RSbsJ)K;kc?4VmFlpa8$G0c22k96r1g;Vu?ixImyIb1=H=JgY>qmYMX3TTtLS#Z~ zQs$c{JHcgwA7AY4>Y@5K>W|~0CBTfR#`!?UuetuWgrH?Ywo|HPqW-r~g8;zm*-fu^ zXy3Jrd)#^;=!@YYaDl`X6YeUzU~U$0bW+nyJ2XNn3RunXP8~y7x=gHMNFNz*3z4RQ zbqW1jD<)!^NPzfqYG3=Ev$>C2))F%3;AHpcf3J_)pe0?DN1dlsK0di(h48LN=<%zc zAL$F-w)5t+%1;6hL{*YkYdSiz#UJ%QhU*0^!@woVp3sQ$duJvrqd(3F?jSEal1%&f zbwW?o=K&bf<2NshrG3=IH*<#lhH*9U6?6;(dCmIfxMBHX>yZ_L z)jRiuQk}SiostP2C>uT=o3wp~Y`uO8-6MiVbDoKQMMR6%Is#4I$wOD2xqL_Bgz~te z60FijChF;>pFb8k_7`r>$WY!_S@OrTBcL&DoJ@6zTDd6j+i8y$I3Y`gyoa#3MY~Dx zfEEwgtqi*|N#GVq6mW~g+K}1q?oIu>G#~qbuk*eLx1%1&@nK9o;l7~%a@|Xg$(0n|0^!B@HX{j($VWQ1ru)t&-hF>&(1SIn0i zpnovYk4hwUOH$EsyLK=LrWZBDk!lQZw`pAX`X-KAOwErfjR9o+M^+$1UX4$Idm%V^ z;9khfXOJP8Lp{LH&H1y(8{a}c`Iwh0)t^t~M*-)RT+8aZebeRkOA%jDmn&&jZ-Hm? z(i9W8il)R{=LMk4@ zhI8V=;s5vkMhK{CnW-2Ul*i@^4tzX%AgBVhn(*!6fDnG1_f)!MY-gSx*31&iKlS;M zs`dfe`GPxM(yQ3(^AX(mYEON)r1gEMT{Bd?*ztJT_J(qCokmi`;LCCuyXYnoIj6ig zT}ExViZ*Xy+$mCWodX^fYfO|!VM@Tfz$!lik1LL&Hg8s3A(I=fVql9=GcVvY2!2qW zaFnco|C{7tQ+dW-td}R|;(~Q^2^OgYnW&sri+YidHU2sQN`PSW%vL2l*%+Z`>uz^( z3UcdV+Cjmdp|O$;2L_0Vos9#f3-w9B&&6UCk~R0_MrN8YX>6b%D&oAV3w_08MEe(` z93Z~3JeEIO8a0##+~7SX1%~`4P031k0R!CTDOETikIA|^lmOg(JO)+(`jj-_A-n}c z;Hz>eoUB?lHK9)7fyV9vB<8!Ix-?m~9&;#!{sM3iX(I+I9O1sXFRXB4n>WnhU<`Hv ziROLdMhi{8PoR?UuPT-7_7e|WcjqDojretnlm>-MgiBhynUBe(=@-#ps?KItVv2!H zFoHZGe95QdUtjfP%C$wC>Ka(N=nc?T-j5|6G~{x<;X+JwwOlHB1uNavmtz?^?vWko zA^O6_Hy`W21V754ATcax@0w`Nm~OOi&*#Yr&{)P%BSe3R2eMulZwO7exIfXbCwC=j z0@yi3c1wKcAS%K<@rB`1bJ76KbyhdCVy)(0QBq$zz^fTwEh(~XN7qDGHzU#5M7&y- z!v4y$S&wql($Vgg;HUK0ZIn#i1~8Ar6pF!_0Ys~11{xV>k(g!?FbKHEbt8n^0D$O4 z40st=xJRC?m8ZBkYqSUVos;rc&0%(~N#@-zj7UvBPmYigg55Au#IfbR#6*`ym#?>j z{xQivs*LUdYCo{MgB%2npOLHY*+D5)QiWk28AqD4Rc8|cWHX0@;Ef&Bfs3ezM=JAFHKj&DTv;j-0xXSA~3u5YSJ%;3`BCF*eD;1iI-NRU-PFIMMb7fICS>8&havMCn|+Twx8O+H}2xq5S&Cz?(R_A zR3|jivaDUQNFmKIb~*L0r{~jTJI$Ux9@UdJ48wO}9nCS3J>t?&6Vfm-7hOrJJWmxO zlfuj21lH3=oHcl8cJ38cCbC$5??hs_!|r)i#-Ygf0!B8qX?y~%h804+d?EEm44!%? zj|J23>f{bS8!r78n^%}#AZAlaI+`$sS4fD{dub7i-Sa*8(v2oXYyK(5x4RbPrM)FQIDmqu{O|HmIJaBSjGkA(aq<8Hwyk8a}){Av95ZZC(w3j!|fY;Ce2j{Dbh?qV8 z^$a_OJ768K_B-AjLov~(uU!dP7s^wqt{g2K2u&W!x&DEJBkkq~c1)+f%Upb$>?f6j ze|@$K$Cc!GAEuw*Z7Wp!oxt_E&j`MqXx#T`!d6Dn;;|nmlKLc9_PO=b~>RwGrmGzB{nS zIeOZCN)CxV{hlMeD0L0TqHi`7wvXKuw{k%CL!Kn!=Ba@qi71q+z^c5w{H%zO-$@l6 z&QC)l`{jrs=TR2V^u+&;zaz{C;yq?+|i^;wZ3 zFUfc>p3_dmVyt-`V{vZ3tFS^^pS98A!ND#gGr8Vd=kPvW^%kxtI6vcO-BSU*N5 zSH7bPTIR? z-X+^|3cIsW5>rKtdX=*l6KW;Gs%#vt2Q3^_^L-fmj1;2IKjl7nAe1}CQiE1c_d!={ zacO(IY=OP^tg0ANMB!_gcLalM3Y~|@?Ujm6Ta`!lPkHRpyE7%a5m($DXFyVYXt0mL zf9bu->8a@l{T!hgo3#Dszn8GrtZejopH__K4$W{T=E!d(R>}X&*(dXHf0C5Ehp0}ORLZwyTj+1a7~^SiSPf&J&t&aMs`qw4I?gnx8)$StbQ?gSd6?(EQnRGl4k z>yOTkB%=hQ>g?KJ$EE7*Ir6;-5-ZT`a`P#D-^Mk`mBCZAZ@@w=3tFIL@6moQl@({6 z+}jQTwvpSSkcwM6HqUJU@7ZH{C>n8ogTkd=% z930~xZ-wrk$}Sn~Qn@;@%qC|RZ6Iey8&_&=zV@{+)FLX!BV9g237 z#7u~58Oc=tOsR!@0(XIGT1r8CkcIO@Cfsqulh&NvT`KvfB(A3yoQf4biuiWQdnO{j z)-cf{^8wIS`u&gZK6o)YKRsV0Vm#_iMxVifP&a|%u0mji)c#tf?1@nS6M<%fmncQDr5?ee!8A1O9x(hqUyL?IJImlfhajAnl8g&+R8ukG?O zN0r}?#gWAZ4!-FJnhxd9^qS6Nja1(q-^p{?{H&98M$65=GOAzf{kV^@>yR-5cYM2U zO=y{}I?eQ{ZTwNrMzuKUr2HS2m}ei1IE6Rnq;8!VXz9Dm|M3@0G`MOp?B<)hlO6lM zXyoo>xfJ$VhySzkR|E9Gs1mGc>8qFggxF~HK;4-HtK=E$a~$kng4pi!^W8obYwV=Y zGlk&N?=Y`!*2~;IE*K`quqqsX{heubPc;&+%>2>J*j$d;3oDoItYD?CbPezBwX~d6 zrK`KFP#YZlHn7y$xr00P)w`sQ{oAvry~BAK<&QlN-~Rc!y#GAIOtvQz;*phGT1IS- zwZQAuQmg64zuN7YJNPv_3=5y1;@^{Fk;E-L5T?Puuu%QtD#~ik#WylH@L7E8gY5O) z7xGKpgkvw4xcW=m6)&AsNh{I3cB|c%g;t_@-|cyRfsV(nBCn5`&!1L*UbpL$sw-0X zsR4GrZy6JrH=z0E&aIyxRSv!uKK#?+eu){@_f)x&Syb2Yz3WQZsY4b~{VU%;vfi8i zYW)k=0NhG1y!~T)+?Z|C)pu^rIlN`&QCB2&XoRA=iNbepGihJX5$!9HM5*$&I%gU^ zcEvV+%P#tnRAs`CH3@n+ymEd{x{1HYkoi*7{r&sfZ5eK6-5v|54^ps{@-#?iL%Y&l zLC4R3>rqWxJ=dFlrAtOi_VCVRD|y@-j78@K-8#0A+jnsL^Ip4F30o{lPXnho_v^^=7VyA}=w-XN3nxtaKKmBg%+%>7efOjGD+ImyF%tn3vs8D6K3#iU zM>0p&O%Zc*6l(uSCdnPgml&sOF2ppnATymBd9@(smdiBm6MFxPoPe}9yVfWD>mF7H z%BIBi2^rJel=~5_W^?IbAU|%F#a*6=Zi;SYiFkU_U}v?l3hrr4hQn($jS<;IDY}sh zwm!LwKItYZ`UOJ&kuL4R>s7VM#K(Fo_D#fpiX}4@oTtu{)&OQSZvQ_)%wGE-%l%%v3WmW+et@hkR`mFw(YNmGo`Wg;D^ z74cC4TzST1R+0Tk6=@k5owHVLTwmNk&E^NtmRl*JG*?E7Ys0xbxUfo1ihUre+P)mF zGR${!0&AZ$ut&vp8L}q?-yEOP8dv~DMUfUY@?+&%YOoXh?9s{I{6!NeIU^V^A6GBc zj?C0hDA15Rj?I-yvPJq~N0juPh}@5s5e7bTPN>36s3n$vFe(~^#b$j4WeXvmm3*QG zjz?p0GEatf)u}=@yR$As({Vmg*l)M@{_SENC) zJ9;HW&=D!E65|L58F-Iaq;%0p7gK05Ta@nQLqi)yl>( z8F10?`s+tNg(zp<5@ejVl zBJMs=cNC+^!BrU<43za9_+-X~FhB66oI-@ldQfSWm#nhv+dV2aDt_jOJy|#rHwVSO zFpu*x76{0VPUlt0Ir;@~+?3sZ4DcKcOz8GgV7>BjlS+P0#&g0^Bh6HQlD?4BPfuE| zXd>kM!0J}oce2esG5!u~c#nN6i-AfQrDE-ZFzR|zJZwRDl9>u!Kv#@}+VDZ?Zj1^e z_fpp@Jz5a%WPT7J`^9Xf^EAREy*ItV8HEoqXNt9)j&e zBEvJ$>!rbQag!}z-b=JX!L$y7R9X&o=Ov+;0`c+fmu16EZ5YAQm>2Yh46e}HT$m~P znyHqqS5ndz(~h^_Q54$437Iw_S2XtFuR>B^FsbkL;Mjc=|TIE z+U2J#5jnFOxr@1RI2X6MIexTxdIJ8G`wLz=(Jf^TZ4Tsht<8* zr+xuqDDGThuCY-GrwhDNo90daIWh-MLX9*7-$j6R8_MuB8&OeX);QqW3xqXpPU~if z#ND*z-Dq#O=@{p-Vfo(j+cj$9#|*+7k`KDGL?i1F`YHO&{*D)LQ8jDeo&j$9YwUveyle8hwQ%^FODjlq1R~+w7CIf)ron zI?O#eaq`EdFYr3^Iy{-}8Q*!&WL0OMzJSDLx~msD>~64j3xa0a(l&e@DAEh(C2iJh zJQbC6t`wxeq;PPhVw9*XT0eOCcG7@3-7D%HsnF-P;dJrAu<@GA>omQv{yZcL#D*H< z#C_3Q31pa}EdXwgi&?MxI7Kzx_`@y9nTb{-dW%F%5< zg!5g}BH63GdE?@}!iyRBN>Eqv){&^?5sfc$=5op|C40Irr?(H6DMt-U>+58y58OaK zJ+kx1)D;dCJUc02Wcdq{jRKEXf$&SooAP>|{S=;$EyiG?am${EW#%7EnH^mfuabr- z+8JuwEt*&wUZ_91@&uKn>C|Yavta1gFVOIAK=&no=GSYu_vu3cE;t!R7yFWV)A%duR^y=7SOp~)hciVTv{fH zPPjmc_2izTyi}!MO!+Ha&$YyM3Z2w~&)>`vBl7v!w8V=$J;zG57Y`J_KHd zZI@2F6f}_KKO==!K@y5Zg1XRHI(!BY&*$yGX4E>GZQ04Cug+_cXsCV_`O+tv`>tsc z?jc2oXnm_bOCpCr)Tb8)BaZHEiNFIhHvGHa6Mqb0bzmpku6!$*8;;`tyv8mlSJM>V zD_W0b2+HNvir4XZNAm;JMd}bCUKxuIaFOmT10{xJT1h}}L8&xzF1lTIOilP}j!yx2 z^Y#Sq9A-KAfn54p;X7Q`Vdd+io54ShIbzuY<5&E9?%q(>^p}JBdT`lcxTGX=4&6A~ zoQyE}e_4QA87*N>wfMJN$lGyg@x^7X4t564#5C6!D)F8O3D0B-lb-gU4_Ykqq zZtNYGZAYe5!*`%!(4>i2lbys4agbNdGp+P46eKF&S@$+)=QlURKFGwvGO<~t+n*Uu zx9#gp%O33^9(gg+te_F2iH_Hk-Hg@>pfi5|sLs6Pxp8;Y&&=M}ipL#IOvt9VgT?(| z9PPsOC|731+Y$Ay3~ZhCmzXBGbzaca@LcLC?$kgx_RGlTN5%E!2W%zIdRaYC6u)ni zG9qgz7Zzx2psR8}UJE+vo5CAe*6%sY{;X``fpQp@!4a$XNhvPagL?!&&%wtPOM1Fw1we+-dWmcY8^6yJvOkallrRjMA91x9 z!Uws#P^ROPlo;9Z!*l_i(Y55Eu%n*KcqQH8R^$*{(F>cRu3<05?^>@FKBck$0x*x>IO$J3(MnuR=-Ytp zBj%kigVKIjcEfaa)M^u`)2zkpIr0sjrU+t=OtVJ0?^x#!IlYs6X2^JBxzpS^2zdyR z7jCji&;4+@*F)t4_cWz`<4>V&b>Ng;c*UV^WQA#71H7WL09Y@d>Wt}B++ls={X#=_ zaIoa7-s`vUz^5Bt-Q{$e_ML1jPT@3mY>!4^UK27V-$^*uqxm4f$7FM!$rkZC$)MC7 zqlNOxSNmVInUHaVlcrkx@az^mK(70w^`!T0d-<)-jV5-lyAKc3datwC`ZK9Onv6yj z)mb(Kcy#J#SWM|^!>>KX=+rbj=E`O+nI{bf^Irfg>{1mS`EX5jbj*nwk#*=Q5b5v= z?B{|44~EYB`^Sh%^S}4O6!?E98^5#hzT}G(*B+eiL+icH%vaSOi8p};!{bVOzW^Dk z{_OS-nRljMhV|?V6_;2Zu@sw*PQ2tc;%P1?U#4S2SmyGJQ}BVTVKU<1vCPfAwE{bg zG0pr@-KjJ%MJw?9WeuL;IB+?;fV)RJSX|kU+!dOH#YYA=g1yrkv&?WMt9f);hYgEv z-ru|SOEctiv86KcmFrL34eak#)&V4o;SY?y1krbG*{v0wn z?~eevt4+fdhjh8aA}~Xd>{t6Q4X+hSSOz>50@kPWcu>GGsl2P1f~b`C&jPwy(0YS3 zKcJ(Ckv<$^8&i_pihyVK#bO$ihji@AS)$^+ZYm8P1UGC3QCe3wf8v}C`0*hrPE}rq z<-#8y(&a$B;ulkt{Ua}XLUZMm@RGFir|6H4R^xoNSl#a^143r?rxyeQN?QT}rL6$T zT>sI2Oeobht)Ug3uRZ+Gn9cqvfr68T{1oY(> zByCl2wh^f0sZOcnLyHJh@)rnH@Jo4!-3!LCuETbi(4W1+8)NDxal;OmP zci7?46A2ExNDfyQL*6mi17787UWrGX1V2`W*eripvPdBwe~jRa6I?e0YJvsF`JPFa zw*K}JE{dTaX^q`N96xz@=KWi^hLrcS0vmSlp|21cWVUof>lorG%MS8G&rEQ&=?2P} z)G=MZr6<2_a4VLAW{zWe{X%>t1RLDBKdh=m*niskatKyNv8w*6hw^A=Bq+<|)bAMT zHA++iLx_S-lqV<<9KjZ{)}g#Y%&&5EU`>Wq0HW}iGb zvvbZM^P>C&XB-iZh=B4lJ102R9b*Pgfi*r4J9Dp9xr&xLV=adfch0P@|6POWN`aO8 z#Z_5(wDR(8=Bu%q(*2#ae|s!RWJ*VfUzJsX`2>?YjDyCmp4nHe3O z?DTpXJfL$LWG^dUE_^n@Z(yW9?R1}yS$z8iNGTm(J5Ji0de*5UDMM!X`Rir0K$F4* z8k_qaU9k1aF70T@2|Iywt>akX5{P{=@J%j2-SH;5r$6t-JZzyIupje9I;<}icO1DK zxY#*G1&Xzg&atTp4~G^T(^)SJuQ!st`~?VcR&(8s=Ujc`HEGZV|L|e%8$OnJFNE!; zQn21JP49n|)*SfOjB5MT(K5*}&47k?0a?XPunizGTz_$kOhZ#3{r zA(y-96H!}-kLm712k{ehS5LHDWgmxj2g?pW{)ut#m0C4*sB4u1t=J#5zK#&u%RG7V zu<{m5pswD+E6U1S_brS`h$EnTvA$VUzR7MN*$3r9mZHAt)Xre6(aFR?)ZnwYBmF9U z(j5f@|J@#IMv4-!OT@!==g*MK3m`2sKG=`}KW2=<>rG40TZ2M(v%QIR!Sq#ZIVw7S zMSeEqOQkT}X1bEWU?DB~wZuJ}58~6Y$G-r?cx&Eh6O&pYt(U8@zp1St>HHHRdt0P3 zB(i9kv`8d19=kaDSzQvltsm0l(3aGCejYrWxh$dne19#F~EFAmPP$Qor2_)p(#~ zlmTMCoTlB$)EzKhG0~-Ol>gNn!89!(YOn%VOALMxnS_p=_y zecTt5ROV)y;s(ylbd=oTBe%!A+0iWj>}#`iJ@2b_>W+64gE0tCAwB-{Gh%bxTPV}` z?MZfworHwsYvS#Y$c{|joT@;IyWy%@tr+}zIe8)WWT z^p%yT8L8N_mS>V_bjeMJ#9>nC$F!26XjgQB8jQsZ3$J2G@CDBe|oeIe`_F)asjJkc4c8NukEeaN+7!AgBiYN2IQd--e4TS6* z4RUt6c{vc%De}-xeK2TK1&>_R)t#q4x5UqoL|)=(*n*A*XKC`b6c5}S@$LsAofY$B zoCQ_(2aQ4$qdPX<4-0Yla8n;78Xc5%u$i;EIox7m0mU1juEO@3OpocL($tBxJ8IH7 zQGVyaRuxNHFN&Va4y*?4@~MaA{{n24fBFUJ()b1VUd1k^UH_UyF@d~S?fZw2pC}1K z_zyUCA+d1!?X*CG^{tV#{f-j0@Sbw|tL>d*n>P^&P7mD@(Tnt&Hiad=HyD7c!~`Th?+W3ocvbm{l_Y+{ z%h6Yx^orEQMLJYItIsquaO_c-B&KMh8i7pd4$zAzS+Xi=6w31Lg70K4a{HEzcLOK6 z$5nogegEO8%PBN<|G`93ZgH1g0sm?t`h~;e_e#fq{Q{g&b>kyf?eMeo?Uk&eZeQJ# zZzm!;FIP){)SP5LA2r|=swO@+Kj)uo-JJ}A{RDA{c1!KBJnkxI*jIC49rRh07NlUf z@LAF2u`QAxCa#!{(0A8EiqQj|t1U%pcYNba-{UfTTx%P7`95vwz6&0eu{NJJgv%VO zdYm7r*_1t|-%bx}r?{L461J8#6ktnG;$^F!Y~ri*Qm z_vggxBV2EpYeZ|Smqixiv!$AD)e5a&>R|$X}8Q5 zUeV#*+VSYk4=O5hHdvhV-RX3%S0UG%)EFw^KMyv30ajKood`uv*k7WN98T|Y2gQmR zjc-fV+v(b|CsphPyGp)7@KIEu(W6@VBd%b~>%b-LyNfy{F(M5z*3M}$f+3crm+NNJ zn-~$mF8FX@Mw^^>_rQ;2+ZLn<=g-X+5R;@U@^S^fgS z)u)5#0yc=Y>Y|z^JMXgGO>gUI~#%?=sHCKH17&1N{m>0~%`(j?z zs^bHYlE0?nzjEu~eU^)e-Nze;H+})UG8ujWcJ-cr_VwAn^s)H@)aZb8Q>M#i>&T_$E~}_#uc_v z(e7KyU%-ov>`2q_eBARQx@8AO z7OW$X5z(DmaR+eO{6gOe-P;tPiE$hb`#ei_(zwilyG+MysQ9G}-K^~E_3Xy_&t111 zYw1P}7kU{FGxizIx%5)aKh3~>jGp@Tc!!RnHhsbyOSfgy;s`qozJPSw2hJZ$;2=5- zZ31|i3CJ_uLT(~gWBt608D-4Ihn-ahzP!UN4MC&27MCwBZ{W?Ap*x6QfRAp!044`E zX!V2iwqJms(;Du2wRlaDd!V(9M}6{VcHa8-i>b@GB@xl!%ud7q5@nmIon$<+y+}a(rlguf#i+%2wI5MwU$sr&Z zypHw3vdrCFyamtU=Eel+rAQADe((k2C zY!a-M?zdaRplQ2LbLmZ=aO#*m?-r;|DlpNLYgoOAma4m<_11qPU|22r7hpNV(43m_ zwf`@`t)_{6Pwf#Ff&0E56d#*bW$pZwe==xK9F}Up9&ED~>wcpREYYAKuD*4Fj-5WD zDwEuvvp}&5%pM!&iNyyG#4L| zc=kkDQw34v8cqcOQ&{P<<@i^U@i9ZvDsgw*uHTzmWVv^86pMHN@>C~eU?veVHE(st zB0^XT=`J6lj$5VMJ{-2h;2qNj_tyABu+#Sp#?n-#Zy3RA_MGJE$4maB&EjIQd5F+mfe;5zzx1@CXdi|puA9FUd>1H88;w!At~}EwXKEm1%ZO6 zV;c>Oyr8cjPQFdA``~?(`S%#9#?Le+1xeOutnz>T}=(?Sui#}xZrDQzO# zL^L>7-w3bFTZQDgV;)5e7Z(W0qGQ8B3Dr4BEV2qe+Ie;)6w=6ZCB{3m zqVny`qCw(7h~b4AtieHomic?J2E6I#vgtzFM{N9l{E5F#%-X_?k4$&;;g{8>Y!2Bc zYDI45Qd$n3tRp6sHP6I`o{)5ojPUQq<$$4DiW^FFHCnm#&oc`KwAY%1J;O8UH~Ovv zyQDo7bah6PB;>8uAZ$)L+T*-Tt3}laFQ(#d8OFui9}XQ*jj=^PeAd@2wXF{jgowB|jGQ6g{`y3cNV7SEkMIFm4pM z%rfU-sCs@~$59_Q%rbaadT9UbCu^?S8VKicEe7;S>fmu}H*q~t zbg+D3rRx2_-bigFgO7Oz<>?82kx#KW6BObBwO)}+dO_o}+Yq066imHpoWxT;8@Dqa zSE7FYBYWPQGh?gm=ep|!nU-wc{?Qn8R9vCl@R#q_&X&$%Z-Zh^Sj$^jaSDl%Hv^Og zruH$j-Hk72e6Tb3R)V+(`DmZsj{7^R?H?c7fy%?MOZfTM&v(F=vHS}V75VCqP$S)c zWATBUnn;+jj#$fNFdu(rLecIF_J4>VKKDv2Ls$kW=#0ir{*J|BLz=9@GQe2}>A%eZ ze}o=&oW?T|{SkVUq<8hM%j;3fZAx4LV_@af96XqD&udoct<#3ku|>1si= z4nAV>%mnkN;0FIN&=7>g^he|y!KS46Ibx&<@|h1)AdOGZIqfqE&Qcbe0iG9qxhhF` z%!n12g0!s3%#;S@lbnv>zI&>nJ|9v+8PRQ zr|E+b7s-)gLUzg?OHBad;5;r}^SM@TogLK*k@10@8 z>f>f1Wf4}If=K@1U1;W(bjq@rxfn|H-#&~@4kC> zx~fnS|Ia>OoA2K1HZ}eUeZ9uBdy1Cz5RZMu_|xu2;TX4e-j5f8#6L9lXl?PkQ34Me zNyTpnum2Okn*@?Hom=Um>nJ+1y)MKigMj!HI%#3Iw+oUGdX9H6w@v<}t!zD#(^3hF zwb!(Q3=5>ee`g(%I%`v>|Ii`t&`d5i%<4&2-NmCe{r#kr0*{6Mm#0bIh0<6&V(Doq zig})XJ>FY)Vfa+UHnA9Xxx+ZaLo+&9iGTtgh~Yhv!Rak#JDxGL^sN?NJfgr^U5Z6! z>~{JZ{7!f`8|JKMHer$a5SUdn+Sxpf(6a{{{L0s0=yyxW(#>toIXn|%rnoIxeC{FB zY3qO&;{%0*nugBby!{pM6)y{zj^RNU z9#i6~qsjF1E?Xf+icU9>i&k6#ANDJLyW&sfnFpOO^ig0xI0CAwxBmj9LD%RcBez4;RCP4sN$a7nJ|21lr?e~S{e$J^e&*#1@M ze@78;r!0OE>#{>INN46)|IFo<_+ydu{u{+g|8!Q7OzHX76bLl+3p(9SR4q;qi-dz= z8O^8oB|v%C9hP$w{L1MN%)6DpF-{1p!H9`5k_GZ68asSbX8CM|FyYrfVUY@^87k5I zL7&D5rHB*6Q*7IN@Po5b z^?KegvWyR=3A;;@r(2aILkMG-X-PERA=Z2lezpzZ#gHGDu@!~i1|FP^QiL&L3N{kW z3eo+?DF5E8#xSW{{CGH+vt6c%oF)~MUw4~-@VV5V(mUIu{*d0;7U(rb&DXKe@Wu^Jo%R- z{=bvN{LW*lE_vV;frz!Fj-tUr{5!s9YuBYK`!ve7>VIDWgI;7K;`c+T2p0^qkI?#z z$bSjd{{Aw_o+HyCn{#g?<8yLh~@-5g0 z&-T>KQTkS`QZaSR%vMK!2HkgY)^RLG7>_~nN~;x<+yk}+tVPP1cuNj z=5(-hHQ(ROowY`?f;K4Yn`~G6(dK*&T=h@}PwTQvXrzK9747zPaI#(EM+f0)JloR) zoBYAe)UR<3c($h)CG+yTwv>kaV*#ajggrdl6VUs)^--Gq0 zXq3%b!wn8R+Y_OTA#Tiz1~ch*{l|9_f&>BJ{8?cfp6%(=7$c!(A?M8UvdQk(5qP$z zQvrtlQ&?wRWca7BuIdwN{zF&WL&8MQLqaE*|5nlKMZnSjm}>a{?wvsW_+p)~ zvbgaMUX{MvMB6MAS4AnF3f`QHc@KRYtm-<%kF`uHeQ@{t*^GLy3&scIpgv}Y*vg3W zPhZ9UJ>9|yfB(5xV0=D3>f_@OJBz%OJD=X1^NcSrS(T9sI({X6(0wNKYe>Q5m(~IS zc+9!qrH1mq2%;J~MN{q1q%K~Q4BNu98hz@!dRE3=J~_%4S6XuLsSkA4nxWvdww$Ma ztJC5u8^=m3YCFYgz;g@P51g zJRvyZ_g_Lk0~yvSo#TD!{JXVvFn`J#9%@z%_Io14x`QI2Nu}>USZ25UF7*%ToQ)08 zJO)m|vegTHNE@ud=OjAgXWPnIPbmK(zu&7>ndf{H82e6qnbrF%V1uv%n9{-dTX+(s z?|2fWvsEU8Q~{@#dk!q8Q4q#N>CQjVH0j-<^!4IdnGD1H1x`@O+RN`>0R^Yi%mMK4 zA)`AvkNdNQ{)Ut;S5>B%!EZ1x$KIw?kX$(h?#Ayv&mZpOpL?p>CNBHsFDi&aL&`UI zB9qftIDjPK;;b0v!qnDwfp8&gU%j6H4PuvbMhE)W&Du?fhS~3gm5pSFkR43m-BD^v!T5$Htw+#9lp*`Oi zV+22#QPrc;%oD3xBsaeGs zl}>y?_<*-!mYjDRxx$(!Ql5KpKpa?9pqPt*i6rxX#a>)4IA)Xbe@_jqpJ>|%6v=8U zfV<>L#$a@)>bsmSejTWyHYxG_axwQk%vyBVYJvDb;?8dyiA#v+l_c{iSEno=a1xlJWV?1-_}W{S84L`|${MuX`qz=0qd)z}6_WWbCLzyzTqK5e-D35c zxt}j=JN0D1Z%rz1c3mqLM;Q8H=|sKJs=GRwp(l60U&_WvGqk_ysF_-M0hzT2*e@u{*dN$4S9-sXZ%sclW>?TQ8 z+}*m1t2vHH&HfCe2+mc8FFhZuWWc!3U?;$xAja3dLT7ivN_6GpGhocMw2p6*3sYL> z#!_S#t{JTwiKXy*1YlX|6BZ>i@7e9x*|0vG(w_Pj*W)=BU+5V*rQLXPahYR}3W;lA zcn0zSHz}1ju+CYHb9$*pDUup>!_!z}uJ@%G2zGLChuuDG<`(0)!dXeKM}~E7se`4tM`p-@sm4h&%PCoc8|&tVPkyX}uM@qyZz`5X;dDG-j zXU2Y^Vw3%Xoy%jp{FM4*@U`m-rJE2Ge>#d=?BpXiJTfb0s<7>#BJsT4v9QbXyg!x3 zv%UfP$4@!(<`=9z%;Gw`l~mB;Ig{o(V~v+A zHCqpjs$O#ucv3jBMEv{!)s_Su_PVxL5@~Jw&-N0n?GMzR#w>xu51!_D%7;0p*+@@v z)z|XbazI%xPYWQ;nVfS$tm!e&W*2vUsO4-+Jm?508U%DItR9JzU9E;_L3Pg;QjO{4 zR>9sNldw3y=a_@gpv~UP2BlTR96&SBXqb~$mas8I)g*Q4U52Rlp1Ia1m^ClvQ^@u) z>Q<%7IlgUI@p-qi%16r1U;awBus2{UOKqFz^!jgLN-2nwPx#ly_!I9bJ`+Et7_IoY6_f(?S)c zMCyjI^r9Q7dHO84A>+}7_JahnJQ4GL8s+BFfz|1O+D{=Lxk@iI(O1}&nUu00e&|*9 zgfMZF^A_n%5x0Nq(c%SRJuYID(^rBThKu==lroppVv;skx?5=HC#gd%z|)3+E;Aligb7Gg)4UUv?%jbTw^{j*)T(a zahH`|G+mFn3O1PZy0Cyxas$(g4^E&!dUqpuR9Nxe$z%SVn_;gV=-J6D)X8%h=^kQo zg-Hq5`b<=3%C%U6`@AJm>f(jc`BhrsoKTZmd>u&g|YxOik4OB!^^I*eM zg)J$=cS&#G6Sno^(eH&)Ms)Dknx=5G(h=)TZBy@a!u4TysK(XHkdxE7?*$+8-Vl$! zbXY?C3n2V_jjQ1&&mGbV2fem?QP=Np5S_Ao5d%(HzKDs0C02~z)|dirhTcKV;Q1#m zbp(zx0thr`ZQ%0Nfc_~F0DSFUh;hGa*+zycqzd~A1g3HQhA=f#O zZh4mbl;C%;C0tHlqe59uU!y`<=5tz@`@iAIIi3)$mLfy#OBx;Ja7ozftl|%W!zPBNCBJ zu}YK8!(W?8o%Q!3{n{1r$-(Y(FNN;j0+66jc;0y_uq1!MO?PH)$z3-G;7-d}%VHkX zd4CI9dtcus_IQ=5yG;+b5Yq74y}39%#3eqXAVn@>R-(fZaO4 z(wj7}21rvdiS*yMC@Utf!Jf@2@o&ljPJ4uZ>KVvvlLH;V7V4Z+Dw|?e4+mRAC;K3E7G(8r5Z+6nf^!Iq$3~L3Cqia12MElLNI!?O}fUwV+ zW&}up@z{8TGDe;65aO8&pOoKj#hi+h=nqMqcAn@@NfAU&^oOK6PCH10GR#o)MwCo8 zy@wTU;mO40Tzo~|b)-`)m|vll=tO`yn<5*+Ti<0s z!(9pt_2xN#O45#0`b7eth;I**QhiPxTdXj`W{4^YOt7+hWdpbIF~4J6x*^#sPIrHsMRN zQH*%zJy#&X*n6ARAWV0*cVBy9A#`J?v#WhkBr+mzyOo%ysPPgdyS~)6iB~w)P?~SE=kAwg8^&C)zH}K2pXSun8(kPqOHQ+-xlvefSlD$H3&PMHm-3 zRxIN#IQ8%t*3(08t11&_aWC8^t)A*9wG1i!3a#cx1ha-jdZJaB<14|@c95I3x91!4 z8^O3-+KyvB&uUW7hjc8Nxx#V$_v2#oB=0BzGx^1?F)i`MMhnneYZ$p>Q1h4xwc1^PujTLZTFc1B)%dpLo zyrJG1OxNSgwg^k;5EHybmV&wZ(GQ=tLPDe?o>Ehnb5>3wjhx@EhY z>-gS2PsI%;i;CXbOP;P|6`Y49(ismsS{=+Ox%!)(=S;;6;1WDteF=^a`ILrr8?u>z z@TrQPOOA}B`il%z%1qd&mB@!f-D5QwH;DnJVXi0zX=U+xXDqx(fh<2)peV*0YA9&8 zRyi7PZMA;|9>_lJnaLZPv)U*_mh+cq6G<*et9VIr;;ML2z5g4(IggxvKeE1*;Bsi< z(6QW8;p&a34i53BlEe24g*X06^nMf?^R(DMcP#ZyDS8>3l|Eoz0F&fSj{Bdwp8s># z^nOd{(LLh1oXXgkW}!}H`Ov6N4mw2!S3V=y`NBG;*1G?HmB&=if0v}~M7zH2J7m@+Q&=+4HaUXOEj zmpzo(bd(s3{@U>))iT*D5KB`O81tz44syWs!|(fGXd zC#M!Fg^Tk!FBI7HEsc<3@vB*#>yj59v~hLgGyi+E{8cK9$>s{SJ*30iuZfZt!(w7$ zOu;x~wP{8d#~ctJR6h-*GeXq+Z)d{DWd zzM}*?;Te^WRAM#2X@0q`|Wl2xvsgs7>hncIRq zJ3as$ZUj5HlI$c+HBV@B8@AW!!7OGAkT-=j;;wd8(yXIo#og&k={!o_VB$XUadooP z``xE|mmG*G{8-TwbLU)4dmI}I6OT$l8noAs<2-UE(IvI{%w!lx7U zQZ~sEi@~SDHC+w^f+FGh#n%kQ+H^!Z9OIti!q6FVAQ71oXDxVhQAJ$9wOW0+{Pcd+sRSu zzo64o0e0ObhA6PoEP9CR8)Ui-mg;R8edjtn91tSge#;ctkyF_oo656*gs@E(ex53H zo6Wc5s#aOhavcQVGu`00d2T8)YPBjL-qWvqolFDT1pk|h2D!(nv`LQ(k@y$ zbRwLMYShlK8oAm9%#Kh`SsLmy+l6S!(c_)?Ho7$d6HrwA4IuS@no##?={e+D2e?xCz2)Az{M^uL^ z&8671fKIgpk|I>UOr2+)ZgY7uLE8}QWGp@Q2^XR&H#2}H2`ZFzMK0lwa>2c`?vu{0TTFSo2#QrB554!8m z<_-SVxYRR&+?#7DP8^Uu`3if+`;xp{D>XiCeO`gd_0Ht_CM%9d!z z0zv%~oMpJ%HLD0qSt=d=2s|Bio5)%EqzOZB=~Wd2;@`G^Qcr^I|9^>aj=(#2!68cL zz8e*Qa3Q6p-fl523jq9AQb*6X;!`?Y--!Gtl)&C_&cSRJE2`_v4H-L56{L^<)Z6pc zr2@LUSNVPcJZTI5$a%fM1#?WHkLSvmE3~&C*d&_@idU2n(|FyO zI(XnKa7p)BCrVsuuM7+lMY`j$WkyR3;!WyeuaG!5AN}Z_P+WvL>DB1WXJ6P&c^kS>ef@5T{o46iL=|M(nxRE| zbcD$Axmv4~A9-UqP*WRKx_*PVaSK2}xOr|7RhH;sPWh;T_USpoqYTj+F~c53Clz&l zjiG1FGFw6UUpDAA8aG=P{G-0^9BrCB1=FCntjw1}NyOe}-$-k`fBOZ4sLXBM29$}V*m*jJuoNoyq2>HeqU2uBAE-ZapyFoPH<|?5J0I}LUrwhiybprU`Mdd!d zU6FXo;j3Y2hV~qP`BLHubeb?u03OLp=*xik*vo}wwa~KD=0c5FDOAA9x%-{(dDno1 z{sXMs5s$wN%zHEQ_@0UAoI8*1#no#iYju6ko7zBU^(CWfp;n>~%=;SeoDH2wIc8uP zRemW%`_;$awHdy!;(wOXuCipqc_v6eMiEp?)~uxE#aGet?K43FB;-r__Ln^yC?6gD zu5AdC1C9h|#HdbNdoQWocX6KZ{DQrlJI6RCVGN*^sLcfjc_;d22R7(GJsUSetVRr{ zjz`f!xwOO$z|ov_{@9%L8`L|#kQ;}gck%Q5pb~h2%JweR@Wn;7EPoOy&~p;4t2O%Z z(b{7+aB0DjfPVcCDcvt6_Yxd37%SH0pYCWf9Z@VbF@~WalVeCt7~k&0*=nX=0O^ur z$ku+F$Gfz;?8<^K}Pzh=w-#)~K+>N0Y{ zKHcx)L^%m;kCp3(DI-7BF}d|FrG~+)z)hvl%|cIvsT;APrY6j73?mC0lEmbLSa~4g zdmy1kcc&f1H-kHmSZuk8;}LYYhy( zhi)3JGMiAnLdlyrevS1u*K2%mwo_ZW>kLpmfqFpjzni(fem-b(MTjh%L)jn;dTUP0 zx`jxea2$}}CXnhLP>+-?X3*a6J>9bpIs=|$uI1WcHYp&SH0NefWv!>D8Rb8AR3wFB zBxKSY(V~6#{qOqDXCSI#rmg8)w8uxz4k;SN2`o&UuKs3w^RnM!72&iclAm-#*P5T- zO7i{3QR0!KeR1?!$vnd@*5}KbW2#=m$Fv+dXC{cG4|0pwrJB{}D8gF0mKRfWpQL@=}!gY{?Sj-WC@IU1! zItqW`UyGfk4U8@NeUQ7qFuPGF8s29e{*ME{CY(dF099J@fw$!!3Ix?Z^cDh;3ZVB4 zNQG#Q0Hgx2KlLWJF%rDVfUevY+MY)gp$CAP@tRO6;rA=%lQkq)POavE|Im2esTq7J zd7ZQEzofIB5>Lm3{>L#u9GG4op&q7A=I~ADAC_)J%bP^VLga;W(3gYHOI?lzZFaow z;0e>_h*x!pwzdUIq+=uVckUZ&6dZDJg$ajimf;?MfR#v2@3BX~Kl6NN!n-_WB7l2l z40cqgTs}U|n!A&9Ks>5`R5>1F_ivQls8INMNd?NChhdM>*h4ME^~QZ){A7nc|1Df!pzKG{B z*p?9=OxyPu$jo`Y%7R{oO#TSQ_)IF0y(^u;S4)92#~ z?5!t!WT2Rr3tVV*x~a9?3YYES`?PQF5$yy# zfUnX(Hv6jdh;~9UsFJjTy=s=J-uD;4wui&vdR%AR z`S!Ysa0``q`aDilM&5KvmEGI}h**}vcqi5nd?|P$+tDVfb@g?0LPs2I-(cUcXR%y4 zrN;_7nIlP`l1oQRRUZ&f+7KHdN5_UbSW|i(NZREO_Gj5w)7ls7*!S?KU8JNyW|D;$ zGHBRE(Atel_7{96n@nPdT$_(d_bU|Tj~X*KH~b_=uV#Lts6ycoq#VRMzXNA7-IF7x z*6q?6uX#bD!@d@-!FDZOBNZtt?eUC%#=1vrcx%6;)@^9m>SZ0sj|!-vQO+_Us!F zM2aB2_ZkqS_bxT`(3{c`6a)lBDI&dNAOQkFT0-xFAR2 z|K4}YyZ64e?th)7Ymv3Ty=TwyMDnD*`<%$cse3^e;8ML#2ESY51gKdE2TgftcvHz}MaZSyghoB= zI;*s}n-r9Lk1ES9NrZ3gQM>EHj0so+nm^&$pZwIC>fD&S#R}x%4*6Tlx|{W$5hWk& zXi5}VMYqVI9a>|ptVK>cT2jpkCO|GJLB>W&P)J--(n|tAZqDx5=J4Jg!P=PAc9v^S zMx?dg87Qc3VQI^~vrG9)-1=j>Tpmq1AcTZT+HIcOaQe10Z%2;fax)lIBK>0+O=puB zy6zWzh;GidfF->s{Zfz*oyxZ3w>Q)q)VIG@25o8-1^@>tkfk92(rk{_--Qb3d%>qK-*uT5h@(bsWeO z5m&@n`#9G#*$)!!CFI96;$lc;?uYb~&_`pETL1?m55is=?Hg|nZz`a7auGDg3hn3a z)a>UFOxhNAx(bi!OKsJS6!Jd4%5sk*{3uClal|K>SdU=s{Y$g+@(mp$H-!BzyA^R= zUKN)wS4WoZQD#QYn?m(9&lqUFhPcaca#^4U6P6`Q(XOxk@X(?Z_j@wGo8$ceKrKI0 z*!=)pcy?wIFC6>#j93@9>f^Hj>>qq%`@y`LYo-68qiR0AVSDcVCj~SAm*qB)(86~Q zl5h$iQUe7YQL5xE*HBwc)zbiRFJ55d#GUTV14K{v<^f_@_X2MQ>s|o5PM3s8!spMw zR5AJEm>vT`W#OIqB2MY)ka?d3E-f&8ObC-RN#Nn_4}DagT;rOst7bK&_8hcOBZYkz z*`?QO+6^!TDOPL2>dy-b7k{?pFeptl%P z413y^X zOO@0>gUQeYJj)(rSBxDv{tfAGZz?E(vbSbv-=l%9)I-ON00B>qu_u~(0bvU@%@L=} zhZ{Vemzm*;gFuS|NHF)EPvIfRj%ze=wHy~(r`N&4Lp=2yW{#Gz2oa2arnHC!8&A4W z7;J6++3+y>HLg!@>2JzYESU6-+@+RwxITqEIiT^~Mgf5f)y*B)K5v1q-4R{!R^*Ptzf=6YPErG7bO@Xt;3OsX;0 zqQ)kjjCWTVh(?pnOo2a^&1gDG8~U00!`Pbol4`sk#a}9~PaIN_d@)%`9?_A-Q0ZXY z0OM9K*pmmHjYCdH#^0$46>eR=#M|hfbN$lYE8mEY22LIvr>U%QvPbMR<4wk@n>3Tg zh$V5Bt4DX#gMe=}Z|f%rcMA#Ymb)1=JgT@eC2dKuM)8^E2cVfvLFI(Tkq8sJBoCu! z(n?9b5FdMpEcqsjX;PV$IUpK{%GMt#jiQ9j?Ly#;!7D1owbJnX4;`DSoe9AtqS;hw z5gi)sBGC3?6G~mx;fmzICla0;0n8Fyyo>_KG&taMg9Vj?H?31FfL=W;&-67kO!nHu z2Ss3~&NaUJTj1%(k=KUlmIu@zR9m|FP;Cir&X1zptX6|@o69|maxpX!1=lv&OGXK` zpVFW@>y694WLG_0DbLo`%bfl&an6-iPv@hewAt8|Yac)zSjLjun> zmJX)uAr5#s_9Z9IcA0*yYY#csHRHk}Kf4))T-@>F;spA}=)_CwiDSZtsO!Y7xZL8J z6FZQNLhV>6)Zae0qb|c5)YpmN6A&~>;tmu{b)$;(c`zF1lhNPO$VBW1qS95@Sx0Y# zhv}(n7Q!~c-RB9T%?8y>D6>WrqEN;w>hUB|Rb*Px`hDe;hRe;d8)GM;J2oksYqyCC zM2naq`!hFIduAg}+%-{OWAw4JEy9G ziRq*1=?(A6pjeiV-fT~ZD6XTYq}A$PEX&|bM3TcCvBMmn2bvzw$Aacvf?$#xOMC<4Hn96BA%QKO-V?|;WdStE3f}p1J9P1og z=^o+>kW`E`*^+Vg7}71|IlECWM^h3;OUCeVE&-Ply(`M&!6Vnf19LV>8;pMN@Su{O z7zJPRlW2y^7@zbUP>`d@_pNb|CTN&aMD*x_UgWhELzxzJi**~dIa6M9_>lIo%4BGi zm0Ha1akSNRuUUwOn>be~;*ujxGT(Y8BfENi=Qp7mpq8gU%FV+jX>bF6&~s*ott%wR zxrX$JQQ_k5u9h=b9%{EheYjFaeZ*)arAzDen7+PqLW&({l~$=goX^wL50*{7j+B2& zy)(+d@b0H}Xyt8&cgX9Vqd5DNqt>`CSkI9Kyu|K$;Ov-AH>OYxFCBGhgdIk3>bO7F`9hwTvCrF#%+E5RYI@hg~Rk%#5mwBL(#Oacx*1>qt1*(gjTrw_FaIIgK5 zsAqm87=ww>*$U_`KDU@cdD*yXgh7e)^1=#>b2lNgM%%PD)6yh2-z+zGd?ktsqL7 z#_!l7iN2Mi*?d=I$YH>4fp}sy{lViky?OTLWmv#2T#vC#&_pq+8M)0A-;ma}C(14= zO7Uv9Jd-xsEL7X`2x7l^w79|g-{jrMTFjdgOKO-4t(c!X-o<$u9;K1GXhGW|jE9AD zAq-;X!Ftuj*@|aMgYVnU)St5Y)0yPQ;FH=aVhT9*FFB=|LpH|apa{7wl25BR zCz?j;f~Q>}s^z(l<%}xU0ppv#nX^Typ@TM+j}Co-b?nIS3r{y`G0Tako3t;){s}J5 z9GZj&SCS%2AI~MVS919bYnl2aM5g#Bxb?Gs@Gnt#T@PwXSrYq}!MY%&k~qj6e0C>- zsUmp`9!lSIVQRN z_(3HfFkM38@=NJq>2HjPpH0-jb zh6Q{sjr-DF)w5@pFO$>;Mt%&*_Uk2b_UHqtr$_bYnBTTi>ev{Uf|-?B^7N(LhNQlE z%BvtJRuL8Sx})@>>9RLx5Ku?4_}XMf>BQSO0rLW>oXbO!Cc+%!wmu-;o3lX_y_{lA zNj543rGrF8I|U!^O2-r%W)v~SdY$uQlk7{F5<&5-tfWCKARrf0cE1C6cUR}Jbh8%U z>c>vZ{xiOPHcZ3_l=*q;kO%!VhATrB$S16;cPPWZktncPy)N9n$(|r!$E~)o%1h%b zCh5HIuTZAf3#@7seq_rR0Qxcp*}oBZEzq#jq1_=zb}~`GFI<+UTabih*_8a=SrfN8 zW8ED&ABus&!67&2|NQZe^*V`EGOsU+j{AI)zPw2!dS}bNa!JjyRXOt_hl zG(lbY#!wA>K7RetDCO6>f?b(J#X$8J3$uWc=|X`?1X;n-o`02FBc&YWx#d_XfuYar zGpfp@_1cdp>aW&sqBa3XkDIa$0YFD zc8fYIwsW2N_2jxwZ4QBt&j%8^Y-K&H-|URwyv}@gmjR3Y{iT-7=-M2NZ)ouh^U4_K*wt zm{Lt%jfP(#ThKB;6w_KElYzLB^0R&Ek~WmH*3kZ#VD@b7!lBjH%Q-ZOcD?eM`Z*cK z@!e?60;K99QEjcJi$Sf=2O)g7cJQ^AGLLV~D{SK(^G{k&*@p*F#+CM2QGDj;ATxHX zx)gnBguz+EQA;?d!xKNfa^7McVzNt}h74)0Y%igV`TZ&b;t^osxdC_asNe zsfJ2+PM(?Z(y}#LoiE<+zQAKAf#?_Mo-!o7v79Wr&Co4cDM}<%7pNa5!+Me*nq^kv zLPqb(%AeBQhmb9D$RyGl*`>L`H60mi3i2?JA}cmzMVi?h0B@L{Fjm#{DP&L=8F z+;tTx{L8};W(nLock$`sBO)Rq6F?iNz36Dy$25!VAxOr)!KS3X&V;1R>CJ})M;vPp z(Frn)kAv<+k#$Mwjka~Pvl+*}<;xX1<1(e`LP@tuD7*)mQxXvg<`gRmXJ{+-<-P0} zsCyq1qj-2X%S6kCOb#YOxfB4i0X_<#r7=zSH1JyHp2Iu7IrZ_Rj^U^zn4|U~MICAV z6`{uc09FbLP0hNf_+OO}2#5s0zeZ>g)TCV?)2I!>1WwRyCY zjXgm1g)fZyJ85x9fot+=S>4&^F;VQ_@ zoth{#?MSo@bK*9c=K`{nh<}lUankC6DMlbemUnqq<=3B>6~T|+;d2ANvUuFzQ{J*8s>9U#8dz*=60Zz6Ov9=d>+p)Mpn1k45|D56TZnjNVh0hC2E3Y&TBW7)_IajlSXOVri`@ znH4u+61@9o>JajOiW|d39H{p%7`OHie|kqr`2tP)w=Pe1t4q`qLfNB&B}%>DaIBGb zeNK4SfG&IGd!p*5yFsJt0Rv|&e~&(;QA?P1x0}kw)eP1A1Hg$L9VVoJo&qR=YYs80 zd<8Ovt5_qu;jP2>l$nrEa7HKmU(vfC!6S2(zJM<+d4yL6Bv7uu2b+VTW(?6EpIw8kX}+yrfJLd^_EX9J8aKp&UUfbe2hm3MMzz_ z@raUqk17Onv`c@WgW~$2dI&1|@Ik)JuU|!htzG*3j zCq`P1g#sqN$yn`fb&{3LIX_@-=LE(>|4Qab^@=24urzTdVIFwUIniolRefE*9C5(D zg8wgUDjuA_(gb5oK(?uSSd0FG?qAqc>L`9gRw;`#p@Y%U#b1_jSjlXqVFxznpQi)9 zC!2hE15eiJ_OxIX@5flVlJCDP8BIM3xmSj0)cw^2NE;;L7LbJ z0{~IFQT5i{?CC3tU$lCe^uA~og5zG@;^x`^s_lYpOU+-Ej+v+O?kucfCl&|3H3g`Y zRB>>b_gzJ?Yvma$72W*kJ;$@K;(&VK%mcQ}-lzJ}2;CrXoGe zRD_)#BKnn_;)TV_!87-8bDwic9B(d4lk%paN8Tl!UlZwX=>3}fenT%D%VYa*=;2|f zn%~h=#m+4MlyN>V%N768zyklT^+L!cpD&eCd@p=ndiVX;=nrf!$gn%OjQ{(hs&37% zhAw%nT5Op=stWKJvV8&kS+bB}=~-qyRAzJ!iGOf&uWh%N{$^(56_nQ?O73R(=Fg%X zBcVq9&G%-j&tKyOH+{Prlmo{EysO-}YGInOLvmUogx=r^3=u*pUj{sz{$A5+@V&zK z%Bv(GD0l(e%Tw66;6w=5Tpkc`<>QIv96v40N^oSTYP3RbJG|uSJ=j6SmZeMigkSkB z=!;93sQ5zLgfrFs=9Q~v?}6bjT?2J1+yzmU zA=B~jCyRhTk-_$grxM_LmB{8*F*xg#<8Xf1+v31m<$m)YNN1m;k6suIme00K1k_Xj z2ZBsbOK4XEAPUN~BYB+Br(nyKDHibyd8XCOy?W4Hu-BSPdt=oYC5MTSx@BorVZD=h zHw2007hz%UP@yN^WLWvWP5CL^mkE=M@gN=8Re_%yzW?_tnEyRbK7IF`4uhF|F%O2= z33G0+qBmhSL*|BlS%jyfcnX^mY($hJRz(>rtNW#HteT@$yvG`*=e@H0~fhYE971rpoA=5vx2|s1>Pi(L{;yY|{GUaSKm+P^Q z(=!|NdakW9<@T#zDnRWlI6L-enf%tnuUI`3KyQdxgb2M?R>$dCYxyktaX@vI+&~cF zDK`IP@inuaE-mdtFh>lCM&iI`k&<>)%S%)!&L{d0G~Dk%f=@26l{_Xq|FW==`diG$ z`E&Fkn125^$L&~$Qich^uMW$DTEXHuD!MxAtT7$%4n^M$UlRS-apo2Al3|FPv$hn`^$0qQULa> z9|P_$c2VvuHaF{8*=skW_d*>M!cRluI53=s#KAMhhQuMmhQz@y0=!2T-hpqh8|V0n z5gf%B$GG{y^|zkBz=xX|Nhmq56BIfTk18g;^AM_F$6SbnX?&8HP%apt*(gu;@^mXt z0P7!Y?*P_uM0R||&aScP+~Ua{PdVNSXY(t4=ytbvjBiC>^QouoWw@cH#PcmY{c?Wz z!@AG-D`uK5Lu6a#Z*mXVf054T;&LKKT{8t z`jYu2DnnHjC8#eL@Fb88#`AJl-ac-3HBlV=oLY+K#>bJZOT!4K0%==qA4TBCMs6ea z#?eTQrncT0zP5!$)|SWAl7q7l~ev8>#fmc`?x4d4!UBhaPmi0 z5sfYjT?FGyMMB-Y?>_E*=3hWwxzj@|a(PS;6DC#pz6F;PRR>j;E`$RakaE-tP<%pt z!9~L-#qF zQ{W)3V3a&9+j#X^5Bj+<-hNPB*B2SFX`^Qm&G2qF%EbU6#o5xP4>JsybI41~v7pz{ zip7)aP$(5b-9QV>Z3DU`&VDt5H7;u_elxaRxi`tvsffH*3)*4T7x09XI-Dj-lc$@h zgvMy(yh;C!Lax`NUK+9MKvM=Zybf~A3gf((pALwpY+EaRsh6$mGNK~(}S6&yNSU zPdu)UK(|i;KI})=~JKU+TZ9uhvi~ zdzlN9X}j(-U}sQYO)^bDLYxPhQa67<;A_JBof2be@c&x=O9=7l_&6`7nUc6^ZV!G7 z!CS>?qo*K8nv1b}hw@iUAx=dJCgbA_?$*ZKvWCyy_Prbgb5Hm0|KFl>~+%KvKDE_aHF5sc{M5B8;j<$LeV`~r>6$%z;VQG-Kx zFj|dqJb!hzTErUA^5w=GL`m3}9{|-~L#8<2)kWnU_3*>d^6Jhn%T^%GM5>jn}{Rgd(PyRO`~Y9Xhs%0#2ViMl)UtN_v(#N@K~0*BQ=B zQ$CRN%gXgZBL<8ONUE2v#`jbJCrO*41-quv44FL^=f8kVA9gHlPld22X^OuT{7#+F zVS$Et;}aWQ9v;i7s$Ds=zl=6flhs^?6(sN0)hVj`0GbSI;oOYtpB>r|1 zxz?+r*E=3B2z+RvONf$Zjef?cSBPJ<_JwzX)poNZeVD9DzaeAJQIO)zJ&gjD9{{P` z#^7s9@At1Z)vUc)u6g)-ns z>x=6Y?-v*x{wMyiU&Z7LoEgGoAB7zQ+4hNEEbE;JVs2HSg$`q@|BXwO|0^O8TGT0y zj$Fv`RyJyOrI3)*uYh50MN}F|?neMZ6nQ{0!JmCsoyGUM|MFXKc3MJZ zx^37FYsP6?zD>MS-Td1kkvzvwQ~l&>@w35u@LBrIr=CZeA<@KyNd}TYwcY< z3p-#SyiWa6iIcc(`8~Kn5xJ-rXqm@BV$=1>NJq70Qw>={Dm;996|G8p$_GEq^17o& z^Ieqx&=dAHd~By8PceQQjFhYVmi(#@mK^>@-Pw_N<9fjoiE2y0O9hN4mrjaVdX`@e z!VVIDw2ojzSM-q}io4n}`jiF0a$&~0*TuJ0&y>bcZ3@CpcS?{Pge6YI`~ucnsn11B zu>;4GW(lbnk44PLZK0P}Xd2_+J$w*Oqi_LaSK!|AJkZik4a+>=bZYt*Da}U2_!3N~i(UmD?9F_$5eZci8!xA!o zV~9=56k;i~h3k{{=><=XMc0<6ftE9l*goaTq*_b;_!-L04>pYE#ID_TB4H)SvWBTc z-e9iFtiEwN&x?UQ@wo^XM_0Cl-IRp4b6lu6pznD1^JJ50f~WX!`BS7`fJ)Mtwcg53 z_OE{YeJ2g!Ume3k*)IBaCJ*YGZaZ4=`IbZlaf39}$|(=^&I0@5&c$+$H3;jM_0Yk9 zXNzAK=^~O|r$hT<+1Q+kD11wzeS_{KZOWi_QV^++2FkMUrUiMtgOq_&^}~~K5(eK9 z{%p9u`WmZ3_};SL+NKbSNhMs>mNP)C=nDmMjKy~h1O#r@G0vt!n2hw$D7B_Fg})Jsz>=f4kCTRiq9NvTxqi)Vxp91Hy3ufRAgf<1 z{%M8#9+MFsJQ!I8V`TLOcHq9ldI8cIUKVo?*TM66Q>U!{RNQn7KHBq{z;LWC=a4I# zuXhf4vmChkVj{es8VVBDI9?IsN3&O-3RQDpg`L`~xBq~w;GH`V=GU@-RiYR?6I}e& z@P|q^#BUuK7E_K_UZo$aDui3Ivkm=5?T}Myi=gW28G#bNvC|kCF9lIJ^{l?&V)S{(}9|c5eO;1)t^pe)H%`oiU!>U4Pn!NId>vRE>~BDd7G2 zXDTK!XVS8^T)uWpI_*3goKF-ESA2FFjUE^Ih}}A|P2`d;`%!qPz~?OI9{_TVZ|oBf z*#FG%`9JZCqNW>@AlLogC(sEr_3oJkUlb-CpX$9;+T+V_uqj3U*Jc(Grq8;HXz6-u zlfXGzZ~oaEZht$95L?*JPkW=N&XS-S?vKeXk~ny2$lf_cO3Ob{%M0$~Eq67Dd_eOZ z{dyvar(4cO!|@q#*;9zq$?RX3~3WW{W&pMPu$dVw)mt#(dVfJv5))f%|<`1rOhe z{x(oak1(mPmo~FaZ*!f%v$-VtTrMEuQ-ZXG7CO=I_F&5kH#-yY2tKpmG|Y1x9sGd= zK4T4Zs-NXxOGm>M$1uMQyj~4~Q4hYCw$mePtE?HP<8&Z36i5pjDVi0U7cpHU!FETm zm{Hh}4pOZ`Z=M`J z{C@T1-R&O$$(l8tgM8&PObOy0rNkVsFd0cQd)OM^)7+>`hS9BT!vk<)=+L^941?4c z&g6a)sb$Qh(a(>Ev8~j=1ER0Bc6?u*0MswVLn+0JW?-1-Ri_gE!jRHaz#k%6G~b%^ zB;?m?`Ty{mS$xYSkTw!G1|ogYN4>6CamM!+oZ@$?CY}}l@P~BG+N5w6)tir3!>`_s z!bv!uZ?}bZLq#;&F7^+B=&I6omxf-Mw0&pq^h;W+1xBun6wdO`i-7;2w=_`{Yr+f? z-WVLn>;U3``5ibMFu!Y&goprK4I?%ESH(8~*yru8-P8hHuG&w8-q}0ggmSr%#-kzK zt?J{N|6ceeR-6b+XmnLPOtxU#nZRG>!pUdA#6}mzjtQTWX+?t5(CLKA=clquip0k@ zrS|X?h&AlD9B*+An7crOEo3EHRPWLR}hKl&RV{}bG@p4+t{G@-H~UV4@x0f zCKt2j`Lm8CwG_uD%abdIx3@$|1rHTkB5ppnDQRd1`=sn|hZp~(jTgvQuT#k)JbbeR z8GfX_jf~=(d!teEcy?)Xp3ta$TW*&Qs2aSZO}ymNZtGW)hU36~t?bo|Xa{sm=K; z$k{#|q>nhBRw9@TtGegm^KLP>e~t!ACk_sDcUWCNNPp%_csd?xuW!mrm3DIIC4*I; zQ}zK=@n6OT+XqH0&3B@)b(#*$gXv|TU;=J0ox%zD4XIN&0ly>Ffvxj9QuRL>Jd>S% zcZ4O~rD5w}3?AGgOhIkIN?hx+649Fe`piI`RGOy4qIY7b5)YQ7A@Fb$C@n&>dN)1r z>*1#DlWSv+Q)S{{S3~nVGTr_8- zi-X$nu<;nxnG7!S%%f8v zeiLtpQc$1ut`k(heQPLR-ugFPyLq`^gF{n6W?EM&EH(2Zy zDuWRiykXG+5BKhH${^g#hW2`~WD@hZLxz1#&gH46#WSeXUCN_V9_k4*X8ywaX{mQ= z@)cTUQ}2Cu>Z7_m=-K1=kgs)L0wwm6kEp)wI&W^eui`y-x~hCJG&kvcQCL@7h}Dq- z<2TitlbNp)+1;I01m^!H_&0`si_L#PQz}I$9L(hxFE35%Wt#Hb{%aO7CThjMSczH2dG4O+k|#D1B&c5$$yX4D^gX-0PB3dw zZwOk*3kn6$Vkvnyr^j7esi?U9C#B^wDXvw!nz)b{JX>za-PkdHswKlAjS2+!v$MZ? z+bENSp%?jEmBE0jQ_9qdm}G+{ltOd!YMGdADJ)N)%A_qces<@8?M=0H-2eumYUZC~ zAR8#-Gu8qvWCl56I|0q05hntA6KEKXZvcBANY8sMyZbGmt#I5r<^bA6^L#q$_T zGhFq7&9MWcZ=`6hvl|n4%BD5I1rNx!)Dm!%9=|Wr4Me>>R3NDHD98hE1e3Kk=b}f=>a={}U`64*0);1;kRu{}U|S5ar4& zsha&UgLG|6zZBG6kgI$7F=m|fK_TIaE$arne$Beu6wnA=_x%ZI<#byRk&jm2U^+@FL`6#_Y_5x~Mwkvz1a$S=B z$Ygy=2<(=4+Zy1T$trPmy`~coQS9yuIO==Yix9d+ypu{K>P{jWn0KA9Hq`$mP|w(` zPUWmmzZa>A^eR}YGTB27nXsy#vLwMyaC-cmqAb5oH!4dlAt9JW)T9=O$u*@+MI{w$ zXRX}W#T0)wD(yUz)!nPzEpwjmT!)bG zdy7KQg*4$$QjC=J!0?mG_#XhRlRmArph|nyCw46;m2}$*ll^L*P;DKb0 zhtL_A2%0pzXqoGyZ2c7KKAq$Sz3NHY1@wD^s>q$@1f(ndZoY zj7Z76RySpRqV=G>PMBi{V>cVK)?4N-gN0R|T?3y~O5KZ0O)pV>=@#D@A(4x@c4rAN;aeq(jIl zYf7Pr(8chVSa6#d%sL1 zLN8uHj;b2-P0fI_Yoyi45lf+{hdbYNgs_wig}cgGH8g61L(gJ%VzJimPjqky;QwK& zoyGsK!#GYZ{(&FP4$6LrP7~(S4rxkrALu(%kF}OI0X*qXFp0cl(KutT?lZ(w#Rq!U zsqnx7XDx+W(!g8h>tAF0RB_YKznsYaY2$fsuJPMPbcIoOVZKG9u^d+{? z=iafxZoj&*q@5%U4WGc;y8?$r20a7uh@w0$j4k5==`_V9sH(gds(pX5{}q!|boD~s z#O2SHI|>BAiw2I~)L>a5tuCNp+YIQ3X`v97f{pZKx(HxNy}JkS7Xre~XK&#r>Oxro#QNdz&_$ z`eLbFUxb%;oV&Oo7CT+Im!>{Wpx3tME%6a>EMi6B!V2Pcmp1ce{8eezAgh0?g7 zI9}>`r=a4GU*D{ldsU?QkEu@gPcRHF=7#QzNUT3BtiE3N+ zFXHy{ng~Pu5}BS4rG;LOfzZ^M$=@;pDv9h@_C=@R$o3 zw?_J%3-x>x8^zh?6yCnT|(mFX_MH2V2LOi-MnF1 z`+AFs&70Nq@+}}Evbs{kMH846l5%lvhOj397|SrxaS`Nj%m2znpSxUwk?n8gqxBWU zYGe;>Vh7Ii+W-ZiLr>u4?n=8s`fkPyuQmlb(H805v&5?1V$o1;|Lj_e6n$n&eVdCT zfyDChzPxr7JPCE?h{2>m;p8mChV(^IRHJfw zU!N9w1g$>9BrX?RCh@pLTb}Gr4y_!Vv+lQKCrD_j-kj|yMF{@@fb3Kq&BS=mbzD^J zcx#j86?Jsw%F6WwmCE?*x<+#%;p}g+Qu~c)f{HpG1zbgm9!F&vJWv2WbBpB!55wN{ z^SRiQD4TqDJb^#={s&;B33Ig0 zo%-s@oioP{Djz~phg_#);`0`+uG3H5^GLAVfz#+lOH#ohU<7Z`Tc}m)Xh`x;y zGE!@6J{9|a+6mxOguC){{CE=&wg?6evr zdYSakbie`c;$vooulfef#Z*U$QZr>bD)j86A^#1SSwE9)>1Uu0s?p(?hPZ+Gj+ z@>^fQY*6KpJ%@t$rZ(k zEN%90fR+vP^Jx1uuJL4>Zv_Z8G^e??hGIc+;9D^z32jW<(tqcttcI&) zXD3&7*6^mFyYC)@^$qFUJ6YtOhMbv>{leAmSAu8H3RBRNXZiCQUeV!FNPR$*iNPX` z>sA~09OmYxaLmvNHJ)r~F^i*)I_A_9O)4}rPQ(|o|)h^}SDWSp`7=CVD z2qp#{NL58`(|5CRGjUV5W3Tf{Z|eFe1Lq$vV zT4R!b<^f88_L!SG_;mw^?C}VZZuSpzCWq#X+A5nd)~3Au_NK5K>#TRjQS$xJXFKfo z=%-M4ddmYOyJbdB(85xLSi4jH+6{IC`QjPA8#Xt_;?msx${Mu0AAWDq?(F^|8K^b_ z@g50Mnw*YJ9^NGfPSU+P>&#Y;PPrze?h@b6GvKdbIuFq&3KJPmKIzi;bU2aPc~8B+ zf5vB6gv!C=t<+Z<@OfspSZm&vnUrhRkUkg?(ii&h?3YkSX(DGmhOC#dFWeqpVd-G@ zc>qH4Wb=+u7Bh~OzE#lUVMHeAU@oD5ZM6tg8gQy^+d z1c@|b6Uhni9)9WYjbqxLtr26!Z1i6m_9cz!%3+}GO>TP?Vxi$gO02+oMD>&!lOROH zv0Gs93bR%P*%C0TMf0)QbvMc;R*#Bv{-uNKv>roRw-KG+pqOa2k0$w(TS>bvxzUO2 zzDlxc%F5qyCth45G3dJ%AipR%m7SCpHHTu`rQ09+#MMglCDpCu2Vg8Tb@0Y&5dCC) zq*Bc_e!kQZ64jjeVkb&;+N=bzIGmAh*wq)+mGuK4=Tk%KQ$fCyaEWwhnYfI^EhE)` zHU$N=8t>B3xU?+09OG#{V+n_cA28&-NbgLNjgCsxWSm;ogaQjfC2PXVmF#N#?)uOW&bMT*upp!NY9iUGb_EEZQi)vSNw3$rN|D z_qUk^XQMH*R529#Kg zumZ(p6qc2iS8=lxwG%MPvhs;Rr+D*0Gq45QXKs+SM|4)FXQG9nWZdyPz3_Pt&kdIdOD>5>=R?bI`KnaQ-i+g z;AkxsX8A^QlEM+lKSvoT!fF5n`hC)c*g0Z3BdzmU_t4eL%+^m>{vEw=?9}!MveJCge`_OX3a#D=-#jg9{~bImkH3Q#j^*)p@KmuA`tRVW(wx%j`6oL4s~PT} zXxxza!02K+l&75WXdO8FPT~{ba5wyp`o!D*o(T`IA?Cl9Hd<+jQY`%I8xL~FoWw$p zE{+HO`x3O%30y!rVq|MKZtzp7ng}KL=J)-%-T)8mA+jw?Z%wD0VP(mv7{iRZDoT~q| z;i?FqGOk>|kYm_jLS8zfpHi9f`1l3TyXOv57qQ~Y`jm0;a?6RGaEncMNaf`esV+f? zhpsgvtu>rohkPJVqHlu3;GI`mU>VG`ttlM8$yqVki8^2+g%d>`53ztx%rz4VPrl-| zy6^kWKu0`4M)3HJ8kU&4uSi3Md^OL?B4fWQwnNeyaStwj(+;E15mnk#wh*>ef~>lF z@e(admO3Q1bq}@b@IMXa2yq4Qxurua09B{7@4Un8a>}Pm==N0r23z~ZBV@o@xCn`Yw1h5o5o3tkthv)T9S5G29ru^d@HNsPb@V(@RHROwY#pUberw_3F0eC)1qZQ21 zWmj!Gu!A6e+X$Oz(63yTpXJK&tpW46?T;c5sBeTZX$N3w^}}N9CvA;0TE* z_G3Q9i&w9i@DL1n%`aU(4}CSJAlU}0&ejEbJ-3q385}qL`+&J5l-6_S zFC-ARUZeAl;~BtmSN=le;;q-cDo1qUThQNVI0SAMR8>BUNEw;YI}BI;#Ygh=!x+S~ z=%i0Yp8&H@N^e4n6hCY*Hz}RBsi}qJj3R#T@L#RVu>0yVB_x=b@!s>lu*@d+!71}N zk?|f#MfCi1cFZ>>iJ_D_*#BwoyThW$wtcIcpafBp7+@qf(1Hqx1W`l@O->Dxj08bJ zqKE{05F{x=H;obnY>#oQhe^j(`(LgzP`Ub^z_OX20QO099waHWj{w zQ(`Ghxdpe>7T$b2%Q~J8aZ>(@|RC zmI{A^eo2awqK{#P?1L}(!`kgv8vnfz73Gft%G2QozO@_~%W2ey@h;(f{b0Mr@kClN~dydQnzn2g*N9HcL z&vRUr|H`v+CJk$|c-Usib2ht=wfY>Ax#uq>MLmR#!8VV~9FE7|?R=n#k#LDWp>3u2 z>hK!|LJjW=rM~H`nRl8$x-ONvpEs1rCxFKDU1{ zIQT&MP)Tf8YMPnePLMu0UZldSSSC#F6C_L6l;2CYE$%0+l+GtdAjt)?4~E|^doxZ^ ztrcz{2?5HGDwP$Jw~m!+d~Ro$hvW@>XFJv8bk`gDvw(9T<`Z})NtGqTM&2uvyFj*q zs@_ZIrPif)ADPSsvTC>t5}h%O?l}MHuXAsOPzSSaoby^P*LRk^3bH-$iNUiZ_tt9aU`iAB z{WU_7gT4ADnXMsTb*$jOes-<2(QfsjS2htln1zccU=;?VsJ~`rbm%htHkwM z9BHiIYo)Oxb-D`5OWPuke}16sbgNH;KJrwC^?{EKt-cI=%3K%k=jM1DM`kj>rGp1r z>9y-Z4sg$jUsn|`JY^ga0?l<1FJI}>;cZL_fplZM7V(z0`aIanR}5c(cA_dHKoB^4 zlwGEbpY_Pk!NQ}Mn=@q`S(+~l_X5fw9{6~_)i)np^2)87m1&+?HU|{mOYKx%e{0Y+ zjGprHt>#lzAgLJa4+gu7*u!{J`L?s%8hp}EI= zEA8}Q+%C)kKrxfA41rN(BG_<@J+i2lX*OemOB*X)+WO8mR3aipdiCOFWo~HyJf|}L z>w(MgQ-n)ytM%eG!9Y{ydX8^7a2b{?a|sUvEupUVh(_?+_3J}Kw7r+`Qa>jduk~}H zqlLKnU(tGD+$pc;Y~tu8{G?V%q=14L*`v}`Y09|a7X)}NwRl%=;|NC+M5dOiYrVj5 z!yW{h!b(SipOavZ&RpAEbv?={)iTcx;f!IGIc`64UQHc3b_(<)|IzCZ>T^Q`HIZ~Z z-M+J2T87A_ReJJrGI!$#dUQ5FYPfl(+#~M)_Ya}xB5!0*U~WvH{;*4+OJFs8^ePhf zNMl~f@LGWs*rTxC&MLKCQtY zKC4GM*x3t>%Abz}N6M%-Kax4e<;;d7es8H!^%eX>4gn; z-gS$K2ttA$kK-h|;Zpu42(YObrh{Nr&Dup!Ja z4i&Uu7>5eN4C6qb*wW~}S6di~!zPpTn_--ayzgcBp3aT7gxacgmMYb^GGa2}BN1jv zKy$pWcV$7KjFNQ6WUMnf8p2`)n#N`~m37J{*{8dbs79`=0^twYjjLIcxtB>-r)o`Y z44|NS>IZu0fD?lrYru&?52e$Qn2-A!{EF{s)re~$1;Ec3>_EOV`+*%w5)5`IkrrV0 ze}4!}i4CSj`^=S5e0q-A><2Ec-k}-mEuB!?=l*beJ{Z0JfrWUVgvxUPd1lfHUr*25 z!d#i8yve%RE{wSst*%r`WtmrE;n&jE7HAdI+fGe!n>bAFEsH>_m<6ti5(?w0D50(% zB$ggXwQmco(*w1YU~sxiCR|%hmkt6!i^PIM!bnpPJD48m@gB?3LMGY3Ek-y7UKBNB+rVJ1stG zbi%=E*kr1P&eYlX(Cz{mg_@7yqx zQvf8MKg2uHfbB7Qd4Wl0R;iy@2@W&90gqwFH+Y}}W_*Lvcft6E0=#0+svD=;HX54d zr>RFe(F|6uPuu`Lq>#svCTCRVtZS^ht-vsUp`cac5PJpkZZlc1%La-FU_# z*Apv~JriZ`skIWN+Y0ACPu;m8Rlks{u2XLrlT>+k(xhm*51+#8W?7_Db5EMVubSQ+ z{vx{x2vbio3wM{(D zxAmv*N;00qQJnp$+fx}BS*@Z^cpzw#!-3pYB(+pA54tmaK>D1b6p@uK$q}-&W95Ax zR)9Wf6x#Og&@^4bNT}VV_i*3C_6ncZsg*R9Z6*^Rpm&pNsfMi#_!OrPiKq(8J4w-2 z)E>jBdKyay3|6{G)6gzgs;ir+^eL*J<^|<@vTeLQa6rrt1SS`^ccr;oJ!z`4$7bo-25FSJweOV9&)V_HseIFyF*S0*^uZab8zj-~%O1CNsyJ z*)IDo#tbqOQt=o-u020Epn!?5jxjvShP~MgT3v zm-#wpdEhcVjSjs*u@uCUcurLqZ4)Fl*i9YdMZgsojP+nV?e>z{v^aqTycBYFrIJ>v z!Zq;#6(#s^kH`86D@T&p6Y4QNl)R}fsrEFIlypV{%MaTtOiEfANmMff8?2WC^I*Lc z_=I4jN8a{4BQM#Y0grJU(9^+{MoO*B61X-%14=}T3LYR!PS`{!D=?*$5>Yk&NVNry zigM(iOt!_$C93B(7Ai6lCR??o*(_hH7O2XbGCIEA*Orxgzm`T+_KN5${soy46TYEeCQ+eGu^&qksNPEom)(cS|O#HL9g z;pqC@S1mTW&lnj>G8G3p@Eoe}v|mlCwevo<7^SaAeu6|-xuyIq69oQ)QEO#%0$NV}W6bFwUofXN4 z{fQGj`0Rf$z8}hI6ltAF7{q1a#)~~p;w`RoJvXs|4xb!5UvL5k_MR(%kiF;jQqI1; z{`%N0oj>2?ozG~0E$una-uUKOmGHGy(7RcvvJ>7TPHte#uDj9(LN*`e1wY`J9yT0u zS`V8*#FWeT5FH!Nql@xO^Kr4d-w3DI3*#DBr-kQ2cb0ye{0%xUw8#f+Hjj%vzWUcE zB^)|`WBa=dJAaMg2YVJ3jLk0;o(|le=ddWhg(Kr)`FB5ZAH#Soj5A z_T0v$w-XDXzpHz~iZuh~!MnTIYQRqWzu!seuP84;3KICWl)+~CZ!yV(I7DQR$Ay?c z*&Y|N3puC^4f3QEuVh;i-KwrU61bA6Z)uKdJjrNr%tU)koeqdC_(N9?Q7hm{p6*Zx z#Fq3@Rm&yP=_U!4ZDsIFY{dVu2@Um2OhQ8VEjY$LG=O$V(gFbNG!S(t>ziHR*} z}o~nAidy!((ELB$|{lu?0=a3t|fz`(*8_EaCiaG|{*W4UnxRWu(y>pm`+0$Ev}zMM&v{^GzWcN_uQ6`u<=W=o382 z<5jtx@vz5ml0M=LPx9O&@I9TYv4uLy;Ypr~R_Rk|@FdSP3E+bF^-?_-C=U`FO9u>A zKnIR7ds$l-reP~Vsz?P>q5~^&q}Z!jxG_!c%cvBgwOO+&Gl!X{M$?*BWz}XF^!`F* z7Cmy{^&ct#N~|k2+GnnS;xn*=CwcOFoitB- zF*<4oT;WL`V7foB5btwZwIHAnloc#nm{fSEsL`73LYR9&n$A!$RbXE6&`@`=HUw2K zzISa}iayhu+?y4F7I_O?6(tnLRZ(VE93&RIrP_CpS%sjWYq|>^9u7?v4+25(Bu@{& zyCu7I#>g(*Q;?U9CDdibT zNtQ|~!;?H9*kBwL<;Vg@MLF_MCfjN8PSObnbW{jW@^l)V&_%~3`_BAfup@#Ad%XA7 zrpu{#$huKey8#Tie>&k7<_6Yi{zq;A!2?>58=C+120Pd(308u`Oi6&i`ac>}|Jg`q z59@%PY{D7ah$H7X)%RZyRvGyXvfvvOzH@P#qam9>P@TiODyV?Zr?+!v1*eSgn{ZW% z&7vBPeE5A~tp2QWV`;Vm+c(`0OZRYsAKp95PUC-B0f8UBRjY?W&+nZ2ADu76g_L|Y z5GeVYz>dcX5VGU(Udl+mR_d1ZRV(V(`EMG&w`b`(A0AUJ!}S8Er(DAv^>o03yC&r4 z#<^ksY)5GQ3gl-4*z}%5=TFZV^7#$wxc>RAP7tVm_pCsw-zFPS{X#d9BaSEv;D{q! z?A#GY;=aoWR^a+uQXEoQ#Sl=-|4@iz0g_T zbrU^08&~%ke))Lr!hg+zzodVQ*w@zcgfG!PtlFE_zL2OY63rZmMnSGXkN0&hxg4=Q%4gvfv8XBtM(|cg>F*) zz5^G#v0v%47G$$W;BL;9-7z;ncK zx$BOoqoSmCJ~LH%qWvP1?TX~d`{7dTLlUiB`5n(mS)V^Z_Q;dzi6t^09~#zLr<#0* ztdYAod=f_({F@pJ#a`Uqvs`aU+BbdKZ^XrgWP$WZgJAezCFEZ`mlDTGD>pskKMa2? z1!QH|5SLua%MnmcPH=BSd#2R9JugpQae$;kYzIBNaYR5&QJ&=ej+DAs~tByG?S` z%vEIsy-T=xJ2i2~z!ydke4uC2cDL*NlrhH8Q%}+49_c{%c+`Cl-y}{%>n8V)MX1z& zhJs-%Kehd{4r=KF!$9fw z-sw}-@PU$R<5q9{bjmcwR%BNNfxsL0egJ2J{7Xo8J6ur>ykpp%mq0E3{PMx4j;pR^ z!3Tv6;hrLTMqp6X0kW_tqO!0kg0AkvqKMvwMUetHkp8AbGS3E{0~LEwkD->d%d=3u z#!v<-%h#ertvMyqu+2*2yc|k`Yg~LO$&Bh?>GpCI3cRF%*!oE;$NEG!_ymo`j}l*9 zw%nxgLZLPnwKfQOV;J5YvwXzxznNcc5i#+X0+c@lyQ&Qm~)q@woq zIc&c5sQLB@M?EQtZEcaPhd)mO)>{UDo|#l#Unuz3}N zUTz0|DS5-O&|K6zUP)^@SW){&Xv+1?z!gOHN-&wpDbv!a^f9ahLjVG-19Kp7#x^%! zdd}tWNJXQ44E{bD@CD<+Xp~VOTIu0CRmHe3qy&H*f8CLo$=bZAO7 zb^5#x+Ot~j=G|WG@pO&k2k=+eh`q4rp}fMP_k&jR=mA+VcbYHtNj^r|w*<%Ck{E;P zoSX2!5C*xhD6*`BL2)n2t^dV1=zFVzDb?d8Pcs){Z~+JA1{cX}=xco&b?Men zNb2?Fj!-Z%OS_E%W@!~5WR{i_{D5K^M?s2ZTr5&1!u2##CPFunGLf5tl!?&(=wAbW zgC4}O)v&*vcxcuM-MoJKH|XGFd^YinSwvMLr}T8d)zL#Z3s5NXB84JU018DmP$lcw zpr56f5oyPr5&l+#Hk*6V0ly1UpWo*ch$O2=T?r<<67)-TPChxVA$YE<*k1}gTDg6Kk+!!yBROM53bpn z?vt>3ilAU`WUY}odlara{4;Ay!uBMuJ~^IZbB*f!_QMB?ylrp>V(N5(GCM7&xZN!?r; zDmi`TY%>mhesKXg2i_FP){lPs!X(tj^&ngk?i$C-O8!GB?RuD#0{O>w1iQt;5<$&7JGIS)e5pd;nQPOkvBlCyWBq;m88+p_jt=C z(aQY_#~SQxQjH_r!#_=+U@cwJytZ?5p=;gT8I4jMJ6>q{@BGqa8e<^5yWd!TZQFCL zFG07Iflg30=TM;@y=>Gkb5_Ig^2Gyo0ENs8b;48XHK%v#eaa&rPGz*4VK|^7V9M={GY|o0dn-n zl4cJB`q~j%-Q}4xyf{sVJ2-Edpd;-S!X_L$McouGkv>+aMm zrCRPNiTOUPQuiCQcoAw2hZ8gUJOC89FjhCO$|wx#Fi^QRjWa<>JF+^G zkz#wTyDi8mOnf;?k(fva&yYO#jY+%QgUmj$v~oV-Lp6Z4nmg;4rPa^E+?DI|M2$ME zYP!PqtlXwCeGB%-{VkW`jg2gC0Z1wDSQc2d?45f5?!p3DijzDay8`7TR|! z_z$h@uV)1xwr2Rd$$Vd9jf@(Dz&p&%s0z?R#DjquAuQs$s8i#xi0@4n%=$Km7}UTy zq?+eyTnk5z>(h&~GiHb9;=)g2Cw$T@M~yY4r{=7(-g`C47LI&&wpxvE77u33=FZ); zAfm9MCw@8qL6>ApqU6@2r>3qqj>pqhV?@$Ctl(5s*rsm0Nf{ng) zKYvEY8!>y(|DX6dhtlE|oZIRr#o(YaA8Eb$Tf%OR8p|8GtH9?6u{=TGgkRS^qI2uI z&@abWl4C~_T*=CLZwMOal|Ihov`8#VD4{ho3%X_9F+A&?vf!dHK z(OZCO?=WpA-|su081Rz(9)(l%jK_Mxnf+RWKcW5=y{Aul*6Neqvo-4?7i9p=V)a`T zYshPdmlqm6R~dand1!IZPnakdmG573>T{@M!i}1gu98A`Nfl-Ipz1-EH5UXF%A5Ap zCz)ir5`4Hp!gM_=pfoMt)2Bu)DGY))PzwqhLP-NfMLIl{5i+`aWO0eAY(2r-klWd z?f;QY?iz4??4&DwzB?8aHt%LmCw!8rZ~&?`n}oMwLM8Aoi#Ih7C>g6Dwoi>eTZ+bN zo=e^WhVQPviHEoUS&R|~lFYF^DRd#$zRhmcnG$7IpccvQlTC&pgUKB9eMktUK3mHr zZ$YEYh3?Xs-DgUU{%N3I0QMm2%y$%5v}Ki(yJf8gQ=c`m6@w1#Z}Ev&eV}0PJ$G{W z;(5;QCnp_|AncWw&u%AK+SEH~iL`3Gm6 zwrmewN1GID`Wv&ZTw48#!Hyg{i`2cwznoexntaEfaC>=+NYs?uH~T}l(Z6uQy$nZR z>z9v|f)rK&MLuBF1?TV1SpF;O>r$s=zB?LnUI>X@v#V3+9}wZMATa+5 zWC{YWK-Pm-Alwx23S*qBeQvo4Wd*Y8gt7uGy`fBj zr8ks)$kH1QorTlyr||acm|{-^yS{)#Qk3znPGU0eH{4v*Ub|v5mJJvigSZHxs+zX}`JlIezghl&bcb)oU!HLKV9i zT4e;GTlzx9?tE6YM%O|)l;{4%bE(_Gs%NcR-nj1Xwav7XcEnI?L=Lw^ejfeWS>k~0_nXV-^l37!lKmQ6<&#HjwaaWq zx(^wx?zKq|QX;`$*@Jt`TKdU~8N)9$pTId`4o(~fDWvl_EK&e+90sXoq=S5(rs?W_ zHP4gjUm~@&h6i&;rla~iIas{KajGxg#KWH(=F zcUwK}Q1UMghf9n($OKP*?8@)I$AtGK0NoSxjos4Ym7&q`o;-@ORJes?NDNwM*H}7v z3XedR{)$}qxLy_3YfH#^ z3jHlqv*#9oE|L;OEu}EI5`$LNLHeiMn4;aD@R>Z+!jPMqesgq$t}d}>6v4(Y8n!^; zwQ+8&qwx3)Va5*Cu8L~E(U7)h zH4%skTva!p`KomY4n4hw}@RRge9*F zO|PA0z@M)G4^SVsEqV3*vS-F8gDu;hB2aMnFs-=z?{!ZXAA1gNlKm>|8R8$kX>qyj z8^m3kMD`Xj68c-QV%#i@gB0zZfsmeUZ8b4B>=gQx+ z2&Rl1wK#~|gBYs=Y(2EIteJdh$Sg?4?l1*J3C~p(Ca?PxA59Y(AW9^t>lYi;#p@*( z?=lD;V7r2NW9}+Xd&gS8hS9@)sHon3hilT^xvlEy!F?c@{8Op5;gwCK1B%s~Rk*k} zG2|;z8hv!|}8Q=gMnpl`^LukT|#SCQ* z2D4_sic7aVf9)G0wGiozfczZGI<4CJ;iHO(;lrrKdj-R8_NrUaM~XX!fHh^7ye@*N zBMpC5j#6j1r}!tP;&T7u;LOpZXt4Ad=t=IaJ!bZ00EB3~_Xa|*>6K`W0nhp}A*6kL zjfXskH+*tdcY`k)P{ZP`YS*@;N7@x11yqK^xRrtT&{TYwvosnk<>OAt+jfZN`O%Mj znkONPPM}Aa;LrO58Wc#+RaZ#lYfK?))SGNhB2Oq zauDN*X#B%^B8YA4xmmAn|5HHzr+~Eh8};+QR{;sxmv6bgA&{#wN_2akXK~Rp$;N4j z8~hV*TJ%)!P#M>5$?=y^$&>TD&(%eXdYTk2kLgnx9Pq1qBbIXTL3z8gPP%6m$&nZl zbhl0uB5r)~WK1b%lSOXKfl_kV!4W&>L7Xx2&uk|za?cgqx#Z{@cyEIDlkY_=)~V&Xx*e9A zB?QD5;IHfo3*R@vG1g^La)0!vk*TCWsJ-ffE2p_!wG4b6^edYqrRz|3>*(^4vZO!` zxB4&NZgsIG#E^=ZW~+j#^E%tK)*^aRmZw`XzSrv2+0{E;d?*Z><7$yG@F3Xi`X%J1 zvo5MSk5^H}_gW_<-4P`UfQVwskQ){wlAUco3(p?qK;;Q|*|rf~eT+VfnCk%5bqJRB zPNn2q(|2n_@u)Pes$v&pE#0014hl;#C31U|W$&L|qdaZ-F(Z^k+b>5a!v}qCf090?h?*Ys0 z1^2sunz^laZ%_!}2kr9O(bhg-Ib}93Vu5y)=YBz|eR`XAYro{gN(_Fe4RtDdPA9M2 zoZCldDrIxu51#oPUtq@1tsao7nft6JrZyCk2SD?f7BIv6a{Gw`O4ckwMGhrisH7FG zJET3Vl#TX*qpI6J9MMih2koo+#Q7`2UVO(_jla=3@?Wwua)L;t7u7U;7FkC@f&W>p z`w+Ftj(s{QAb`a=?;O2lj~t4=Jh@wTt%(JFO;52@FTHt0Y5RQFhAnchq!(>Hr1WkU$yALPw~9datAF^}0~d zp{kzZb%DnG82kqwd1T=4X-V!6&FQ)3zZoTQa%q(1h-AzaRm_??^X0v2F_T|Bwx;xyL#Q*Mj7;=eYu&m9&$Y;P`bkq2+gZ zZ1uMEro)kYK5P2iwd^5vi@?XP|HzuXo+a14?RXMvd06Hb^x#&HHtMz`H|m8Au;}#f zwwcne62}%@T8~41+>qr6ykJ!VFL)`BvsgL!Q(DzIP8pszS*lGo=$BKXTi=)e8fqcd zgsx#mrZ6uF|BVml_W3%uzlhhSNNk@~uHXAg;xV-0rj$+g1@megzaSN zr**_GEebl3ED-l;>nh!Bwmy8P8Iza&LP+Xv+ea2a=l_Z7>U)j{YmXj>*JrODs=YWN z{`&>oe?|Ey8F;tEs>CJwvjSTh^5xJa%;-{PHlX_7LBQuu_&fL3Uvv5(urOs0SePRG zw^uNOd3<;w$e%5X*@rF+TESkD8~p5ogj#RtGoLtkfoEzL5#An1E-UEeT>($YZaw;L zoALr@ap7chtq(5h!w<&|D(PAq#q1TzW(Kv^&OIw`S`crOLJqTT%z-Nm%gxh|64OsN znpYX{t7zPv5PkyXAyGpJYr@a(*B;yzu}64|`h7RZCa9ZsLT9A%KVL>2*4}ZIf-N zLR5qH5C9vemaAxGPo6RR67>*m(_8KHmZzdS+FwW&*g2tX5FP35xo%wQ?WT2GE5!RCQb9a< zIXTP<_FL5AndzU&P8R~*n+qH}2Y^3P1mP$k14n`B0%riXj{3NbX1bQa!Nd3bIEBkFW~kf;peJd+bU@$HgSc9MZ!(s z2H0y?lT>dR7A42!IHAn&DQ(ObI1p20cejZD>mbTA7;PHNGlK#6@JrB#=aJhl{xo6r zDw&*LbZwS`5^cLBXI`6vWAQ9U*iBTPSJmgnA)y_o@>B}!;JsK7>q&R%6~!ww7VfsF z(?J8){clBOmUUN#Y!t_*(eTH0mEV)vR$dg;r9?rapKo>R$GgL_?iymcb%SX1!@`KR zxd2AAO)QLnFpKY0ec8L5<<*0#Y=?{ZIb-7TLgRAQG|FMU8`XJ%ck})U0~N6zkJ_ra z>dQG&u4LhE$pV9UTm4^-mVD}!nwGC+%sGb*qd z*alyf%Vn5hGi&F~J$VXsg=b#x3LPZe|;r7~je9B!Lon3U^M?~7d} zI~YR`eC*&a2Y_ef6r8YvV`=x-h{jFS^6?mfZ+2kV^Q9f1naeE||yOb?iR-U@#@ z|98I7`qT1;?c~W%y9tlAC}3xT6mI}`A-BYQJMWP`mKPU3gp{tdc1Dg0l& z9@dag7&AYmcyb+2-~CS&zp&l=yQSWLs@(rnx#w7mzvru5i1zuWC%o`?$CSmZl+-Er z+Lv!AjPo5*7GG{i9((Fo*-;pj^;06Z`3wGnu>A?DXJ5td$m7o%(++72RIy-@uPN&>A@ z6lvXOWiCdAKhLhy1>NSVG#lk>^~f3v$vU$b;MXKTD5YOBnK&B^pBe=)AQ1d&?Mz~XjG`e2bE=qhd#sV}FnRHfh8|IrW%3Vul2UeMvFoww#vhCBiQ zWh{@>9BmrNXsbOeyX)I5s=eu@1cAx zSbGaUs>V9O$HcTwg^SvEKBFDvxj7RzR@qkg!1q^u42T?r_c2}YO2!``qJ}nGmZ=`l z?O<5`%-lSZ1E|EaW5$}=*=!fg3=;=f-yDj4cBrWGY?bKP`FD5#HAlsfNcCH*oYAOIB-N8M#wS`%A+-4KV)8@(t!l#g(#L?aw6Tk$K<102l=z z6~qFFk{$yft3@n;alm9a41lPI?jn@fZG=atA!pvHNYBJc!z?uR{S`GrM633`SViR` zt9gIl=My>Jl3&Es3;%K~lx1U#`=T*MeK0osZXL;ze=6S%hL}aGr`q;@us=;{@-Xm! zApq|43nJ13Iv#|V&$FG2_PDh_KhV7X&3wEH$ZT7c)~Vf9t^Lz7R#X%0PTF`e>d5o# zFDzQ!q%}UV_t<(!p0ss@qj zkKOWjaJ6|+^BaWTeggw5F9tF|5a?fle|+l9-4%)g$@(FwD+w2ywLr}H+hH(+r1d&5 zh4!&Inf5Cyq}G{}u!hq>_~Shfuei zG$};#pj)Lp|Axj7(SU7hUn|JPAM-c)d`#yEU^d2kS(e6nFU!&x?**ZEAJ%)(7`bB6 HZ%_XZPS7M= literal 0 HcmV?d00001 diff --git a/py/user_prompt_generator.py b/py/user_prompt_generator.py index 27d19f0..9da85bf 100644 --- a/py/user_prompt_generator.py +++ b/py/user_prompt_generator.py @@ -1,5 +1,42 @@ from .imagefunc import log +class LS_UserPromptGenerator_Txt2ImgPromptWithReference: + + def __init__(self): + self.NODE_NAME = 'UserPromptGenerator-Txt2ImgPromptWithReference' + + @classmethod + def INPUT_TYPES(self): + template_list = ['SD txt2img prompt',] + return { + "required": { + "template": (template_list,), + "reference_text": ("STRING", {"multiline": False,"forceInput":True}), + "describe": ("STRING", {"default": "1 girl","multiline": True}), + "limit_words": ("INT", {"default": 200, "min": 2, "max": 999, "step": 1}), + }, + "optional": { + } + } + + RETURN_TYPES = ("STRING", ) + RETURN_NAMES = ("user_prompt", ) + FUNCTION = 'user_prompt_generator_txt2img_prompt_with_reference' + CATEGORY = '😺dzNodes/LayerUtility/Prompt' + + def user_prompt_generator_txt2img_prompt_with_reference(self, template, reference_text, describe, limit_words): + + if template == 'SD txt2img prompt': + prompt = (f'The REFERENCE TEXT is "{reference_text}".\r\n' + f"You are creating a prompt for Stable Diffusion to generate an image.\r\n" + f"Using '{describe}' as the basic content and depicting it as main subject, refer to the visual style described in the REFERENCE TEXT, polish and embellish it to describe into text.\r\n" + f"The word limit for the answer is between {int(limit_words * 0.7)} - {int(limit_words * 1.1)} words. Not too little, nor too much.\r\n" + f"Only output the prompt itself, don't output any unnecessary content like word count info.") + + log(f'{self.NODE_NAME} Processed. result is \r\n"{prompt}".') + return (prompt,) + + class LS_UserPromptGenerator_Txt2ImgPrompt: def __init__(self): @@ -73,10 +110,12 @@ class LS_UserPromptGenerator_ReplaceWord: NODE_CLASS_MAPPINGS = { "LayerUtility: UserPromptGeneratorTxt2ImgPrompt": LS_UserPromptGenerator_Txt2ImgPrompt, + "LayerUtility: UserPromptGeneratorTxt2ImgPromptWithReference": LS_UserPromptGenerator_Txt2ImgPromptWithReference, "LayerUtility: UserPromptGeneratorReplaceWord": LS_UserPromptGenerator_ReplaceWord } NODE_DISPLAY_NAME_MAPPINGS = { "LayerUtility: UserPromptGeneratorTxt2ImgPrompt": "LayerUtility: UserPrompt Generator Txt2Img", + "LayerUtility: UserPromptGeneratorTxt2ImgPromptWithReference": "LayerUtility: UserPrompt Generator Txt2Img with Reference", "LayerUtility: UserPromptGeneratorReplaceWord": "LayerUtility: UserPrompt Generator Replace Word" } \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 4c88c00..54db61b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "comfyui_layerstyle" description = "A set of nodes for ComfyUI it generate image like Adobe Photoshop's Layer Style. the Drop Shadow is first completed node, and follow-up work is in progress." -version = "1.0.66" +version = "1.0.67" license = "MIT" dependencies = ["numpy", "pillow", "torch", "matplotlib", "Scipy", "scikit_image", "scikit_learn", "opencv-contrib-python", "pymatting", "segment_anything", "timm", "addict", "yapf", "colour-science", "wget", "mediapipe", "loguru", "typer_config", "fastapi", "rich", "google-generativeai", "diffusers", "omegaconf", "tqdm", "transformers", "kornia", "image-reward", "ultralytics", "blend_modes", "blind-watermark", "qrcode", "pyzbar", "transparent-background", "huggingface_hub", "accelerate", "bitsandbytes", "torchscale", "wandb", "hydra-core", "psd-tools", "inference-cli[yolo-world]", "inference-gpu[yolo-world]", "onnxruntime"] diff --git a/resource_dir.ini.example b/resource_dir.ini.example index 88ad38d..ca39fad 100644 --- a/resource_dir.ini.example +++ b/resource_dir.ini.example @@ -1,2 +1,2 @@ -FONT_dir=C:\font,C:\another\font -LUT_dir=C:\lut,C:\another\lut \ No newline at end of file +FONT_dir=C:\font,D:\other_font +LUT_dir=C:\lut,D:\other_lut \ No newline at end of file