From b24d6cd47f5432f84398d47839e7af9268c019f2 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Wed, 17 Dec 2025 15:34:49 +0900 Subject: [PATCH 1/2] feat: add secret manager settings controls to team management UI --- .../docs/secret_managers/overview.md | 10 ++ .../img/secret_manager_settings.png | Bin 0 -> 119828 bytes litellm/proxy/_types.py | 3 + .../ModelsAndEndpointsView.tsx | 1 + .../src/app/(dashboard)/teams/TeamsView.tsx | 1 + .../components/modals/CreateTeamModal.tsx | 44 ++++++ .../src/components/OldTeams.test.tsx | 67 ++++++++- .../src/components/OldTeams.tsx | 45 ++++++ .../src/components/team/team_info.test.tsx | 134 ++++++++++++++++++ .../src/components/team/team_info.tsx | 63 +++++++- 10 files changed, 366 insertions(+), 2 deletions(-) create mode 100644 docs/my-website/img/secret_manager_settings.png diff --git a/docs/my-website/docs/secret_managers/overview.md b/docs/my-website/docs/secret_managers/overview.md index fa1e82b1d0..957e7dc0a0 100644 --- a/docs/my-website/docs/secret_managers/overview.md +++ b/docs/my-website/docs/secret_managers/overview.md @@ -1,3 +1,5 @@ +import Image from '@theme/IdealImage'; + # Secret Managers Overview :::info @@ -45,3 +47,11 @@ general_settings: primary_secret_name: "litellm_secrets" # OPTIONAL. Read multiple keys from one JSON secret on AWS Secret Manager ``` +## Team-Level Secret Manager Settings + +From the **Teams** page in the LiteLLM dashboard you can configure a secret manager per team. Open the team (or the “Create New Team” modal), find the **Secret Manager Settings** panel, and enter the provider-specific JSON configuration (e.g. `{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}`). This configuration is applied whenever LiteLLM writes secrets (e.g., storing virtual keys) on behalf of that team. + + + + +Refer to each provider’s documentation (AWS, Azure, Google, Hashicorp, etc.) for the supported keys/values you can place inside `secret_manager_settings`. diff --git a/docs/my-website/img/secret_manager_settings.png b/docs/my-website/img/secret_manager_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..ce13a60ee9e9d860cb89f289faf99dc9dd8dc9ba GIT binary patch literal 119828 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

