From f5ba967be658c593abeb7f8c23aaefcb5eaa906f Mon Sep 17 00:00:00 2001 From: wanghe Date: Wed, 20 Mar 2024 17:36:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20MaxKB=20(#1118)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/maxkb/0.9.0/data.yml | 10 ++++++++++ apps/maxkb/0.9.0/docker-compose.yml | 17 +++++++++++++++++ apps/maxkb/README.md | 16 ++++++++++++++++ apps/maxkb/data.yml | 19 +++++++++++++++++++ apps/maxkb/logo.png | Bin 0 -> 29525 bytes 5 files changed, 62 insertions(+) create mode 100644 apps/maxkb/0.9.0/data.yml create mode 100644 apps/maxkb/0.9.0/docker-compose.yml create mode 100644 apps/maxkb/README.md create mode 100644 apps/maxkb/data.yml create mode 100644 apps/maxkb/logo.png diff --git a/apps/maxkb/0.9.0/data.yml b/apps/maxkb/0.9.0/data.yml new file mode 100644 index 00000000..31e9d071 --- /dev/null +++ b/apps/maxkb/0.9.0/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number \ No newline at end of file diff --git a/apps/maxkb/0.9.0/docker-compose.yml b/apps/maxkb/0.9.0/docker-compose.yml new file mode 100644 index 00000000..48e8dd51 --- /dev/null +++ b/apps/maxkb/0.9.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' +services: + ollama: + image: 1panel/maxkb:v0.9.0 + container_name: ${CONTAINER_NAME} + restart: unless-stopped + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + networks: + - 1panel-network + volumes: + - ./data:/var/lib/postgresql/data + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true diff --git a/apps/maxkb/README.md b/apps/maxkb/README.md new file mode 100644 index 00000000..d102d7c3 --- /dev/null +++ b/apps/maxkb/README.md @@ -0,0 +1,16 @@ +# 默认账户密码 + +``` +username:admin +password:MaxKB@123.. +``` + +# MaxKB + +**MaxKB** 是一款基于 LLM 大语言模型的知识库问答系统 + +## 优势: + +- **多模型支持**:支持对接主流的大模型,包括本地私有大模型(如 Llama 2)、Azure OpenAI 和百度千帆大模型等; +- **开箱即用**:支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化,智能问答交互体验好; +- **无缝嵌入**:支持零编码快速嵌入到第三方业务系统。 \ No newline at end of file diff --git a/apps/maxkb/data.yml b/apps/maxkb/data.yml new file mode 100644 index 00000000..a4569cd1 --- /dev/null +++ b/apps/maxkb/data.yml @@ -0,0 +1,19 @@ +name: MaxKB +tags: + - AI / 大模型 +title: 基于 LLM 大语言模型的知识库问答系统 +description: 基于 LLM 大语言模型的知识库问答系统 +additionalProperties: + key: maxkb + name: MaxKB + tags: + - AI + shortDescZh: 基于 LLM 大语言模型的知识库问答系统 + shortDescEn: Knowledge Base Question Answering System based on LLM large language model + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 13 + website: https://github.com/1Panel-dev/MaxKB + github: https://github.com/1Panel-dev/MaxKB + document: https://github.com/1Panel-dev/MaxKB/wiki diff --git a/apps/maxkb/logo.png b/apps/maxkb/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..95d34a18915369820bb89790ba08348b8b35db51 GIT binary patch literal 29525 zcmV-bbE=GqP) zW=HHSioGuu6qI$bU{~IxfUdjmd*7Syn|uHJ&zb+6Id^V30H~kfip4po1^~IDd`V2O zKO-qQg+b~D7$5^JUbnHhBJfdv^mMvh!63nHKo}nkHY6#{&R~f;f$z z$IFHIAOLt3Pb|p?fGFe5r{;@g7}ot(@Y!EiF3Hq|Ic*%@0Ob*9rR%ZyK1H+Bu2Jon73Qmlfz_K72;k|T0|toS`dE_ z^5ymrqtr}kNW8)xHRR>7Va|Xq#7=x}Kp4b^5C@5JBEpq?TDmZZ12Nno=rmzICk|pg zh!+a-0%Mgnna=$WP52V@gET#VIOaVu!kEs=A#w9{bh1jA% zm=FQ68pMuy*|A|tn=yr%?1(`di8MwQzXilG0#UHPLLVzgmjuNq?Mrj>2G@&i$`o=U zlz4xBW?YCOKUgb|D~}(p1-mQ|vEm1H1bIo}gKOan0s<9l$GQcg_*kXR2XVfCjAAZM z73V}L?Qt_fPOywOgV-gnAXYgSPsoQGQlXEhi}R!66mjB(S=`VlMLhU25DwTN05E_Q z_B1dVWC3A&Z$mGAOH?ZW^hKLd_)9~v7iwA36TKg4bAhHj|xBm!xGZwcTDWQ70l&V`)^_lD|F8P~-PfCKIV{jhLf=-CyrY-QZCtT2Ak{@V(E zxEo44iW3E;45Ro_Y<`}pW~b&lq$11pkNHu=nl_Yg_Rz@B{@FidpAXMrKU-o8u>;sy z>?C#`JAyR;26h~4#M-c`gc+In3>N$%2pAj@&v699*~!@j0NM9N@%nlbE&pyHx^3UN`F{Z5eSBbG z;P7`Y^f&CiIB$k4uV-jpOR*F?%)mRTT6GG#br{=0{7R<)eXBc?7iM_ zJwH8xUa8(5z3Y0P^cnhr`q}!+^&9l>8{h_Z2GIsn4K^5@Hs~F$J=|+JZ+PkO{lo7V zqK0;cF@`e?w-~k=_8S=+1sjQt)*78M>NVCi_A|~hUTJ*HxW|NU;$tE-S!r_I8 zjdW=5_I>1M?#K7r z=J$+c%gSQyV!iZt@|XA@@_*0vWY1!s2*3h@14;wh1GNI<1J?yU2r>)G2&xV03w8~j z5qu(q5E2%$JmeYjtw2VV(h&L%Lq|K zLnMggM6QUuA7vdiCF*cAF*+)`GWu!EsF;~CXJhHHlVW$qzKipZTN-ya-X>le-;$u7 zFg~Fs;eBF2VtHa`(#WJ)Nf(n1l7-2QDWsHylx->f;{wO68rL=6b$rSA8xyQ2Oq+0i zqQS(RiAN`?PvTBGkV;5ROx>CKg&WDO=Juy?(yG$>cx>Kk-V44TeZmUZKS_Q9~Sr&R2F=gnlSaiG|g$E zX>HT(rZ1ZQtT3qXw;A{h-i(%+rZeZwd^n3WYx8VmcG~QgIp%YU=XA{tp1Wfnbzb(o z-;11z%8TC4Pn_ReY*akA`0+2nztonfl}Ji%F7R5gaUs4?xUhZE=tXN6eJkacUMO=a zt0?=jn78=CucLll^XtHp^d;>}-Ii`xMqDOZc4N8k@*U-x<%Q*sSBzazzml=CbmiMs zlUALtaH-h1nz~xLx^qqVn#Q#jYnQG4vMzJo^-BNBJynKPi>ltQ=dZuA!EZy|Mx%{o z8$WFlZo0KOcyoQVRdvM{;+BFfPq!v)J^LH;x0-DR+sd|m-7ebRxg%yrYmIwN%}&Fe zOKZ_uX>HH0@w+bX4%ppT=TNtKkM5qby2qg-&YU{SI(z(__qikIJX~btYZtFaT<^FMf8*B8@i#kf@o#nC&bj^S zPQjhecjw+C+$+7Walhh$;e+ZwZ2#EP>DGDlVZg(-N3oCYKIT1s@g(obm#*Tcw5Ju% zOrF(rJ9i)H3F^80eBAS{7vdM6drSV*{Ilw%&C7#-`Tf<_m(PtQJ2{X+V(=Bw@3=5Jx&?hWJ)42ZcBuKZU3 zgB?vz2jKN~0BFeo&|!T>9jB=Oy{D4^000SaNLh0L02UGu{0foQiepyl!;4_EiTPK61#{Z+#vJF=sq?JpK3e@Zxai>Bj3u zDbEef@BMYW`aj0^<9#9_GMA}3t`*8L2!hW+^Z9$t$D$)E_UGG@weS9TI9=?z>bl$? zo*RomOx-GXSe}W>J<%PmX9ux3{mr8MyQTVrrS80u|Ge=Lov%+3?6f zPf1+)6H2kzN=otDM2-5=P5yjtEp+C`M^XIe_)#qX-<zZK)4F z-4n%QWxPb{=EvEWPa<&0){@G)``6vSNY0+(%SZP_ao9vyy8fIfi8ZEsQdh)$fxX_0>{ zeY1$DrScX2ujpVW`SLt)UE(S>QTkfowrCeaO9@|FyH=K?SzUjz$Nd0&~#QzGH+ zj{tR6g7C`h>mo@{E|YIHMFQK(5Y&^9mrsS5HC)ls@#&*8q0JftG!ZK%7%^Q}<$p?| zYCA!Et|-KJh49Tv z%ca+XHpUFFgxvFo!S5^E#BbJ~58jIyA1!?>GV}X!()2kXeXVAeecxW9_-?uE&UD#z?_(;ff zXY%?nJp`J%EKR3j5}D{S|1w*sA={>fl!Cmrgfk`XYuomqjg{|Cx1u!*{+f_~4a8F> z_e4*be4DUxsdQF^Wo6D9%5RH)IeWoHE2bZ;c{2RBJkocI!Vi`H!$ZHjz}+{0DFfqs z`+e5pUng}iM}Z9@z@KTJR{1?>`5YYkrZHw%-+c9dT4sX%Rmu5>N`FHEeGsDlv_*IP zwc=mk730w`dlAPy-Y3Z>5lfbr(2}SdfUk&%il!_^s&XGEAX4BQ0Rwf15g_Df?IeQd zu=64Pc1-?@QtZ4i#_Lq{_9=1hi#PkeKE1o221@Ja!0zLvc3ZDMjSD4~YsI6V7LC#? zN-ZHE^mE47w{#1QeQ}+yrV~#ocbwU7)gLX!YH_}vG`bcZGO=ZZnCfw2${B!iVf;w~ zSetQr!4<{AU%C|(jR`6fR3>OV)Oe`zQ0F1b9dhd+&k(pYo-uI`ZXMH@#GJkOvHEHC zdFa?3ciX>An>ZlSDs3YL5{>)p!s8zg1fgAMO znJ7Thq0m{@5h??TacIM|5~`Jl@JGNG!GeSf!cONIJ0AUrY$I|kj~2DaDoAu1#feal z&~qdzF)x#XN38s2^4R#@+g03?@yi4lg}h;*gQyA4G-8nxr;U!lX(S#Z5d8yQGochH z3LgoP6f70aZ^C4PODs!dBO(%!N$BZBG!m*4HGQO1p!f_N(+V_&RjJWBG=-qM=!!;^ z&wu_TNb1r~a>kfMPZ3g@JGnPN3{+^_7ka>Xx;T{JBdg_1N@Nz#DAg?6p;E{g4!ayT zD1L6@=uEBU$w`=1^DZ1gI|;n0*1#E3kAg1?X;KQmv9`44NNhTIsH}VxlCgSYiv)u- zm}4Jyys8{JYvFt2I}Wdd?<`Uo-zeD@I6^c`Yvcs7lB%GS6lg@K;fprM(Y6Jee`tvg zId-6?gOZ@{(HYyjRS$x_9EMYMf4WiT6u%8opMyyl=Q`RPR?|bJoyy~|=|!8D(vkBMbXY73IQZZ>Cvc`w z4`%=t-KRc1yRvGtR};>2e)X!uYuR3Vz*6#bH=n_VEZ%d}@VOu(+VbR<&pZ19j!@^G zqmD17`O>!YW%7duPsm|QRlBe3w03fLP7{T`h2|TsX*mN&%aaC6ek88B`+WQ?UOt!pw$lCdZPgWJbNT{`{--Khw z<V0jC>`mou`-XK@x z;HDH`qk3nj5J+Vqe7MMWt~*4tEoh9Pc5q+NJk!MpILEvrsw_rACKxMr-mNRjEC`es z69AnG=kgI^+B4cK9nJW@t*B_Gj71!hA&fd=o;eneL{Fv$M=Ya&KIsfnWue;H_y+En zre%rj6k^$t4actC!7wfMRfuSgNUAv4(pWK0B22YJ@-%`lkt0gvxDpqP1dQ72@oT`?A22{pz zA5czni3WRDg*Tve!5TTO`Ggf~*Al3?*v$iR|k zDx;_BnW$<7@Qm_uYCP5&ZKu@n8X7e9#hj4_ijAphV(rW&%~2D`#KCi<)u&59J{0Z~ z1fb`kK9O0>1{;9C+-ZO~h6P+2>QH2og4s%PX@pwN^KliYvMSlbQk5cK_Lh07@|`MI zcwKWPi5Wv-EA*^o4XsR6Yty*!UWi$+%wLxePspM zb(frzI`S++Fc5{VTo_zK%e5dI7O*9nTT6%>$pC!r)Dgg%N1++1a9W{+2%>j+0fCDF zpaTj<@?NMc$ta0plA^#-#g7Sy93UM4yahQK>@`2LQ?_CcIg3L@hFE=@>>* zA?|A3gCr=m&E#qa>wDW38mxmcW9K?aF<7WVe08-&x=c3O>)s84iM*Y#s$`f|L3dhJ z$MHoed>TwCR2603prw`?iy>9;KqG0$vemGv6^Nt^X#gxEDq3c=R<>(UO6!zaUlmFp zZJ-3Fphe*F1$QiH-x3&$?A0+cHley&M}~Ai;VXggM{u2BbikJ#Qm2(t_OYkZ&}SH) zYX{iKy3(TXq19gK3;rk#$rKq7o^2 zEEI)ilmif-Hlzn503>mW8{q5!Zby>N&d3JgSUos#hzXJnmrRbTW56G*RS_s<;EMrR zjNUmuLsIO+4H#>HXAp-DPyykZ$7TbZX6Dh6ZE>&}WN6%z)6xX)Cv<}w>jZlzKsyuX zHSi-%oxnKr;fGliT3qC&B8Z7Q;hJrCe2@6$6f#Ofej$RZ!r)_~c;*h(&D}OE#d)C9 zFPwJ<`X)hRvtwjjfY*XXmh3?lg7e2*_IEVkVvztaA~K*4hsGlJCjkXi+X6K~myW-I z)`jq0(_R#FDkQFJ!+d+7qZ8+em9|GN_`Q)b!|mwn29mZwAn*=o4ff8pRp(X<8cMS; zrjT_=9ZDc?kYzWNe9w6kP70+sJXrUnMwaxw<^Ut7y`;#;`KLqw_B!GDqk{c4=X}wy zfv&S>rh2}KfZVSkZ13Z5j9;JkcP8(BudDm*#`pe@zg2!2d0K`7zh3*mpyPV=Gfz`F zgvqmq>oraq_Y0EK^mM+9M1AmiuI{blM-$+=-Eil{nO#cpHqK! zdVD7O=y;FHV{QDh>(}4zKX>tQ(}%0ae*gehTuDShRCwC$y=jjm$$2LDn7Mo0kw@iG zci%j^Np({s#X}cKiN}sc)b0QaECyN#`#a{#e3-%R4;Wy6z+wj&LA${2YF84$r9=`s zNQz{$*-eq`CcCP;tGg@f$jUQLcYpVTyScq)ZXV&0nGqRT?N1>qBHYdGa(iEUFEbN3 zUx;%qze0s&0G(ICizL9aE~{c56_yESO~eaf3iBqSljeVt=PHI!VUaiqfu5A8=f(`? zMKtpw;EKpATm+OM*hMmsLYyT*&6<~(@%mZUw?c(^flhF5R^mPrW^h&nRW=`Sifi+z zcZCXPiD^Vhr?_^K@}}angmjjKKdVGgF@Xxpgjr{HDv@sPjNmjxbP}CiOnJTxQ<$aB z6_coN7MO*=$`JCjG-cACrj8jFWvmltaIdIrF`@CNWgrzkc$j4-7A4b9`hC)Sv( zXJxo6x<4!7&&mMKy8aa^0H-&|mHj<0Mo_x`XDLpL6MipyZBiX7!me;0D5KxIzL&jL z_WLY#GvJqO=q#?eNyK~B44|?HRG1ga5RjN5?McfQ6TVL>dy;CLYrsjug(Qrl0k*?Dv`Kei{aF76f1BUYW8^+r|nNiZH9;ZPNEiM1GbGp>+LE zI)lz4%1OC_9C`oMy(KM)eL`z#`AbzM%l ze;R4P{$8QNyfN$SKWV1tc?kgVgfh!8fl@9&z|8<=nN7U%19M6NdPJX{;9s7l=vkkGXPh^?MB;;nrCoEg$lD+{sBFvCozDc z8Glk8>~TKx><{D_z@(Y9tYv>zVwaA*2!QZ?f5r2>6(K}h2vJMxD+}s3sSOn>oE4_U z<;MU*A{r6VaTG-dVHh4j6Q^whh@ofvS(pN60{r(hRlvA5s|3I^v458(dRg#07D5C; z5NroQ@RF4BB>*21LR`T0Sv`8v>|ciXi@pm0$|7oJVEVu>$ezV#9nD6`l zqY&Z`0bD-sw^X6R0o@>*6a29{~)FOGXPJX_Zz8D;T-T*9LN9ba5(()@p$|wy;j5oTnwOyDFD-@00IDy zU6{lGW;OKLgl`akv)O#ER;&FxDdqnJVB@^sLWK(Fgf$_==X~G4>3QDkVHoZrKjD(~ zn_ruRQpRwvAaPlX|1>?{CVtUswLTF9!G91!d<7>rLRP5oxWE@eJnwnl^PcCuJ|2&E zQ0xjv!F8H&Z({Up83r(I_Mb%f#?0SpwLand{{IZ%)92mm6)G$lZb&IV?s?wN#^do_ zOlAUQ_X3zI1)PQfOf&NFKQx=o=Yk;k52%R0LWLq+ky1V@rTnp_4wS)(0^eK=;3TuZ z>ob!8f*@G0)oTAP75ghxs8Ea>Qpz=zGYW-Pi z@T+wG3Kgb62=R>PdHbW$=qD)F?`PQypb&~!b9HchpC$BH5kEDX&5x(9zWRB0Y=sIJ z1a&FppEaA!k3%mGDvGz66r(dW&Zlfx?JQn`?9cPOrtkZIiptMlp~9?q()ay8^*pbM z=|s;zQSjS|NegSHxge%V0&%@we=&{lt5BiBj1WTnVZB~|5lO($Ntgf}*NrsOB!Dsn z7X8(vlwU&?-dmxGw=1APSFT+7gzx(|&bRw2RJicC5d^^};9l2XWUP0= zN#C=qt)E5wm(6DLCC~G!CA}3YoDQ9IZ;Y~D0RA}@)BN&9dW4viZgX>UB?yA&&b#MM zk7`%3#{;tj)GZ~R^L>9M48wg)rpakB1364$07XP@|IUdPola*(N_q9Xdu=x89h-!d zfbbw70U;s8R9i}gB?D2qQkLTEJH-*q-MKFYgb-If&*KaryT$(ORfDB=3pz<;UJ>`n zuGMO_ju2w&ygRN;Q-ly{ID~|d9z4GVzp(+YehGeU6<*MR^y&~^ZHBOk=^dy*CGWYe z&$>Res2-E*aGLzj5@q{E0H8QT6!wzO(E-BIKBDmneiQHvGm0{MtHXZ3SM?hUc{) zyc&e`AuI-vXSpuYJlna(U4nau$ik*idA6urQ6hcO{?ujLQFPB$W??-jLKF@_6e1q? z5QRsG!ydxHF2=nbjC${5cytG&<2wikyC90N2$A-pfUpHE<2$iZ z0FgeQ4bmdPEPE)uA&SV1K&11v+XaXm#Skb>Z;_NyUtxSq9Y%uE;;ekBAYb(izebLJ zG4f*Hvw9Kh8%!31R2_}N2o#Mm9z4YG_zs2#w=mfM6$S^lG4AhRc=#5^!$$yxI9rx| zCa41lVA5g{>;W`!%lv6agH4+GUB6XzzF zBF&fb?XuIVwj@b}k)~)yC)Un9qi~eNN1dx3X$Ha%P-{03v@WB)@e<!&a^n3A{OqH2u`y)&nEntT@dq!fb{C{>+5K)K8Nm= z&!cK;`NR+HH?fxT^{p6S-nG7OJ!JBIlxW#YHI@^7x zULXNNNC;5_WIdS_>T9U4Jc-Wsr_tN}84lk2E{^X15X0kl5seO0MzA!hY!SW9totkY zER&+b%2rB!Cn7p`CLn|dueOTj+DEW@?F;B^eF}}0r{Om?AibuUn3!dltlp#|S<{+! za?dgK!MP_ZS&TtFt?S_gBTVB32mzPPMLB7o=D;Q3wn!5W$?&tc{2@8NLgdpNlJj~E`_ zMid?cH0$9#XAai{I}43EC4*UwfJL9PRA$Z)5Yj`v^8{9|{yx^Oe-W+qk0EGoLwb3$ zggt1DNz|HEDU*5Ca2DC4!g_|%0c&Q*X55tcvjML1WgNpOo6YjXW;#AYCiO9&ZbZb7;SeM6BM6wSR;&-oTX7ZW3xAtl?O*2u+v%nr>iKkwjt}& zD=SehIpTqw9-^J1WA7R|vStes)p-{)Vd1fQvNoM?_`{%?A1iYYw z*81~Uz4j%nUjGtW>(3{IU*!HR@Khvrr2G)G?0s52VBM_-Ab}Aadx%M-*)zhPtYF!_ zjOP;q5l+*8{=FypOc@KgUESdb&*r|j*#%` z>*#KN3hPh)Yph)UJZkN$5Hcv(Gle_tM0SNzu`_FotqbQwc1Dcc8lDwniR)UXWu0YG zv0WbnieVTQbA@+t!vH_k@hu_ivtQ)3hBwdfOZTU1FH>$2fuy^E0;fqps|6Vv4Qi8hm&P^BP)#- z-!lW68uU4@m4IO)SE4c>G^Fw}- z?UXSa-9}-EHoC7xcAt&clz2sv^uU;;_Hwd!#TXjwe2w>_4YDe|VT9zi8?NE0KJgl8 zt$hSReFKg56L@gz|G?3Mml2NkmVpUOx?ietr`@CP-1UATWXh>OkFDqa6zz?d;Mckk zknH_%`CR>H5f{6c=-J$m#fiwAKPh)lXg9Pg56Tmy301zsuSKrsY=b0Cc=dK2iqg8u zrCbVgl!-h+7|-z;o=HHZh{(>{>U+xzk?T9BaZ`B(9L7`rJQ0Kl5Hv4i_3H0K`b`KS zad_{a5snT}lFsIdQ_wUV`CV*1`)|?N_)U00Cp8%JLB@3_{FhA<^{c~hSuezJ$P4Zx+jgXx^2%_qN()hoXTKUjgOV=@SH);HlIENGFjaQ0*AUDtUYh7Rmd z;)UaRo`=B@tUS0++r{6MkGEbW$w~ka5{(LRR9ca|wmpft*E2(mN~!b7cj z73WX~R~&oP?p6VzbNe=&G>3X2veKA0bPeCziKxm={%ls;o4BFl{z4@^h`5;4WMK zzVc=VvvtfXlJ>t4J{p~;uy*YaFzoMO_np5+INZgOp=f%^FzdMh_UFQ(e6wp;zkqt{ zIz&3l85K+HMA=Xh&Y{3{dfiO|`9FIC5=aL@L3-t`a&k{XGUAAIzC3?&e5&@4*&e%& zx(rJCM5QN@5WiJlvoAzJTU35_e^`B5&|afm8N*CnqUv|nwzQ6{e{>(Q{sKV|>E|p) zkhNJAtQZcr!#IR6LsDerX8p(VNCbfZ&6N*h{puf}x$-Qe*C;oL=Ytc`Xc-lt=$$T{ z2}rMj=E`$ezxrh~yU#+%dTMpoqG?W&CdK!y>xSD*80lTgJa;Xzxd|YLHJe$O^H4qk zRzF)LS7kBjUUfJzNuanqJFcJAy-=%h$-((++MAgY6}M+HNg@Ml01t}P9)o;wWE)Dk z`Op%2lzGw6gz_FobA>Rw=hjkq#HVSn&B{$xOE2i4ed$G9y8bnUg9qpz-oiPcPzglA zC{#EL8^FRCL9KZiD_fsI=hBPtf)27E7u(RrXfe;-)sF%`#Tla8$njpt*+;yuGKN=JDU^d~Uc z?VDKH`V4BVYb7hR99W`FJBlHMM7?zd-HlJ8z5cNRT`NEGiQpy(q+&Fe6D^%H=Q(gO z8#bVc2ow{P5s-4viA*O40K~dHij%(_fp8t!%1bAh5b&e&S2}g}BpK~7;~~re&+Ehu zbQuxEjxw{^pYqqTT2N{Vu?Z|KgQ+vhe&Mp82p0CMiIcKFqt8i~Z3KNeCjpuuF<4#? zB6vXuD_fsMYxSe&Z3~zQ7k~i}AUw2IUqJWLCzCz;AWVWFBqAA^rYYk^Spzy7^!7~3 z^=a4aYYjv`YiZ-3&>LeIc|#9omY+c4f-{X_e73dgt=p{ofe{7l{LSu6`pO~zz~~o) zA(F{v1PQjDK=(tAQ8A*l4X1`7(I}7de;LCu`=4UXXp@Cg${M5JgSu|!Z@$AUaFO+~ zNXHWI56&oTsY{9)8l9)nx%3k1?Hdz!mRcrUfH(jFDQjqSoNOd?%i8Vw{&PbR-Xn!X&5>F36Tja@;2WB)kTr%s zBdmHWNg+q<);r>90eF5JE1RFj@uOEUJbD{MBP=_Xo&gA%_*>hnA3?3Yk?h^43`6$j zkI57I%@Fir4`Eu8^};{CO3zXVg|-F@7Q3znlP;RFaudR(JOfCpmfvA0eU>vFTTwUG z2{`KM1X%=PP_mmTvU>&-&4ul{+B4x=kufCORMF8MD#$b2l+@A9S$4$Ug_*5LEsvzs z06vVe^cDkW)=t~ls=YY`DSWh6o=f1$!(PW&-eqJv^v}Cy4slWM|EGq3s%rvc@~ZC(>Q+gvt`>{ zG>0W;0IBtVKXtbY3d-VnM_uoJikLKM0r^1pm00}?nqS<~5wfdH6 ztyaXUbY+0uvqV=WLYgbmV7(h#=S~tu;SrAae~G=j-@*R!C zT{OGTU~T(%uy*+iXm*}Tt?}G$p&|kKxM2AhHW8J#8B(3wq($YU#uy3I8&}ZmJPqm9 z7a0?9A}lonkX{4z)=dPpONs8!LGGE|{B3diFZ~G49{P;P4juhqrL~>3@s%+VhZd!ud4JaGAT#X8Bxz)&vs= zAqiKnw{F4!>v@W7NM3iiYRiJB3(kXQlA!sJE`e4^}MK60r_ve+0M|>16pCX_*h7 zGZ)hL!{H+wJ$e-f4}NG7e}!cQQH)XlJ?y>z9rTZGgW@oAXR3IHw~7<7msSKbScj#z3E$8M38TS1^bg-e z6dqy;4u+^u5^*#@|M)frhqn=p56_I-J@M|vks8;%Yz8r(mR-Cio35)_Xy8tfn%?WY%z#%+=D z8@X{(FwU|+{k*+j3AZPCUK4(O1IanL%Zue@00c={@e^)uS+Pp$kFDKY+L8Z&X`(y6Hb@qlH#GyZZ36XaGj77PX9NH1ve zGs}eKl>k!c4o*p(T)VvjYH^Dx>^rA=0Q&GuV`pEHUqZUv{JX+b06EIk7-Ik@id+~E_MCDzIyW7ztz zN5j>}%1KhW_l~b{v7y3&lZoDD2HN4Hk9xP3p0mWRO-KMW@#qWFk7qr9Tnr;%`e|S1 z;QQLy5C!R+1{}*8T;bwEMdt}??Ff)x)~gM_#p_2@dVBqe^ZI!=z9h~;0+>cvqVS6C z&DTa7^JtEoN6)h3m~NkvWmUMCFnsw5GA3Xguxbtze*AkD_d{&_@T1hz5Mz;^7DC+X z;I7aFEOyi_kO2rtuLiHyh4h-a_5Fk-bTb_7BM$pnSGYnqb8J8Y|DBweceAotu!JxlsefA%@5A;^6K-puhLaf{fUUbiGtlZObhE z*^e}#m>}T0_6?};7{J~bRzdJ_;+FrE1VHBgbNsF$5o8O4xLPVDTI(-h?Z%fOy}DjY zkUkWTdl(%23P<;UgyGS;c?MsFZ&e0;~;;S%%qn0fENKGgyD(U%?AH#!+!VG69bJJ7}zY2)l3nCHi~6ScoJr ze+D2tG*>@_wd-HO%9Y=T-&oT#a7KRuaWq0$e*n*KxTE&7{>le(@U)bBZTS;kL?-ts zzpm*QhT`587r3y<8TC{MFW(nX?+tGn1+$nCVF(3A>_~3!NYkijA5sGdczz4D=4E(6 zmlu>hTWel{@2`TQA>wd=;o+Ne-%f1qUH~CHwANohck8#{2VK2RKTZfw9q%l1;kn3y zar8zVR-_f z%082G1?ue^SlRw8nyb%Y5le~ZE&)idj(Y0`8tog9@Ql^9S)f&%c8oe75BgKDv9@&i z>?dECks4&ol^pt^+!+Bb<50@y`4L{{1_x6Vxi3qGC91QUYykbPvkBLX;Bzet5XQ+O zdYqZjfXV})ek2bIa&R6(GXCRYh9ZTJTJtJu^-W`8(Y!EM1|Wol^xE+KHY9o4?c&(3 z8!X#++K*nUO$q*sUE*g$LTqv&jX8jY1_;WxJ+q=#_$ z2&3b7(R=tRjvl;>;n6$E`2^>@U!jmbg61|_>(8UP_5xb#A4RQw4Z;f$jSew9x`X3~ zKgIF=A7Oa(HsY`kqG+LYG(&pTn9)XJeP9S+=;tbAI1?frp{9l{NhNj@uT}vH1{)!r zC>Il>H-94_)4fG(y##Br7UX_5O91X(QDkgJ{bUk?Hvh8OKKoCfZmXp>Q!FD|>^vnT zyr6^5r5CY!?GMo2coFr^6Y%S6kbVmg5^>Z=JUT*m^V4WwdI<;be+NeoUdDLvVBrL% ztL>xFeHLrizl^nOUqG#M9e#ZSUabouB;sgH{-?%!k7y9=TP z`MYiZd>S~$X;<6*vxm%Yh7mAV051xKhKJPlWzqqRajEEFQDbj0aR8})uQyk)M0O$E zyR53@4vVWks8cV;$Q`FW(Qv~$+{l|fjzxua3V418tJ|N)#*=@7mF>?VXkFGPA*Yq` zWD97tP^)jEUcZb+^BVlxIv&0IO^gQ*C%1PVwU$0ws~^Fon}3A$8~+WOs~>{&0^Na> z9GmUeHc_u_qS<*Gjn;MeK^MF4{Pkj(Ksw7S%RLzcuZYcv7-4V4^`_i516!_i5i#Gi z)|7-<=FSal=ZE>L0IW0E!LDi3wJtPi69v;*qWeu`ep^?9qFnUzItYZjaA^{}E52pVp!c`1G05KI90S()Lmf4KO87W)V;uj11$&5Qn z^v~M{b!x62ETU%;ctIDdo1e$ZrQbr}uR_F1|I5dt^Iny*gYN3bF}nI?436GH|8P+Z zfFS)ARyRM3^~-;NcKc}v^7E=zR%zauHMG0WWAoa-!tmf04#SrbrJ>(*sHUz9_WQtZsY;?e2#l$%l-I)hqoT0WzXooqgFttNkoiE`17q?GolO+HGmk zkfxZV>GIa`XDAno0`?#;iP@-}AT14Nn5`ruV2jGb)2uW7Xvka6`hqA5Y*P^R!{v7({1F1HOXY# z!fCymkJa?a+<`MZkVlU}VcmD=^1M%oa?gkux-S>2|1$6hXKP% zp$vgp|4!8F;L6*0P_QMRScn+r$p%{OCsFrTA+tazvtW@{%3U3Tj~W_{Yw-Op7I6$^ za%9^k0@;R7GG)k){&lEjN^A~96V2vL_&#G^PkHBArFB*`Bdx-T&T2bNXC;>uD5`k<(F610Kf{;FZuLDm6S)GfF zT6)!+$pi!f)ch4lF|VVuDD5-K#*j&%wm~{?EHuZ69#gsTs~C(u4jom}A?(l+h>|iy zDj6)$4X_|1VDcvcy&}u#7$!uK(P1f@y5@KA~22TP~`j8}2i*>QZq{uBRAmFJ}pXLcRrgD2mvwqC>3~)*;Dle8M z=TuS~jHu^{SHYkGr(}>O%;EqR!~+%(2&AI`4L>OBI6xZ#^JBiC7kK2BOU_q%m~s&S z`6&R7=M;lj&B67rO-IGpr{w z^x2*sqi==zJGsO<*a%(c*{H;JD?~Q#S(~Bu{FD(k3ak<}{ zEnw#}knsZQtolW0_bylc)L1Y!@W`r|1`qKjfwDCt8DAh`BRc)g*ROyXm{TL4OKK9S z2(U=XfJ9%14aWs*AIi$w<)rB||-rKbV?vMt7PPDg?%E5D3Y z!IM~zZ6Hh}fJFw60LrcdcoDIg%%xcuJdea(IPV1*#xigFa9FM$2t7u!eFKDHAI{pB z5jSnLt0A;+}h>R4_e%o*J7baj%D z8C)?*($KkR$zr}@YDP@4nn`9G0WwY*=-g^)_fuNu)aP&9Fg~+Z=C28{usUnQn^_OT zebi<}=(Hcs6TI9^3f>=DF62-doFk)`cIn@zt=6A#c=h;D#(|A%p zIOY}ZKCsft0y+?UQd@*-lwv^)K(ByuY|97%AXd7OB~~dVfD|F-Ifzc|c!&0J;<?;+bE?+;R}>qrWdA}=EKDLNb5bhwio~fQ5Zoos{1Xdi<_p^vT$0eb z4>Pc4P-_8PqLxEc%=Tf=E|{OXLmicw#Ox<+A~FXMg@{H6KsbaKFs}%!137;)4@fk^ zX!rn8)LTG}1!5XuG}=WR_EJ4Qb%W_7yoKPdS9K+d1{n44&cDuvvDdOW6iJW95YQWi zf9INQsrfwWRhh9f!(y6_2n#jnE@VFdsoWm|hWmp%Pm1?mBj-_1?yKyg&a6r*-a+ z?qW2002&YB$$C~n0g>)c!uMrhf_C~f414JH-$pp+6^xnX9hRzM2bG!CWT5;)9VS&4 z&h+H49vR}jX{-jbb3Io30jRzbDHBMpaU+{Pr>0E^4#H}^EGyH3O7 zqUL{rDC*;&_Xhg?JD}!A6Ji2qgn|vwyhISu2!r8W9QJ>OQMeceKons(-o@e38`x;R zfOh@5xgB=ad7_X342Sn|fB*X!jP7A>!`&uAE;Sn70scn#Fe3NL&@zLgph>1WY}-%N zf}zFf01J!+)c#Fk{{z}To8zd2V#6R55%V|cNJhx7*LIX+RF)RUg<~3{H+&Bd4`0T5 z<2kIfo=Y}QbyhBatv9@f`}^O=(cm4#w7C8D#^E7$_WuE^jc3sG*5S*R;jk^LJAp6^ zAK}sAD|mGD8b;y4d@9Jr_;d_#mC=ySZBac-CGu$si%KQ43DRRi+`^CmTyIM*aQrPU z4nWyo903qI6qsgWe8w#4FxH4kv{NMZQNi~)VjLY~XaAqj^0yG6j!xqyB)t4YYBjPy zet>)X-@|*4zK!8{7mFf(AW;K$k6*)kkG_Sbw~o#BZ@`l+(=L+(VHob=!QnsS&h9tS z8|{EF{{RNJKi*-8(iTe?(S3#EAg{_A>77h~l92eqEQ=Y#Jg_hcKym|!t92H~NvuU;Pu8*ARLXQS)5yn{2eWekEsI)C0AP8FoG3VdL^Q%~ z|L2Gv4lo=)#I^2kW2JTzf!E0nQjIA@827P1yoL7pm_#>y9Px&51H1nZC@fPe?02oVi22zRk_^dr2r_boi=y^2wEh`DmsOcdAe z)bO5U$+&A(x&8#Q)qS=Nn#{{OYET%i&Z1y0b3XyD!s^qqE zm?ZBQj;y1E>24yJ0x|L2@~$*?lv^%@QK&e_i!|R9|wcCa5R1wgK!T~yoenDia``%Fn)l$hu_D+;5P2m{|=qnHME0m__Bpj zbcEh`2S=m#a4@=q-smpI@$q?7l(_<3<0O?g9aecR6&A4(?W$I3wOuPql@hm%b@;R) z^-kJ>Xiivc9Dw>k%#D>1C}o?1aM-RC-N~9u3X=;M+*w(2^${Xm6fDq1(t)tZRapvA zJi>AOK6>LF><@0C=C8mP$yQ(ExQ}skgmHX?m_jU8Mkxj%#wa?(C_2L7=niVKgPPZY z6agX{VjLY|6dxmsM_3ql%{%})tkxbU=~Z@3A3m#QbVFTGgl(N4_;%Sd7sW`QYYn;}*z zsEQ1!vUu1K_@ENDQ~+Iw8aqYyEUxORjYu+=b}Ah#YHOFp1OkCASTVZ`S*I5fzrz%t zg=S{6JF^ckV+>ykY|j8(jLTR+sf8^SE*>lkz0g-FBS32=SB7b8w%4|6OD46}|Lc3) z!%(#I6;o448!i`t#Tfx%uY)$aFWD-oDEPrL@MU~BQ=3%SDL2LdYT2*~3ucd`_ccf7 z{5^{>T=el^70wjo_@V7W>2DoQY8sRU^G;d$Da(Jp6w^THvS0DlfH_Sfy)G9x4J}Ru zNH+v=gRu>g#dhjNTMO=!sh`WD&uD_P)i03SnI?L+SM=EjqQNOe9% z$B0d_GbnqQU?*H#ItPIk76k|_iUFuYKw>4zTV}lp7I*#vGYf5DNo2ij>n@i79j?fV z<{vL)gzk#zH;w-qOidMxI*m0af_t&_b9^DR4)=9?0gU?D6?yD71OapLIRg7tFvi3{ zAe`PMC#L+is#S^q7an}yNeeXPw{_2);oVkx97%(a03t#Z_b?6*K=BYFI|L%n8f8Hs z5TJGYOay}+cF72wOnFX6f3f_O+QFXZ##|#5xMBhq8uoe;?F}%EbtISsYWwrKuRi@^ zM*T6b6HTs%M7o7LGc>X+5F^HL^Z>(fFSm=*JTP~6V@x5ANAKcr@D?ZOwW;G1pMqrZb0U?AU=lNXGaR> zZ#(wD02}WKBgoT091ZZO|4SSUZh;UL<#cA4yA6OS!oB04U}f)bQNPqdJGh*#7PF$M zDQ3qa85tNInCnrOkjDN0X^!eU=jJMIKo`Z;2Vs0vxOgyvZUl4h+J3#G#!Hy(FjMQx3P2hL+lT3foT55fcY~3#5f$hjoW+Q z1ko7VtrwG}uA;%xBuiqCM|YEzZC1bAZW$hrWm;LyfR9XEcb=h2^9B}~4nXRWwEV*wFA0wm4BA>` z@!ru7@cz;FF^cB2QHq6ycmX0B;nCoAjG}!!=)Hzc?HXeMitHlv!iP8NX#I2^u%-N7$02=^A&Jque67{x;zj_%-ibQeN+PS*?}MoeQEOC`zX z%E=dQtl^P=3c~otX7w~509JUg%UD?9q9e2O80sCD5JeUzU>e;lbufzqP|rJq2Mn>E z*MUIT?f(*cgEw=UrU*nK7Ablzi~#@uQH%(~DeV*aUuiH$qQ`MxtQj3xl!uZM za#4PcW5{&i2Vs#fqQV@Iy*^>RdoJ4RPshlE$q4wpA|_BQJ;oFwrb+I-#ZNg4WdJ8> zq6fdZtiH~}ejJ-G8g8J9@E;Et{(l{NKhfKi zJ?fbKiDd?zw>_RNiv4I&%Z^VDC5pRdW6RQ~)dih|+Yt)=`wIxTsIYh#wjr|ANvC01 zrAImmh}<>hPBg9+Jbw|!)lxG6`>1dA-Egt6mut-C1S{M!zs<8D9#a0riVN}*E97AZ z^*Gb;cTarGxV=zGzGhUQ9c7r4R+oJEEVT-d&D!=2D(2j|^9Duwnp|tXvvPzZUjZRJ zNEzT_2y+!o2na|>A)Owl44Hx1IH=CNZ>NVtb>!p8R$Z4EOU(eZeh*{81&`g&Kf`}m z9s?^v(EYf+=gVfgEw?(#p<)CV2Lis=f+uR4v0EntDV6uF4X{7^cX~}EPd95@=r*24;B}U{t14LVWF77Lb+qf(6A2C|{KKSc zQ=$Y-x3d~c$;gapl#E}B&bvD%VrfS;Awn4U5yvB7!ufH0_g*n2NAt57$vK7sHE$K` z?T_M8=S2j5r_{3*&Km-aU<+5*eh({+r{Osko=ty`u87iUrE;b~APUn%Tb5f2SX$XO zvCYJY;sGcQAq+8Gg>RwS;o(m( z96tgfEYX5x(f>X;Ov{rEv})IIW$kxx{nD4ws$T`5M+jvhziAvmZZ}{(m5^Q-VygOC z7&$N599x1C2{wxR3t7>38Z0dXNc6A>$tr7JMg_WTD2>9bo3gA;a++&j~hf0M$sO^Xn@5LATLM4lL4ftLkbT< z_=z1uNQmVX`c44>Pu9??UBUM1XK{V~%UEeW15ec0%20==$66miY%K8fx`*?t2X!K0 z7?7i=hr#H6dSv_ZVrdxw07UTs$Adc;9ZQPBWuxzmOn<}0p5M|E$sK+m=gPaT2N9$;X{f5 zQU;JBfbX@?2sY8IZ6WYF2)r%=uLDmuAY~0s>Er@CIRqr?!8$tiC(v%(KqI)65{)!3O{veTKxwy z)FI=RBkc)lJmoo;jy|nCVWjnB1A%Nq${N(so2GwW&Cph!YL%a0Ou3tx|@g&w-AI56)Ijl6F zMW=ofzSlr{wvr}VvYDGpy0O}nwnOA84>qB24NBNqWWI1UnUYzQ_1##QBVerF%L?OV zXKC}D%-I$3WP;tBrtY{TL6I*?qgG#6zjR>*Z)4uKz?=6EF6Pr^>1=5fmNQ59t4&Vz6Ms`D~s7kdK_ ze$V{Om78m8QMb5NLRVj8pG4@5-oxSG&Gb0*<;GGo0Dut1L+tn8!13@s)VviP+n?UI z)8{2zHBhw9p9letxuTRI%qrVSTc?@+N$d8ttJvy%5?9uK7nfQupdMU;FPm(Af;qDq z4$!P=6WZq11~lU+>I=tn*;d;IC$hwA!)Qhm@+NCdM|#aDo29Wg?=;Ln%Gf6y<)EOA z(`*)wYO^*U58uIF@0Y0uV0mYMVCflvKtv<#9sdGHgWFhdeF%b7Tz)QT?z?FPwoHe_ z3_|Q#=V6cze#1jQ9S237thGWyiU7@E3tQb!;p*z|VWa(VwCmUOngoLOV}r3UvT4}8 zmfc13q#B;1K0=%xC52?ExyCOVA?gUe|#3O^Pk3|D-y_2tT2hv43@FCTStCI&%HZsG_+%Ig_RL+xt(`* zhM&mTdqVtX1=$Wh$QmQeOtN-NY8#AuA&v%b;Zg4w7>pk*eHbus0T=)fV-y}>zxM_X z`nR#(dLB}y)#j{Oy+{sg(B<9yg5{C79_QVSu%}Hkp)xR%RksO941BBD?7WDr?x(TQ zei7@<52G1uK?tAC&K71BIdXOmVO-+|&1A=1)5V%aQ3DY{k)8*1uP)0A@Ulq#;AQLx~en0R`znQP7KqT6^9o1IVK`sx?3(S9+v z`p{`un_{c5U1`(mW4JogzEaTw#`t%{RhWHaPqpQclVTivwWz$|z^qE9c^Z z%ZVb)x*E(mjxikXVz>7*91h;T5VJpUAs7Ha6yacS8xM|N#^vs3u-beU5`p&lIt)Bo z*A&(aVI236&1yL(9}gid9MgO@n7+@vLd{=AyLJ_8%@5=1%I9%q<+stQU4aw{-_&a=kILsea|&hf8#}4V41s+L=tvAwvQI`_0>& zxfGRaCb#W-QkKhks3Zx>-YGL2Dv^;)R;9d~0s>*&!*1_2>>j_0VYrKOv(5SALNEXT z2;%`B^*+mPiL>msQ~bsDcl&ug5wL-h%{Y1A8nZn^Ktc!)HNT71#&fu__9a~Deiq%vlc;;E z5W<7Wywc|^_gYr3tV}+j9eRsn*JITexxEyG9^gsbyDd&zc^Nvn-Pd+s4_JaP%@B9>0oV_y`vX7l;7> zqv!|^k6*)`y}v~xSjS5JNh<}PkJZ3-5q}ZGC>S6)qad`1naf{q1|{La4=!Q7`5|m~ zK84NBOSsf}0j*#gQXQ3^(U2AVl1U;av6F)!ChPeV%=f%4Fs}*o2`9*646YM#_%||` z&Xo6+Np9vl;;LGn^|E}j3(BI;7?w-r%i2OlKWJ5w^+#6Ew-&y*| zKN}Z{0RV*Fcn9wudqyWsU-dG%LcYPzlp8ROW16`gl_#Nq^Kq8fKhPzoyfAi3EdDTwvt+k zn&zPmpv3B)>eNO*SR%5r4e&HBvqRQ*>}WM(e48_>5V|;{Jr3`HX@}qpnYG=hjmePp z{trw7;zz$b!k@*YkZ4;V%(c_39}!^??qcWg2Y7e?yXcK}E|l)CaN!sL0F0tTynpad zX!={IduzDV`f#%T8#euNW0^Mo7y~aS4qMh`Fe`L!CT434G8X`$COf#f_9X~-@MSA= z>*WrhIf-VQb9ND14`+?3tgz*zi~b&Er4 zF|6&XkC~#N$`<*!f7=Xa_Ls=>J$5ITm*Q;7!;pJ6Er-=3jE=B#_|Let`&W3_`x(Nx zkBf*4$p8StFxtnv2j4}*Uq{Vrr?aeIklGfu^=6=Mw-wX*tUcrTtY&zzg!VZL;i2xW zF>3%77_?5&16iS(Ar-Zgw~M#I*xril>!vGA&8XT>ByhbpR z;c&>LA}hn(H(}-FDnFOj&NE%)6~=w+_I{4HAAJ+|j(&u3bbR_3dQP~o`$G{$I2zu; z?MHu&H+TOZ91ZUvrm-mjq<`57KkB!-&p!d=t=P(~#9cz{9?MU#@{)TK2*Ro#e=cbo zWqglW2>pgy_|?lO(tl{2Bn>>rWNc-k(SZj7O3Nk;gl@y>WjtlXSsEq^`jf49>{ zdt-9aNRjOzYm3$Ax!)oiC!#2?v^`NY#KGV;Za?}PynpyT48wg#1uhOQs05H8q7n86 zzsBuHe+2=7r!V~xy0s^gWwMhVR5~k}zqROXo6?F!N^`+tYtcxU=cU2Qo5Qn(s90b(u6O-AvCjsxs0#9uNiJi~2H4NA5I}>g?LJ zH<#~(`V`f5939|c?_coN-v5WU_P&Xu(YqJY=x5`?GXNlw1oj8F@ax_G6GS0yto}Y$ z>rW*ch$!(c9Ua>8FLE9N!=T2E>q_*r?*kx_KLpA+eM<0I#<6jS(!Yh{`78r=u06Xa z>{*XH!dL;?2&i;s(=DQ%99+pZ4Q<@8NSQ4_<&oa!D->1Vspo~ZTj)q#)0M}!C9^q< z4!do1e4n z7tFsFL&~`ijc7uvjQpE(zfXhtBz22vgx>fb?i~CBZaw;I-0%Ga!|))V!3D-+!vKIp z9XJ}jhj;eBjsExnjz@QKt^0X&YuD2qa=j#>D>#4+X1(EtInWI0Ham4#Jqx&o9H9Kq zYIwQ);XF_F-Lg(6ml?sqvh-V37TN5aK5Mr8qL zj}!3&j~N310HPR!@DX;7e~kY4A@&Dv;(GVDvEBLvn!#qerM65(N;bQ4Q5*KahN0`K zi@8lFKum_vqA1|nzs{cT_~I3F_v5@P&zP%NTTJnt95W;t=@Upc`iZ4i^{{vKHP+KR zVgYi&$%fHQc@MONk}=-Qy=XIxeEYd{WwxCk5W{pP<9YpXw(OY*L@^>7;&A*fc8-3C zI|qM{`@Nsyc(gO;^Bv9)j~xS07)Qr=GbV{pHLD zW>S2~}@X6s|<)^4H`Tt&_ALLyNO_)O;zz8&9^G`5J0 z+6LEr|uhaf>Gz<^eTl`8^~y#>p6ERlaX(~ZcqO06rtG4 zFA&lYgK!teqr2E2-om}(pJM0uW$X=aA&h&Eg_VCA9%}}WfDqFdgK!sjkA8^V{x8w3 z-^5nyhhrpfy#c;5VJVW>5>EdT{2n(Gy`lXDfC3GG+TYzgWe5+WL4 z935jE_b`eMa6GxdgD2)H=aW~xPqG3g(qsMnjn#cr)r|Hea+4ta7)+AEttC8T}3nf zw6Z5j0Ta_2?zM7xxzbLSe#+&63BQZlP81_X1fmFGJU~CZkHgVBI2hi+?%;Lo4c^2s zIzSlr7~y}g@PT0f8VMtaq9KOS9(v>Z*c;x$-Qypj=5-Os76REu)89bdUxhCkDKiiS zL}wm4;v9&%XNs?vop;Ix`0#Ry6pNy?(}eeF?I=U=lNj2p{bHmeLPSFh<0A~iJq)7* zjG_aKq9cTH55wpHw;>T*R?CKb!>v_+VH|mIOjb`1MQhYAX=(?D%)t z**6*=VcdTJx&Y_ieE@K3+AA}HitH{G;V&3M`lz+8qI>!CXskX5neBu$L9-V+tl5MW zIcLS*>ugQdFgm`2!=3M;zyAi}uy@{FQXxSRO-`lJvQx-O4Z0Q12ts(MwXS3R##eFa z$v;M8{cfiapi@hj z2sqk%6>)Si4#a#+a3(Z&))GL)2+jyX zcxbe4VB_jnv329?Xm>vjiF!)>HuB*+`4l=d*iadS-fh_S)lb#{C1hLO#4K`%8SKn;^u<9o zrocaWhhmfT-O+#o9=!TCwl04ek|f@b|0|9UevYVO0`oxG;L4eBS_V)N`WZtA4~^zE zY+d;(E?@f-bUGh}Cu-^I*D}1`g8(pHc}0=Ch0snmhR;Z!s@3j-*#4y3{~*5zKSc?{sisLN8yPE5CNKSr*$(o_bZ9P z@r<$Bh^G_CADzU0IHN)&nzhT=+WaC!47_*eFL1E`8sfMz49*EN41&oxjRe5`ja6{a zDUlHWO`%+jH+3ns#oU7oElC?kNW8n_PB&B+1;03Mpb zWo&PJ2_lLhNMQfqRm5>637j#`l#Mka`H!*Eejy?L7)WMiYh#P_Qxxdr=Bh*M6_M-J35#jii-(0h)#qJ@3|?vz zxVrgeNCGGxWB=&qh^w^&X9?E}J5?m$wAGw5RYr)Jr=brlf?y3-Hok@?y8?j;#T+!z3auwn$Wa}mr}=Gya6TmFd|8`TTu=K`9pM*<)r;RV~cdg%*@$A=h> z?xQz&AJrUjD!2%H<{96 zMSC-&hyhGm^keHHF5)NPF*!PAj__n1t=biIf~%;D7AR6(Hc9w$#QkRkZjO)q{LJ%! zDf*`dz;Z*0zj7{n*ppL$mbZm&^J(lK{{mrjgtN0Ze4r4+O=EV4Pl^(AzFEH@v1=Q) zX$yn0g5o$H0~i8moOjPHGX#X$ZQ1`IlGnv=2&+sDJX%!zOBw1cZLab zTOjG*#<~Ik<30w%dx)X|s@ea<=n-WnlelL6Ni+XMoWus;az_}I7>!0pM06j()pP8$ zrAJI52BRH3I(!AI!3}h3Hz3p+|I9jXQe8rb)+Qbzr{ovF*rR;vGfB3#$3Q(N9MXu1 zFz(~H{|@$hzrwiE|4)PaM0CV{yNLcowtz_tz-@NU>;5)J5=Tcz2XP#~58%b~?zv^h zFx>U3X_l|#3ZLWHHyb*>WX8>i0e3E*Q;UsGTY*&Qyuix+gG>W1l0G;#hy=4X=#wa?( z{o_~A8|`4{@COKF8~WHvGqnj(aIFA^MnL!WfNu6;h9W6Gq_ZZ3)JJc8AIGEjF^Uc` z`>|jZ7>?pNeg)dARz!1fd`?ACC~%Rq>2eRcxQw`a_wG;PIKBhmqvzd&%MU^r53oOc z3kSou=Udby8}ckClT3YF@ufQF7J1HX2hBJW3FGyJC^rxbD00JQP_V(^| zI-PGzDJuq08Vewr>2XG9pKpZ|BaY*5kH_PC>Cb68|FpM|yDv*TFiq4b`WwY@{0#s* z=iP}FDqK+P#Bux$A{t>btpSs1vJf@{pn~tNG}D-X91e#+C8BSgcQ00`a1lX7-x>~w zKLye~*G{hc7t-}K3BdUfN-}{ciuz#~{ucmmop)zesBppXRv3o=B}(>JI|=cZQp!|( zCfE7-sfk4=C{9Yx@5wL>9|S?*2_Zg*Y8&zj70O^3$MJve^?HAUgpgzC^#IeDL6J?s z8R{_$18@4F7$v*Lx-Xt%%>H{{xeCf3WKl!53+lkplQ{mufK0 zXeh?x@m(q9kEN7rLWpNj83rqSurVZ}zYN3hKRRaqBIBQnAt;oM5G0^H19089(~2qA z40V8r{>k&aeIdkC0M-`U=M^d}1>TC|_&*Pa!~eu|eop+Hcx?k9P|h|m5tA4IzgA=m zD0&WzJ)$P>S7wx5O2 zr>2=^?JwizEBccqz6${4d0w+#um6UW@@rDcF9NuUiWyXRyl@2Ioj8ua9mnxEhQr~j zX^@Y-vNkU9eHPCE|K!LPlyj720%aM2EOAZ!j)f4lAPBaDAb3ei`4WH+2_dcm*aXl9 zP)GUb#R?V912K|4{Eh)UAfopHyb;IoE93F_mGO9dFOBV2;k`Ctm(lrWarqSzKX7se zpgvE_3|!Y$1*Px%E1u`A2qD@+h#C@up)9E1q&8Hja8{URX^#PfL^L9z<0y&_(#22D@Y-qj1axt{Nlbw2K|IgX z%>J(5Mb|1+I4Q~y)JYk@Nv=&RuN0;Q_e{Dr%`Q;%z0Cb-`4`otLWM*d zbbnI*_V-EGW@Z5P^;w8@8sWRXyFQDqm1$Fj3a7<117Fd#G6X%Vajz`#7ha!6EGJ?bCE;A{zKR+0TI7{E!|QK7rAa1k&so&8LRo@3rbchdYT22x?!u}A_w zbHZ0xB+;C8Srx%oSSFk`k05UK#G%YYQEiy1vFgZFfGdeIcD=;uR zFfe)@Na_Fp03~!qSaf7zbY(hiZ)9m^c>ppnGBhnPGc7VOR4_R@Ff%$ZGb=DKIxsK` zK=4)o001a-MObuXVRU6WbZKp6b97;CZ~!teGBhnPGc7VOR4_R@Ff%$aI4dwPIxsMj z_=W8N000tnMObuYcxh%jMR;juPiAIwWpn^HILXv|CjbBd7<5HgbY*yHW;#%5cx7x@ zL}_hhZgXjGZU8hgGMvGIC;$Ke7<5HgbY*yHW;#%5cx7x^L}_hhZgXjGZU8elG#3p! zWB>pFD0D?wbZKK_I%98ed2(rIXmkKWZ*X~XX=iA3AVF|&Y-J!xZeuPiATlsAG!54p zsQ>@~7j#8fbZKK_I%H*YV{&P5bZKvH07PkXaBN|D7aNth00000NkvXXu0mjfDrFqq literal 0 KcmV+b0RR6000031