From 22c90f7c838dc3b8d45cef1e7854fc6f07159538 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sun, 23 Jun 2024 19:09:56 +0200
Subject: [PATCH] update project

---
 README.md                                     |   2 +-
 mkp/curl-0.2.0-20240623.mkp                   | Bin 0 -> 26517 bytes
 source/agent_based/curl.py                    |  63 +++++++++---------
 source/gui/metrics/curl.py                    |   9 +--
 .../gui/wato/check_parameters/curl_bakery.py  |  54 ++++++++-------
 .../cmk/base/cee/plugins/bakery/curl.py       |  10 ++-
 source/packages/curl                          |   8 +--
 7 files changed, 70 insertions(+), 76 deletions(-)
 create mode 100644 mkp/curl-0.2.0-20240623.mkp

diff --git a/README.md b/README.md
index e39630f..187781c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/curl-0.2.1-20231021.mkp "curl-0.2.1-20231021.mkp"
+[PACKAGE]: ../../raw/master/mkp/curl-0.2.0-20240623.mkp "curl-0.2.0-20240623.mkp"
 [EXECUTABLE]: ../../raw/master/mkp/curl_executable-20220410.v7.82.0.mkp "curl_executable-20220410.v7.82.0.mkp"
 # cURL agent plugin for Linux and Windows
 