v)b%(I-NDg- z+coX*HoyLFBcWQ(NBm-$MM1SMY(MkCT)(*GrFFl(Y_5-1$$GVSs|iq>QrDNwj8$@I zam;D0scVY{GMH@Jiakxol{@cwVpC*utY2UoGl_G2%{%3t#>=@He!F4m>U*F4e36pSW{$r_YTu*hTpa znqiqU4zVImo{52s0cDZp;VnUy$lw0u^&g@SEetu@9=Ouw$6XJvn1K|3APTr1n?TUW zSsjK#MSDO3EPc=LtB7QYZ(z)t&t@vm~-^(d}6X!}*FUwTpBzl;rE zprk-95V^wHL1nv(#>&geq5jS7elk>>ahb%iE8R~1@KMT`<^pC_t3@&j2srx{s&9D@ zOGO<9uE8z4$mgo-Wtl4i_!LmwCDP1v>>;$Nt^Jw)!HrL7@_hvsq`?Z`s>nYyG+HuRPab1yC%HKy3Z+%5$0Z{pZ#;9UEr( zvpbx(1CTwV#?SftXQSJ6%_1mQC&m8F8eSCb35|~{x+U}r0AOd7jteGQJ_5jmYL-)!9efFdrU4`ainfndzvbVAO$B05f3^B_W zV(Zknw#Hij9zUaFyzI9PhaeD~9$ekee)7|=h}h2x0=_eOxq}1YMF7|4S@$lZ^q<(_ zh?fp4PBO8>iW2}mmk7c9{M^2~KZj;b=I~`LsAIQiV6=%n!$TmU8*iRe`235Yu^lTU zf|SxxVfPmRaly^Ao3(a6XW7;qZ0{C@B1)?8R%xaA8dbv<6`w@p64w0-FU8C$@pE)tQhY-y0X;WkNq#X1{yki*F&nRmvut7Gg8FaQE@1QG ze^%soWKB2)Z523--1{B^L7A#@E@&ML5#=n-Be&Q7loUv!HqXjE@IJWigALrc18b4b zzPyjI9LDrm4e3dfCM`LSel}KvYk|@n47L0NVF=S;dUoCL5&y6d zMY}*#^c23{_1Djy>~9@VYnzvhE_?b23}D3#8V4=6v0-A16cGLsEKzPbn)3$>z=(H% zPd3!{HoLD6F`r|NUT(|Ze1<*w2@sFkJp1vr6`Rk0j<4;IxJG8XoV_q>&WaNELo<|? zKM`0*1g?nbwI#)AnRIh-Wc~-hQT3i(@BTA1Yx-W%wf;Vjwi_$572XUm$Tr>_5=zWq zf@0iw&^ZnWZjib&vG)Gesc90+ zvA1e_7RsK1r`r&kBIQDF1e<;S!%&_ed;`vs`iLA9o;U~*d5qiOcg_f$?+)m!?VJB# zvd!4Badm1gJ1}aSVeKFClH=hVu$$ukk;|vWZOD6;{-(IAlI|AHtFTseO?@hh|OY5Xl1Jw9Ki`M_2;Vf`$6SgUrL$;WUEA zT2Wn*Kn^>Q?P&>tATZC9&pB=7Ow>@#nm{IxaGC=`E~G6qyf9wtjTdc)18WwctIET9 z_6)l%<)JA&E;?@c#km}MEpX+GDyuduwi18XX|cDVEjR0q=TbROn+km z*l-!3?UtRVbNPBf$Y+Jc`ipiD*}LHGL&qU)boC2t{rIA25b0kvzdCpkY{tIT(7YPM z?z{9MhJzbUqv6KdlA1CkJUBQy4tACew!Bf7e=eOZoSwT`M)Uhkc`0li4+mT01`SGV z^Lm_~uwPqIdrv^tD|Y{#tDDrDbgunu`|amMmIv1+=poLk9b@xl!z)NzquUH5K2_(uJp*YYKIzndI8S~yF6ynRuM4V;KTl{Z zt)LZ2SxaGlk^FKf$?=V|M4 zI%=@CB3iX~0^8U@J3=7%^zP04`g7@Q9FbTPRHue*;Yd!>ssuimUu^Y{&^-==avBXvYm8z0)7u&{ zDj!NiOi_~fdA(PW$r{}QE0^#yRbVx+@${dv^_c><8ji1#xkg{YvVwyUsa4K)_Bg7% zjtCpLzpXi6!r|$K9316?t!uOYQNahCY#drP^K&lDQ@il74wb-)3 zhWJ)P$l8k3?R#Q6*!`7OP1>Eo+~%pAj_ihmEel7;PD&;Rgic6Xq*n}9td~vE6Tr=a zf*ED0f797BY%NTNbhhFP^u}LsYA=vOAe^PR$DCPZAR@PKLj1`Yfg}B}=(X{;`{@<1 zL%|Lu5Z}pGl=iP5zH4oCUoVThRL&qfRyF*qYX{bkzuWTY8WUNJ^WfNwt?l3p%~0(5 za)ceoU~4-trUUR4A&|ed$Cq<(lnCkgqC00!vN?R9{Z@d(;Xh8B^5=!78^%A5lIuQf&KUcz8n+wZP zK$KmzXR~F5;_4Zn%l<%7_M`tW6o|_}xgUWl92EY~S>xFJP~(5j+A7!l&sk#&Ad5Tx z=d7)&;fVh^Yn*Ld`_})QwKeJZpR@LVY|j7RJ8Lj>1HWtPC+NuBYo`aaquUK{H~!2v z3?70Q=*F9m4L|?$f74>3+L@XW@y4nJnD5UXrtCFQFTsFh#evoQHyc9vv%ffSoPlgP zKFO57IZu8zF8-Cd{kTX#*ZEdIa0;%}zUul~jO@d)qfFWk<*SBQpayZh1*=v+x=_303MYDpHeC%?J=dgiyzrkEBHH|%%Ac!VH`b2hNsazF z{Cc~rr#Cp28?9TY^?|aVTK`Vozur-~)o=`&7Ru2DDS}QZAPYzd%8f506=9X2oQeFx z?kkuEYRU;Uwncoap^zJCI>2pdLLBG7!8BsE@PgVbg#stdSj+%^N@?7?Vm*#U!8y~xQ<_s% z-%=zrr|%CWzO)YNI#JSFqKc!1W;(OV-~N zJGZjS7(BYD3Rf#QP8Nq)`F}d3WcqF!jJY`EQCyp{kx%^^o+OH{nab1Nz?KRg@%_hi zr788ymDV&+kD(V-zCN4=;WbGqKVl1rKd0DjnR}~&D)(jb7e3>E zT!o03Kft8t+g{z|VD`V0ae6u=bAuYPJ7vE(!(g)$gm0w>U{W2G&WZJ>FB~+1MuhXW ztuWcWZNCcB{s)BKV_;GNqTvgP|IYEB4lKbzNdA9|IESM=-XLGpB`+<|J&+K(;OrWN z59opF!|di)0y#mtd<$*s;vv7RE2~W9ki`q=^h&;n9rTOXw7(Zhm?yogRKiY{8bCVt zrKL1f1g5l_5Ed6am<0!UKEdC{YzAOX3xgf7OyCcR#i!nP&#mV}By0qd^i!h?aap|1P(xnX+^-G^e2mRW; zUMxnts%Q22)H4oXss}zx6LM%_$qK~LBvAPl(9!Bud3w`oXCsfZX*zNPGmBqNN>ro5X%GKj&_ZYs`GRI4_E)qs2f1*A)-j|LOy zc76+3LMh`1d?&pp`w&gkXh|frhiVQk?7WugS6|f0fvLXBo$=!207lghq4)mAnoJj zI%8nJ)Nxvs*x4BNlNgc9&(?&+#uesiho+%%7rpVOs|`x5D=UY(^0wJn@Jcy7wazXv;1 z4hQ-8gHWp5RB`_o#=C>|gUe9;&CE-mP>-kp{OydTf(&Z7RWw10>uVAz37|M}!s z_?ZtTVWlALQL|Hc6w2I1so}?s@xNOzD23!?C^d@KutoF4v9awS%WhOA2!k80Wu=XC zMU)@dZE5Fmy@|7LT3(NU^0!+F3_M{cl|jp3(nis5b_vvE5Z~oz{!oC&Hh(kASTgqm z3Haq!LZP#tyjYWa-yr@VlwIwY=l8dTjjv5X;6ZR zK65dA`e69ULw&1R*nM!21lc# zY15o~d#7-)jRVcYo_=WtB7P(cN+48(QUv=Sf8Z5&xikt{I*}+s>6iRZZ^lynjImxw zD`BZek3aASpeV6W#+s215#+aJc)8viufRE-m?wlYr^v%T{FZI6N9L-UG`!Jay$|8L zV0oHQ(G2~@qyGMz$(NTG!kG)!zMcMjSSoCdfgVB{IBD#{OSWUYa4F*`kK2`mKsFy;(D?9ndi`-rR@y6F+j$PPRCp-x34 z%haN+LlH+U#Mx{q`9P4%vEfh5kP~MLx~fRhc3?++84^sv;9iwh^Hi0fzHqR?;h%vFb@1v%0Q&0h*SP1H9u~ z&{&vC&-d)6W2DN#9^ySBkq6-yLmXVFM^=+yJ&pP8y)d25uvn}|(X#jZ_YLYMNWnI@hoOY;9nc`fgaSP59>8edWgFZx4;-SjA9m2?V%QnUC zm_J)r>Q_khnp8Edu`x)$2B%YNtt&2+QkW|QCYC{dPf|Biiy&T?q}75fVZm1ygqe#? z%21+y<$$xLg9`Zps0492*?OLR7XW=_$UDl*=i+g+AS$GNMDVCl2jXyd`nYD(2PxWjLM^+jCijo zd)2of4f$YMi1E$R1o%# z4oC8NtIe!@k6X!?YW`SHoPA`w#e-WE%FGSy)l3Udwv%fYG}aAD?nqAFHDDN^1{?0* z^x3RPU27WTw=+9!K;fM80k4lEdL}nJ-ar16_bezY#k4}{=Hz)CDnX?kA*{4>5gpqr zB==oyZvIECwzFLh^5TXR6s7b27R&&WguJY zk0rw6-OfN6v%9#D6F29Oz+Tif&yP50A95X|HzTh#BTxQboQkxOI02*RPZEQ6Uce`xOHEdy-k@v`< z{ljem3+Q+L1}X@4oUC%OqxbhH0Sy{X2!YCl zrVbnTh0VK$S1_Uzl`k85B!nPlRAeGkL9u{29X1c8AxDxNpAa4iVlzyNNFlN#I*(a!ouphDu15#4U2B=tNE9jn;u#jex1)+!gm;3r&k{ajE|B&bzyriYP{-`G;sh4)0XU#A796F#SAWRJu*_%L$|9BHG=sbNdw z7rjt#Aopn=8We*29qQbl{U1eqQ+W_TtJ!7CA|3%&P?Shl= zOwv;wP>>it7#1#mgKkhiYrvRLbn_qvD|N;%n5BoN5eCnn{_2?l>hU7eBtPO3Ds*zI z+QyVmPkF^&hFHV7@lcUE2e=$ ztj{t6b2asah7ykHB8#BPvlbuN8_wH*^c2Fl8x;Fk%~(Ec@Ku$SSM{~gzowFPd#Pai ztz0uTu_fw`x926rBKImtnyDs&`m_bgZo}i1A4uUdJ}X9k?|+Z-tgM>6XZzd?J8&{9 zb?NkLZ`+kzC&k8InH)`!;J>B1@(fe_$6V$XjjK@sM9hFA(d0n3m`11HeB_245ALSq z-p8c;SwEnXHm*X!yGqO%Mui~} z!OLz%pNPU)Qr}?Vt~+64!5A#>(VnZ^!da%?o_Y?I2AzkTGl*faxLZG<`k(nq(NWt= z#ttgV&yJkvtWSQ1lg}s^{4PHgl!yJ0KafXPBfB1_8#$?v<`C^aK#A|vW5Pj6lQzGw z_$PNaA?WR2y_6>zNWxe9#eeJ%MNg&X#(r>DY5Kn3@%w<)GBx@Ok0}oI+g+h6y_88b zS=<(s0i`lacoRZ{59Ol!M5amYGusjk~4sy`x zp5*&^*@t>H$)IITK^npyRyAi+>j{s#hO3V z&b4pZcaOL=*|D8YdbQ{Kcb({f)7k!(d66;^4|o!A3gA8r4`JtPrKBn&v}$LbxbvNB z%1@Mp?&I^n@*KyW*RtJ0LZ8>*$2>8f%`S@Nhd(+0_xP>l4rHCe_p^fC9|)VY2X<62 zkPX*WH7LGFtit$K6NYU4GBq$jRa*Yf8Y!m(xmoI2m!8N?s5GLYZE)`kL9K_wM@&j- zEj6)t(0l27saRk~gRjou6$OXec?H&{+;7J38R?5EZ0O9E%THLqT)Z5wJq1+`Azp5m zn^T*?J*M_43yoql_uPA6pz|qEY+i0j@$@6PIa}zSh;GFu<8$tod46ps%?GhI%C?Lr zlqxrU+_%vHU_R1s9QlDHNtpHI&S-?=5`IhKEp_qtmb$nX^gH(5Ta>*plEAa zI8QJ~kL0IlyCV18X`6deaMvld-Cy|uCRG@oqAIg+$Ts<3M%ue#PlJ)lBLS2;pS=yZ zxyK6Qt-HQ8TNMc$v}{}OnCQwGOah9<`_hazt*V~5QykwK{;fi`C&23#jMT4-Un;_P z!bhq}>ECQtiu?!0C@{eB1E$Wlrig^;dt$Ly>&2*=WlkeOCG^(AO4w#ltJD90W^B|< zaquo}A%rM(*qvR`qj`U5^(Nk9F3V*2HcLjfU(_svN|EWPT#q!A;UT+_vT~FSuCYfa`KT&Rg-(=vh0Ti*iU^Bfcjd~jU z`Ctn;3*!tt8O0UI?P+^l_mPVgKUd84+&3~Cn|Q@XX!mVJsZh0U{H;GtZwK-JozT|g zZ$63%=1oNuOjdk{Gr%;)Jk zAXtwo_3gz-&q&!LBZvvoV>R2KIb*4Qi3=q-49WY-`%-GPo@h~U?&WS`Uu+54lv(2f z_x^rX^r)NVaOe|Koq!Rt;l>0Z<7=6^F5~rM$;epDEBco5i{Tp7_I{#|! zFQ4O4L+Y2GLnta!j01!f+i48xa%XH+-Do z7Dn$x$T};K#;TY?DwE>(OJlR_7G^%|o91otmn3YVfDp^(h;NQPp4=ak|ENX@WiHp* z-*4|SMMwfe-TL-r5yp4jf#bmTk^XKkpB$*EjQ1}Pv78Fyqt+(;hJsu>tkFPy$p?yU z2bvP2H*tz|vOh9z(dR%t2*qF+8v6LCaw|}28Mjlo@8qOfz+aCMHtI6y)LTwr8|hj3 zGpI*|SssS`!!yn5$J1_36hxBh2z7_bO)6^&{lfS8_Dqd)P+j@59g#_4#z|g zSH^;SDPA;GQt2$IzudJ{M$#Dd@fISiu#^VDpo3DX?I_}c~|4gy;Q;QCtTL6 ze2Z+vs>`Z2K6NbEv2`{w+nHafHOL+S#hI~sNk)Y)8&)t1^g)tBo}*6BymUAjCcG7@6HP7+M`(-O|>>uD|c zY4ya0P58)9hVolZWl+57zT&qWI}=>7Me%B<|A}^(Fs1bg96(blNNqm1&lTTzCsqB9 zOwcQ$lLHS?#j`FGW^H<7D z)Hpi_bU4~+9vKkPys}_iVSQg!JmY%P`z2!T`7q4suQ5I$PAIRscwey#D$o2eO{gpN z*CU9N8NG`kaXWRkR;09&~ z({mSP$ENu}+4;ax6$=x1vsr%+W?Gi~I6EYlD%4y5`w@~HR+sxDZAacqt06-PwBYae zR}UgQ)q(L46V&!OiG41yn;ZW<(>#~pXchb8uu|#xpdXX4FOHFEe?PuJuk%A{7ay$n zFJTY|lZo{EHj(5?0^XgE2dS6OIB3I1$Hw}=C@*GWdmk$BInMv0>k)g?`n^@8d$utR z)a;0qQf~(8VE>(L@5;l^edhad<&L$ooV&S1(1VL%VM|TlscnJ8_pLP<3P<1n*b@F@ z3wab%azr`l2q-$zgq#ScSe0B`&B^*wL2%`Vu28*Nn?6q?LRBZIkhq+tgdXG*23qp` z=~SvsLSt-EjRAk_l8Vg6*PZIjaw+?T$`)7ikEhyEv3jOO7@J^*dAG9J+p)(R^`xeg zkIx7zJv>tndovV=9cs4vvsu7siIzZ2f(A8Q$RJ!AtsPXA35X60&4p{V74O*PvhP~@ z&J1m``<5i+HdxRcDc8I$<|d(!oim*QOBm&!O#jC)@ihm3Kr-PP90Ftp9) zfTr@!C%Oy#(mu~52Y$n-$dgmu%&azxA@V+#ttFQx*#q*^G=lWmhqj<}#(B&!w^UkJ zEb!R)337TiWbTfwCd`BM{GMX`)ero``` zWVlp|%FsJ@@d>D)3KI8TZAlp7*W1^*OiDl6n^qjwbiL;{?BNKa+_jW%d1nGGkE?wI zmmow{w%5Wc4MI(e4;|6YAj{`?)q8_tbcV-s9CimRZku^xmLgKXQdntINb|X+SuHhN zeyoFq7TU%xD9a{Z*9}#mET0pIY>r(9@)ph2QVuAuQy;kEJoKS#2MpOmGL3jCx2Umt zzd}$zs=`(!+{tPu=`j#b6jroutO@~@=^$R&Prhx04@>r44rdfIKi9RES<6pg3=Q}b zd)(#)0%{X`&d?yffaiL3OG_9%0e1@k>g&W>Z*B(P>xbkbN+&03Q%TZv|FVtI^q22X zHtQNjFD(;iQrq3UC!2#D!(^NNdJ_W>kR|v@D7cG2Ts&G#6|az^sOPEG@8wbpIu@i>ef{O{J)wLe$Q}@kWt|bw+evVmbTVaep#i>Wt%G5_L$^Q|(4JMJ{8+dE5 zCXql;zv~2cBI-=#8c)#v-PGF|b^~WU^rSWAm6!Z>LnP$k#1$Qy6G~EVZa*hXemq`^ zqvV{=XqsBgTGsd?`|R^0|X?|gSPSp$q6KSMmxBd1mpHcBX00YsX4GFi2J@W9RAkI z@U3P5hQl;bVo&O2`hddXrb}%ExqNvK2h6guBu);v@7?XwM>c#Zt;w=80kmmIRst4W zM#1NrA>Xu7n@^Wu;Zj z+Z_f@yWArwwS@zf7@Bz8!9xet1uFK9-@g4ak_Sj&)+^vx-AnG}#_o)9#=^Evxd8 zvUl=1o|;Jf&h7k(2uTVkz^8O;wHvmbodBLN-U|WB#>MtyCEqq_kmS^250|Lprm?Cr z`+2PIuMrr&71q9_l72)~{XYH(4IEI|0YlK;&WE_K9b6OO5bu_+n-hJlRX#X=39x?O z6m41jY}#1AYsKTK;JGs*OXvI;b3K)GSzy5cBXA=h&F83AF@Fxe_3aO6v&L2!-;ROT zO`*qL^GS9;dDuMcMezHO7G8Q<>k+-sRpW)q_sq!ta^kV&DD{!wTR-WFXq>Mg8cFnh z0e82-%fJzNW8F7k3?7reS3|O;9A4HLNr`s$-fA$x{ep}-x+0|&j`K1I0MV)EJ8BmA zY&Eyj9-Z0cMy+}vvvWIaK^NvaA9udM19v4SElf6}5xL-e zJn|f4ctU@qBqf6A{rqcJUh2j2LVG)8dzOsu>nnKRm8sic9A0HMBC>zEYT`k*TE^MvxWrZC9hz1YQS5MqX!I^Iqdqj#q#9+lcxXs206F zximLERNOtL*w|nwl8&;ezIC%-9rM`bsOiFvkrgG8h|UY>5M+|U}>n8cK+8ooW+BH!*=c_^^#wJEUHEGvplR}4Fc@RJuR zwlwX_vMt}^RUn5R^x;crk`=lBseanc(gCw$!dUKbwfaSXOMjVg2|Bpn#U9~UQ1GLP z=)}r;0R=oD&KFSkvkv6Trsi>zsDMXEZT6vIIbb=LzAwF$8mR?lZz-LkeTz<%h}k5_pbFGE+pJB(%29MjdAS8Ktx z8{U?bz4_^3g#d34(QN42V`t~pn_KET+Mk9F$3kYnzNi+dhw# zx*jdGZ7zOO+2YX?J*{<*DA`mjTFs9883?26_E$oe0``9z!dIUU$5nKowcS;YpYn=( zb-LPob08EfQ-V&&u@}xT5sf`7uRi0Aw)9>mH`HodpoxL?AcrQ!Cf0n##Mc=ptR_kY+Gur8LwfU2@<)P;^bk{H!a69HuvcQZ}aG3wHS+ zsJYp5?GEf>?R=Zw?G6*8xLHvZ}vWYBQIMYr4k?v8|oI zTj%;NwZkYq;gUVz$aO*MptE*`eDfF;Ty*23mLiR_n=eJ~RIQ!~D_ZuhbJINw6* zW;C@j-#(TaN_&6Tu|6_`xjcpfcNSyuIU*-w7BZGUWbEJ`debj~FKMoJwPK1_g{g@t z(})Cgg>_i`-ecrC>`c-FLk51~dsrke=w0tVP>-zIZW`pA4(>u-RUD~uJA&J8_TQwD zNgYr^23h9;xXux&EHnv@YhPM0b?TN8M;kJ_lyQoWJbsrPqP-jl=&>DGpvihYZGo*` zoP@ipAw>swSRMA%n$US25=WFzaU=U_%;QeIZ(!X6Myhl1&92Nup>iu^gF)`Jfy5=%j~!N*a>12nB$rmFf(ELD7VSf${Dw~61(2M9 z4i)xlPHw|w1I+`j;H)lvqnyUzPeX-vKBWUE{6*UFQUS@iI}++oTeau`ZUtOdD+Iv3 zr9WP8ANcfVU#?VeY+B}J)fB9&kV~kkmUeHz+xZOo^0${wOnc*!H0f^$Ckn`KB>UYc zE1bOANcM=Nji+A30P4LK-Hp1gx zJ?6$01kqGl0}f{JT${1^$n!;xyO8ufykVp8$Ly?XLj&6d=V1-H^BpH{IsWtM1sZ$L zjZ@o~!ZMGGeWflFr~bVi66m`!quwJ`TvJ+GaKx+%0d6a5zqveu?NU@FoiuHV{)=R) zLmZpYasyWAwCzN4ku5qCSHC<&-ogd0F8VDVBmpr}@-*iP@XzNdraFCB5v%qmd7Hx5 z)>T`j&C!(sf(g)B1EH1Y9hHGhpn(6&!eG~*}5=qbTbE^ud+;P!pBJ-iS-_RZj_ z1a@jINIjOTR!X~~m!&F5KSoTb8lP;QVOE>R+Dsx6!}m_M_}$(cA_RQnin5Usa|euw z!gw>{H+9}C;sHX1;MO@Sf`|snnbDQOjkVS?a8OB0at~3Dwl@U~=D1=^BdM5^?3kawP*Z}EGDG7wo3B8CY5hBuS z1f+&0RS4zVaYkpx@s_pjTK9f;t=~Vc%#iY)_nddP=h@Gea#1{q@~xfz3Rtat%UMv| zCHFH;IUdYhdlyVwM+H*cSROYGJ}P^6ztel8ucGUC-0Tk3<97K~&JzZzj4{i#*ZtP_ zCULRCI36R5<=iloKD-LwE}(Yf`4A(+0o3r=1{38#q#_k`eU{ki{1J{8 zhmI=VeC4Xj4JpE6#N2Rd5^Y#XbE8$~g@wXc2 zsu>@NI2ifKFcmv(zrZ&yXdD)ef7zSrDf>=bbfQ~LeU2(G>r%WU^L?eKEMJ0s%;koU zb}>X7#mmQw$b( zT0%u_Bj$vsL@iug`xo=@#^yi19-_vqAYlTwU7yb6W*B(95HTu=*eJ&gO<6**iB z@YTYrLS!*%Ai>?d^#hejXj;lR5r6Fp@y;93Kzj|jQL*zB+L_YlO-;88kKZ*4LhXS{r2eRUqG^NhD~ivG9^f~{N_Y|Tn|{)D6`KlivFm> z&LzL!x}}{XL^1xsI!$&ziNrv7d^4_Wa?h65eCPH?Q*p`e5T&Ih+Gd0(1#`2=Ek+P_0eOL398 zblO=|L2-Brc!d5_1a>fhT`rxdxTcx2o2SkXP&KUWBKEHX6KYAr{`$McuD;BVS;UHW zher#^0^H`}h>Y8dl^)bpKUg~Spgdam+ z$+Uyi4ZKf_T2bQ>#V!}AgdyiYMsYKN*qzGjaYqv7wx(T08H9c&&k+Tf_GcwLAAQc` zp*10pka3xcN?o6Rzx3GTR>eHwd7`8J!G=rqy$jF8-k&Aetn^QYsj7aE-<-SSXMb-J zN49<{-Q@l#*J!;X?`xgVmJhT|rKHTy2{WCvgM;C_dRt!71|b`7YZygRj*&c>BPI32 z$)z1T-i*eMNOMP=z96n)#ax<7=^6Eq6}@tVXqrLkQ;9i38cw;+t`olyRpC}ROQm$4 z=Q{oS35BX7E$}1HrV|v4Wib5Nzkv18F?0q#S8tr0h?r~Wb>HoSo_cn#{ zm$*YKKOFKI{I%0R4!QX5OLq^asI{Dm49&Y1XEF3JZ@1ecf;?BsO5`s6@fZ54SB{(0 zBwx-LDh}-#{w!~w@YP(8c-9rEljzc0k(a4l@9wub{`G)loP%P|t4Ce-95J>DRaT+T znua$3w{EC7L2>CYOf?~uxy@^K%pB?P!eVYe99=tBB{kUl)s@Lmv!17 z=+X3;`fXP|>~kGbnTRWm4))!uR(n2|%B(D=={7ADyqcbmbXI9G8tXXB^p2m@yb}Al zcc-$I#qGo1^?iT5@Ip?FcE6j^6L>ZwmMTR&sqHP}teR?QN zvb;^7o+rvz#+jFRy!_)}%VVpo|J$FOe>(sEi;!8vH7Nju8Yj)P=32| zx#2sr_&cco=LL(>djfjs&;(r$<{&t3%Ov;p(@1le_if7iFZ=TfWd0(go0vnvC~C(q z+776z4d3-mW`C^*=%Cui6!71drF98lrT`wZAEHA4{_Ved5_~UGnW(Lz7^5Fe3cq}z z!wc8I>i7J=N~(V$4S#++8v=gx8Zp!T|DwGh05(v2`*n$5{??D()X{_=y(pVE@e9ec zA58;r3s`r<8h9^teP8PuH3bNEN<`}{HDh)wAp4IF}Gmg%6n8y<1T|7l-H*0O3(V4P6Lf3x(FL-&W0aHROCq&qoibGNRMB`U(wM&Hw5;f^QOL|Tg&uftEve; z9+`CH$GuVBe(U)hvwgS3@M57=_V;7?&-)%Mgd-P@=gc@#q!oo31cX=HQoaBBxG&wV zx1!IpOP#*XKdba=vuh;zj2Dh5Z#wJGH}c!tU{|UOuXr@g`Ng`m{kZSnUkIdE6Sa}MbjOme2R;U96Y-f_~9F;=4+R zUGr}7T#P9a_gSvv7WY|amfwFiCo7wL@20E0_w;~_gSPM0;PU0dPjl`^VKGl#4gRqh z`(nJ6{o24%%toD*ymkNl6T9=ncH#e^Zo6AFHCCBrN=9F+!ZJm z6YuF~uJ-XOU#I*D9=%vAiKz-XR_H_Ic2)XrC|F*cVqs)S%y^W%cR)a<;YKCjXjDVxl1EWti!lS=raXK0cPjPY-^!+J!eY=bA-Kd{ZXY=nkN2eXMUOBQ z8BSEcPDM6pt8)%xHE3%gP4pRgLJkTl!TS->VJIhh0doDyTjqxB#9e%@{^pGZ`DV(PHnErb>!)JB$N|%EfQMBV^MNMa$A>2 z_G0FEdHcI^ujLsxmUF*tq5b}k?;rG*O~cddSjUv*kbN(V3d&s6a}4;?4TK1aID?4p z0}Maj%Tsu6M5HrJP0xzC0{7HGZ;M@9IMbM&=z0tUac~ zwBqLf8_jl}yVQTw<7wG8?F$Ee=o+T;h42(%4)@GzinSZsidRouU+&KUE>~!>k54+9YdyQsY zaE;evZvNvM*-o$sFw<{ryZvE%#LYb)cm3kKc(%|8=`dk$_7>0*0{WZUqCDB%O|%aE zSZC(7Eq=q|4aDkQ|5()bU1@mmTeb6h&hxkfdmh^Vb@T6@tD)T6e!p8suHH3~GL?Kz zIRE`pzMnVv+*@V%<1x-^=c^}5e%y>5dw6tII~j+a|MA8jE1KKQqZ9g0@&CnT3@e(v zdwNu>z#5?sy3&M3DW^kl|IS_9%cFz6?;3(s{KdLX*ir99^02JV##9l>c4@Lp!lqro z^`c!*VF65`>eREzVx6ZS*LqQv;Im=HuZ_KJXx*M^)rQd)&h+p_@oQz`fVhtzreC%0 zz#1kpGc<(VonC~PxOb)%dQq)l=upnMt943uP7rH# z0&`sVl7rT_o4WUy`a!>8WABx^>GEYG4^R+R*|eMZkmOJ8x(JAqAphz{vz$Os*AP1_ zuHy|V>{Fn4kKCeDsBA^5D5v(h6?U1&nCUm>zM$cfamnZQ{#w0w@Qh<3=o?#|Dq1rx zigBpuT2RWm{Os5g^sj9=(8&|R?^gUKV%sU=0RvgC8n?f-T}^%i!uXRkJ=Se#Gpvwy zLfF~4OCFS|qCTmUnp(wI6{xrNt(u9-HUf0jlutpqb6}IL8F726yG=3dU>u1qhxPl( z{P7r24GV}C3e^9>A67jFJSwZ-x9+@;qAMbKmvTYVZO-bktY?p4^3RBn&D`gA5o$d9 z7$Z9L9b`SAsqlujps;a8uQY06@5W6>Xeza9cz*KoP3&w(iZD|wFsw}X>37mmGgs`D z%=7+R15o@+B|zo;u)0Ww^t7ian+qE8b(eRgk!A;Kr(jy1V~?@(yQA%CY6+Q?8@$x3 zJ=aWQBmJ!aIh7Q2(D^u8m=O+0OUTP4v>C@Qmt%JH9PWTdNf{l1D8E_8P`x(pN^Wn| zOro|zO5U1}l|oMXZaa91;hmV+w3fczuw;fZlOh4x;Fj>&@Qji3 zD#2_lA1{|i-$j^al5Q5jhdWl6XJ(iqmpIal`NEw?Gm|$ZQp{Bs-B^|iA{k2J-R z6=jmB zH?D;Thi7Glnz$A9x#V3-QLIZoJCUAZJJFh9YV0@sIJvjX4c6NCCh4(6#}~GAWt_IS^X5fm^7T6&70ef}&&lnQ_~x}P?a_HwovSF6)MkqG8B24cTR=9 zviS;0T3>w$iX4sRLzu2WA7k;uSn9OGh2wdwqX*iwDXsD~=x$Awj+vmE2qo-1;jF!R zU2Z%7qxUYM&2|XhtcG?=em{8QbfEEkk+>!c%sl?$?xC8XMDr-+!^0iOvjg_R2PgPwIqj{GQ@hBuVnj`+!le zN;l!}cwDR;A&>)V?k8>Nup?%2GiCDzRZ(OfdNtOD@~?xzR)%|ZP}99#i1rid4<#D+ zq_5DliD@qY6nxXQ-_7C-^B0(*W&&h7tK!Q}#B02+*XEhz;884Wl<2uve_}F(IRd33 z_f~W4cuYu+f*9!4|W{kDKM`2GxNK(9P(&tTU19gYqgsdmeA~riSksn2( z4l6!#99@8km4W0%MdE|$Ymq{RA0sHttEa1=N5NF>?3a7Sdn@=}AYOTx)}91{JHZ9! zE#if@-s9X#ZEF^Gr+o*II06JiOSRv5+dCgn9sW?Fb8cr7{g zp@hX+DKJLjAd^*Ju9{o=&g70=i)47%9k@s} zrcSgC%DBwU_7!0+*3q@`;O}wApYi3NUg4Y-)gNdIs8#2x>dsfA4`~RBia9gf+)!^D z1oaX2rt`6OqI5}clNm5-DPEeo?z7d~*tfq-_S&1?@3Xm%b?z4Sf&Vp?94zF_jq+^V z#%0%RB9(yDd^HBW+?;)8zRNf3Lj_NJE^)4y=(g3^PxM7>*D7Hm1>)un)OgVr>Fiur^Cd$!AAPWqP6HiRUv!Y0gGA~K%W9toPx5>_P zL>L_A`E1Q`wA#n?!g`d4Sma*9u5*b1AQO%@-_-wAWciZ19c9mk1$CNsz5reWjSO%f z^R)6uO8#IxoY?>h86NLZRvp+lF1OE53aJwY(T`b=@t?h}VVR+>p>TkbdKVEM$5Ek| zrIDs8bW7{Q3fv+5;~6lNvwemaP2n!}j#}a-Wlnf%eoE){UsR&JTRtFu*5NjjHFpia z?R;Bgbhe0|_yqBAkByj)+~>y%lQ8MSwa>nMQOmWltMJ-gG%tUfCL?7mCCr>LV)N?| zvumH6iAHDY#Pxt=4kmr%Et^g|al|M(SEkz&HyL^IOuJW?ZC+#V64it>zBpBzrInsF z@xc<2#%Fn4HFm5WGoiZ$!aut{^cUz0* z|8Sw-E%Av5=ghW8u&PEBH^vo-ypkV&MW-N}=7+A=RDTz_Gzu)ZOMQ2SLNa)^U!mJ% z(H$F?gTZeDh3Ajj^X(Io$?{P@8B1Rik5f}$d{MaZNVI8tM@GV`MIj6~IXbzAR&HQ| z$AlrWXgij7yJ{_}S@Ni?(i9nBbBjBfwxj!Gjj+q-EvJ`u(VAqK*pIcc>Dvy-K^QxL zm)J3*rY;qyS7@utmp*~&p*?TWEdeogtbYF?$L)cos`_cn(iT41s9qDf?tHlogM2R* zCbnYcZln5E_w^ltVN6BLehssFemtVA_Z|*NZywveSYzkUo49^sc_RBVg-gWbT(`8> zhaCTjc}I^$=wa6DRO{F+TU5{ObJk##L~Crny@*)0VdDM8F>Z4Sa

h%*A*jqxP2B4G=E>Y|L)+5j3w@vB$oR%fIld~KR)th7Ib(~f&`naC< zsf5^+{h-nY$(v&5dvkmZ6}q}-r(r^2#mi;c7fLd{Me$wl**u@{us*u?Y4t7td{o#H z^N0%b@+%}`#q4gwMi1(aYSOaNZSFa_nl^uups}jKCio(kXU)SNoV%IRrBL5rT3xLz zn=?0>efV1_x%L>*B9&XXOwN~%x~7RW&kcMa#Efl)V`{|n>ElwfDeg zpv)>I#BVCyBKQ$W&@gDaoMz>Hs(Sx&2Y!q|+ZA20FhHS0Oj;QZ(!S~DQLQY7Up;-k zTk0!wv&ESg@;$<;;cvW{(On9^2lO7bJ1>5RFa5LHNzWu|qJ~l6nfEzC+1yet9U6`& z?mDb^&&Oh7#^={bfz6ew%~G9_%E<7=mCPm+{6nGCBW8Wwg=LHZT;&JlZBgooD5Q}# zqbNqoT3igLr@qA!bf;Wq#M#j!^i6GIWnUm~_&Bn)ou!ULLSJRR&N_W`Fn>(F^Za56 zr_dQBsK*s}0!3i#$W?HnJgBxkSwYA!OX4 zJ??rU-NZFP{CytwxPEZcCYNVdl~`uELo>f<*|F+K zPJ@Jx#WUxRmU0U9acdf_%6@cQL!dRk1iM`Xo7NC=PM0}=%Twyz0_l??wdN89XIOWO;cahyQqjxN zvE@8zKeH(rX~~=sxIYJFcGcML9E^j1eisyCcPI zk?hU|FbSlJ;kB0}!`lLn-o`9<`$g*F*N zyK5mA`n6x1=tib|xW36Eg__WGMcsV!=oBM4R+sTW7DwYP^(xIgbCsey^<1v`P*3TE z@v@d)lqD1)c|dQZ5HDB1BSP6dbfXi)uhY)bMjyg1p!13EzLEEe*=Sakk*OgRUsRH^ zxV_J6<1&*95MRhKfpknGD+P=aomB{1^aTTBCUqW+R&;f4V5_D&Ifm~d;$45fm4<{sxhjFuOX^xTN8FmO5QN_s8xT{#EoRy>P5GI1;^_vnEx)^;l!Fl4D+# zFB1o-i7?Z7!*<9LE>$XfTh4O1bXHTR3cAKOKO9z#lkS2++)rILnwdBBpe|=OLH_F= z>l;=(TlKp7ly4xGuO*cS8g`Hbn^XD9L7YmkO^IT7j)F8rwHJgz?DukPE+0}b zja;!Cy$gT*kMrD56V9t6(U@cKu~7QBuh2A}F6sIN4BvJ1saP3_IV8y~=XnQxF_>*y zO~fIS%>CYpL#PL|Q-XVy%!9yqO7_a7C%-c={5+bNE79w{x-hOwiCj3at_m?o?Mcd*a74y+zo=+v{tHP#y5;PV!s1-B*&Bd&X{Mm(qb<_VZAoNXwe%{^kSK zShiB?rp31>^_7^Mn8+V)W^SIR=d-CrK*S5|6qEEJN4JGWAgS$M+Hqml5y6s~ww5!z zNAqnEIoZL_G@;g8&~H>^pO&-%7j57`g@2Wl!NKLmOx?ViDWymIcDd%|d%GX=L+dV6 z#GpQqkLr^9>@KwEkwI=r;5kApw0c7DGZF6%@^(NLoLP^DQkOVlCBYlE6ry~~aky8Qx1WoKTEX4a7++!-rwJ$-dN7^Sp8Urs_^bo|C}}&O3j3>T~J8`mhIY=tuQOqV(hNc7r22Of|xi2eK=U zIKq6-o&a{E7hk-57sAdbT4k3nMeFb5ik8xQhq3Nak?a%ms;!jwf;uYOy{q;IwGhGR zjHjszK}_~vZy`RUN2luMnfo~8Ok70NqyIqoAY9{NpryT8>_an@z&okcy!+FKx4+JU zLV!17QXAohIZYklEr!@fSprO6kL7)77zdL<$N1=bgt+7S>Y|snq-OreDXpV>W{as(OWnC_t ztU@f9YJ=ki=dMAE2W-6L8##4Jrv@;!_Q?zL-50Y10GHbK7eSGUo>8Ew3!sIt_g?2q9%PP@g zIZ!3WPk0yc3@Ob9uy_sB83tkNi_(JvWy4(y+0sZ8Xr1X7 zvLoeprZYUO_g-3&5nXqBo$3R;{CNFq7oGSb+VC$&)4gJEf4n>(RR$DOJpMoe1sxw5uoApU=mSKpMa&h0O5^ef^SZez-`{J!ET*;DSv+}p4YF@4 z@kbQMZ7*$!uj6qt_qCd30l0_q~Co6sRETCgXq8vBvJH`wIe%i@t8!zNTuUw+j?hnzWUHVKhpdrfU>DjMX;Gn@bK@f4 zK0diulqJv_HN%dGQtNJfG*P6g1=4$g@HqCIXMk)-tx<4CHnaE#MKXVdlAKGtM9mPQ zHjT7C2fpexMU50b!05DhFaNzBAU(hLNk+VQM)17VS{;3g>>0W$ZOl@b@ zi9sdoLo>Tn@(ffjyANt2;-!oou~HHKcl+Hew@q~yAm5TP!`Ja~leE7G zxp>rk8`N`R-n*?Tla;4)XhuH75N$4Ey( z;%cWLfla_Bpyn)HJ%_4Hx8F*ZN)LJEW8}Wp)Ba|H3?mUPzLou>*3R4cX6=STB$-P8 zn6bOOnd3F`K1%3Qtc<(>zi2UaoqUz_v4M%um@kWSo-jz5+EAN7k3#x+CPZm3fu$SP1AY>%RgK;I!!9 z-TfIQF6l4N)-v}{3&*)AR+;B2|lKD5b+F`V;d2F<#cln6o31y>_2*+`CS zRblR*ma`jfugAR-KD>7%bE6tJJgvL~3QkELY%p^jo7pk6+{h1R^l{iZw;d6S%gGy@ z7rp_Y|HxIo712yozE!h@v#WFE*G;@{g1i^8ms?PS=jA6ffKe67PqNW|Oe4B33QO%7 z8ug4@GVhAm>zCZlU|?l+mazKx8f@J@*Ot!pD?(d(QeYVDemc zvhhJCVYzQXF@yszk6*<$4RdU)LUZqZTtH&l%@_j4ZSKrK8W>L46P=0E7>9+kaajQIl@#&V8Q()7n)LUD%1Q@7b~< zwCKv1Ux-q^;0L!mlK7j-2d_fq`ZjGlRI2zpLB^-|1l#Ihd}?;OQMvoL!9I^)W%K6} zVS*^(R1T0OE;MId-|;?LoFHaUTexUv}kOguBsfx}!6snWt%_}g;% z4U&8lFh(8T2RX4b}xy;j9AS8FxXI$(D*dQi#3S^MI zeSGCrAgybT&b00=&S}fgNc-ra$@bf{hZ(-b;5bdVM&emoLbyge=2s!b2{r2F&usnQ zno;uSY5o5_G3I}k@xK#I>Hqm|q~D@}@ID{xx9;LZ8-G_g691E3eI-bJN}qpwO22c4 zeDCehY&BV-rgNHnW&qje=@nSxO9vytv$R2#Bn~H2H~d`E7Ys+&LstIGE8%=vX{ubV z?u1BT$@Oa({UWS~U?ca&eqlA@Iw(<^Qo-IxDA`%)LAq$x!7+F?&@|ms?e;i>$ulX)VGErD(j7+@H1VE?*^{SdH9MA#M-5M zrh1BsoQB@um-X%OuK+G{XfJa^#+)|0QZv0bQlp=CZ{q6cB*3xx?u!$;n;YwPRMc7% za27$E-eRYWI2SjsY59$>H+uji=tVJch`j~CMccZ=pfhyuDx|m)lRyB9)Jc%@sv#cr z6219mC%M18v?m06xnl|FPn}>Wry}5v6Cmx;`&f&kav1)Rx1NImUEsk)zxfx&?-u*g zi*pxuMxYoZ`tRIyJq{qWj0eDTy&l{GMYdfZkEz8^Mtu3*x9w;m3-aU3%l6B_kZ?v2 z;0g;vxMbP|sgxehWV~3I@xcU&II93*F+C+T7i_Kc;FqEL9v~4Rta~9duHbTh%WLn0 ze%)Ta4uu5px%T#5-+2ugTwz>4SbKk7bEX^B=PpxOeS7=e(m_YdHMDS!qTE#oNc}{oS!mR;g zq#L+z1BxQENgh^iRL03tpQ~|EDF{&#Rb>}7W8{4*s8lukC^;LcA2;jI2#QDQn{PP! zvu{XGuXe5v<(dlO_QpYsOaR#{dspoR@1|I(!dfO72-jsJ{yN0Kdy>qI*aUU>zH!F= zr(aK(&d4nr5pRTWh+kRECk!DgkNFQ@uWRg#njVL74I>e&riF{Hq0_$6K*o6YC!g)_ zaPCql^>lh%{?F;O#+4C-N;`Y;$SG=_WuP{wv^3e&M%**2CJ{>Qulh1xDMxnC4HL59 zX)0{jvk4#rO2rRa`tjm+-K`J`AI3n$QjEn((!YT23sLq1_7I3zQQr63*F9uSZMaeZ z6r+*`t@7pi{#(yfY+=aA?a|cX3PFGi7|StJMV&W-FN6&gHDgAi+QkL+^50H$WY1tR z05~=a1ypFa6=AdBLa@8@A>h=djFw=*W4G^Z$neunEh#L{I)ja(w8oaYAA>|pMjt8_ zSx_CynMuQ5?D2+3P^;9%ZuzX3)yE_AELI7^C1Zy?fL+n&6(xmC)prH5Q0Lnxhx2U=P65)iq@E?*l>mXE6J=pKMGZ66(}SJ_gMW?e#*CQ(_Ddij=57MGh) zJG})Aia$WD`m>x7stw_?(5%#xUAbXRP4Nkuas5RO#-unZzWom@+ZUMSfF3;fne>{N zyp_O_tfkOKrS|O|$yiy@TJCYE6zQEW!a!|6!nB5V`C2U-2`Fbv5L=a^El5h)=rgh~ z!y^+6XfseXFPuauksxjpDhqK@|KI{O#?sl7B?dFx?qj^AP+RI7Jf7hB5hz6(rBD^_ z!}V2U2hLOgFrdPl=hp{?*wbf8mI?X}(huuh#M8TV@Sjv7&fGqNjgiQFDj_ke`2MOAxQV_Dx=uajy~OW@Gy zR(h}3csG+|WS6_cM*irC-1ZRH-W78$|<>EkmG zzj4&o{<+CubT0*d^CXvk@vLS(R^n|1>V*X`bMdA8fZ~@iR00nWN8N0GX>M#F4x#=W zV-_QWIRAo=4YA8mMI9rui@rK2(~Jhr%0Y#o<-(|?1)V8< z+9rr){J~yoZL4cp(Pf~LGzawz1D1VLDH9*4Gn>x6V4q4^rZ*`?k=cYojXEGTS3$(# zqp?#k4giV3Hp?A#YV+32LQ{-7QJ94IT`RXF0;=f!8Ej5#yp8QzD_p%^{rTOqz6k*H z2vTG2B0h&txwcK<{~_kGAAunb<) z$YV-8IIv3Y_4T?O^yQSs?0Lf8t?^KS#U8r0<>|<+&?Z7=qPmx-#_UV_i{f`k)tUD*6yYa9m&PZrkaAQ0Q_EW#AV-Pz@jMn^ZbsNtcp)UE^)){DVLweHTplU@NMy>AsbV+bq0fc9_4V<2~m(E zaNEmTS{_l^V85}pvIO3y=j)fD^(2Ge@I#?8feEZ1Fwwdy%YRho6(U}t(MUuyHkD6D z%CdODQlm57@mhZchxfu*Gj>pmc**>6hVW6#Vi(fhmlJEjEe|QZk*~GGo6v6;0jJ7p zkCeFek~c@x3&j;cN6^crp9A%p>UE~^U|#esqAf^F$Q$0rnBo>o#cexrIKqolH$U>d z9ik<8-}E|pp}H&(+ac1yAzr23LG~W+3S|n&7N!}K(hA;6tk|umFl%$d`zP+gIcHiv z1)OcQ{E_g#NI%r-{h#*Kx8W#mY*dr)JIAD7U*tBDZ@aU``8w-6=xR@_eUuT9JT3$2 z=lb&T?P?n5!|lx@HCavvdij~gx3q6lST8|AmTAYg-M^)MTtVH7!=6(0JM+sd=9)K- zh9cU|eA{hX+Q|lbYhL#5vV->zU$0)nS$X*-`PRyv|1G+3IwLKfzJvPYWSCfvwxws+v0-E4)l{+JAb^>`k>}Q2{3>70?BJJCPF=$BBQ8cFOkpr z#=}O+gBX}An7$a>A7fL+Sc<$_^tdWg3=Yngs@e})Z zR=iL*(H&XW*e3WaCp1m|d?&X(`?88t0_Ew~3D>FwjHiE64MVK?Y(Nk$Y;|kfS1YgN zO4suRE_^Ri&e*Mksef7sKMm3yUfToDFjHuaoiFKUTd3BzCA{}i%JLU}^73|NvP!~w zUiOqfJ~9Q<=g}wHH#An*6~Ws1nC@TU=5I8t*Qvyk1yaL8MP|>$dppe7jVr5$zwt#V z^SxdA{@!zSd(+cd33Y9uP}LqA@@JMSt`bUSeTBZ%zLw>rf4kEFaS9#XTx4lB1EA^P z$kZZv%?3hXgSwY;HvLA34f8^%(3POg5Fe~NjY*n_3CvA|6**{Pk-UgriClMVYEG&_ z0I6P8s|`CsAF3s)wESd6&fO4gjzHl84>Z}Liy?3>@4L}hN9IoyrI=9+USQCW<&dqoX#b9&Oz(0d;qry+3}~CaLyViHfN3jgmo7&S>2A>#(+S;* zycm!`j}b3JjX=4`L{EWrd4@!C0lG5#Yqm2F-ujK9hUwpXxi*Gj1}cK3l}Mz@5$6!2 zqO*Pvr*8!0dtb8RIj^-f%VsP;;TuS5aGT%3-T<9V4U4 zfE6Lna67*-MS3rorb@pS=Y*O*U9J0QuZ5f8lQ4(;r}z`bjRnBMJzh!>7SPeUWAN%q zIL*}!qkOBDHwdJKi~4YJ!pzwO6FhESJD_6Zww4B+2jn-R%tVWy&dHS{RDWo`=VyP| zuuou=z8Dr=5K`0Jm1n`eLi^kdm-+Z?!hi=*P+v&U=J+`?lCp-oqG=F}`}@+br8uI* zbi5(Vtxc4iWN||dhijMcRuqhZfP$04d9qgp7C<~agzhS(B8(5RtXl^21&ew=`r(nm zc@G#lB?NZz1{Vx)OvYws7tYtJ@!Kxe23nNvWh7v$w6o4`B~+hnV0*tUeyX+a!wfA! z*GlL9zwippE7WAMDDLNEkwqZ8Bnjv$kmQu`=6bPYtlWdxSzhwC17O>R!wx|2t#Ql} z@E?Bv&GBaRPIzO&7VT1!Zxv3pKgGa(IWIazk$A*WXQhQPI z`!4dBLK=#(w**>{v;p=)q0&LOm*-gUx8Cixf!3-XUEQsO<`oNu7-it>zws&ZTybtW zkgsjv6dOl1RZ29Eh>`uPzbVd>rkX=Q}n5%#*LHDHB_Av8lVwlOA2oW z+7EFpE{jTlz+TarSEe-R)3pG;j3HyuWayJ&2mO<((RdH6et)*HJo~{31uGLj^LO!zQe@3!?AB+yrrdmg_(-bcaB0zu@Ky11Vd(YIxK<(3oq$Ix)v7HvvvMm zs^35k#5A>39*vx|HYxRL)NY{}Xe8uIzrKX2>7bJICg-WGB7~HVwnI2spblP-DukXe z4K$!)154K`pO&b;5aI33zUt@ZTZ^1`@DrxF=LMn-wv}gCHO~YQ^l3-sfIjIM=Q9u8 zNojtHQ(oGU<;S8vRsbnKxRB>9QwN>#^bMZ3C3B;!6&V{)d0|^>-y1*oBo1E6YPlt zo-e}xT%(_(*d&#)(FLO;Cq_=Rdsd_U+F~m!!cld(8#7f@4u)GGLe>+;0YwE)Y1P@Y zLE+;Y9f(T%ZEEsPRJTJ=!=nfZ@}2? z;7IBX>#;oSp#tc@>v=09DX9Lc;OgyA@Li6q#pf?^^miN%JNpp}N8Yi=v!6C8B?i;u zz^~nx*4B1q0%M_sJgyddra3M-@RU6CRP>2k3fVJ0JLq|ecWQy(rY<+0Uw#_}!V?>? z-dB+WKY=ml>R8fuvJz+stV6n=1-{o(eVtF9!<9`Gex{FT8;Z8UUS_b+wp*mepV*W4 zHTlUVy7jG|Z_mHF?VG4ZP8O7YUSN#&~7*9B!}z0q1DFQ-H4*p6fxL1|_b z*5YNA;(i9P*K1IF8I2ez34EmT_1}(*M_rW;%CY_X_^2@1k1`|FWX*O&!2HPDobujf zr5<=1p@2MZ@4u&og_2psx#1TT*OHEc(ttM%iYnS za|mMMT0_q+f{`ks%v6%RsJ*vY-s`K-Mlb@;d=V6D+7KOle-Lb=`E`-!^ybS$Y`^vUjdYfyVR08~Du2tv=1gd!CP8m9f zy^5IRZpt4WRERzdb$Fds=yMLNk3yrw+`GnOJ>=H$K*}mo8#T`*WbwLFa>rOnv6MB zo|#&NkX!@Pg3 z9MK7!w5h3QyTRqg<j6%4+FA$}=sccg}1<3IZO|FpsC`A`mPR>W@m z`7VEJ-50DS@ahOD*fJsP>DCT3|JC>z*)#w7_4j1|FC60`8;_1q_uEA(nEg|Tw4*f1 z?2eS0?Ba7nh~=j5LtAQYR$(`KXIK-gcAf^h=JVln;rB$HaY`<*?{jZV*lY1UYx?U* zJf`A5SEV7!RKNYhOYc5*4i}5#Y#64}a_KX5a%#A;0opNhH(>gCm8(?5K;;`4{$pP* zy@2nmu|E;{w~EEzzxp_m`hybxhd=nQ`1jkb{7gl@pN0H420lI+=q&Zq(f;eu{-0Y0t0p79)k(P{*P zJUso-n5wsd0lctgT5|;-`!jfaXCrY%nz;i*4puvbkdus z6*bHB9W?#Zr1Idu;ediao38Zx)pHHu{8?}n)2jInq<&yNjrLOqHUlPHsr#20#Ew#p z;ZbMz^Yxjj`p{CUZtj%$WeWz~RgI<3j@*A(!g>MXN)Gt6_ zpnjhq7p@3+LYy%LitkP_@qoRj-t+>8-JYc{Su_bVSaC2tQY^txyW0*JR3-qvBRjH5 ztcW8PHf!-_8m9aIZFA0D{}vqS{^#-U=zSuvLb8jJFLrN zp?2E{1Fzj(A5j~CT_E7jtcQ8iEt4>c7)9PYYd!V_=CM`1d9;5hVuf!clXEo35#Tkd zZbgY8Xt1A^f&NfCD47=m99(L)nmL^RmFBw+hP^)oX043E@pd-e#M}(r&YuoN#1Bg}_c|@)+$WA8dsZ%bjh)FN;ER zU~Tw=kj*{FxS7Ci7?1jfk)9Z(K4cPow>7ARkCwvAudXjaT-8mbTtLG_s2#MHNb$?GNbHnb18OQ3 zt+mC{e=8&8mFDd@)7tm;0~T>HO{d(w2O8dT#$lRD;TQvsJLT92td2?0*|?oRZqFj4 z?=KEOx|&Z_1z=R^18ECMTU2o~$ze@SDfEC9RfI(!{kT(GfP6+e-htil_7mB!pZuGg zfIDmd1%?CP>^5o)YMfR$xu#R>m;|~S@218fcRwAF4CMlwGnz$c;G9qCk3G?Rw*kjO zYFi`G5RUZ)3MD)`&*LYhjcM=I#f#+=QeXd4+BoK8m+cXoWmX#GzIAbJT(<+)y85i^ zAu@CV<8=_i-&9^g+k(sxbQ;bmF04JIctp6_d;Ux_OFTsNzh(MAM`Yg+Uk+V`Bg<68 z*BZ@*YP}`_eNkXL)@vTOkgyx;l%9J#_Vg+-uFC+@sg1%UHWoo{&a~p{NX4%-Wv47XMbLu&%=Z|Oo)_T{w-gW*sXE_e`_j}*hecjja z`FyU)M$th#94HH@l|U1@pKM;0eXb4YL|ylY+iv-_?WwoSX*^~53=}cyiXCSxdvsyH z`-N2HKnJ3vQh+H}*L|U55popGdFhn+m0ZPxw)y!`)oRNUs)&s(ciDV$-T{1Qj>UNJ z7z>moCMMy%EgFjy!SV!IQ#YadlgVTi`4d5!cV6sZ6kt|NFLxj zP;_FeQxBT9yS-yE4)uC(uD}$&Uu_9`^3C}@{3LpHdcUzK(qm>aE#*2@glc)DiyL?NPiG0eaVP7xQFIQwmKh1+8(zp+*^W44W}e;>hve1)5Aqa}UoOJw_6_R4o?(sISQ?&e27(=q zDsLx20eL+5)pN~_x#7HKO#8?Q*6R9};ILlv&LSA3ZC1{TVM1>m?KAe9YE%c36NWU2 zhiWXgCAjb8r1vsRxqOrUUi!h7c!iF4(pob;c_~Qyfc|{iQjEPI(#`GC9{&2`(zDmY zF(UH0$xqxx3e&H|K|jQ5Dss=!i6Rx1j-1y+pEG-s)7AD(@VyneTX4=OY63b|1ZdiM z=6PA^N^#H!_iyy#Oy1L(Qw#}a3A#tAoKR?kuRne(#Ft^2=_nc4)<@iO_g55F7_XIn z;~W1oe~LZyEjKj#ohJ$pz<3$}EUAyPKNzB?qJvLGIHC5{Rtzb3rt-$**Xo0N1Qy5I zYOwO#Q&-Q?`=uUy*dgTW>%Su}ZJQoV2n0d)?h7*dvAi#90yt-aUtLx^_{!=fJId^< z@xA(%goD{z08G7?-D$`Z$|MEn)k~W9OKU1rCC3f?aM)(|{-Zv;*!Je@`r@HpXH^Rg(DHy;SiwX-4?nlX{ z=&X7?w_P+18{K62Au|rNR#fj5LuOn;O1`YBni@`}qWU!XRknJyOiI02&Z|MFJ)1ye zW1Vu1r$6@WCQ>=jOz!#Y4;IfkpK(Rz3ZL?$Q#6g>I6j}cJqVX`*R)geit13>1{Zq~ z)zRgmXZGlm40fZ;^fv68wj$&QX7nl3zPuspIEyYw)lMjf4t04a3jz!2hKSeu9bl=>h&@XQCVU6xS!J!jC5 zu;gB7SOaa23bdD@U=_lE_$eGt0f(cmv1i#|uSl8WKWc}6G9^8%%7&+8%8|x2sWql- zIU{qzOi?HAmi1SN#t^_z-<;>BEyel;{k|ylHU6~WXB`NV{Tm07j662I_tcKvEAQQ^ zww+PEB4Il!U-6;rC=Vw3ltnm#!8hqjWY~X5v)bB>dlpebGnruKzaDtXt?)Ho3&9F* zRd)x_TKc(F2t(*+R*^>W>&Z-&hoZp8uMT#c{E$_thP;-{|Mpr3Fgo^TMEYP(z`|Ic zHlPnk)6cdQp+~y|Hwt+7&<{ABVQT{2taF#xbF-;&#huV}8B`5`vhNkn?YaF9y^Zv% z(Azs)Fb&oA92m|Mf2QL3-dhxeFA?-P`Jy^f{cUf8?@TEV_Uh`n4(Fx(#+}qS!3c#1^5D_6ULoU>(ip!0oof9Htiz)LBuAFLARQ&76nD-|4T*#+ifz->Gon>9bjm87`TEprGZL1vw$Sf~ z!uzH!t&J7pNXYHH6o=m*_m03_~I1?*#jSgc%18C<27 zJ8nc3q(jAU|I54yDzY>198-bhWVs|zGI^soy}??es>p{^ofT5#sS3*4wEIbGq}?b5 z;o2xc&w<^GGsn2ufvIUZH7@rUV5vbnZOdmlDg+5C+~}wc3uCGqtU->%0zFQ8NUf&N~a?W_glYzf;8 z@&NV^SqYslpL$`ct*T*GIa_S<7iiQjDsMG8@s@M6xyBx0Jj*1tA zP-mqTvCrEXT5RWV+g&>{hnAmvhkMO4>o~<_PN)7TQ2!m{#rAy*??iqH@4)LLLa&cF z(F6TbsvC@1le@Oy_P=%lUINW@F6dxbq$cpT-|9%2Nj?4r!ulMfoFceQw*;~_@c@XJ z@8N_7x$VkddnHY1NgEeg7l2xc0A{-V)ibHN+Qa%WupA#YGjL2wGwhJ_eSA%A$^56OlhNvOJQBI+o_ZJ}le;Cj-{Lj<`i8r~WkhnT{z4=0O z?wcHREFFy+XpW{`&$E$@{Huji{H?dME?DK(M*d9nfBiELY1C3N!~PgR1qn$D`TlZ> z?2v_U`ELvHQ(XLaefa-L8SB5o>VHXx>#Y>o^Z)ar;{W&W#{0`2V%W8%#EzsZ)!?%B zUPb}?8<6V95a3kdLs6rDa0Q3g9a#`4ID;VH3?QcYS#F-!G;;;Y!x)f^-gpC!exLRi zT(Vl4DKsk5A3Ki2FP{lPt4KtmnL0_hy|*FeaMXsu4EcmIxYSZ#0kWfX|knGoFfvX4W;C%1jI>(k7g zHN}>}!{2C#ajyA>>6_LQ744)e_yCvi zp7dparfP3x6R0IV@@h%RDDSaY1q|y4z&n|O$ZjS*;AHrbaBvDxFtxTb-J%l!Li(zO zUDwO9n1xc-OPX95>W-ZR(2DKE&G*2OA?Z|^KuNONTkCI8^I2Ps(jqAPS-iQwYg!rD zQpM1RLrG4Cudu%l5ieDNJlymL&!z9svQQHYNxJzF3C zUIT@(0zJ^!aB#cFb{W^RyD}vz94L&m9Qt0xrz>`(l5lL=x>dn%fC5ElQN(FX7l%JcOw8$<=PhB(K)*kf9d60 zuCQu-Jno&!Bcb%kG=O3i7q!R>LFf%uV2><>>1C5fq%Z94}|%jdqqEFl0aG%SD6?Y`Ax4~V4* zm`eF2uaImmRLD=r~F84+#5o3j1?$k=Nx`-Ou>7$ zp3=vzEBBb`AdW-o7d!})2uAHO30Sz8+-<5eOoygH;22R-2`Z5|pQ*K6@W%JK;i@5( zY8_IrpY}Sr#~w<(KdJ?WFj(L|G?QLk6U5XIJC=a;_p+A+t-49rU)!05$u20ENE+!^ z*?i!^MbxvQa2?o#l?=PmD~#t!kA6?yOhER9{JVYmwL$kWMV*OmY52+N)OFC|;D-qV zkO$r{OUnz^Ox-XADY*l-6XwCH7eU?1z2Z__MmRx3HFMkZlPj}FBg~)f9X~JHS=#*S zTD?Dd%}HG~#eTm{7sI_YVvF;uCA0fYS*ZrE&e;RB7txKt^x4`;phg+OlEPKfEc=Ux z-QFNYmlB{nrSx22wYbS@S*YJ6MaYf@wj}~&7r1KyC)9Ha3LCNrg>)hZOjpxyFMpqP za~OL(A?b{|LQo#kt#IWmtGPalR1omsuy>@qf#QtOa=aSk!;vIK;x4mWxAKyFU*BxB zO8v%Kf`W-Dk|3AVTtDS7iJ1U(i-F+lD)(}EUoMo^UY!CkVb(W9ugl)}v`oEjU2Oa1 zuCWaDvt{8v;iL+=VvtPdiZw5rOs$!=#D4>Ux(>*8DppBDvl5{z0`+}R- z86T7GH{<&y{#(Jx|kZCL%8~M+vGTH*!s| z$h_<(WpmK=x3tvO72DshrXQKi=58O~2|#qE^P3+6FccvjmOR*uLuBG2npG#Ba5EPkee$I5)#NS4v2`y5TO?y{(?-MrkEf`MhqWRw!Oq5HlXEUQ{}EQXKu&$p=-N6#zl-hX-XrMp5ZIho3P zpHIHm3^Y2jcai%t3)j`xuN8UZ%y=dor9nVxv2WxdNoO>zD{4k%BpO{omLRyr*cua; z++zqC$I)oc#JVjg^6s89rqi@%q)(olpXBGtxQ)ef?%lgrXto<0MtYXrV$!_4JJZeG zojp7vVuUM{S@vst`?Xl=!t>6~&Tb)}|D;pa(a@mv^Ye2M_jt~E{rccd?9;)5)xFN? zi;Igx?0u!e?(Xhud_BQbSI=y_xRK`o&5JvG9)J4}Pxv>?!oIl;Mc@wfx%8j^7hAc< zDMgQEXw&2*jKFAXYdgVr+Uxcs2Rpl)dJ!*iq(qv)xf%71C;LBqaQf&*eUmglFX`D* z=WN|{N<`#sbs^7SnQI8!)4ZAfG!9e+uz|bR@(0V^{a#k)9CgL}&#+61iLqE)tnuD) zDk&+6%gz=uyWbVQlA4iW97WPwnw}QO&CQie;kmP0UEE*ebx2%O_=hPi9UY(S?Cj4M ztZv=9Z~X4vyVq~t{L#00uY-ew(VeBqN%ODsW6vTE-u?3BOJ+_EV?dZ|$7VK8PUCkm zQBn6EJb197!P3mkPX?qHcafQUouu8nO)E{+)kDy$8NC~Bp0QC?RXr^!`EbO!t5DSD z_U+qGL~3mP4J%Q{qnvm!2~-=F^2&!bm?_3vl1lUP7H-D9ldH_0!8Xk7bc)g1cY{=! z<4#$Vvd{8*6elVn)#JV)-pthWV;mlj2L*cHLJO`g-KV1Hiu{+~SN}iDJw!>nQ)%PB zvUojC(o=}m5r5^mE8k>fBy^WM@&w{(%QX#^0~Tc$>7c(Y_GVuxQ0J{ zI&w~Hld8A3cMJVk&4}{bSC^F^u->7+``m7RanS*zt^J5#jn&cCKEDNJnA&)Sww>C4 zSLIFH+K*>W$)$57C}6Ryp`zGx=#_}eEZym|V0JQKUUypp_pN>XVsL@6FR8GR$GGA7#>&B|DT~NX z0!s+$<)c44J3GJDxi>U4ys=nQF5b6O;T7>@X2ZU|f=`1V=jTrbs~E-5Y(rf;urDV+ zKbS|o>4e?T0IiMo_3Qg%HbrekGm`_uE}*w-wVI?mO2jPEex^2`GaoINJ*-u-p)Wo@ zJ~acsJ-BWQ41x=~$4c#Qmwsus96s`$Mg7%HiD@BXBx>$s1)`#&yN-^0I{MkU$@Tm+ zzs~kx3l0|!qUMV?;$nxaq^*x(*H**^nEm!)+Rsei&()cfRx0di>}aqZ(K7bjgeNim za(*`QD2KvON+ye_tv#VsR!pe28s@Fnu3ZZp3y>ScL?#7VE$;LS7fZSvtscDRWZpQLo5`$CV=9<$*gmSy-~#G_G%w3=>Xc%XVy}GU4&HC`$-? z=uuD@M8BA5Vybv`NKow3J6pZ5tj~VJ5gTGhsIYEsbdMfA+PIT;5Bl`!+Q3TxP1v>J z{t@;gsWZp@wx*&*w$rTS9B&eo|2l`4+wfqNu@rg~8*E)kll!`|-_o8kF4yZWuZisF z=(x>HlHSkdJ?PVq-hPvj_+M6-5V4sdxJ~a>BjM~}u6&+_ z2(zzqwRNp^4Nn9y@8}<-2(ggKWPK;6(;U$e5!?Iw`|A!04v_R%^e*z;@(%U5x_n5p z$SU&Pe0JXKbwPgqmy2GTE3adXDmiC^&r{V^dYU%r>)p(Dn>VWx+OTVbsiL}8)#=B# z^LJlz3M;K}Tl5T{U))?tmG#Vzb1sZ8B#Xj@NodX#d(qM~H#D=|Sj_M6{hQ9qU0#MW zJ&Rp8_3x36&R=IO0^B#>ohxhd{h1@^*=Ti1p_Y+@mAuIjN zbZ2*MyshhXXWv<^C;O~vyzl6}q2EcZ|3@GmUD0aVJT>N;Xi17HB6XG$oQ;Z0mhJdw zUL}_+QN|;$+jPxcJ&IDN422u*=(V(sp(T78`7vhD@6u4BsFHTC_uAZ|(d&?bEW2@5 zzm*O--Q`vrs2-ovybVS8V1S7^e%iYV3W@>{wHgx#^nKaYbV$Wrk5WY?Phg)?2-r1a z=Xb)3PyV{|vAdv#0 zLWvuNJSYecP*#7QS^H#?x+bLyyQU zxh1>{X@lnUPeni&=GqO579JAd(jH$AIZ$VLhh*mrL&0j`1Dx(8^mg#jxf3Ln&A8(L zb+S~|OPLd-T!k#YaCCvW;_KUNn8rglU>4vB#Kvs5C7dpYd_wb3Z&k(yv_ za)U((^zN(-uJ8Z*hhvqf%x+{x-r+mjmGtz^*Ek0ETZ{tILmL^mW7g&q6R#oAsPH=| zPj#xCnAJ&RJap_h?>@1>U-HI>QI$YOUpxtIoyO-0+vR!}LZ=MaQ5D1VR@~6TsLjne zz5F>IcMQE$H@cePv5;a2)I5vmuBtgzb#2vPlt%Vz$+;r8a{lgtvCD2Mtpdi8x8DVt z+U`Ob`xr;rtNm%HnJtaX`7RFl<%RbrS0&4rOQd_5 z{x~bd1DQuRoJNSW?L#KXzUgd(td~dci{JR@GeUlG~ksj-RDg1HVvo zI2-;6{QlUU(X^?5R@qQ}JoT8(5{d<-Iejx8B(tN&_xt8=$=A)cvpg^0XK@iLI|Z6m z6A8>lE;n?5#^4UJbbS-L-N^=v22qd!ugU`(^;xl@5~XPeBq>A;ebP-7?vNZlbWpO zTv#)gbg))4F@I`KoS7#TV3UoSUU;?I!#^1->Ih7JtLfZ{a=d%>(cdroUf5IQ1SZ<@ ze&5L{2JF}BxzDobViP2#&lcdZG zLU{`hiwhY!Y_+cXN;%@&P3Mxg1smH2;K$BTuB$=l)XbUaMktZD~vidmZ$n^0T3` z7Qzp`Q04QPlCiUQf3nKGkHIPp47LVKoO^ZQ?`8TNRvEqzl}L-2MHU-CNK~#9&2-7v z#QyIDq(jlS>bgBd>pjCRqxNXM?_JRZ3shwP)> zzE*PzVAlxP0eKwFR?gMWvg#kA`w}Hdd`fjI$eA2ry(fST1*c{4Ajy>ol&zhcNV9+Hh1)^c?1~*a=8UvyK&(m zwB6A#fh$N>YWxZwE*9sy%qH3g6GCkHqh;9TMC|@{oaAnE^w%l|%h8;c3#=lXy0@xq z)OblEif0f`a`61Mrq%ns!_SEWAUYy$Sok@;%4QN#IJSWXt7vaI;KhS#q^57<^%-0- zMIhr4KF}KT_06$x(wwe~NCBzB@|faolrG3r;Tb5i3=tYHyXK)H-8=uF>29Adxx3lJ zfvDp$lCTQ%!}>=T3MqLO5zU+cYr^McxK9=4jL#R{1_Hh0RFvLnE*UT54|5jz-3hdP z!u-RwR1`L09@-FFNvV&!0=NOsB5Nz3TUJh7V;z|F0X;b1PbMnVxU{>nKMjS(TtwV^ z+QHu(&NDMsYok^P7Il4AqGxaW%vi`#5s=H*`{1+Qu?2(avXunUvR7dzc`@m()}1kO z%H&yJbZJ<-Pr!DVlcHX++~KWXHL+k31H%O)9FaTim`H%OH~yMp#?btOawu0NHW++; zTQabael|&?Lew%dl1zOJr69NvNGc^r8N!wQ%D7+a;^Q-7FQ*zMU%p1^95GkW8_+4t z1aM){e6UWC;ZwaO7^=dDUG2h_y&iX;aUEopCxd71pD$el860%zsqs2Fow=t^IVkqK zP+j|@8UHi*`OKZlbGyKmn$uR<$Z~glA380?h+*``&tGfIEQKwiD9@D&Gy@4A$EWk< zLF?jy^g+4DiG%T`P$mV zrJN?7#$~n{*cWcOJ^rG=vBdpLnr}-wp+#CLimo7PIM7$lrRZo(mt)+gxUkJleo%-#lfOUX(D_GT>7s+%M;Jk0u~=c7Rk~P!xNR zl-hJ}dw_F;!G-qll1mG-lV219KIVUV{UBATzMx`t>a5b#;wts9N%iSG(%xoQc#p0E zn9nFST{sf1S8iWFA2_e$zmzm3&oEk0isx4-6T~jz8l~PwFykl@)B7$qFVclY&sD5- zQFsMiTKvKZ3s?ZxIM{Bym|*zf%fpMuwQj_;Y`S{XqHWmORpB4!eIu2h=9$dCtW|0p zd)&3df4hQtc|8UC;NDDO836>huJE`Nyt*UD^l4ASX%V*=a-Z=%juLH$CvXnaR^~z~ z%w5hOE7j&UJdGKEa$1Bc&fS-BLn5=I&mTHW6Knx7E1!-jD3>B*QxJE3IpfQ{8z<{r zR>svUOuZIM`ll?PH5lc2obtTw;$+M{i{OMmWfRvBL=c@mV!$EYY;uQ!FTXbyNt_pJgmjXZk{(&=kC$_-_ksrP;cG((C zZiyY!D9tACY0iBKsANYmDE`yngb(sRB~33+8{++yR!0Zkn{is}Y1mMwRZHRtuyebmW~gcPHDe-0_&d+7c17FMpBMW9kwGZ5Oxhk)yuQ33pg z*3wSo+g99;0t_K4yH^C<>#U~v`qPJB%uvQZFc;+P7o)sgThkj^=fA;)!gkittlv)B zV9Kb~T0$hm=L!=@^|aC5(zP?tHd_q28gOt8_893Li?X}g4I*cRo8?B?%hX5d{U@3e zYluAo64v$gq}5d()(M)Q)-d%7;?^4Z*SodLnSD7%IbzfaOra@p={a{)#R3c*rLT znSHx1i~Q~M&oon0L$Ysm8)4@Sb}h+j<3wKMjV?@uO!yoDYLvGG&uYCds=^`hlp=&Nj+7x{kuRg5`uQ2GD=d6>PIGfR;O4Muvt zG%o&~^T^tYTyKHvd<`m4&lwCxkPzjl(`@%UH*(`!yvFmJg^5`ki>ZfHXfO%nh`&{O zCc`p+;}bD--{RdP>s%<29i@xpC{QV5PvU@p+YpL;f=ce=DqGrqzR3RaZJEi4$$|Rf z&%sH#Hy$=OB@!Sw_;wW~ek8zP)h209cPkqG>iqrAAQ#J%b$(9oAT^FQaPaFp(O?)s zP};(TBAFk9D{I}|;d%Z5Vxo#RO7sf#sA3cTn)r2x@5esLPU-#IE-+9D1UamI|X(TmK48R8hQLY%Nt&aaME1DvKDF;qQJ>;C4&=ju!t4#3CC4PCs zhyz$f@BiXZes>>-Zn2dA{4SyMC?^crtn6 z)%$howO_i8vCFyUzx=fj1vAW5mN3cky$@4~ zqOn{#&r>k?rG%ku`L0C0s6a)^${=%^_TrK^9xKMT?ute}bnmN5`8XT$0Ad0jD}Gx7 zE2P)_=g170t2#ulye*m~c1vvv)6z~w*P{U`w>{_Hj|FW|8w%D9p2O)XXa6SR1kXcdbNImz|ZiuZ`Jy}0cTj*n)mP)%xF`HSEJ{Wdm|o6Obd1jXj-k6 zTv<7For5={L{dv9>U?IYcpm=`!;8&1Go2AhMs?xoXG-GTrp+A3^0eZeeuh6GPnO9| zZN$iH?Aebj^R zE3M~1RUk;|U3zDzf+lk67Uh(#R^tXSI(Km@7Nv*&3Ay=ZJs2k{VC89C%Iq5uEz+sJ zGDCk3k7v?#`EVV7J0P^D=*Bbp%NpYLSEX>Oi&~kb^|u;Be|(Yvb#T90eOg7hcp`)Q zXp_x&cLi-oOd;XvoY%1o?P>SsSN6a8!~>bi)J>;H9@-3fZt>TOS}cnQ9^5-^!C4j` zxq!!4FYpV>N_(Wu<+>*xt)0kFsoy-|AKAzo!;R6wzuEia`H#Pv}m> zwDJT$JZH7mWI0{366%|#>abkKb#8Qjz3uly`TeMD@TB3ho@&0lG(#y$ar+YC7@Q-3 zS(8!sn7HmS^C^U*_=XbxCC)0Rw633E1$Y{wu~pp<(_^O*IPb|Lnv6usPyD%ky>+c0cqI`;6_-|Sbmsy>SfP)9RLDbFNIX-1j(JS`em!2 zd7-XXRuYswFsJM+J(DPD>PLf%zb5~~#bZuVIrgj8XIKhyk@OTlxYf*I!xDb@ssDU| z`Ak)Wo$E1MJ^DwJRA86Ja)c|d;G2cLD8V;sS&Bcl_qShQ&cMY&)4osb-mlyH&+lx% z0@6i0HQ$Q=x;6iK5a_FK1o!~6vH^zaH?RAT2SEL?v1;y|In%@+|FNcje%#+b`VBUx zbLNr0>VJ0ZpC9-Amos-lKWlrIYAWN8-TC$f<~&u!+Cm1df7+pd$CiQ@#A*N_`6@E9 zk*BQ;b7cq!-8_yJM`rh8K}EDu5K7*-^qi(iy{=t z5Ue*aal0k4<0>)Nr?C_=>4~0V{up$a_>iBC&|A8H*q<9P&tD=Ny5!X|&aC;@4l?po zGi%UgTpI5O4S76_6yyVxuUS!7*|h33K*vPMmDc@1WlaR(80wdRA>;$fq(}Fy_(%0d z5f*Bv`mC#i+)Mia{DViR!Q*KV;Y4|NYRNx+>UVIis6*AJeCf?G=@yhF1TKQmeydJp zc5f0R1X{U`us$N?0P;{#F-PYpgsVUNg5JTcE6{Y4W%Rex4q4G7zh*Aa zG_zlToqI3g2~!=-cTTsnI!NdPxms=Mg$KgzC&(KTHvH{DJkvRt#KEe7#>4jG|FghrGR_Exa89y|z z0Zng1vNLGQ;+1JPj-1cXQlFe=~lYx|t57tx+)2aB10C8Co~7ezt(~b zq`C(X9k8=KKiZO>9fBZVwmKSo@w;6f_pCJc#?z_00A*Au^9>U^JX)BtpiAi}{Q@n` zqCSE&Nh9ki&vu<5V5PF$wOBea7|^l3ye@SplnQ9)HIXiJx>np1hGH{QGf=niTgpiC#)3sSSPB4s7&A8MV$trxqE83gK`0YKZ; zr>GaL_V&hiXPcq`o}(v;|Ni&$ttUV|t|x{bHQHAfc6pk)7#X8`&9HN36(OE1ePpiq z;5H3lEx}&%oW@kb@Ft?*D&*=^qi4`6>;#Q;wp$ zoNKeb3f!$ejfeRb+-`)}y80YkTO(EIg7|P7z}zF|wO&+2h^l0+5MwB%k-#1BepCU3 z0}X`FZM1cAMd68l7C3^LU@H$|gtvIxf(|DK{{iL_yj2K{Dk^5_5tA`E_C|4L45VmH zUJ_Y%1QR_GatEG+R9G{VQ?0buH8b)FmCcEobCRRd^KlF!1n5I%%wv#L>nwlV7Pk!hm(Gm0E_cWuS=cXM^zLvfgmN^ zggk+*Jtgu^tMg&N>4FTFsmQcQ9!&ZmPRdjGE-{IGyi4kdtak2`fu;dJV?wf7+4Sk5@=I}FL2Ap~WxGY`mv;)yF?q;LV0*=k zFa$#|rV+T|5FYejIp#4s#dc%4WvZ>4cq!SFeIX~x{4VgvYu|EVNoXf(<(q3$ z=Fp?$G572p8vQ&Vd!pDMLCn-uP~#9fQ20_}fz7#sK$oJ%yDV$0d1ymUL^MKfK<>li z#r*;Z5LEc&ZI_C-2JMS<*rOSY*IpF#AwZu7SMb#=s%c?+NvSfI&pnwW@{An}S&(Zk znlEHy3O&i>yCzq1v%6c=xP)@kwM|+hW_}HK;(hQHvI|*fHFQBSp#1I;1PE(O*O)s! zGA+9xBrDbI5sB^gZFS&d6^V(N@yWMh;p$xjN(9cz3+Q!QB@f!#k31*fsJp3hVMH zeX?&L-MG^%VMK7IfP8uJivW4j&PTgECcCsd&|G#j!oI=zz~H4Ru^WcOOA=i%jUIgq zIl_&uPwm4^%Hs!8sz-+7GAA-;S(=?Lw3RruOA1X@bFNu0#ZZ=FMyG~dMUHVJ#Fx&} z5RQ6Uthz%w8fLK8JC+lpMup?2<0N@8ig<+1RfM)BR>e_9g)q@mV&=uJC}U}sXtc$^ zTE9qck9Ww_3DNPs<4N$1%$1snN$=AX}Mf*z34n9rz?JI zFer*OoZ)N0_p@^mIXk(-08aYbMipQ?FzMLb)f_ZA2O0ey1844mWdQsc~n~KvQwk=?Puz+H*evQ?IZ3gVgCozMqoF z7t0sYtSnyR;Dgd7r*8-F0llenh{Gq$aXKtYIfXw*yQbM=F^6kHM7taA4;<*M2=(`> zBy^Ege5x8s1&cmCJ*|`(pMRt00J+-^eb>0Q ztJ!_pmd{PV;<4+3QH9cbspOlwO~#A@?Oan8pw}Q0H-70@RC{TV{jKWNVoL#^S{Gdq zDOvb5x&%@#J$=2o^r92na{2?toBds)S0{m@U{go4!@e#nGWxy-<;uj9;@h=S4`nT6 z77OU!O1lMgxmi9v)li1c5mZ!1W@0}*fO@$j1z{XKHOLU4^|jSqx|?22*6TqLvLhpU z&!7mMi;=qv7ODLEo=KCJldfjWfMTGqVNAG!roU}z!)V_c-0d#Mspk;Dl)pKVO}Ja# zr@5$mnk}V>)5?8^nbbJ3&b%U~$2oQKM2$+**(vwu6U)H1TCM*^78zQYUv#D_h*W7! zsOBOR^~Fdq;~MhivlVl+)ikjQdP~6Bn;AN-+g;0j;?lmbrv}MV0Y+#ya_^w@X&oOK zf`gO~r){(}OhVi8Om{ImMBzkQKnI&^(Z1*WZTtoTUijP1`qfo7YteO%uV%J3^sc}peo4%Vp{cbS(H3-+P*fduM&JW0CN@~{yo3f+6kwRW4i8q8PWUe68FWOxRnjQ%R-@dz-s-<4N)229R(6$PI_TVDE zw&w0G+I_vzb+6ieE{+WcMPIHytHX{8$nm#jL4mEFTOP|7J=+h`s~P~qCq1&Oebep? zfvh-}vRp|bsV}o?R(|&+S7fRj`(>kU+TsMhv5hgDuX~SYrm2$(%@XO+YXdW@I?nYf z(L!6V^^h0~BVEQ{DF{wD^voJik#c40lgL_*VX|KJpx9@9&mJ6Aduk;eMH_f0TvBaD zytEf~05FTEEK3C~q$+Mhs687MCSHL#D8_jqJ|; zLX=hbV+EVlSedxn!E^4?VN;~G`)^Z^zp^AS4XjMv)#APl6C=_x1xKk~vTa&$Y?+mu z>o)H)pO%uU6Q>u%p2{%Z7CbR?KeEgAV5Pa7d&<3TH)CTlB&57t-g`BA{>8B%cE`Rf z=V*#)2Ah(YY(C*VTN_Mg{1j+#EGFzECi)Yb8dkOjVdafKB)_+w`I3rt7hq*Vb>S|q zUNLMRylzp}y_R+eV~PKsX`3a3TCReHbMJRT0_FwPLclWL#HEv_j1!#GL=TTyg^Zec zRGoFw7*pHg!#eU9OQbjt%jVPeyBFOczBNt2*VN~$U-r0W#9Y|U%LLaVzwc61A2 z-rocp+icx4#?u)*+-&6HB68HJVdonj=kjbD0O|!5lucQ9n~wb%jDJDWKj(G#yv0n% zaHX*myHU=Xh93KUu9LlhgO9MdD42fN&OT#c?ey-G#;mO} z4t@6W0hx4s1B)C@HrXB)Ghe80YI{E!UggpM3UaEgbbOl475%}I2{ku-PAf2s&hKAA z_%cosaSfmyB;gdb`huQb=-L!aY8*Iylbpl((pRm7lb&)wx8ST%sKdn#QT7cUp~ISt z>ACoCEW3Mj7MHAW)YTSs=l6DZ3Ey>@oET^Z3aXVe@Vy4qEIP*!dS@&N(_;z1VAJ5J zgLaJ6bfg6K9l<%;3z9d2u_h4+;=fV4bGo9M+4JW4;%Qm$py<)MOqqvBh9|mXkg`UK zh)vWE09J1%Kkb25@`)<>%l^IQGLo%10#c!jr3s%_o>-%0jusd`J!S6Or>MyldZ|u2 z+Fgn(&d62zRdw>PUXh1j4DR0XqR<0`;>ik=8V54bqaN6cSYc8t-6r&SM-HW!v~LTZ7(mjXrZo#u=#cS1iEqF)U6joF_+y$TaZQ?LCY z8}^_Gg)1cBd{@b~`FE$!U!1-^?pJKnRJ)XC_NvR`^oR6-8aJ!NG@CD1dN)Z~JlpOt zE_5kVa!kzp+UE%3P1lvtmGCD!dKQ|qp3Y=1@7*X&gBw|6f4|&L_>hiG$t@_Um28bD zmP)W)vkV|aYWfPYnS_je&p9(cAOS%cO&a=#XJkymwl^~*Ed&I_a|``p;Z>L4j_x~_ zgxgtFP1>K1eIvh5LbAcy$6FyO*aqas7^buO1P-Ic%O|vF_TRn4^6|8k?Zi`ML6VVt zT|gMiboLa#_==2)OZv;2F>^VO)W-M8JS@*odKzoDl9z#JuE%-hY5aFBfVO8saf6J& zm>ZqC)P*K0FjVH#`MwN`CYMLs)bl6=QC|~;oOX+p{luB$!*VY1J1A!)#>9=P>;tlg zm2)(*c2GLVDz9HpGAtDDAnC9%-5KSGgrg}W8R;VNhtBff;upT3L3M6Ge*g3n zRf=Bpw)knL@K`>n^D1*P*wo&qXC%&QFE&rI(yB~6jkcjIT2VUX_wRTvWNyP6O8AN^ zHkP)p+nH{kDb=@mAuD?1Sj`pf-9Cn#roI}S9GmlT9@mkWQESN%N5n z&1)P1f${$0$wi{Z(OojE1g*f#bg3pVJSbvl2tYYw)OnGlb*nY_Qtxr%tAM=W)f8<- zcC`-3F+Mr9MGUm7nf2&>)e81IxjVX`H>N%XLc{6E$9P4X(oaM_iGoDMGTqLqx!Llk z)`Ejq?Cai2cN_O^r}vp?Cp^1d5i^eOXr8b=FQ8nvmDRp(`Pd$%_o6FN*ElD-0~qgj zac#U^F1K5VptS(0qtm_B()2;;n43{O&JW2L--2pp{3kM(OmqSB<2>BOtud>DQcVTj zMiD&Bp1JltHN_zmYl#B;1lNY81B82lcYBJs{?HsZ$SXU5Vt(>zk!9-q1tr&>wgfsJ zslSZ&G=@Xu+~q}h=caq&JWCOLSl7IlYZ0l_S(0Oe8=tMEJzYqdsfp^<&#kg4nf_5s zbl(Fvc$TWg_xe<94dRluPYHWs&b1*H%D`}Oa(b|HmmTJyX;B4j(wab=sYzRUTFWgZJsj=d!H#Se=&D7NSp+lJ>PZ{`Jv?O`D=oSIj8i!D~6R!JvvT?>wk7zMmaj)FCCD0c#i_@1fBcq*Y%~XuULplfz?b<wfRw90;M3vQwOso!y-)YYV` zF@v@zF8c^r;-Oi}EVJEs{@mL@P{nqb zZE-9eVOJ0wq%#X2_}mtR6i5^{JR?o$6`AQNbEdF77h~qmeTnmE?~IzxlI}FNy?tR+ zeMYxBjxswpPQ2c4;3Uvv{Zvn^fTmVCgQuF%I&5*POxRr&n14}>K3&G`6Jh=#?HRqU z?YH*4QYlbnM|H)pi?p7X2FCKdm8(-1G1L$4DwZ5~`N!e0X=P^)c{+N{1P(_}6xALW zRG1<|@ZPm7oTk#{EU#{5SY<;lqK;-+JzN$7C#aXyQ!}sEbh~$RQJ4qRGf&FgB{;jw z6Bg<(yPvI@b#^b-6C)F=Y@L=ES-hZ_`pib zYbL&3jjjtj>mU{-_l%a^zU);&XVAUKWbwO?(1zuZxD! z=lN8tbA6MdELRH#uye!18=mjrlBM_VPaoMLJ?m*SP+jKVOUmh+f7h_8D!gL%x^LJp z(XwRq)wAJvl?xV1#CKMd6hV)q-dK)9qN<4!K65%H0@Y>cl1bU675SF~%@^1wgxwdj zaRPkZ=&R!vtP5c-cAm>RUA8Sg&!}-QS=+L%?1qY(!;_2b+d2rH^B0wx=L46i!i~-? z==$7jem}{R;q;a-oP4LisyTtbMoK3;H7KfAC2?&>vdplHZrGR;PSS=lpoIyX146Zx zwGwIB?JDajCM?Ee3;_tsHSb#K_PBGO7JAq@hGz);d9f~b^=bPh-;DJ4USAR$UK zbSMHMHPW3T$WQ`;goMPla=M|{pYCy^&IlEKJa%);Dff2PRUYwEwI)^wh6y`LMac5>aHe}4Y zwHBKrKw40B?A>Qgz0aTVJHhIu6q<5Xdfc5})U3W#zMFrzli#kW*>^Q}DNa8if0iNE ztTTfIf5KohExNsSq*K7pinnz}cg}`}F~ZxG(K*a;l(hOZviW`^w?%|;`Dt7KWw=z; zsdB{!a<8Mr&ln`tubppJ>T@^4Z1!f=`py|6gm-WHYj-r^UUYt}hmT%d?Y;ZFl`>a&G(ee%qVoVUWCxE&%HciCbV32Oc`fZ-h`n-9fc2 zY?`og^kB18q-U=7ay+5no(MGtC9a)(A2%lFnvG__bk9lj2ERz7xiTVqlx%>S!G0ko>eK-1R8Fa<4xdDZ3^StT%?;d3sBf6d2+_=|`#Tqxw zug{in!k4ZjrMg6_2;XXcPzfIZ!nOs&NQoI~-g_5SVG{v2q!6H;!o| zH$%{WevUb3{??cBF&6NW&4G#0Ed_lPrVTMF>EwsS&0XE;N=kDjzs&OL4_O;^!R7v! zpPV-4XE%f=B~d`3zt>I;VYr2tdv!+KGA`73J3@)~z8kT*+5AR)!CI~7CpXNLDA+eB zUi6qEx+mD@ffuA7&~$13t09x##z|t}$mMOlv$patRD}(BY!x*-Zk84yTHhF#BTTow zw?l3|j&ro!#8yboTp{IxpgdCd2QiN2sy)2-;zc+B6@H*kDsrB&d_zI7kfEXa^re)w zs7xWuz6;_KF;YEW+HT5SNGc{2XcU-JIim(U94nfCyn+rLK4R3WT6411BZnD(nP&!P zJz6673gqRapL^;|0^kJO@jP%pN~B0pYm)OG%sOi(@+-SeyGP8n*AVY&P;i$ig8-1 z+RbrX^`<|*o#Op3Zu7aB46`qj?5dahF>ez`1stwQ+_|pR=^;`JLZ=57MsuFrl$E&X z@)lOiGzoulgzVN6VqVMSPL88Z)m!oMrMvrDhl{sTPRwCVJ*#?~hef@uKBMOcr9aOJ ztDQtQvKs!XpIbeFau}9oLr0~wnQ+@X$Cm;H~RVK)jLfyHt36&7K?bV+;V4X9vCq#Un0~ZB_8CJ z2!*0GrbSLd_W7`-aZ+#B0np1}zDc-qo+V%K(br+F{iT5rnB(jYFwq;2n*9PC$#rL2* zm6hnR_R%+a}qq) zaCE8s0;wbUjyDCkPjXmyZt33~6sNxQT->_|+q#Op%{&;+dToEd3&{QK%}wMbc{5s2 z{_?RM8QaPwt0x1L7L&td;NE(3p4ni?msf6UE@Cow^|B9=<7e$2&mL%g+?(H@VTU0; zMlGkhZ2uLAfsJ@8SHXt#SHb`Q>p&oeJ^r3M$NMr~Dam zeH(#}7nEjP1DV4zoz8Wa+yKIk_j{I!j2eWFb0~N>aJrZ~9Q*^;+KR;eZrI0;8xQR| zxDbYOfPkwJ^cU?}pKHaAGZhHtD$P>h7Q@?>S(-r7Wyk!XbAFed_wLXXl!_Ge?3F%) zfi$q#x1v?z(4b`noL8LY@~ASpCek@Opgz}ksw!oqkMPqS3SJ=jS=>*Ai9? z+H~%MG^#%SOG2a}5L3#x50_=Ao5D`uqM;?V)Y`F_rS6RnLjOSlpL-HOOS<|Yc3|Ao ztjxkO1`CQ$31KUcSWLV#y6IGT3;erDnmBWN1&ID*YSz=Qg!a$+JLd;%d3_2t6cUhZ z^OzU-DE=8s>tz_QmBveub+!LFUU*$8FO+J-$7Bu*ijQJ99uD=jI~06fJdmM(gLxIc zK)HC5Qq0zYk*=h3kD>_U@o5v;QFPmT!s!$eyDcu-J|8u(AebdH3&m`LwYQJEZ_Yl~ z?(#AsNkPv$gIes3!_%?rcG1>qytrjR>u}9!a#TDn+3_kc-z%%DosWv;e%1H2+W>f` zY1pmr*M7r{!XxUHnZqGM8@1}(aMN!FEGAqu^g0W#scQSlAG`1k-3LC2&EkqtQHrPH~0T;6VOV3 znwUf9(0bXPCYnWV89-MqOMUOI6ug>QB2$tnVm(;EV{ihPuy>5t#L=p*aqcvkFV-d= z#dMo_Kk)rHfQKeD?g=jB;lIfjo?KpT%v}9uP?pUZlKyg zidkgU;oIJjLp}Q`aiqqktFJGcsV8BjC*{CN@V=zQv}@Zp0ZghIWtSOK zB>=bJ7iORMs=QFabjqBsJrZ||RG{&k>DRwmYIHZ%2{{x*JmmO4Hf(#}VK!co#kl^dN{ z{R^MGQrN@nU;-acDwl_4DaGAOGLQGhX-c6zOyzl7=Ogcy zjD`R#TvCpXmGd&|Q(mDqaluSWJ#>OH1*G`qvjasS6J8qpV2L4tF518v)}9`E?OruN6G(LUMU-k&St&- zdRQ1=wZFPQxV(K$*4_P>U@M9e&M{@+Vs&6R#0=NAf2=V}a8=2RT?~nJZd3>WxNX~8S!MXv#nmLSI z38XLP%j{VK(pCH)AuF~8U<+q?16%ioBCt0)d=~>r7uVySO!daCFF$^GsQIxVz;{tu z>7xSP;>iaa2+8FsB++)wts}2ESOdg5+Ik&sN8rW2TR!WyV6U$oK+N}CS^{E%JApYI-l`8-U9o9`yg1$?P_r~*HCDNmWmtvbM;dwJ@c@ycHf$jQphaubBTr1uA$o_ z_Pbs{&2LckoMefQasT5-5zfkXIV88^O03-}TnubA%g_hCc<9;mXp}j~r!+7+r?li4 zxjpY&j3K*F-PYq}=h{dYuahBSw?sUIEOH;BD?13U^sM!?UM7!2^ijhn_i^8*0R2PF znWRL<;O&_4;i2SbJq&7bYB-g+y0bT8$=;nZo@1J#6u+0;$Uc;0`sNhR{8rDrK>f5m zS-3b<0pA7{aK>jkq2t7tDKgS69=J(|5WNw|U(nmOcEg;G!Idf(nSWyw8!VjjLh)2q z@(@FN*L2KvZz44=q|RLiLu_qmWY_{8ZuTU zs#SQ%e8%RaWPWu}wLG!6Sq;iWz6(QQBkDiI1D`kCj{sO2b~ zSDRP#vBFbJ0i&JsiJgw2n{iLJceELt6M}AIa~o$81$)%JO3a2qPHjgT(w4*doQUt= zi7EfWN=;o1x32br!n{WjwI|lL9|D&RbH_pdyrk+-QTjng`^<&%H*A=?@#Wc)nj_J_ zIuoEb1}jwguCc;^Z4GeWTy9- z#P!#5`(MwexCdwSt0UvaqZGg9JM=nO2-<*fJhb-R4ZZ@dK0Dzdfw#7OuGZXqR3J1H+^afrteE*~foHY7 zQR?(3jCfs@xw-_B=(u8;XqYqmV)%3}Xi3*EyfvsynioaVlmIt~e##jJ|0YOpuP5N) z>7U)cpDOtLp<9v#&0q=Wfl=<+2?^3x5KLCGG!9yP*@T3Rx3BZwaRWfOk*SHf-%z(4 zIq<|>?=M^ZdHtL$obuZH{(Lr#6SMRVOjuCmu>0Viq`IZkqg5^If6(rUa7^ioyXi)m zp@`Mgv$?E(c^SZ^jni?;zt2RetH#}dy>w_W`;D|V_5#&Q?7ZFV@5KxbW^!ehw6@b> zo>{Y>;@vAs*tcj#LF|p*UwTvhVQ@`oaOsPDs>e6F{Bnb)ry9Y%(y)guKL@(d?!9^$ zM`tByO9Q?I<0{V);PGd<<7lt>{iwlLz@|f^`%(NiKj8P^|9N1{2#ryo-KXDQ{Lh0Q zx=2l3H~Wq%!~f%|*bB_s$%-Dq9RK6*KTlp~0suEKf6aoB|Gd}{p@A$`5saYZH$9xr$DhCXx3~5C41XTfNdjURhJ5tZQI7b(FOH%C+CjlDqjUbQt^DVp{kV^5fY_G| z{Z4g+0{Qb&e@(bg6VPEYB+0$U@PEE4UnqDX5${Va|9m0-bxi_DOKHu-l70RtZ}UH{ ziU9S{PPQ6_Bah=>%j3th8}kDQD)rS%I!E^ZulxRUeE;8)``1MLU$W%*L~wvz(%T08 z+zf%LvF6$yFqtU{vyFr-Z+xT7!yaJ65BtEXbTkJ2|j3 z;P(QZR%d2e14ITb+ltwYZT(Z||9G4EIB@_jTdEachHIElnAfi*3cZW_Jxn>aK0jpc zAxOOOy9Dck8$XB=K=s}TFhwd)Ww`&|iT*Ma#xIHXcKU01f3Pk96#)$-pG39Wb4v!_ z4r7zI=&K9~)Bp?R<=LDgoZjQQ9NccDZQz{SNJq+UL!z~O2+b$|!GYrz^6_iiZqGgy zi%rmSgTbNzsqO*~TGygt==h-)nQw)H-dS%#A2Q}PZ-R^Q^*4-|E9mP_~#_Rg3Hj?CUTX#)J+^21Q~C?N1`KB5Cm_z14%Z}XTMEc;b& z+lSO6)t&3n74`oR9r;8wnT&>*dxZzYFZ&CO5ucWBY9{`A{ZZzGQ1huNFs`5V5bY0K z^pt*|`qzPW+Q~sfG?Z0EgB2j1PX&zERH^-u@$$*T83kGJ)ðE5M8CL0O4BCiNqn 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 KZCdo5JM}MG-2g}c literal 0 HcmV?d00001 diff --git a/litellm/proxy/_types.py b/litellm/proxy/_types.py index feafe35c80..44cfc0283b 100644 --- a/litellm/proxy/_types.py +++ b/litellm/proxy/_types.py @@ -1393,6 +1393,7 @@ class NewTeamRequest(TeamBase): prompts: Optional[List[str]] = None object_permission: Optional[LiteLLM_ObjectPermissionBase] = None allowed_passthrough_routes: Optional[list] = None + secret_manager_settings: Optional[dict] = None model_rpm_limit: Optional[Dict[str, int]] = None rpm_limit_type: Optional[ Literal["guaranteed_throughput", "best_effort_throughput"] @@ -1459,6 +1460,7 @@ class UpdateTeamRequest(LiteLLMPydanticObjectBase): team_member_tpm_limit: Optional[int] = None team_member_key_duration: Optional[str] = None allowed_passthrough_routes: Optional[list] = None + secret_manager_settings: Optional[dict] = None model_rpm_limit: Optional[Dict[str, int]] = None model_tpm_limit: Optional[Dict[str, int]] = None allowed_vector_store_indexes: Optional[List[AllowedVectorStoreIndexItem]] = None @@ -3346,6 +3348,7 @@ LiteLLM_ManagementEndpoint_MetadataFields_Premium = [ "team_member_key_duration", "prompts", "logging", + "secret_manager_settings", "allowed_passthrough_routes", ] diff --git a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/ModelsAndEndpointsView.tsx b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/ModelsAndEndpointsView.tsx index ffb92d1897..4b71554ce2 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/ModelsAndEndpointsView.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/ModelsAndEndpointsView.tsx @@ -571,6 +571,7 @@ const ModelsAndEndpointsView: React.FC = ({ userModels={all_models_on_proxy} editTeam={false} onUpdate={handleRefreshClick} + premiumUser={premiumUser} /> ); diff --git a/ui/litellm-dashboard/src/app/(dashboard)/teams/TeamsView.tsx b/ui/litellm-dashboard/src/app/(dashboard)/teams/TeamsView.tsx index fa0ec06094..10616e9552 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/teams/TeamsView.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/teams/TeamsView.tsx @@ -280,6 +280,7 @@ const TeamsView: React.FC = ({ is_proxy_admin={userRole == "Admin"} userModels={userModels} editTeam={editTeam} + premiumUser={premiumUser} /> ) : ( diff --git a/ui/litellm-dashboard/src/app/(dashboard)/teams/components/modals/CreateTeamModal.tsx b/ui/litellm-dashboard/src/app/(dashboard)/teams/components/modals/CreateTeamModal.tsx index bf9cf92a99..df6d8d3ea8 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/teams/components/modals/CreateTeamModal.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/teams/components/modals/CreateTeamModal.tsx @@ -179,6 +179,20 @@ const CreateTeamModal = ({ formValues.metadata = JSON.stringify(metadata); } + if (formValues.secret_manager_settings) { + if (typeof formValues.secret_manager_settings === "string") { + if (formValues.secret_manager_settings.trim() === "") { + delete formValues.secret_manager_settings; + } else { + try { + formValues.secret_manager_settings = JSON.parse(formValues.secret_manager_settings); + } catch (e) { + throw new Error("Failed to parse secret manager settings: " + e); + } + } + } + } + // Transform allowed_vector_store_ids and allowed_mcp_servers_and_groups into object_permission if ( (formValues.allowed_vector_store_ids && formValues.allowed_vector_store_ids.length > 0) || @@ -438,6 +452,36 @@ const CreateTeamModal = ({ > + { + if (!value) { + return Promise.resolve(); + } + try { + JSON.parse(value); + return Promise.resolve(); + } catch (error) { + return Promise.reject(new Error("Please enter valid JSON")); + } + }, + }, + ]} + > + + diff --git a/ui/litellm-dashboard/src/components/OldTeams.test.tsx b/ui/litellm-dashboard/src/components/OldTeams.test.tsx index 996f17f14c..f3b4ec82d5 100644 --- a/ui/litellm-dashboard/src/components/OldTeams.test.tsx +++ b/ui/litellm-dashboard/src/components/OldTeams.test.tsx @@ -1,14 +1,17 @@ import { act, fireEvent, render, screen, waitFor } from "@testing-library/react"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { fetchAvailableModelsForTeamOrKey } from "./key_team_helpers/fetch_available_models_team_key"; -import { teamCreateCall } from "./networking"; +import { fetchMCPAccessGroups, getGuardrailsList, teamCreateCall } from "./networking"; import OldTeams from "./OldTeams"; +const mockTeamInfoView = vi.fn(); + vi.mock("./networking", () => ({ teamCreateCall: vi.fn(), teamDeleteCall: vi.fn(), fetchMCPAccessGroups: vi.fn(), v2TeamListCall: vi.fn(), + getGuardrailsList: vi.fn(), })); vi.mock("./common_components/fetch_teams", () => ({ @@ -46,9 +49,21 @@ vi.mock("./key_team_helpers/fetch_available_models_team_key", () => ({ }), })); +vi.mock("@/components/team/team_info", () => ({ + __esModule: true, + default: (props: any) => { + mockTeamInfoView(props); + return
; + }, +})); + describe("OldTeams - handleCreate organization handling", () => { beforeEach(() => { vi.clearAllMocks(); + mockTeamInfoView.mockClear(); + vi.mocked(fetchAvailableModelsForTeamOrKey).mockResolvedValue([]); + vi.mocked(fetchMCPAccessGroups).mockResolvedValue([]); + vi.mocked(getGuardrailsList).mockResolvedValue({ guardrails: [] }); }); it("should not include organization_id when it's an empty string", async () => { @@ -490,6 +505,56 @@ describe("OldTeams - helper functions", () => { }); }); +describe("OldTeams - premium props", () => { + beforeEach(() => { + mockTeamInfoView.mockClear(); + vi.mocked(fetchAvailableModelsForTeamOrKey).mockResolvedValue([]); + vi.mocked(fetchMCPAccessGroups).mockResolvedValue([]); + vi.mocked(getGuardrailsList).mockResolvedValue({ guardrails: [] }); + }); + + it("passes premiumUser flag to TeamInfoView", async () => { + render( + , + ); + + const truncatedTeamId = "team-123456789".slice(0, 7); + const teamButton = await screen.findByRole("button", { + name: new RegExp(`${truncatedTeamId}\\.\\.\\.`), + }); + act(() => { + fireEvent.click(teamButton); + }); + + await waitFor(() => expect(mockTeamInfoView).toHaveBeenCalled()); + + expect(mockTeamInfoView).toHaveBeenLastCalledWith(expect.objectContaining({ premiumUser: true })); + }); +}); + describe("OldTeams - Default Team Settings tab visibility", () => { beforeEach(() => { vi.clearAllMocks(); diff --git a/ui/litellm-dashboard/src/components/OldTeams.tsx b/ui/litellm-dashboard/src/components/OldTeams.tsx index 77d106c4ed..562d75c327 100644 --- a/ui/litellm-dashboard/src/components/OldTeams.tsx +++ b/ui/litellm-dashboard/src/components/OldTeams.tsx @@ -407,6 +407,20 @@ const Teams: React.FC = ({ formValues.metadata = JSON.stringify(metadata); } + if (formValues.secret_manager_settings) { + if (typeof formValues.secret_manager_settings === "string") { + if (formValues.secret_manager_settings.trim() === "") { + delete formValues.secret_manager_settings; + } else { + try { + formValues.secret_manager_settings = JSON.parse(formValues.secret_manager_settings); + } catch (e) { + throw new Error("Failed to parse secret manager settings: " + e); + } + } + } + } + // Transform allowed_vector_store_ids and allowed_mcp_servers_and_groups into object_permission if ( (formValues.allowed_vector_store_ids && formValues.allowed_vector_store_ids.length > 0) || @@ -619,6 +633,7 @@ const Teams: React.FC = ({ is_proxy_admin={userRole == "Admin"} userModels={userModels} editTeam={editTeam} + premiumUser={premiumUser} /> ) : ( @@ -1246,6 +1261,36 @@ const Teams: React.FC = ({ > + { + if (!value) { + return Promise.resolve(); + } + try { + JSON.parse(value); + return Promise.resolve(); + } catch (error) { + return Promise.reject(new Error("Please enter valid JSON")); + } + }, + }, + ]} + > + + diff --git a/ui/litellm-dashboard/src/components/team/team_info.test.tsx b/ui/litellm-dashboard/src/components/team/team_info.test.tsx index 3a87b42d25..654bbe7a02 100644 --- a/ui/litellm-dashboard/src/components/team/team_info.test.tsx +++ b/ui/litellm-dashboard/src/components/team/team_info.test.tsx @@ -274,4 +274,138 @@ describe("TeamInfoView", () => { }); }); }, 10000); + + it("should disable secret manager settings for non-premium users", async () => { + const teamResponse = { + team_id: "123", + team_info: { + team_alias: "Test Team", + team_id: "123", + organization_id: null, + admins: ["admin@test.com"], + members: [], + members_with_roles: [], + metadata: { + secret_manager_settings: { provider: "aws", secret_id: "abc" }, + }, + tpm_limit: null, + rpm_limit: null, + max_budget: null, + budget_duration: null, + models: ["gpt-4"], + blocked: false, + spend: 0, + max_parallel_requests: null, + budget_reset_at: null, + model_id: null, + litellm_model_table: null, + created_at: "2024-01-01T00:00:00Z", + team_member_budget_table: null, + }, + keys: [], + team_memberships: [], + }; + + vi.mocked(networking.teamInfoCall).mockResolvedValue(teamResponse as any); + vi.mocked(networking.getGuardrailsList).mockResolvedValue({ guardrails: [] }); + vi.mocked(networking.fetchMCPAccessGroups).mockResolvedValue([]); + + render( + {}} + onClose={() => {}} + accessToken="123" + is_team_admin={true} + is_proxy_admin={true} + userModels={["gpt-4"]} + editTeam={false} + premiumUser={false} + />, + ); + + const settingsTab = await screen.findByRole("tab", { name: "Settings" }); + act(() => fireEvent.click(settingsTab)); + + const editButton = await screen.findByRole("button", { name: "Edit Settings" }); + act(() => fireEvent.click(editButton)); + + const secretField = await screen.findByPlaceholderText('{"provider": "aws", "secret_id": "example"}'); + expect(secretField).toBeDisabled(); + expect(secretField).toHaveValue(JSON.stringify(teamResponse.team_info.metadata.secret_manager_settings, null, 2)); + }, 10000); + + it("should allow premium users to update secret manager settings", async () => { + const teamResponse = { + team_id: "123", + team_info: { + team_alias: "Test Team", + team_id: "123", + organization_id: null, + admins: ["admin@test.com"], + members: [], + members_with_roles: [], + metadata: { + secret_manager_settings: { provider: "aws", secret_id: "abc" }, + }, + tpm_limit: null, + rpm_limit: null, + max_budget: null, + budget_duration: null, + models: ["gpt-4"], + blocked: false, + spend: 0, + max_parallel_requests: null, + budget_reset_at: null, + model_id: null, + litellm_model_table: null, + created_at: "2024-01-01T00:00:00Z", + team_member_budget_table: null, + }, + keys: [], + team_memberships: [], + }; + + vi.mocked(networking.teamInfoCall).mockResolvedValue(teamResponse as any); + vi.mocked(networking.getGuardrailsList).mockResolvedValue({ guardrails: [] }); + vi.mocked(networking.fetchMCPAccessGroups).mockResolvedValue([]); + vi.mocked(networking.teamUpdateCall).mockResolvedValue({ data: teamResponse.team_info, team_id: "123" } as any); + + render( + {}} + onClose={() => {}} + accessToken="123" + is_team_admin={true} + is_proxy_admin={true} + userModels={["gpt-4"]} + editTeam={false} + premiumUser={true} + />, + ); + + const settingsTab = await screen.findByRole("tab", { name: "Settings" }); + act(() => fireEvent.click(settingsTab)); + + const editButton = await screen.findByRole("button", { name: "Edit Settings" }); + act(() => fireEvent.click(editButton)); + + const secretField = await screen.findByPlaceholderText('{"provider": "aws", "secret_id": "example"}'); + expect(secretField).not.toBeDisabled(); + + act(() => { + fireEvent.change(secretField, { target: { value: '{"provider":"azure","secret_id":"xyz"}' } }); + }); + + const saveButton = await screen.findByRole("button", { name: "Save Changes" }); + act(() => fireEvent.click(saveButton)); + + await waitFor(() => { + expect(networking.teamUpdateCall).toHaveBeenCalled(); + }); + + const payload = vi.mocked(networking.teamUpdateCall).mock.calls[0][1]; + expect(payload.metadata.secret_manager_settings).toEqual({ provider: "azure", secret_id: "xyz" }); + }, 10000); }); diff --git a/ui/litellm-dashboard/src/components/team/team_info.tsx b/ui/litellm-dashboard/src/components/team/team_info.tsx index f2ca96c9d6..83b5c1d475 100644 --- a/ui/litellm-dashboard/src/components/team/team_info.tsx +++ b/ui/litellm-dashboard/src/components/team/team_info.tsx @@ -375,6 +375,19 @@ const TeamInfoView: React.FC = ({ return; } + let secretManagerSettings: Record | undefined; + if (typeof values.secret_manager_settings === "string") { + const trimmedSecretConfig = values.secret_manager_settings.trim(); + if (trimmedSecretConfig.length > 0) { + try { + secretManagerSettings = JSON.parse(values.secret_manager_settings); + } catch (e) { + NotificationsManager.fromBackend("Invalid JSON in secret manager settings"); + return; + } + } + } + const sanitizeNumeric = (v: any) => { if (v === null || v === undefined) return null; if (typeof v === "string" && v.trim() === "") return null; @@ -394,6 +407,7 @@ const TeamInfoView: React.FC = ({ ...parsedMetadata, guardrails: values.guardrails || [], logging: values.logging_settings || [], + ...(secretManagerSettings !== undefined ? { secret_manager_settings: secretManagerSettings } : {}), }, organization_id: values.organization_id, }; @@ -634,9 +648,16 @@ const TeamInfoView: React.FC = ({ guardrails: info.metadata?.guardrails || [], disable_global_guardrails: info.metadata?.disable_global_guardrails || false, metadata: info.metadata - ? JSON.stringify((({ logging, ...rest }) => rest)(info.metadata), null, 2) + ? JSON.stringify( + (({ logging, secret_manager_settings, ...rest }) => rest)(info.metadata), + null, + 2, + ) : "", logging_settings: info.metadata?.logging || [], + secret_manager_settings: info.metadata?.secret_manager_settings + ? JSON.stringify(info.metadata.secret_manager_settings, null, 2) + : "", organization_id: info.organization_id, vector_stores: info.object_permission?.vector_stores || [], mcp_servers: info.object_permission?.mcp_servers || [], @@ -874,6 +895,37 @@ const TeamInfoView: React.FC = ({ /> + { + if (!value) { + return Promise.resolve(); + } + try { + JSON.parse(value); + return Promise.resolve(); + } catch (error) { + return Promise.reject(new Error("Please enter valid JSON")); + } + }, + }, + ]} + > + + + @@ -971,6 +1023,15 @@ const TeamInfoView: React.FC = ({ variant="inline" className="pt-4 border-t border-gray-200" /> + + {info.metadata?.secret_manager_settings && ( +
+ Secret Manager Settings +
+                        {JSON.stringify(info.metadata.secret_manager_settings, null, 2)}
+                      
+
+ )}
)} From 1a219659986ad78d1968ad7c9b94cad1c71b6550 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Thu, 18 Dec 2025 06:32:50 +0900 Subject: [PATCH 2/2] fix: ui test --- ui/litellm-dashboard/src/components/team/team_info.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/litellm-dashboard/src/components/team/team_info.test.tsx b/ui/litellm-dashboard/src/components/team/team_info.test.tsx index 654bbe7a02..c8753660e0 100644 --- a/ui/litellm-dashboard/src/components/team/team_info.test.tsx +++ b/ui/litellm-dashboard/src/components/team/team_info.test.tsx @@ -330,7 +330,7 @@ describe("TeamInfoView", () => { const editButton = await screen.findByRole("button", { name: "Edit Settings" }); act(() => fireEvent.click(editButton)); - const secretField = await screen.findByPlaceholderText('{"provider": "aws", "secret_id": "example"}'); + const secretField = await screen.findByPlaceholderText('{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}'); expect(secretField).toBeDisabled(); expect(secretField).toHaveValue(JSON.stringify(teamResponse.team_info.metadata.secret_manager_settings, null, 2)); }, 10000); @@ -391,7 +391,7 @@ describe("TeamInfoView", () => { const editButton = await screen.findByRole("button", { name: "Edit Settings" }); act(() => fireEvent.click(editButton)); - const secretField = await screen.findByPlaceholderText('{"provider": "aws", "secret_id": "example"}'); + const secretField = await screen.findByPlaceholderText('{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}'); expect(secretField).not.toBeDisabled(); act(() => {