diff --git a/mkp/curl-0.2.0-20240623.mkp b/mkp/curl-0.2.0-20240623.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..6cf92275bc1e6392d049c679e4302046d87773a5
GIT binary patch
literal 26517
zcmaHyQ*bU!u(e~`wy|R;JGO1xwr$(CZD+@}ZQIHFf9KqvziO_!=BlfD)vR965Jp1*
zt*UvLfdFoLe}s=XlNfpV&+6yH@;D~+P?GK!_&N*UG_vvzGVS&Q@;3PPCyY@beaPHa
z-3m0rzP9$N7Q@N?{~^qGyJOzSp>8Qj(xg^Nl`2g*j_tbF=Wr*qad2EPl)Uf7?yjD?
z@66o9-psC!irM4t+S~W<{KmQVeL+|fgrp&=`n~nD@U7N(dK`VU{;kg4Y2k0x<m<_7
z30vB7rtNt?Js5ein-kab;Ce2L)oLEHBIUvQoTYQ&#gvBc&+#!@ZM_MzVb9d(xee8>
zZqTSI?fbs&lso@`BLcIz_EyH&UAHm&8k{Bwo6Vi+Ve-B|{hR%m^BS?^A&AAQ3B$Su
zTiG*y)v-p`@WZoZ4%oD6(R?t=H6*Q|orYddMHgtzo1#07v5D5@Yv{$@gBBWd+OUr!
z{N<}<BDIfzg44PC9c{a{Nq69E$~=i%5A?oi%&)yjy@R*kGR1+oSx}rA4d|7R;{ixH
z_&aYWx)Ul?pUs+#(CuXpdyh!LbR2BwGh(e$r{!|i%?Qn9-v@R;4{Ofr>yPo?4A`X)
z=l!e@%nDyw85wIk7~r{cX2t_0&YvT7Gc|{`&!@64HROWa>}JZW^EM#gkb2w9Q2HbU
zhZD7w+njp4BLtQ9iL9hq+(CM?KM<5fsEiEHJCDu2Y_})$CH@Kp<KS_$)E|)ENy2bW
z_q}~!5@l;|`BN>#2{W{O$q<FFoo&8CLGYTOZovrciWi&#X}`Apv@PA<4@w2L@jT^1
zU;PYt<?2C>rtWzE+GhW(WH%Gf(;K;b3c#a-CPI`%u_3V5$l05#g0Yk248{OmW&)Qv
z6o?KtjE#`@c)K5J76S(euoFW|Ii$bFa=`Yso$1%>^BjzHX%X(O4{u%Ea8IWup0x+0
z++cr)I1-bP6&RZvK?1>dV9W*q&&YcGrPQ*UBd|)B?ZxHQ7U1HP0~K80VB04it=626
zP4CO&QE{;f?_){%Ah4PNtBO#moj>Zunx@+e5(-Exoq_`cCjVk}tn&yb2ypDiy$YCd
z6&d-QZ(B1>_pns`IzcU(3x$a=mG%h>@Zw30Try`W$tYa9ZRMdSDw~;gvlj+z=5gN+
zv;)}PeQ=_+>U$S%bzEb4gT~K!TH3)wmPyQn9b#*qfFx}h-G$AE25nI~$|v2cpARR1
zf9iko1J8bsp8I#j?rdcM-rc>Oi-5k^Uv+W<g&TELx`NFblHmdQ0fv1^<?qEu{Q*E;
z;R3zN-k<HoC{1d5xC4fI{Z!>L5B)Ti<g~TOKig*(JkTqrL%v~)N_xVb5=-KLV5rCh
zx(|WRS5r(DD9MWx+E7WPrpl*y#%V`#(*)BEQVf+%_ND1PT0Kfbmt>a;3Z|XWsRAS}
zm0JNCD=p<#fF7EbkW15Kf9QKt8U3I`M_1^l;HZ#HV;mHd*_AM-e(@|sHK0v|*0PQ!
z<z62zE$G)E$>I=pm?3)xz@FWqz3{KQAn<wJF`!+-Xtt;CCqCZ&?dDYb*Zry%3t)?N
zlZOM?9mR<8cR#w>vgi7Z@f8Q*queXH1IR9I60V*F_WPZ5T(x<Rfo0d$G_DeA6Um4d
zguQI=;<fJ{WKZJwd>q5sasV{~mJTpqlW#Wr*bK*>sv}ua_SSXdn{JZ^u9|HGAu|=?
zO={+t!SRkifViPffg5+MUA<~=)k0|$xQQ+)Dg;s%K%j-d8s~hzcHM{OPrV3R0t1iN
z9-p~0%rAEYb4wy)#)PWLV<BK<1@8o@r!LhoTC53XPl?&>gSbudRb!P_{<>j%O`Cpo
zrR>`dNVfvNTu$H=N}bJ?gU)a000q#n@CKrQL_zUE%<kO;F5`@lx_Fp;-7|u=%J|BJ
z(i0c<EtL3$y$)mwYFex<+bsgYha{2aiD<jvy?lZYM7{(lSOyMxnaiHK6`XCKHy^~F
z=oPy`M_C6%2&EEQL>zRbEL-#r@IY_=MomGVD<B;T5fkZRP%yJ&5y1<j62wTdy;*b?
z1=zH3Yokao=Fjl*mq0+YogmsPOq@U&gEZ(l@YEV`0+;@K6*j+yOB8F|kpMR<)g{8S
znLrBzOSRJoG%(b_j1^b2xZpzn48uT1vAn=IZ{esoyA@Q$;{aYnQcc2}sC;n+3ettF
zRyf;QdsWB6C34;i%{jOio5GAGP;d3!dxBiw6+DN}vBt!(Sth~xUarSGKt5!Lc63^8
z@l{x^E!3?C-YAByo7=Z99(;!r5*ERQX071R*r&D{aHXmfzs29DWGn`mU$L!?B2Zxp
zbu4yU35L-3M+hX{DWa)!vRhz1!xyn5UbW}M=sN-0`$Ug)A^cLUzt#NnXToQ>&{tzs
zN1JuU5Y4t?uN1p#pzmh52M}f8i>OvNn?e;524C1bxG{M4GnhUc+^j6L5A<9Y2*!rB
zJH4YF$Wqdx2D$GT6Bs0mM?P=>sDFv%XrZ_&KqGDLzz<-D!%iXDwrl4?8sV00pl-Nt
z3}%VZLbJ%RB^BdwiiwE5%$N`WaxiEEtYpmwNP(9Z3zDTa$xpwG5&Da8djWp=czL5f
ztDqtDZ>r-{0x@{$y#FcNUUoV{{3DwGBFZ3YcN#?;AOqDPBb|;@OnXG8|8nDe(<L#R
zT$P-Nz$YZ4E&|G)qtZ{NWx~z`_oho&%9@EX&l9xvoq`{2(<f>_z5;J5`h%7Rgzr_z
zHZfNo9Vs(?nM7`!;xdt*EE+i+!`qcGOlQdzvM&vo4kh-h?w&14OcG2V!mgbcaaKbR
z)}uwk#m<kh9O!%)>1(bu-co&dfc_owPmS7_95+6(#~Xp+SmK+`iLk%vLX>?S#1504
zKMzVUAEb`>RMU3IZtHVf_5-Eox#_mU6#yZ*b|flXwZt_>OwB>fO7PJ?3Pyzse0WEE
zG%apY2{mK$f-l#JiGWl=eV4cMBT51PhL;dOXP}Zfgyte-gX+YdiR<`p4o*ZM2UvI_
zbLV-eV5;RF7M71A@P1eogZ3&=-eH9ctm=X{_dAP$O3>$3*9~glDlVVNt?Sg}Jz6o)
z1qH8))X1Wcd1Zp`-q=9EC<s-Tc5ZF@Z(Lo;+g5$Y#8!m|y0YOyItZ7WVB9x5gjlEC
zxNR=seC1h7%CtaaG5T{FZ796^hq=AB1a5B{XsX))OU~O~I762qh>>{^=d0g8a`nWx
zAR<OC8ftCBTDq@eP@)Xl)gY{OZ3M&nl2`P7VKCg+Uj>tWYm!GjE4{pTIuwfYi8Cn%
z9oxb6IU|Pm`Y{8vse&?*BNV)g)0eNBH_^0cmO8ZWdgt)H(3_p9t~<ESR}ZnFqmIfq
z6v54OWbEpK?zO%x0_r%0b;lhDHNcbumM3rUHE0;w%GN<r+|x`=Rgj2w7QUu$7#xF$
ze1za3bS==KZX4@uK=K7=??Qv27z0Z2lR(9%Y(?CN4wm#VxuRc;!orRCAuwGxMMB&{
z0`D*w%mpRf2gk&l{`Ijr0p>wCP^k1Hw5+SaWqVPz5SwfQQ|;p87Ke2(M#nIJc@>HU
z=AH|v{X%3Fa3^+2yCA9@Z0E9vIsT>vas)DgVd)ccn$;P~=>7(|Spsn|zopW{#*lT~
zs5ofIg^&KT26nKIT|g@$^hXg%gid2?-Ln}ZoaiOd(T`Y-<^aBREr_FPw=l_V_zRC_
z`yJ4li_c=s*%AyCHs^}w>%jSqp6$^waZqWlNc8-^3M~O;&Y7?A_r?4cG19DK_TU4N
zRcb+EPup(%>uhWFzHH_%sa6kD77-&Qosj68Wo}GA9X!^;{&+LErLSv{!lsZ%vFV+|
zPh}TJFtvz>ZS$U;L!_tupbYTA9A(;NL)Z(gwa3)0eSs<w0-fEXfCI1#J|(EkDAzdM
z4t+HQm*wfx$sZJ+*bwmo$Kh#b;l1o}ZVLdk80_kJ0N=`eoy9vJ{NuyzMJ3*0Z^{DM
zz;muTg_tN>ab^V(Y5O~4x$o$++)lb6!r$Z_u%~^Of2K6kb|xTIld&G=ekZZEY1h;B
zk+U{93EsW!Ls+T76ywW>Un!?Lij3`G)5K>l9mHdl&Q3|BP+1F*>tJrOJegwjFf>k)
z`E#>zYu-7$n>Oj|t0Q?Ri80p+GCU|ir#FFBCbEub6sw>LY?vtbfPw7IH%{of1-J{i
z(AE)Azr)Thd1d&qVPW`#xa-s+sg|sbo}U~IK|k=0HO?|@f+1dLm8CtYkcwYOcDVi{
zt>54{bS}+*+%N`V90an)iRvICx2`dGpg1Ac-|Re2lpWELHX^s9aa`ySFnMx{{A5{V
z>2Oy`Ow_Z{0i3>h*ZH{(UaVU<R!3Tl5Y!4M*I!$Bo^3b`zf@BW=peODA%d+}_Dw`B
zbPEH*XFyyzUJ3m>l7DF}vbNMx2hhxT`K!dD*!1wTLeL5$+&3FgpE{co-Pi@gMYNC6
z8;AsjguV)82nzk!n+?MX+*YiJnaQk`cLun=v+qRCBV-%AKgAxyI@qvnI>5v2=O{CE
z>}i>z%FV?ogUFIdpuDBAdFMIDm)A?!Q5HyYKH#W<K5MK7G~Ge2WH-+B>GvK^BY-B$
z%YtbFTKq=Jr_spRQQqs`Lsxaq(Hw0mcSp`4puZ&8<(h;SQZxCEF{piZhAg46@iPcH
z56K`pRbG6oGWWeITDVO#RW@@{EXTwt&83PA(Vt1g7Os&RqRcF250G;M7paCdh=t=q
z=Z_M_jYzT<pMdm{Xv0D+p)|gOZPYlJGRC>&U*+dKuI|-~Tt#9ZONqD)ePB-uDwUc|
zZ;)Zwk8>U)k0J(3Cqx*kKupk6AO!QyO^BoItEeM;v{U{%EHKB=q3E?81EB_=3{N~s
zVo7wDm*=OjE^h|Z2cpLX;a;VQR0xvcN+kP3B&Fa<Kd<bU6p(V>;@Qr^ot}&|TK+C3
z31TSUNAMB)Y_2iJAJdm9mPifNIHH@|HXCo{bCW#;^Ghm7^ymM*rrCh>!G(z2-Ji2K
z{P*=7Oh?6zHa(Xug6o`a%@fsqu$+WI-jmcgZR{Wj4xxEbCosGM%Id@{NDj8&F+NBU
zmyuh@fvhJm9#uzHS-nadAR%tGjh@Y+6_{G!h_zAs&%s@~)0T=+8)bSO$Lf$I>ydG*
z-jarkCcP12p6iAp?kqFhn&3^)Rt~(PWf20OvCtc=)HdK@rHJ%<yrzEE<*(@~ngb^N
z+3v#R(<=C7qBK`5xu;bunG4)LcSk*{gKqY!hFU=K5=vK^4uTiRf{|tg6Ov}o8Ol9&
zdJaIcOD-GPK5wpM5mYx%8+Ag7J+bQVlqfCiO(d)rWW7f1Ntdsq!(iJ_w3a}!{9Xo#
zo|D%n%h$Id>^Xr)FhA%DhgLelPZ7}z7#Xz-9#^^oYG`A?NtySK$O{$}9vIWj^neU}
zPU20n54+~bYM2S~?=T#rLHAmP8^yR6>_#FZU4c<5ozNxmM|UN&_5uxZih2@O0N&=1
z0CvrzZM08Egu8+ryzSW^77l7NCF)cdi1cF|In`Ifm{f+QuZWTg%-L&-EQ&3vjyS`N
zn1{q12rsVi&44@jiMzO}v*WJz>U0GqgKS*o0_ojWY1|konT<btL+YB|tipFSk))h6
z>B;h!M-YkF`D`VwMVUAlOu|hL6*k!=(h|Dx;Ha;OH5E*L?Xp9HaIl)93iK#7e+=HA
zc8LL!v~@x@_T@OvAb(U}BMDS?+k=dNpZ?yUvs=y%b_7wyKhuj|`=HB|(7YdMtbkp4
zSI7p6NxesO%)2P2=Zb2DOn!jIR;7?z$tLH0*-|dni^(}mxwAGi9{~{pef2_o7T-Z5
z{I-=hwzBAI8bA`Nl)-OcTL&dQ1ZKm5sEwh(r@}+NBi-0C_CuF8-kET80pB9_z^1>|
zx!kda-`}{I{Uz1_A%9iLY~P$tp0uQLfffYR#BEjiC#7NTb@o9A^NY@SQ&tFK8~EVf
z11S@0sT85lw`5l=a>fveo!PO5eiRMif|L^Z<2n`t+po+m>J-o^;RibeXLIQ%SL%tp
zBB+*_-y<%Dz7~Y~42pq)zZ__Vzoz}0)We|Izz1^{VY)RR5j)r^6M(FoY<Qf~xau8N
z{J91@Mh-CXbaL~WewDlFFU+1uEpzSLlAH3RsiA;8cZl*>g6SbYOu>-03mP~@O3t)c
z_kWY4nX`aUkAj~hsJp=mI@v+YQDB2ja)rztipnyArjg+~XM(Rm&sgQXd_=@2&M@2d
zyjb;%s0i{3PqQ5RCu*J|ntE&1!}`Z|0n@Y&=^hl}-V*AW7kvcGg(`-q%v2a-eP5-+
z+b5wabOC3JI5PV0oDv|pl*7|fHsQQkPG2$`>c=oTW+!@@=?d5MhH>b<h+1^6VfZ`X
z`Rz_0;q^ICeG0)MHo$<-;6*rkRY|>~%R%r&=L4hWLIfJ*7_5;ciLJ98sdhwUE>?71
zxm0QJrgg9tA7Mz6QD7~H`&S@aeZG8W>51r>0oON({%Kxr9JRNJg2jD57MRSF`KIAX
z+AH2Q$rpjCo~R0Au^j(%NzA-dv$wF1%lKpWaTtg#!izpbzpx3q!umP3*rH1E<^%4y
zS=T?s)7lrr`Bxb5NDX2quQa%{OO?i;25LsQA6!$iMXLbIQGrn(cE)kF!FX91bUw-0
zI7Ymm?50)L{$4)2j^jZ373JE#5VY&NcGp81Px!iY)_m+JNdqIyR6JD0b|yyqC%fkL
z2mQ-$qz}*u_&NK1E5H8gZ@L2%o3U38YKbYIzrCdRao|LE)pCR7s`X<c5);1cNP0lg
zs9+0WYoKcJgl+SQ6?LuAGnODk)(N#f)S!HJgABOy;}Zr!P*JECAvj;QF1(+`UFOKN
zeWw2_h&D}Hq!t`HfGH60ukg~8Bd#5{iH^p-Jss)DR&Gp;<`JLx<meK;iqBwZ4=Y`%
z>Jk0;&u7vV#ketMa~k%Ju4>vciHbKsIQyNdd%v_a@Yd^LoXEp^ceY2vNCBH5)B>N-
z31)hCSBzi;%W}c5r}9QAfx(+jV>Xp+Kc@qQpppKIdA+{c{&5v3uPHfyBrF=OlLRPZ
zDb83bGq~*vVusj+&#|32bj&X(KXp(kQI7G|X`44_a5{*;syk_0G&P53()*!=0Gz#C
z-Ur2=_<L8xgbO6bEwBbRe<vmuBxQ3JlVvS~g|L=eoj6z9tPkUR&2^n~))YL4OW|e$
z6L>6!8Pq7h?oxQbp};C-Vkyqs^H>h=1U-dPFE18SM7lN&3d*bzAX9=DJU)Nk_6V)v
zxiAl?<&t_j*)oD08DzM_3ExIWlP}KLe&<7Rx`^(No#pxVLYAO;UH&lS=P7|z%2}H6
zxYSbSHl>l!@kP?G!VGi7is%XITe_s|dRb1(2{Kf~H()&mC#({c>?GfL^HTcl6r!WD
zNh#=qLa>8VoxxZwCftBmg2IqHMa!Js-zYVq9&)^sY`6nc*pr+`dYg%&3%FmkHp`a>
z2M@=Kx5fx@M+eJg)3hPn@`9u;F82^Pbp`>2@($+9Z!oUPP_fvTxs%TFl!X5^uOq!U
zp~9jAtWz>b>kzXpTs$V>JsKe-{zwU?@N>SJkmcfEc_0}<HnEC;b~KZ!#^q-n`iLc;
zu!%aa$|Qn-7FFVhqK9}_vh3+!hp&h1+a4obxfmIT<1t_Lu#M9sm2(>CT=;OhSeLs6
zWLG4zA>0qj+Zb!31P`3-;M`E%-M{9oF@F9tMfl3lmnU#x;AA}t*^SvgwX}OIT7&}I
zuSn}4^i&~cyLs%P@F^5;fGa?OCa2RRt1N#gVw&ToI`1&#Q(OPN4C(0#6A{7q-4gGo
zLW`e}j`J>$s}GzK)|Cfo4T8(IG1A>Y9r^7P^2}x2BBSiqDz5BZ>#Y-oXtg&!Wkryf
zs9A`{QfayR$hZ>uM%!b65414|%|MicO}?7HC;|I)%u+YXiE+Z|!b7me!E_!qigOGr
zk1IyPVD8AX8S8j0{%2PZ&J+K987UYFWLECQ*0{ZO>HY9I=6dC;6y&77;`5FdkOiU2
z8@_6yngg*isvOH_OhK1*P0`4QLd^%9`|xK4tdaW&EEN#=?Zx&z$^yhEC6?qFQ0cZY
zXJ@L!oHZloqrS7hfRQqW>q5C2R8HY7<1vC_Iifd2g;#fXNOWEu@g9L;=N8kdWSWzX
z6n;bGE}NDwU!Dd~sL(g*LKW*u;S@idqAeU}&8C`^WIQ5V0F=jz+|WcjCgbn01Bd1y
zt4=1;bIIk1Ac)Lodz3l>%?wIg=ZdvwieKf4wv%t+4_{6x7gi`K8rCPvh0j^Fk%ggg
zSu-XXfyRl&XB3_=0dx6|!&>oyC^2S=uqbCohT<v+C_Nd=P;tv&U{*^<yAPu^eJ;>V
z%N-Hr$L4I$AV2w>_Q%wBd=3uNd(c2VT|bzM%`r9pK`?L}l)F8I9HXv9X~t^CPmb?;
z79`0X8<&5w#L+R{_4N%VUX?gz)-tCaRjg?~agA;=N*F#q!|6mQniBc^Z@_HoI32XD
zQ%cP*bExoFs)lRKRBP0J1e{s^(}jtIdn2>JG9rx<p}<D62rTbl9A!%DPPsg&^C65y
z^OZ4;t-LB9a%2{vvTB8o>p%G?7cW`X*(w4jT?H5-lBSIQU?0>Y@9z)oixtTnK1JWv
zaJzG#nm*U<8#VUqPKvFjqqdG$n20#JtAz7<F3P+ec^`B?pl%r(7FeUeCrGqn&fg#D
z5QGHFQ66Lgp&-)M32hYog#{of_4cC}4WQ&mEV%QjR+^RU61;R)qvOsDR)$*ENIw%8
zjy6ywMS>NKN*<XtuM!CmUKJn{#-i(CgS{u+vM;R9xr|;U2AdkuZwpvg0!5lcyF!D)
z^3Aka!cI;8UOp}!UHtE!{%^y-l0K1D+G*gJ5$PQ=x?q&-{C_nC*FWh<P|4b>lVWFg
zVPbER&9qTsXEa;?g?BfqCAS&ZTac>RPX30kmsI#Z=Tcnt83W934^Qne<858`UOCvO
zb@!oOEQj)Om0ONRC(@GM_lUPED&VQBskKP&BC3+|KO(1rKfSK+_iR0>Sfo1%_9wz~
zS^V=r;yB#?+gjTAm*>eAFzIP{{41Cv2_9+HL@Q21+;xz9faOXGafZ$8I@<>Rqie2M
zrl(>2m+hVB;#@(?eX*S`I(0o7Jn~{n?a$&$Xx|^LD41>=7nU^f>v)b*ehp^vQ9oa>
zluCvc<0KGbr|kiy$t%)K<u@;ZS{|nziBnmdJE6e;RP$Q>fKlQOrSw@=S4Z)l{`9#=
zlE*5U98-nbHKJBGq<`w&&q0b{v*^V0z0WR%vJxBmv=WNhdgnf-H8=!cpZ~Z`;0f1~
z45xP5N?<IQs+dX=jwCkTSuK!G2vw_-5rycSFQtx@?p6HN&bxUDnem@8GPptzF|bCR
zJL=u<MlUL35+24Lf4@75Oq07Qc*1N26$ID|i8K;9)rC%R(Ub`_0aeQStQ?;5o?6yI
zf2Jo?KF_l~%S@GuoDABO@AMI*#%+T4BrUSwpD++ipBIIG=}(#hNkC<q*|+6ohvlUP
zo9GM<;(h_Ph!Jso1Out;yjz!-_`2BxFf$#k7bh7wxz`^UVwmKTfPrdqAWPyDG%}B|
zmUL0U%2+yRac@PmFk}x&;6u4oY1YU?W@^UAi(>E^(q<3OZVb9)5ae6zIrc4@EJ8a}
z^le?^tD3C~7bT7jqb<HtY^{;yce?Riq^&~#C6;qM*m9NGqWmWU-?~yWIVZNy+`Nr_
zaiI|rIW(cFV~msQKZ+_5TV`n&hME}6BS&uBhzq3d#IkjY2I=SElvc_8Y?*?~VkQjW
z!v4xgP#l9IL`7$zK&$7RDZ5Ohi<lS59(q#VhH@R%;qwU76H-X;mbR*Td^pK`)eVgO
z6GNAc3Wkmy>Zx&gPto-c4n^FYq&nEZBODv!NMpBkbnY&9F+<rJS5P@&SRiR}nRF8M
zx1bG1@&Jifv~7>Kq<~_o_HXj`^r?wIdeO}SC1sO2tGzCUN^QzM_OTu{z}6%wTCIs0
zH7Vjx%dr-KUsJ#{-M_F`tu$~)4CTkBJ_w=}6Y~~^PVRr-Q}x1y4SnV*+(eQorknWs
zh~`G}rBsVfH#zk|Y`J<zSkh0qKJ+Srx>x_1@YRQ!Vpg4#0-DEv-xw+66!#oN89RH+
zSv4k8m7&YeQE&{@Abc?Wl7Da_f}^Y5&cWTs(#v1nNbY=KBq{|Wd044L${-|lA4U7>
zk5OpUcRKFAdY_jgzm-&F%c`pgXp~JOb0lBp4jua33dd%P-HsVzTVFNtWiezi0P08I
zR>`E~&3W`It}S!yD4L5o@}D);CsS@i7tK#oU;`!csnCD6FzL~Ch7d<W(z<hV(%4)9
z%=E@B=1>*4ti+I4=U8#spr6+d)W4c_|CahJr`}rTK8tv7y0tXQeOc4zExF#gIbZ*2
z<d*nEV_;Jgo;(u2PUv8j_@Y(WY*H2umHQ@rdVXhD`jq?0)-##~MECu@SlY~&zaBt<
z#L)*vXzAiHPgS%0Kh8xy-@{j*{>`Pi)W;jYy{po#|EPNPSAM@>)Xw9t)e(UG>G$mR
z)T|u08{k<C>aX_3?;qUq3fcAbF$rU*_cnT}7rqZT)jkfN0hJOV;{4gTN{KuKbC^_l
zyS=ZCxS;Qs${h1y`r|M<CDl@GUEFbv_Lz4|x#Dd9>gp~Uv%c14zQ=FGSx)I$4(b&#
zxaIFHTzll`Zj8ycsW0r3h+P=~z}gBJ!t-eje^MCjK_|At)3+Z|b78PEILfn>AZE2_
z*6*H4{6Zo3zGwF%Wa`ott4&ZR1x5If)JGkF_}1Umj812jp&Gr<fE+DSIz(y!diGMM
zf*dsA%K=+3Rq{BM>+aHswXSwG|57JFP^E<`gvsya+5-6SzB@Pwfsy%AoR^uLKkc8t
zU+<satAw`^Gpv?^bZFw~)=Pt8PS>~4ww<~R?qtvP!@b5K@C%7@*U;mq4Pm<f2t{GX
z)st)V(f6*#>Bsj7szaXX%*3=`=XnzHPLffEb{W9fXA^9C;8iINLXgn7Rb9Dp>ZGHV
zX??idn?DfLdttgmF0}(Mn6{EMLTTR8`Saz>RsqQm@5{BWpsXzdKVHP)c6Eu$VPPQ&
zkR){c6^rA^nHGl?ub#9XIwkyWAw?e3&-3BhuJq&O<l;l^jO)w6_vhNG92Iap#PIA$
zmLrMpuunbX+TrI5jf1}*N)VB2Hl+M2*Z(V+8i0Z><ayme+IPiJzEK>*8mb8XX~bSp
zFJaVi#h^EggmOd#Nx1D&e&@mIghU&0jz1n@Yt1~=?lz>Cf3~<F^*Nr?yqcl9=Td$B
zsGkVmg?<uE`d2cm(67F~@RtCHdDGtOK}bd?z`^PH<USY&?L&5K8TaNuHup9Yt9jG-
z<*Q)x43M{0aJ%%AtdIEm3K`y=|5kn9qZq4W{k~)E;wwF6o{xa=21t$Vi8_#TK`^ag
zQtjDzbRqnFB;GhTinYd}biR*>1r~VL{4f8);X&Ua%#&9^ZhP2lH<#TF=fJrk5#OJ4
z(S+a8sn?*?vnf@NWz@K`uR#|uM}}9$nUl)w%O#!6zW&;8DhufOP+s0c7CZlC%Eyq3
zVF`0d89?`1&ESvKLa5JQq)fhj!pK&1l9HtdU}!YuV3B~O@;Tgm1;S)iD0=v`QA&<v
zoOqR2kyo^rE86dhP)lvZzgO;ExaUXoBqw`BdMfx)luU=_Y#?PL#&oq0cQ^Iv^;W1I
z<iox{rL2a-TLJXn<ePEk7Q8wDTR_00e<#;?6xAIXtYA`iezV8ezF(Fv`BZVaBA6`p
zW5INEL(=|r#IjNC!hm{i24@vOE9uD$G2&Kd?fsn@g5&g2E0dM3%eem-hdd}x{xO#2
zAc9zV)VR8<an+H{4$OHY7jFxoD%xDK5SouYzmX4~o8JQ^DZ21M;U0%`Itip|RIUY3
zXRud!f)MGEC_~WY>`s{7-Q?XWSBI+^m@oWIbZf=9qH}!GVoO^aT^}Ih+C4uSp>nqo
zShRen6dm)|5_zE@$3j=Dt~pWBuO;>3pL8W1EseVRlY{oP2T63KWFk<bW$g7N*^@C#
z+bA|_a^hg5ed|L(VLT{_G2`XC4D5u1RL6G)jLh{Ia16WsPe+2N@AD|0pCs$E;cuNg
z&fQ*rKTvHCiYmkvv&Ie)`$Cl9?2?$R%EYh!>sw#W%`Z0VPYMWn6gcUAWT}#(#ltm3
z4R=2={2m9!z(TXyGFfy*yivURm+DM~fcx2em$E2w)nDBXHe|mwXj)EIh_VqFwfX;4
zsFYQPZlp=-KE|rH(zF_9N8QCvZLEn_hMssKQDpRgNE0^kkvBm&_@n`mR&;nu>q8xS
zh#R$#S16Oz;qI4Agke)ed)`uMz--Nz_Ufm`e>=FDqqWQ43n_AqnLD9>USdoJ<X`^O
zDt4rLaV1hJtRUsUSSD>8NiP40pO-IU*j^tD088OZxu4nGa~eOrFxY!8?ga#^wM-eS
zLa-qC6@`vSnse#Hc&6-1s<cdnXd7@YCn}FrgFLjO$0#|uK{qd`GQCA32^N~H*673O
zi*c=5L1fMuJux-rErNNQ46S|gSwu!k1vD5kO=vxmU^~?qRq7p`XX>;kVKr(Q+AUJ0
zz+%hP_5P#UnX62j(S|@VE2Ru@)&5`=k2%QSyu4CF&#}Ueo%6e(P){m4sSLtO0XXHO
zPKCb`3bDq<Oby7hoqqVD{Lz-XsZos}33Rd#b(CmP*3)j{IpwO;)Y4T@O?*ZE5U2vO
zA)V2fwo*pu@j?|7@f0gp_WT67KD&HNdr)b$y@?naH|W#yq>$?SEgX2-pSZfRNOv!m
zG<t$^#RP-kM|Tm8z)1oG4YPn(W4O`ZJ-YK>&{sg4x4rknPyg-cs}<l*yM%C!CO@YT
zo~2~YkNbPbugJTP@;YPBovN>~Td!2fz}n$q)WAo(VXIQ5j?R<sF;;fr^r5Zqe~Bna
ztkwS^qVUlgiC3{YcKICkc(zKV9)5)lydiH}$NbvL)cZJkYE>}onAM6d7j&Y(unTXD
zS|?^(3yocDIc=E|b`<R*si~~=qpeTI*Fg`jnQkRxS3Jvu3fKcBx_?>#SHI;_nYps5
z?UWoZMz~3~8ayJMO6|W&91S#|ah2P3%df)Oi$K!ubXM6FspdD%m)$uFK!)aKSjt2l
zjg+WrXY{#oIEugS(l=3mI$JwOM$I~HXQH=lWx=K4yYS&^GiNO0sZtS9*mY@SQq#9!
zd?RBO@Wp1?&%dNjWLu=UuJ!l-E$sR_0MDE0bT6a@S1q8|b~Y4v7<aq-)`BWr7xx&a
zfebOz^Xyt%g?EJ10R%ypklHYB&^OPJ9~<v<zgE#aa$E&v47|Jrd1^3w993Cuzs0i4
z#dEUB;PJM56!}3<T3u~IIbs0SD{h4fQu+6CEUy!7qg95VMO|5HNSlJy6p8~DilZPr
zt$t51Czr}5K0yC2p&O?dTBBHXCn7C=W$j7(p_p_mb?a|m7@C;8PdYGBtk^I~vj$7S
zBnoSy9R|N=iP2zv!uY{Bt<Cz}&m>+M9I{uE_rP}Ylon$1R^ORx=OC1AY?kOGSsAmi
z$^Yiq>n)J(4{dvJR5RyomOs%VgVisw_WLyLSc|xoD|#k75PG0)P5UR`$~zdoqxML;
zQ*|)n!R#J;qK$B4Xgcu^LAAZ^A5|U*3N)f>pwXY_yuCcmT>Rcn?9PGpWq!B<7|g%I
z*JD!XI@s~Pn*eK4XoVc95-(XzW-4xmGgcYv;&B|zh}?>PpBPrG)KF{u8-~)m6ou`%
zt#UPADMFT8Ch;p72avWxs-esty!E5OhW``h&bE^TWMkJ-1&4T)lUs@2X-@rWn?OlV
z<?J<^u_+E1AVEuTb$6?DB<XS7t;+qkrS9^0vY1v}mgp=<_}VKp8Za(gl8YzQeLyKW
z6s?bI)iI#h5hG9%nZ;kFj)ZD<X=kKZ6g%jlnQmVx1Abo=xmOl+Vsmr#ETsG~Q|GI1
z^hIOBpG`m@5swy)IeWUDVECe(JD{cJ5#D&xzXRbCpySbI$&k1Ole4z=xkRQnI(V8T
z&o7}UtFm-XU27W#SS8hLq1Bf_U9oT8n`+rNq-p3kTA^1$_EJ>=P_e|ShGTQcHJ1)6
zm5iKtMPIkxOAH$JU68E{whBgt4d+BfhKHQbMVzC@3q363{RJgybVwdc%}3}`SCW^+
zj`0(viW*56-%x&$xyTZge3;^;#~(N^50iWbuXQ83=nAd9OdVVjwMUCQOLX8}_WD*6
zVB4&++J#-Q9aB^lJH4DnK@$^PO!gxN8nR&}#2&8XG_4fLyTQqgm<k8NyEo(2TWWxI
zqQCUX)Gxd0&0pd8h@&;4?V4pVmbFrJA@$Sf6vNjIsFlM1fTUMUtalu|6vkugr~Y1p
zH}LX4BiwkykVs_Te?+yKZ7NI|JKN`#Q1#FDe0r<u#{P(Hg~yv;TxyQwdGpFM{Ac6q
z#YIg{1$*Rd8Tj}(RP-ZFI&|7`jC90ZA#Ov~<7QeoE_e>*dq(+ug?T~kE^CT*9<B6o
z#CH|I9eKc6FwPoI#kclxS-biYwNLS6|4G4Gs}R_8u&?b=u`h_BGHDYQ<zJ@{Tglmr
zVlULn$YiG<0~5%|2UPg4^h{RCuaLL>!1q!b3R_%U?R6l<*7GX!f@vv*%e|me-OwrY
zH9D2^b~i586V+BSAqE$6WbT);yM)=G)IbU@ju90{Za!9+R=gbh7Od2MBORuec@U-4
zU-c@gPfHVP8ZYt{`lRxYR<Y`0Vel}Nta%LKW23y<=YWpl3O`=T!A5D;vfrxzU#{kV
z>o6r(oljkZg#Fq`fX4RB7{Iz`_riwGKmTuxNPR-;Ie)&M-FNeRz~yTjJL&@=hj;ap
z{vJu~PhilHArR<RuW@tu{irhsjdjh-7zVc?_pNLG%&_AXeqUigH27R}uNCXWEyf^V
zx-z}Hp;{tQ@mYdYz{H)_EyY4g9LeiOF1eIIaEjZh4ASs=T$%Qh&q&s68*kNQG}Pcw
zvHS0G&j2l-R$;7o<~_T8Pi6Ff8hI^706ZMrznjq?O#*9Y89o_Q$kyoN*D%)c7=5;D
z<Jxv1vyKMgb1eXD9#x((g55UP50u1CgYLL_*%m7lY&9Hg%uAbnaPs1EL5Lq9H@8hN
zEo_c5&it&UGfs2cD4XWmb*H0gpipV?F^l@PpxcCh@ClSZ1g%%kQ9)^6gQ>o`a#|Oh
zp0{$W8_`<G@o<0Hs@2|YH#k+Ea(N8y#^pLe7kzbMx>mfCny!p~Ory9X=Ke!d%>8rQ
zoAXJe?Lz!>2*c5RH5>yo^Y!Ueb-chWrLws*eofvF!dTwKGO1v&-^L6nx1*Gy96PCO
zFl}N#T@~XEyJXGGpcTI+^43D>*q*t{@I*3_vsonbuj<OS3_jJb)kw~iS-P=`on86C
zVs|A&FWa-;yNA1rfG={qwk7W(o&R*1+zG9^vORT&$uZMJPL)LbzuQeb<acG$l~QKZ
z5d$#~%naSr6|+4)e_MxM&}8gNkoz42&GdXdi`()h%W6^(MsJU0>Kzc714{^sv|K1!
zgOsMpl6ud+y|ikWHO7e)!{@n5H2C-V+9rh?>z+0#sx|v;CqNFHwzB3Wn5SOC3(5rz
zE7JVfTC6Q%ecsaU9(|sxkyoBl7RGvZ(J#^ucjnn#j;qPD%_iHfeY)mnW=kzWHZn2J
z=ATP6D7dJ$ix;xs7QG1Xd~RR5JvqKkbzpK_(;a5fM?8mRSvc$`|6th}pMuV6ag$$Z
zqLoh+y!woc8k%hHWN$4sDcSIi)-WR#L{`WA;-WLG`SvE&NT*=B^;MK;$4eLH<W1FZ
z>0++@*>hAC|74r@{Gs5ZjLyAzi2vwiec`?~OLE7GGNW-{SYe|VhL*{2HPIc&b^LJq
z6IH@UPb5AZf+s7kB_oiI;$XJnLyS3<O?gh!xZ;j`wAVrEm+_=%oQKGA?O}VUtF3S_
zvy6SIaq{yIt_vu>Z%-rnVShGj8hIRJQ+6F^%P0`um;*-Rim$uLC#-Yb<8P)2_)R^_
zT&u2%lvh!PulbjSQKm5vu)=Bk`YghgTi@6ol<DQ5l(L|wRh=E4f2xapXkG_G5CRY>
zbZ-kA=icwumREN#ax=ir*4|z1buabDJ@MzQeW$s2{JmNqSEawnE^)BHGj+V%a5Kn1
zA#CL;(%n>)DcU2U_!9DeSaD(qAee_5DK@toM2>2s7^bLXGN)4W$KHBG8rbS~t>?0d
zk@!{KhM#lGW1V1bBtCu3K$aMS9S7#vJi50*5Ht=YS_1FnNO!_alLo7p-8g(%2Bybt
zt?>XRo+C(RG}r|RQG6`*frcH4Ugt={`b+~uZhcVj{T1Ez-oV-ue(!}jyXWR&zaSlp
zR-keG)Iq}DXE&14bG8E(;4wlFPQb<l(17h-9*<|i<9$XR@>m#gl%NL}o~wocLMBd*
z#qu%G!QSc*`cF%J?>sQ?q3~@&XdY3zNvhF1Ih8S*mlK+Z1!oo<XYD&RekW#<*9ZD>
zuTwz-PXI?B)TZj!!_Qq!*i5CWzfb?`&(YEyCg81qmH|N6^Np!it7^Qa0WEc=Jm)AF
zW-zXk<Na7xbiP|`Qm-5D&JAP35hcst%Z+Xoiy7oEY=16`Bp%4o1J54mah{&~>Rj!5
z1WsH>gj?BeSvhR-D5KqI)=R74M_do2iMGirlywyfN?;q6zE;0*nRNu8g?WCXOlk8G
zG+ws4h7sx%oEqXYnn*;ppOthLPjDh$7}7q{P|D6+g;p*YZDjV)q^xlY8OTRc^rp3H
zavGKY2Y`-XUfYNsLSRw;xbY(PI^t#Vrvi3E5%z(F!w&6=T=8Jbcq`m;Yte1JCNntw
z-?(gh*Sqw{-{zqG-6!O)yxHAnivS}y!=kxz7T^x*uxS1R2l3!EuZv6&5)dP{Vor@n
zU9P9Dpn4NsFvsS<gXiHfhvYcv5w4$LelVa2%&{TNst}tkib&ynxi1Nx5FDb3-ZGZ;
z2`XM|#(%UpF5F0v8{prNMep-)kzPAUfLQqx7W2GZam__Mkau&>0ty08{_48`gYN{+
z3T!#M_@JGQk3cWtVna8mozHO%i*8b2W9BRM#o~6NDI`b>=mN204p^B07sqN4lUzwr
zvCG1sKf+S)wcqt@$yltO&pL&V)3N>(j4v;k$)R-2+gvOBD;WjdvMqcVKaWewF4d7-
zi#Ae5pubkXv;b<m2kBh*Yc-hlSjV=GP0bn7F$AVl#hy>RyH`jhjUrJ87_eLXU_oJ&
zW{k)t-`p_kG>&=GnP$S#&_qN{htS-Xl(ZmO%*_H3$-rnpSR$FnPwP?1k<Z}Qd0vX{
z($fen2{SwhC)LJo7l;<Q!jXcY3CuNj&tRC4nTqtRmtlrL{vz<$na?4Zvk!m>P<bqF
zWlu-i18KrmCXc0z9n_e@Pav$M#A8X0g?hT0w+qQzO1)d2Z!w-|bM_w7YS{036oa$^
zCHEagVT9t@Y_R;w?D=S`5^i(zvJ@0SY0M$YHuz~2V9nYhr54`FW_?y4Futy5d6DLN
zDHxtMGg8}RGmwrN&p;~GDb*E7J?QXPXk=?udx-@Y5+q}iHXNje&bCIEVU<uWS1$Ea
zctTxfI4&0+vSsVbifhlDQ+G6aX>YZZW$GWuhJP^LPqt&kIV4CfNH~Ko7qHQ&5w#}~
zk^Tb@y9q-SMrw0#oj=x+n}P|8YYt#E(ApCiO)FmS4~1=5O|^|I4P5KWiXZb48W^s%
zovVSCL3^OfXf3uzOw_|xWo^X^fd8?cgj_aW4(87Z9R;-?!y>3O74~N?^Glq_g^F2`
z=g-F%ubQKvMl<Uz0SF~R_O(QSM6fH0Dg@^Ke29z?5=gn>^&?`kf)`SqOM*S?p1plR
zJY6h5N@gEOJIU)wSgVO+0O?WIjmFCfYGQ*B&})71W5G<6wR!BrM9z<g6~t^CEkSsM
z%geCJ6ks2tk~6RU^|%$iWcI{|$^iB)lGHE}@|>Yd%{)aIe@_vL#j&TnbQ+<c5`wc5
zQF0)r2~`E<CNx)`bd6S!_p|MFD^EI;HuWJPN9Y(=@H-nlLPVG$5}<4c&EL=;W~d8Z
z%I|-Vn7pXh$lxaoi0FbqIqOvPc+AfaYzVvwz~dLK&FudMd%CuuI}E&6_vU0&-&Ox@
z@wP2KS+l6@Xex*;n`%3dAI+9o2ErelVgc&2`H1xRNxqvgSD9*L_8^#%&<|@<<kYPt
zr-`Tg%|_kDQ^<o5s~bDOy2pSo5j6^5N!aJk?!9@{E#I;1uQnu$?!?tFjzK^q3fHJ^
z^4QtiYaiw^8p{G>K`h~g$kp$ME=T<|7tq-_IqhKYsT@(i;fW0W6ose3cbG-Y|DX`L
zlyey3L)evdq!hnqB;&|{r)+=TKFxC-Ql;-zu;Jmoa7fdW*-PN)tzLYhbURzxo?eWm
z$%mNHq)TM!6fCi4k<DS+vnF9T<Xa9FtF4?Ib>EU9tSfV}V}`-f_F&?#i6Pna%RP`z
zP2y|(XWb>tmI@lLNwUels+-m1B>q*=rLLrAXKTEAPbW2%zg`f}1<A&Sn5#iu3)>Ye
zUo%2J&C<6au|@S7a(lE&nM<sH9HuqGS)5S~Cwwi6YZv22;|}q%87V8I06gT1oZiHr
zpNn6A#9v-Ru+Dz35A(;>Sl$fYHyh)}Ex?_W@rccABt3k7FhKR~0t7hV^CS6>w+OGz
zVJ)21zYd#ihdPY9wrKd`6Y@(#ThDkKQX#7-S7{?s3If)Y2veFp_w9=^!|<qrFadY0
z3aHb{pBS3MQ(U<2FfllqON+Jf$g2#~2rn&xDRi3SFQ@mZg9ZEW%pEda>=r2-?$@@p
ziyj+&$7$^P036?E>B`@zLz?xbYo6z>w-?&Dhtaiqv3UP2KFKS)(;@-4HKfOvls}5f
zP#}n3F=S){=X@meZU*w^2g9@CNGYEpfe1rXiEQTOZlLo1;VYSqo-?Z%N{((JNlM~o
zP0b4?%3~)~cdQFlgZ_Z~VZ^4-_x-5u&gK2S`*|2}++}{8OmZ;}8oIDnWfLkEb^p-t
zr1tOrB?YG$A0!!ydZwiR0<4nT{t+sxQt5c|yWBqP2Q3*63@``i-{|(Oe}yHDMmM8*
zhg1?QbNwhFBXvV8$OhX?&rTjdrh)pDR6O$0&0c0>MeBZHy^H6`%dT#-Gvj?59<pQh
z<(booBTq%E3ia7@){^d#X)*6w09TwARx7Fz@`hoefG($O*G!XGj)A<|g>hs#ZzwCK
z4FO^d^rBB?b09Og^@&^i64glSqJ$D~Pw7%;lW>b>D@+nDOAY~DO~f8-vaY%_RuHpO
z)7pGrZe2*fZAOxa(?N`#>JwwF>q0t_Tl1@GmRxy7T>6l>oh#NwrG39<AI#2Zbc(Km
zcr-I>DN8Wbr7)=PoCA9U&RsArRS)BX0WLury5t;=HXi&}@zpIIMp=v&|2g-0E~BOj
zQ06^aSCHS0@7E{YZBf&m!RrAwbpi+_<B4XO*y7I#n4wj3L+KhRO|p=LD#yXi^Ye5!
zdQC^ta8S`D5Va-r0Vv%4S904vcni?(zXQtjzG%_#+i7K)i)+ShW2bRKo0wg&N!mj$
zD)efsEEMS~TubK3g@H!d#E`AMgNVPkE<BA7QUffN-FO0nMmUnJNss|lnoy4UB<X?b
zV%w?kvEGK;^pMKJgfs%}ufoZ|6I-Zy7|{Ays$4Kjbo^m&Y>l2^sBAn<m1AY)*I=qx
z`OBLBJ<XA`NY4of^4WXJE%A!<NTV2G9Z4h^Tq^lEa40e>!Lf-;>`*kc!d2ZD8L{An
zhBEd}`3n-kW1baV@qXF<L%6<sg`;(2O)i$?E@VMmol!n^#itgrgt8hp*c!{!Nu%S4
z3QmjX{wVE2oLBZM<8qB2P%`HtduZxy#Z_iUJM1(<m<LuAB0Cq)y#fgCXJRoOK<8cn
zw|0Fyo10M|{{1&EU9^C^RKVLL!21Ny`v}nc@UQ>wSO4An|CRwJ0DId&3L%Fge)mX^
z+zXOh4U2BVKodE|15y0DX6M*--Y10ZMCY@Z)79hg@_N$DekEkN)mfQ{=nVUh`8L@#
z8zuBobj3}_VAgos;Y%D_*&C98fM34T0Mx$y*R?|Wb7g_=?<vfT->-=Cp}xBff)fw(
zavNQi3r)T8P(O~Oh@nQGwWl|?H#@p9bcTRl4GXKUeQy>Q8CmDhc<;lh9&ZkU3bu>c
zcfwxi3pMJxkL^_2C3t|u$W>&|FXA@#c*V0YP*y$w^N>dT?>sybn#uRMOw!-)2un62
z(TF?3BmVx;)jm~{Co)Gh!%h{Fm+ZD8lDbxWEbgZ`7X&m0tC?rt6EwuIl$7>l^zgD9
zd%9^GyVUG2!cZ7meG46qafihM90Wn*C)?IKi>Pk<T56Y6;)lpR30KjpN$0?6$!2H^
z0LO7tgYthrcKx(jt7P%%A;`pjcpA_C3BWun5^_EN*TcUazNT#V4u)^#PNY%J!ElHJ
z=u>eOdKj$m3h<6qnV^-<$@UxtE#N=G=8+3?R(Jf6@H(gdfA&vs>+6x3C=Xhq(-2q(
z3Tq9;33?9pFpLU;@)s}a+r-!6=LGeOU`kB$W;YFJv06!Vn`xOz$TNyug5q*!Fse(y
zBQwYY(-aNUE5KXW+*;hd@MPuTnU79eO10+HpSShG#W<M^R3KXb9Al#HeTN05Vk+rU
zs=7-@m$6~@s2fbiFkUG3t86C4q*5o=%bwH^(K860tui+5=EdTEw~v&X8E#f*xvPk3
z);(LF9-3uhsUqsHrSgwwh}zeqFm?&M(#a}r{B4DV(0w1@t9idYTU(ocfe_V&aw}G$
zW1_OxzE3oIKpQOhdcX$hu#e|CESvCRVVM}(&1mT|jANllQ}<mK?EWz~rVJu669z_G
zmB);_Xh|dx7glB86IwfF+ul8>je&EkYi*7QECb5zan^VH#QkEW*A7|5P|bKVt=qnt
zh^4<Y>c?m(zMBifS05unY>_c0MzqOyPKROen}SR&XF^K!<Ofo;zfL%%Z5{8+Yix8t
zu8d|QnIR{C8|eK#Kw*x-eqb{jaN@0ELFQrEh)K5iXazX72HZd)Wg%OWPWVApxn0my
z@W={x!di-fO5Y>pLMLWu$wo%DL@(tPWo7QObb<5HL;GXg&<`Bbu@Lh{NO=Af|NMod
zGU9E##cnrxZ}@v`he+@Vr3bt_e0V5^>pa&h?0T{!4%Xui;_oQF9I@OR0@K2C)LqNz
z%CCvoHWydAG*Wm^Nlcl%BR>`%YrZ@jyCq>gG@M7MC<M|{d%*%k2=X5&_H^)+6>~&0
zeOnuh$T)Q-SV)}&eQ$G@QK*}rXsEwSMegP`=|G~3NO|_PZ|}TpzG-W5zjw+m1H8#F
zmP&uiO9zZaPTGdqo{D`-3!A;fBGB0($=FCRDWFx*XMsmaByM_OFF30`?qGC>(Ga|B
z{DxgQsyhtBh(%8C-z2=#T>}MD6#OB+PTmPw8xjMhVt{D`ytprzCITV|Kx!f*(-h6d
zFIWf=r!80_?CD<#DuyH#PFp#HkFp$_B}4<A;l~tzN-)4Y_;qDFrL$#)jS=X@NEIy!
zVh#-E%#oLr*4ni(iqKQAfIQBL7+1s1)3hL%hkIEN>G)%NnaN38_Oyf!s&pmqm^_W2
zv^^|o^_sgtOn;DLTI@lN37;=#o7jxuNgg;E)+b3tI^RSYM<M&cj*@mC)G%WOOAA`y
zF+0)b=zl-?|4KWnrZ~7L%Hjm~MuJ;t+=F}L?(P;WxVuB+?(V^*fdIkX-Ccsa1fOqe
zUglwDUZ(2)g;RCv?6ub=)tzCuNJ+kSa0MzNME?DX@~?wyU{cZxYkLD8axOgKh}Bvl
zw8-Wf9nEUxa`xY*`Q!D1SR@u-+bmVBnaZr1yj+afpK$)T=_0wT!IgQvqhP1#5_hGV
zK15PS(nfw|LQC|7GQ*;+el^U%#eP!I8~LG-M~j<);gpDaYhbMdQ%iFqS0BP#AiO^f
zw@wcm)8Xf0O?Ld$)KfUkgXr%0cyiYy+HzUPUg*T_a@D4VJ_MwL*L^8)*}?4sogN&^
zIQzDJ&a3R})Zi=Lb_N?fnE;K`y)qjQ7*9EW$K*awk$9sg=cHn^H)@Won~gBo?So>x
zK!9EgK*Qn1xABHYt8?EjD6mo1BtF+jCu)aMy)SpiP0fxQn?9Vo=qvX(i`})*57UqX
zd`;o4PkmE<P}A}8HGb-}4&zYSrPw6Tu3NHD67bZ4P2u~suQJ@-kZl8${PF9gsSZu~
z*p#90y?(YFVjZ22f=Sj(Q7HNWYTFw9Ka2Z4FJ`LQbFA`{F9$HDg><y)>~!q5vh~Yz
zYpT^K<|FicTC!C#VxicVR7eK;AJMmOE4YY`-px<rCr3%-j3nVL#0gAjLrY2I3k@tJ
z05ujcOc&$HtLm4Ewck8U5-Uz-7|#q|Li{`qNZayw`x4pA7e9AL8&`Ff;-j+G3`ZCZ
z)r05)G273y9EjtCp722)j1c+Or&?{^7L3*Z*m}wS^{utFt(U*<*SksLQ8&kIO>bfp
z*f<n4)f$5n8rw^T50hw`AVy7J<iF5kAQuy8{iN<8Nq<8dzb0G`-=NgkUUH;{uw`zP
z*9Wm*S%38!#>_k@7H+FnQM4On&#Yy|eRzFR5boe7Rf!hx8x>D5jh2&27Vjw$O54OL
z(Q;>K>(a=2eY@DzR){)^_1D)EMKcGn$xBPzscCG(OBj8u!j=rf+B_}4R5N~sCh}`~
zZK_U<DP=OqE*+oM=>#cqf!U2weGqwAnb!+%j`nz4U6~K9UpK8g9u9sh$JROCfi|Jz
zukWs6%dlAfSfg!}VIm5~pnj_*FXGe0S0-jU9G<7sx25NHePGLh3n9<2{_ebB+u-r+
zs;(M+3{j({3>$;uf`^j^o=~)krmezI9O23H1af?eLR!q90W(!A6vDge9jN43WOQo_
z&;+PPDdDr={^Qh$+1UQ$w20ZL{^OKz6A>t=w(9OOmplJa(ckl|C{!-3DiGgkMx!s~
z<b%yWq*bN!Lten??nu4vNeC*ATd6llvz8k%ed9ZP3X5tZKnaP;Xh&Imk9*lv?uwKb
z-4uDMFS&4`gA!v>8t~q(lDMVPd9bx$Pk@5E)pI22-(O!ok7F#V!Tz|PGXck6Q-M4e
zbl72VgwKn&A%9{9P)RPig8rq!lFUtgENSS~ckHhf2mUKDU1dK-;^(m}nj@0MoNVX9
z!hr?yaOn<-<w{&M;bsI3Y7`IP{&V!CkB<dxM*{t>Bj@Kw@Ce%Woiu0q{Ro>pWxp%(
zXp`bpXub%5ynMXYYDao+Hjnt;nheG^?5227r&ZNvqB{~S#MU)uAn9T5I<;TOj(f6S
z#WQZ%-%vTtkPzPoMDnq<0YOZgU-#SQw>|Veopcybf`_5D=+(}7=?<uGuve(E_Kc|j
znvkcY+^Z7S#{h46hi+op*3W0w_EjHyiQ69Kz=3KXzcDZwk_+K|)XXUTii97MB#^Zg
zHQsL&nsM{}cAaLrFlhWpjzoKIk14b|<)g4}dAOdD6&>q@#o19=zK*_FrSiiU?&8fA
z<0FL3BBd(n6!)qsvJhZqm1vR`aI{={y{}LAjDp@;A(rt*XM<08%t61e5B1&4H=CPc
zC4K%Khx@)v4Xh6@r!j8!2aWaUtGf2lb=cZDTb%?WpTCcKgFp_(!*Yn~mdtO8s@tR{
zrJXPs6V&jh;-D2PZ9~7fmx*FqV**a%zC_dqO&f-NURl>J?m@GN8HSjkuvXm*za2L2
z>Rp9}yvDggLzk}IV^R}RZ>Yve$7jAgC0f^er0*I^7$0Wcql%ByidpCP=f|O|yY&Wt
zNCn=x8bGhJlE4=cy_~APU|i9hM?7mpGh_fBDtzt+;OdIk<MHJZ)3cxCQX_us<P>bM
zYv@cf+z`6HSc(sub2HEUp-OT{{L9)p5nm_zYcUhX0Z<B;aG>8^%I@>uy;f}eccbbg
zwNQW5<amQsGgP2Qr_alo+(Ny%mwc7e2z@9n50548u6F2UiM2$nAO$+85zlBPS+}@B
zVldr8W1#Uku?i*^!6>QT>*UkP)zA46#`QfW)tr9!0$ED{^^KG<$UzYAPDD4w#wQId
zC42J6?1$^FRyRNQui&JaO76@stOiy{zdUnzcFSK)RFTs1!<XTJPshl0qD4)Oop3Ub
zeoN^mkf%%{OTJM9kN@OfA6L{@LdSfrgt8{18Vw)x`p}27y`s(THfuEIbc7D|zhg~*
z#^m~$%SCsE>dB*vGU&(OIBmJNDFg-Io8vly>Fg5llsavPnFjIFEQ$$Xe186n*V$)v
zcTQ(v8rQfM=n&?3%NMs<c7{34915Vs02&ci{{{~m$iUMyONY{M9+w8D<`{gAwBv#1
z!h!C0_V{nF%<wyb-kElil_SDON!`zVXWTJ#%#;*wunB!E9CQTndwK=12d{yqRiENB
z4L-j;9LXI7fc|TH4~~sJ#2rw<Cc#X$kcFE1sBG{I_Sb-R5yP|%nMfTHSdQk5XiH6~
z2-|7aLYCeAT!=v;TrnqSZC+5G`|KY^BF)3qewCha4k1)256Bfi6(OhH>J43SrMb$s
zSL+D#px9sWS#MYS6hG{5%*|W49`5?AdJiYKn<%A{)4r*4nWeO<ADnwF%y|;yN`-Sc
z)+Z-Tjvphdcc|z1x!>Wf6e#ZT^Vy~|S*A0Xs_<!!WZgq1jMD;ObrW`r%#Bs|4TPX?
zD;t$paE*Eiu{F30Gdcs7gdCpXw;H(_T6SLA$$xs*b}l42HJ-3A3A_Ov78tBrq*)_+
z2SL9|4$WfuQSDrj)9K?Xt>V!X7Lvr99+N`)Ssw3(>@s(C<Os=^K9}8H{tiFcvZ{W%
zJKeD0;|FwB)EMc%onYYOKY+nQgM<5ngY$!f&x3=9gM-;%@aI)GGxNvQQ@7TCkp-QW
zVC<P@`F}O9wZJyL3nN<=IV_arHE?eV*(wcTCKnN!D~G!Y8q5`UKi<+*-$N$u{IuCe
z7}rKgMOrHvU_cgWDTiVi`J{<vYVOOmE~5OXzD^vG+i1-9$V`9Uq3lj1otgdilqMI6
z$$S&1U%IoNVgI^|$~~=S=Y+zm+Vi1tyKUSF|MpotdqoB6EogNDF9~Y{Eq~rb{`-E;
z&_H^2Cb9wi-Si;KgKZ^k6ih0@)#)DS=H>rG9?#){sCm7g`w2lcm}T~{g$IQul69cf
z-RbUB7if;M_2{dffByNJ{;p>4(FP|vdQ9J}gKgRj4-Mbn7!jzn5F<nab^mfRdo%RX
z`*(96!NKmM^Yg^>eK|Qk0B@Nd0)9ck8&VFB1S(E=itlk<%9kL1=!RGDO8@3wV-7l*
zv$NqwMLZQ7r<ok4xfs@sgo;K`dcs#y5VD%D%3o6tACc`K1gr^k`5Lk+i`!G1=nX(G
zMJm~CwJJWr5Y!o72P4}ZT;4##7cx{;0G`VKK~xMRVz;>)Q8Zq#Zz91pW`?h%3D%7;
zDsQU6ba^#l1O0y%{Ogv|+C57i(*ez0@b*_tYvA_NZhgjaxM(B7)>tcetpvGAtLu_E
z!0wztW#{{{-78o-AXWq|>ZrSIH@%jIY=&!!zZt|#W<)-+{J+jjtLghoFNj`O(7jXk
z&${geiD6PT61eRn_y~2bEZj{?X{eN1%%K~)qnOThn7@EWLQn0Fe7%_;j4<qip^x6m
z^gJ^xod+y(xbG8Sf5W0<rM<BzRZw~iPxAzGgn2KGl`j_LwVKe#?t}Juk<vjgd|ve{
zVK4KP`TVc%_8vxvxK)H`yM6BEU6q0y056z}FPSlyD7;I$t392ioI|QNd|Z}#C5O`%
zt<}CWQ*-jI1>9{Z<40Kl`$0EkL>_}7;QUVSp@6Catv;lBDr`J$an<prF@4&JM<@KN
zEvlCevx+i>VVWFn-t~XDS0J-~wCFF%^uxJo?HwT-zhn7g=$;7F4VHtSNI7!CQj*Fp
zx?j7;Ir*)yn7I+r8`Q?vsOOOCm6!3=Hj+qK#B6VZ#>(qe2P`-niGxa8M8Exl!pGFN
zrMS15UhOn#xQ@R*Zwvif&?8n_J;TC$JO1U(VoB3N;?XovZe;Uc^SM31#{Ea3-W7A}
zaZvC|*<qTXw&&gE()tC>vXJ)2#nAfXCI4)wvuy#W@4HcgIkMs4)|gVSSW?RyE+bFA
zs`jwh58dcZg-)LxH@H8|oLv*RG;C?*aI*Iqqu0pw@ve3(xaCnJAMI1pgKaU`Rcy!%
z8~e_3r|j=ct!Z&<&qcN;KZ*ufx*GxI(v>$`In!q=9llNKDp9HG*7d@L-=-S?2}W$I
z4J!e^+N$M}_U<s%w$g27ni+S;@XiM1I-GUdhNh2YGmDYnS>j6xu_OR(t|Wemh+1sR
zOp7N<on`3;k03z%5j)CYQJ87JQ5iF%DrYyX>o}f{x=b3s$dNI@tM+WA7wt%?ijMK#
z<hNS=F?tcr!5>ux^6U!plVM(992FuXMuY&0-GPVkqD&X)a#dMA|77MC_%9$U@izw{
zXY0t?)BfS}i*C~?D1?XGUzJF9%vZn`w%oQZ**e;QfEz-se(DXBs_tcgU0ce4(~Y&t
zp_4uxf_fq7*D6NZ(V~It0+k|Bki<!zku(CF64rtD;Is-maIEcG6|;LjqIx8U6+upH
z+`-_c(s%+khGomhsC;}wg2uj}_u(9=;muC^rg`)_B?_GgSM*qnhVzxY7p4<{32JDV
zUSuD?V67^{<DqoS^cc2cjT963@@^<(iQyuOF{%4Y11^gV`P&|5=u%a1L<*I}L60#v
zJnBeOwFEd{)e~rq=xZs3(x`@WW2fR)nz5gh0B{+}#CI$V7e>%RuZjV-O*L5A+Rc*O
ztYgN-D^AnlZg7-2nWTd(Vz=%#Fase|q?Rb(3+4D`1kY%HXSAXzW;|p&@{PJfPyTqr
z&O2K3cWIc_!IrTUMrnh0!8f4p3`9gPiTsg_XbEraO~hx0c$_0(Wgvh|`T{WY4MqP=
zkn!*_gbX_^`Ew2BsYryiaV>LLQc<K=PF_CYj4hI@GfN_OA#3FrQ(g-21rf#9{jM*B
zbA0^EpQRb4*b|lyw%MF`Gdk}u>8Zvi)~cz0COzVc=rb1`I%S=0gEi`e6*0q0Xk&N`
z&Ob9D{+*CR8JuWybx73m<8qMsJB>{&oK!oq)gW8`J^Ft`Os7>U%jjhD4U)s4GJ@)(
zQe-U9ClOWT`)-s(g!6Qo!caFH!=g3Ev#48ZeXiN=9QJTlKel)JU#82$8K(CxCR&Dl
zmPg6hlGrJPtdtz+Fm{DL_D5`N1flQXtx*-r8x2;B>IT2tbc}8uV#%R=b(-+p$$gL%
zDYVQy&7baz#0f)^h~A-$=IvB9><NvRW$!%HfDF_OFbG&SzS4PO*TD<72#GNf^kx89
zKyiBGKQMYtrUu;}PciIsZ3VbVeoJHgr_`G|dGy5CvdUJ02IUtyOL@{Wy&}$qj0d2y
z$`{nku3r04ns$0f6aH}|^iIn}Oj`+W94|){iZ9^-tUyl@HY%K#ZL+2?nD+`d6MbV=
z4spo#8fM6PW{}Z7#Y`|JX)Yu-V8nukY5XgHEoMUIdZkj418GlKG9188b@l?YF=WdT
zK=4~sm%R?L`(}LhS@3f->HOvNSNZoS1vB!A8S(gonDD$F+fT0>>2Ej|_72s}iVNi`
zN2WEBV*x1|>FH{jXzEObyyY4E>A<#$lPC4;fak_>>qYP9!<4guqbK%~u9CcW0fX1f
zm&dz>BP-kU>4h$o<863XM}?RG*3_%DzR04))f8%|?lCM0n(hU4fzJB%Buws)4U4Mq
zA#ew|C}>_RXkl5_M?AI7O_XF!%Y%X3nF$$z_2BPcD`b)aJF=J)fG&aX`+65gCN5v?
zv`wT2J8Kc)O%NJcI1ch60EATW`7Fvb=UK)~=|Q>{8y4{oKcUEJys3b0^XymTSA9|E
zXtiXxF2_#ryb6$AHs}4+)sS;VLIO1R4OJ@Zt<RB(2um(F`~b=rB1S>R*%v}j<5bT8
z;+_US7-Nnmd`&su6`*F|zDUfxx@}jI8TJBkyZ&g^blP3l9+UUCFH2lB$e%j(PyU}a
z#Wpm@zsB0}+Wl+ibz3=TOszX_WUJ!MeIg!`k9K>4tSDbhEN4yT;H(Q$5Ces7wRdJ&
z(l^Wmqs`&Kj5fv%-p`&eKi6O1P_lLU^-y1MzK)WG+4*hfZB6Bk+ah0?RiR0{MQ|9t
zH$z>3rjZtG*R!?a9KS#JuqpoJ>0$Ti#c7T;Bqr(tqFp$PCJc_85A8F#xOwz+!CGrB
zg_TaW_P1Y^`G^oS$>j4BqV#t@{5YuSc~uZx+FvV~oP<YFo_w2|n8cj-N4A)9TOZ%~
z`JB1$9%O!rYr*D#qk7b=y+!bNo5NyVbby*5bql)2|1DiPq7BN!v-$zz(UR!Vf&|8*
z19bc_yToN5|Kce2*Gq@Ty<*sZh|^;U_uoE997OT?T=?9r#`%8Y2>BhUWI{c3tkeg7
z9KM8c1FXNVRi50H#urydRnkR!ZNVjzSgZfhE7j2b|9IYpSv*=7Gq*-9ap)x%lL{{=
zz{jTx+K)>Iho5#H5N>Yo_3ID&tBWCz>N_S(R*d@B+^NsGn|#60?|B^!LOENt|FKM6
zLd_R$mlY&E;Qzdr+EU++9?y5Z_NRwCUfu7QK06*XV?H(OTJd57ewv+iDAvt~O>aBC
z5x!p9T*^!GJ_Gzde`YOx)C*y}JunO#v~Kd#jubWy=?2&}6h<@{zuJ+;>0MnbSfKs!
zbq<GoUGaPTKdTC-pmVmZb|*{Vaorul(zgV1Jhv{MM^IQIws6^Zp`nLfP~#sE-XGi&
z+x_+@#p*7emlOWNlG+9fbSc&?pWf?kG6hc~rNog%&BNd89=;SRS+SjLtz!+!^yl2J
zfGn6u?_fAgDuU=zbh{S!dJ!}J&Gw1!&(4puLqZ%4g!*uu!%s)izNtMJw_^~f7hwHz
zJKfw>ss8F8S!ExP8bNv8i2};+2_b!o<G;Ox6;PtVF!=F)ZhyZ@Fzr?Ub(}<j)f9Xf
zODMdB?q>Ork&cxJ%i4&>Wy15Pj3cy2u`6#<s9ywq#k3|-84oX1OpW1xa*a-%x4+G2
zey<o;*g#%VoKD|J5JU5c3gy}^{Sf0@y{PzG(h|Q9Q~3vE`xN3yZ&ZGm<U@VGtNV92
zX8E{%B+}*@&V6cwEE<WEbShuRpCrWuc1=Y;&P+_YuXT_jNQHK_jX}IIG270j_a5kI
zJv6xE4Mq73-<rujcI&(VGu~vtVsp{oN&cEo&7@h=WkTkhDVjOH=4|-`ab%@?Z1*h7
z*t^cAjJbQ8rNZEG;3lMsQ?0*F6KILHwx2z)nMES%Qs^?zHs{$+Ynvnl4>Nn#g1d=h
zZ@pc9H*^(>Z>J<nh0>!9qz;R6$BI=lH7U%L%=+@-OwMvRd}BwTFsC4eG4nozhop7=
zx@HMUHzwQ>!}%$Vk7mO5+=2H({^x*PIjA5}mRNip14IXaL+INKZx=NS&o7YC<iW6>
z2$mUtfLh7*uq}s`gA)-+P#(&fsPMX;KkV+?t>%J29ddllznKji<!>O}OE{$Nfue^F
zA004r*0gS+3BgU)nJT3|bjM2-$!9!I9Z4Cx57g8ZVMy|&-d@;+Ry%aVL3F>y1<rQa
z$gy^t`o;)gin-uJ`+Zo{d$|6)>F<@PUZYTVLhE6rgb<pbj;fJtlJNE?KtI2t*U=4J
zw-6RkXNqx?`8!KjHH6gJ^FrrDiJIzp4^uwU$t6Q21V@n9v{1Qz8x0a$8lkg8rS7?w
z{8h7@*w5|^OITVq${Hx`jOw!)N)EeAS)0-WtSu&HlZgHEANGXUm}!nr;9<?(ofQYk
znpJZ&dw@V>(x&SI2>?Ak<1-Wttk}h)dZRfisH7Q+-#N{4$?a4m$fpi;HCbJA)LkWw
zp-R6eG#pk$$=uZIYC#6A1m&B5J$p_(V0pH+1jW!!<uc_BN;pe;`)t$vo1MvzQOkCI
zc|O->>lSJtL?j9-Ogw-^5A?o{XqxfdK_l&_ax+n+2$b=z=Yxs=cWwFWD^_%+ZU!P`
zpYzyz_Tbt6={#~4sA9S)RgNlwy3-SUf^@o!%M%cM5vbgD_-27TMvW4_6uJjj0AYn!
z-0yjVmG0S}^8Y}wgk=w11vE?L`EfM(E&Ql!=vOV)@H=&n%zIX+5__+6JJ?|T{K-hB
zsY{?~2X)4r<k2fa*Q6Xafe5~%(;7OhR;8F3VTiyfP>7M{$@S`aU-%WB5LlqiuXTII
zCUA?f+mHG!%d`6oCU)=nf)=!ev!g;bjL=*NZ9f~x{WI`ih)KbkhXGP}e)k~ev~L*H
zU21-aAm3rYvy<NY6DdiieRTivoAJ+5tVLmrpcraj;4~ujG(+lGH)yjoV3o9<1wASM
z=kO7R0Qr8gnm6quLe{Vy>7yva^$Cq*$0`&XURPgoXM<MZ&%&I(bOKL-7jnfIDx+nn
z45@y^AmMYI@M#JuoF;>^qpv~CeTC}uKCDR6^~7(kYvn<_@h=`xDhx;x_so2sj4xd-
zu4^Bzj{go>W^XLeVEGp{!JnpQRId)3xk|K)bmd~>if->yx6Az}b_TE2%5eD?js&yS
z=zRmLiZz>M8dm4hE#bW+$e45J4mJ(6*=-wMxP^o-G04r;C)PeqOXieA!M+!Eo$IxN
z79nD;<t?%~Afv#wZFF>D;&=DoU)m##gi4FuR*dk$32wgGL7QD4FAZ0{&hE%4rr>=Y
z_5?To17GMV7UrGd!7zQ>BU68X>v$n41w_qJ>FT>Ts6Ky7h#+KK7Q{+~MFJc7C)^j(
zw0hBe#do3jYOfI5(W9saUsAV-#fG-z{j-s33U4S*P!yC#{UwXu_z%Uwwk^RaVt)yo
ze(A1>GKgEhM^!%ks}GF#&WwkpNe}FNZ3BhnFc)$1<bJRWV?0}O!VTY7s6XI4f_3k$
zE<22_Rq?JMC*vT&^&%90etk0YN9uyJw4qK#<Yd7=q=9|ZAqQj26`nm`RSHSDf+LC*
z!fSAK)&mEczoebtRQB2~ibVpi>8F-yUa8hEjbG6`Rft))5MxAob*iFCON~dRl?V&e
z$?4FNVsdTGV<HG`ByL<)Mlc5P3|KuJwb2x9;YvM4RIwWA3FX9ZVbJvTI_1JgzI3(=
zH+v`}EI+^iT~I5FYaOw##x1BWVAf}D3;%+9_e;QdKg~UO>mnrMdAdn-3vz<7G5A8_
z(<wA4DWq&GNtRR+bDVnb0$0)xR=*R%<NZq~S&F5kP|J}o?CbM&6C~y1K<38P_JA1o
zBm@-=YZj3k29i-#vDGlMY9l(rk(HrBhFh)%OYHaTJTehSW-QsP8Zc;6k8L|>_Z#9X
zeQu8DRZw&5#C-sbM(2pgCpl=$!6n@_nG}IBL@LoyfvZUr)*OOD?eOzaw|6F3Gylxl
z>zqX_$>l(8xoaZ+ZR+!yHbW`>sko>R!twI5;gpy`m|wh2DfOv0@|90$OEJdDYr}Fl
zvprm=MF!qv>jd`YTh^F<BdEk=dvd~T@AtQV6V4h1^Gzi7_{i{llRLem`g6QEst4Ze
zlnR`H8h@7=8T>*g`~Vv7&Gnbfg$t-8=4@QjNW=GIL|c8b8)UNz!kWkWyg1){=~ypK
zSDX=Oee|OX$=S$b-%M9CBK6>S*|8C}I)^YDxn@euF|T#iv6F~bCQ5<%4d-k4O_6gT
zGx&v9Z8TM2Y=8O{Lu&K&Kt)cBZ4F?r{^iT3kcQctoaEi2>AO@2)C=)3#@N4f%@Dwq
zFwvbZBQwW{LJ5PJXJpsl-QZ%1Y0Hn+9~K%V7C>FZJq4om)nXMhjV%J*F5fDP1-hn`
zDwf8bVcQsHoXJYHj@VB5nwzd5?Zt*yb(holZ6Sj)tXWOCa`hT$l@05Pjx3FKcNvRJ
z@53p{YQ-DA@}|?Y?!MH)sz{LJR3&|y%QO9h@)YmG$!ZdEH!W~()NpfAPY#P9Bk0P)
zgjm~{|45&E{98Yh<)msmXo%DTUMXH1dMl}+ZE>yZ&ky^uX+pFmFu=AJVmnNF0<Eb(
zxK6a0qYtUn9W`Z&b*BW0kME>JM!L()uMsjh*IIQCq<Ww!oW8Z^<8P{PwN)Y4uaVg<
z;<liS@Q~o95{-0ilzARy_uNKJ6!7!L3e}wq+N6gOp>Zr!zeNe28t1*lt2`*R+%rhH
zIE^BP!1mUJHutjL^awIbwDesv<d1e0egRZeom*GVm^TIAp_92avMj%}J84@z&A`o5
zZkEY?hMNc?wD_!6m~S^Gf-o#WPLW{d6s|Jmg8@oJK)`<emKB;6QN@=^P?_O*S$H#r
z6qok7){y%9oy5(!D`U{u)&UzY^nXC2Pzwu8oaCJ{uCj;)m<?xsnY>0kLtH<KLJ$W#
zlqkeG6Bcev62qQMkjL^tSJ+~tpbN$UizqHDO|%DFljzV=%?^&6-U!HwsX}HVATeu7
zRmAKg^EGC~N9=<r;R-IAHf6fX(KM2>9v+kuIIThWoKi@}1T%*n%NaCUmJUbs9O;-V
z@gQGeKubDytc?_ru<$J6!5h_eR=AxVlRfc(uw=J4hw&#Ft@I>{SbC>!t*`8xeaI`N
z3beh8b}v-xc>k^)CU4$O@-@GVVz0!y*{>=2n$eB;zdQ?kI?k?+IC=f#8!3!Toj-Y?
zf);Pd|6$UR+enOwJGVf3u5O_g+89_*6}*h2?QmHi%Bbr{XhK4wt!t^tH#wq1=49NF
zjD!DBX(#QB%OALM*p8Vm`Fde<(36aqURL%B)a}Bi{=va-Lz0V5lQ~zWVds`L#UO9C
zHnOopGchRqUL1|#Yim}}Sm9=4qqo<dZaa1E&=e*;@dMo)xP(2@X7?W+^4+w<nhKI`
z183w0=XqGt>BK$@$Sd_;9kKs1tug0qd@fV+qbBjIo+&AT1sI4?woh;ss|nh0<=M%U
zJq66+F~JJ>Pk;A6(w=BD(nB!+CzP-~E{dQ`PHwOL)T$gX8W_*wSsOH>@dsclz1-R;
zh4$iwM>c>Dx~yCT%a3c2Y<A8f3pPl|af=@`A{I)?wZfxCTNzdTP~-2skp$N4)>ee<
zzFYU)9kkLW3i|Lx12d5=k&Bqd?Z~_PT^IDergluQ>x>XPFNRLH(T?f7CF}0RAv`j+
z*|NVNso~tO?*K{)IB;UgD`=KaBHb(AYX`D&Jj-x)mi$rlN-7nLVtK{8>zQU)(3Rcp
z2xl;b7X%a7VXAtxg(iG)WEM2YhM)j-tf?i;*u@b^#aM-l82i=_`5|8#_XM*P@Hps}
zKF;|X%aC-BBl5n!Y*E`n%;PW^9n@zhyd?2ZBNW~#Ty9TlMsq`8l)D8~Oo}7=lQ<+9
zR*N9QLq2K~9|ekfc#X_b?JP9iQHG@+x!IyXEpzzTDbI_8g#^(HFL$|OQqB)$vY7O6
zxBor}=u|f;+MjbM1hO|=(er0oX441XXI^b2A~{g(HE4yb#{PuoCd&6}NFVyG88y)U
zK@Y!g8C801fVr%V+VMtU{~^4)^y%%Ye4z5~Ya@r78W`ti!dqO|Q9S79)bw_v`hJz7
zgGoZ`F=e6VQfs|va5~f?wmF4x)Yd=hYmOprwKaJJB2ao$H#%j`*+q?5Zq`ZzU5X7j
zmt@UT&JLlf<4d|2>wR2H8l>cgU6^JtH~Uy`JmrM%t9McG;e5H1e4d->RPjOFcBeBX
z@hS{T@bkJbnL%eSi|w`Z=gNqK1P-Zj(Y#G4`5hka_zFI7{ProLO5#&!p}=73RTVh-
zwAd5LYrhZgjhR?|ORz}Jp9*bB+^0Q=+S;b}z^^TK?IQCa^_v{xqVdiqqRb{5yUjAR
z{yk#p2(K-a+EOBgsLM-yt|~(?1k^6Qz8g*|C@PL1U*q`*4Q7dQ19}F>kQFD+6hy~A
z%bi&p&o7dO&=*JC9b5UFixd|qB>Wfp%=c2PuM6|?|MRSG^?@k;G>J3xS5qP7x}*tx
zo*^RdNl!WiJ&-&3wigtY5@qs@nYurA*N6==_+j})hrIl!{Z@j*UvjgcLXoZ~oG=oI
zwRo<?W^Df!2ew>C)APivAoD<3D9~_Hxx0Tk9q=+l`JFzkL5KP#pp;8jQm9k7xVP94
zz`(cRjf2uoyJM0nt#whZe+lM2CMOulq^My#xo68gk#&+~g)%Ht@P%jhJH^+=>ZFZO
zuJJ)4?N$2dq>PZx<L;xVLTZ5uaM95#UIvT4q4W^U{G;Ui634wpywLMdL>xwJ@ZiE+
z8CRP?VcRsuXrOGMh6OcKNDUKrd3+s8w%{K4VPMO01ni<JEW#|&1d{<Y#wT5Ae&HEf
z-^dQ0<<NuT4qpgSiWAnE0{#oW=&$;^QW@!#&5kak%Y!isv-5(GYVIv~_iIk+d}8Ex
zMroDUQu<p+NE{WO>3WBBhlG*If>Zp#SFyefK1VZ0yxdt+v2&tqL7l-uaX<r-Wzy1N
zVz55JeAe_h-Zs+Az8fxXEOPR;YF4DIkw{X-QFrhSGg`kG)HiwYx2_e!d1|giE8+zI
z4Tj1%>FCpLh#?(=ciG1ids>MY!w-jahN=gki$N(PwhI<r!Z#`^jWo%ez=ZI2f+gj3
zFxe~j6l0Y!47P!!r7_P7^g;QsHfC74E~Af)4}O~Wf<{^AdC^T6hN>mm0gG>>@EKG$
zK!S=JmHoCi?#;v>@NL1}+`N~XhJ~`Z&ptk;&nCmnewMD5mMVA=`&~v+!cT&pJv2TB
zgLD3x1fCEJvGJsN!C1fpxV0Ha*i)?YLtQg5>;GNB{l995{`cbUNr21CC-lf$iZE0K
H4AlPs$p_gJ

literal 0
HcmV?d00001

diff --git a/source/agent_based/curl.py b/source/agent_based/curl.py
index 8788157..3bfa3e1 100644
--- a/source/agent_based/curl.py
+++ b/source/agent_based/curl.py
@@ -29,7 +29,8 @@
 # 2022-05-15: added workaround for raise ValueError("Cannot render negative timespan")
 # 2022-05-17: fixed wrong import path for  _TIME_UNITS and _gen_timespan_chunks
 # 2023-06-07: moved gui files to ~/local/lib/chek_mk/gui/plugins/...
-#
+# 2024-06-23: modified imports for cmk 2.3
+#             removed work around for render negative timespan
 
 # Example output from agent:
 #
@@ -65,49 +66,49 @@
 
 import json
 import time
-from typing import Dict, Any, List, Iterable
+from typing import Any, Dict, List
 from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
-    DiscoveryResult,
     CheckResult,
+    DiscoveryResult,
 )
 
 from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
+    Result,
     Service,
     State,
     check_levels,
-    Result,
+    register,
     render,
 )
 
 #
 # start workaround for :  raise ValueError("Cannot render negative timespan")
 #
-from cmk.base.api.agent_based.render import (
-    _TIME_UNITS,
-    _gen_timespan_chunks,
-)
-
-
-def timespan(seconds: float) -> str:
-    """Render a time span in seconds
-
-    Example:
-        >>> timespan(1606721)
-        '18 days 14 hours'
-        >>> timespan(0.0001)
-        '100 microseconds'
-
-    """
-    if seconds >= 0:
-        ts = " ".join(_gen_timespan_chunks(float(seconds), nchunks=2))
-    else:
-        seconds = -1 * seconds
-        ts = " ".join(_gen_timespan_chunks(float(seconds), nchunks=2))
-        ts = f"-{ts}"
-    if ts == "0 %s" % _TIME_UNITS[-1][0]:
-        ts = "0 seconds"
-    return ts
+# from cmk.base.api.agent_based.render import (
+#     _TIME_UNITS,
+#     _gen_timespan_chunks,
+# )
+#
+#
+# def timespan(seconds: float) -> str:
+#     """Render a time span in seconds
+#
+#     Example:
+#         >>> timespan(1606721)
+#         '18 days 14 hours'
+#         >>> timespan(0.0001)
+#         '100 microseconds'
+#
+#     """
+#     if seconds >= 0:
+#         ts = " ".join(_gen_timespan_chunks(float(seconds), nchunks=2))
+#     else:
+#         seconds = -1 * seconds
+#         ts = " ".join(_gen_timespan_chunks(float(seconds), nchunks=2))
+#         ts = f"-{ts}"
+#     if ts == "0 %s" % _TIME_UNITS[-1][0]:
+#         ts = "0 seconds"
+#     return ts
 
 #
 # end workaround for :  raise ValueError("Cannot render negative timespan")
@@ -442,7 +443,7 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult:
                 label='Certificate time left',
                 value=_data['tls_info']['time_left'],
                 metric_name='cert_time_left',
-                render_func=timespan,
+                render_func=render.timespan,
                 notice_only=True,
                 levels_upper=upper,
                 levels_lower=lower,
diff --git a/source/gui/metrics/curl.py b/source/gui/metrics/curl.py
index bf186c5..0304e3d 100644
--- a/source/gui/metrics/curl.py
+++ b/source/gui/metrics/curl.py
@@ -13,15 +13,12 @@
 # 2022-02-20: added num_connects, num_redirects, size_download, size_header and speed_download
 # 2022-03-13: moved cert time left graph to the end of graphs
 # 2022-05-17: added scalars to cert_time_left
+# 2024-06-23: modified imports for CMK 2.3
 
+from cmk.gui.graphing import perfometer_info
+from cmk.gui.graphing._utils import graph_info, metric_info
 from cmk.gui.i18n import _
 
-from cmk.gui.plugins.metrics.utils import (
-    metric_info,
-    graph_info,
-    perfometer_info,
-)
-
 metric_info['time_namelookup'] = {
     'title': _('Time name lookup'),
     'unit': 's',
diff --git a/source/gui/wato/check_parameters/curl_bakery.py b/source/gui/wato/check_parameters/curl_bakery.py
index 3c7c37d..2c58a0a 100644
--- a/source/gui/wato/check_parameters/curl_bakery.py
+++ b/source/gui/wato/check_parameters/curl_bakery.py
@@ -70,39 +70,37 @@
 # 2022-04-26: added check option clickable_url
 #             clarified option 'Don\'t verify certificate/pub key', 'Don\'t stop at verify errors (certificate/pub key)'
 # 2023-10-21: changed for CMK 2.2.0
+# 2024-06-23: modified imports for CMK 2.3
+#             changed PasswordFromStore -> MigrateToIndividualOrStoredPassword
 
 import ipaddress
-from cmk.gui.i18n import _
+
+from cmk.gui.cee.plugins.wato.agent_bakery.rulespecs.utils import (
+    RulespecGroupMonitoringAgentsAgentPlugins,
+)
 from cmk.gui.exceptions import MKUserError
+from cmk.gui.i18n import _
+from cmk.gui.plugins.wato.utils import HostRulespec, rulespec_registry
 from cmk.gui.valuespec import (
-    Dictionary,
-    ListOf,
+    Alternative,
+    CAorCAChain,
     CascadingDropdown,
-    TextUnicode,
+    Checkbox,
+    Dictionary,
+    DropdownChoice,
     FixedValue,
+    Foldable,
     Integer,
-    Tuple,
-    DropdownChoice,
+    ListOf,
     ListOfStrings,
-    TextInput,
-    Checkbox,
-    CAorCAChain,
     Optional,
-    Foldable,
+    TextInput,
+    TextUnicode,
+    Tuple,
     UploadOrPasteTextFile,
-    Alternative,
-)
-from cmk.gui.plugins.wato.utils import (
-    rulespec_registry,
-    HostRulespec,
-)
-from cmk.gui.plugins.wato.utils import (
-    PasswordFromStore,
 )
+from cmk.gui.wato import MigrateToIndividualOrStoredPassword
 
-from cmk.gui.cee.plugins.wato.agent_bakery.rulespecs.utils import (
-    RulespecGroupMonitoringAgentsAgentPlugins,
-)
 
 # unsafe characters https://www.tutorialspoint.com/html/html_url_encoding.htm
 forbidden_chars = '"<>#%{}|\^~[]` \''
@@ -225,7 +223,7 @@ _option_auth_user = ('user_auth',
                                  forbidden_chars=forbidden_chars,
                                  placeholder='username',
                              ),
-                             PasswordFromStore(
+                             MigrateToIndividualOrStoredPassword(
                                  title=_('Password of the user'),
                                  allow_empty=False,
                              ),
@@ -252,7 +250,7 @@ _option_auth_priv_key = ('priv_key_auth',
                                      forbidden_chars=forbidden_chars,
                                      placeholder='username',
                                  ),
-                                 PasswordFromStore(
+                                 MigrateToIndividualOrStoredPassword(
                                      title=_('Pass phrase'),
                                      allow_empty=False,
                                  ),
@@ -318,7 +316,7 @@ _option_proxy_auth = ('proxy_auth',
                                   forbidden_chars=forbidden_chars,
                                   placeholder='proxyusername',
                               ),
-                              PasswordFromStore(
+                              MigrateToIndividualOrStoredPassword(
                                   title=_('Password of the user'),
                                   allow_empty=False,
                               ),
@@ -470,9 +468,9 @@ _option_ftp_settings = ('ftp_settings',
                                                       TextUnicode(
                                                           label=_('Address to use'),
                                                           help=_(
-                                                              'Can be the interface name ie "eth0", a exact ip address, a '
-                                                              'hostname/FQDN or "-" to use the same address used for the '
-                                                              'control connection'
+                                                              'Can be the interface name ie "eth0", a exact ip address,'
+                                                              ' a hostname/FQDN or "-" to use the same address used for'
+                                                              ' the control connection'
                                                           ),
                                                           default_value='-',
                                                           regex='[0-9a-zA-Z\\.:\\-_]',
@@ -637,7 +635,7 @@ _option_api_key_header = ('api_key_header',
                                       forbidden_chars='|"',
                                       placeholder='X-API-Key: ',
                                   ),
-                                  PasswordFromStore(
+                                  MigrateToIndividualOrStoredPassword(
                                       title=_('API Key'),
                                       allow_empty=False,
                                   ),
diff --git a/source/lib/python3/cmk/base/cee/plugins/bakery/curl.py b/source/lib/python3/cmk/base/cee/plugins/bakery/curl.py
index e9cd95d..025ed9e 100644
--- a/source/lib/python3/cmk/base/cee/plugins/bakery/curl.py
+++ b/source/lib/python3/cmk/base/cee/plugins/bakery/curl.py
@@ -53,13 +53,10 @@
 #             reworked to make scalable for multiple OSs (THX to andreas.doehler[at]gmail[dot]com)
 # 2022-10-21: moved from ~/local/share/check_mk/agents_bakery to ~/local/lib/check_mk/base/cee/plugins/bakery
 
-from pathlib import Path
-from typing import List, Tuple, Dict, Any
 from dataclasses import dataclass
+from pathlib import Path
+from typing import Any, Dict, List
 
-from cmk.utils import (
-    password_store,
-)
 from cmk.base.cee.plugins.bakery.bakery_api.v1 import (
     FileGenerator,
     OS,
@@ -67,6 +64,7 @@ from cmk.base.cee.plugins.bakery.bakery_api.v1 import (
     PluginConfig,
     register
 )
+from cmk.utils import password_store
 
 
 @dataclass
@@ -334,7 +332,7 @@ def get_curl_files(conf) -> FileGenerator:
                 except ValueError:  # 2022-03-23: added ssh settings
                     insecure, ocsp, no_revoke, cert_chain, pub_md5, pub_sha256, pub_key = url_settings['cert_verify']
 
-                _options.append(f'--insecure')  if insecure else None
+                _options.append(f'--insecure') if insecure else None
                 _options.append(f'--cert-status') if ocsp else None
                 _options.append(f'--ssl-no-revoke') if no_revoke else None
                 _options.append(f'--hostpubmd5 {pub_md5}') if pub_md5 else None
diff --git a/source/packages/curl b/source/packages/curl
index 37ee079..d041652 100644
--- a/source/packages/curl
+++ b/source/packages/curl
@@ -28,7 +28,7 @@
            'lib': ['python3/cmk/base/cee/plugins/bakery/curl.py']},
  'name': 'curl',
  'title': 'cURL agent plugin',
- 'version': '0.2.1-20231021',
- 'version.min_required': '2.2.0b1',
- 'version.packaged': '2.2.0p24',
- 'version.usable_until': '2.3.0b1'}
+ 'version': '0.2.0-20240623',
+ 'version.min_required': '2.3.0b1',
+ 'version.packaged': 'cmk-mkp-tool 0.2.0',
+ 'version.usable_until': '2.4.0b1'}
-- 
GitLab