From 2f93b02baa5e11a6cf225f5f700280e3c6793cba Mon Sep 17 00:00:00 2001 From: wpanda Date: Mon, 9 Feb 2026 12:24:10 +0100 Subject: [PATCH] scriptupdate --- .../20260208_031203_LEISTUNGSNACHWEIS.pdf | Bin 0 -> 108813 bytes Doc/Default-01.md | 3 + .../Erledigt/import_pdf_from_o365_de.v.2.0.py | 210 ++++++++++++++++++ Scripts/python/import_pdf_from_o365_de.py | 53 ++++- .../python/import_pdf_from_o365_de.v.2.0.py | 210 ++++++++++++++++++ 5 files changed, 465 insertions(+), 11 deletions(-) create mode 100644 Doc/Arbeitsagentur/20260208_031203_LEISTUNGSNACHWEIS.pdf create mode 100644 Scripts/python/Erledigt/import_pdf_from_o365_de.v.2.0.py create mode 100644 Scripts/python/import_pdf_from_o365_de.v.2.0.py diff --git a/Doc/Arbeitsagentur/20260208_031203_LEISTUNGSNACHWEIS.pdf b/Doc/Arbeitsagentur/20260208_031203_LEISTUNGSNACHWEIS.pdf new file mode 100644 index 0000000000000000000000000000000000000000..562de7e4d679c4895bf5be8d1b61d90d6ee6afc7 GIT binary patch literal 108813 zcmb@scUTkA+cp@bgM#!bK>-l~BfSVjR62?j0clYY0TDu#C?SIs=}iQzAOfNyAku3H zRYZt%=>b%vCzLRf!j8Xvzuj-IclV#Y-nqhLLMC&bb3g5Vo^#}{Tr^QpJ*~|x|8s#j z$gL%FMh1QJ4!6EO!phU%E5uty6Z(%W!o=rph-VPO^AkQ0q+?bcIvcv4{#zo?Y&DzaZ9v?}3^4-_l_Mq9}X0wdb zr&PI)ShS|Yj%!`C54dQP@s?BVBq_4sLPo{$#MlEi6)UXb7l#7_ge0@gZGWu}HY+Et$V2%~LUW6q@hM4O*EtRxBEwkj!bky?mFGo3 zlY`F=Vt*vxeI^KsHaGCf{H2{5LM9Vn`*~05uN_x~U3r?kxCxHCii`H>7&yL^ueI)Z zTBC8P|BOZd@oQ0P4w=E5$}U*yGfzIH;q;9t*vr@1 z|IPWdfLw9B_z73LM=6@YvCN&oXyG^8D6T0sw{`vUX zA3C}^XZ%$BT22lFZuA$AckgAp#{lc%7vW$#)e-mXFznM?&+75LI6og@nA^&MD~*h} zzUv5B;^&r7-iScy2CTbn$GozaQpwbmtL1?_Uq!^9jlDcx-~tLuv~8K*_;mxbm8tVM zMD>EZw*T!1Z!dOy>7Nhyd+2vw90=!NhDwX@)8$&?5l@US_P(`}vC6J?`63w4_U!zl zb70_`3h&rMU-N53YXyjfJoF%G=y05V*n6FI>VWMT-rPt< zGWWN0M`B{X91*sS3z50-Me1{`Q@Z3&7PbrgSEQbB%3nBdc2M}-%4^$qQXd{I=imP0 z^5)AcaJ?lsf8xK(R(ai8hch)sl+Z&~(}ACks%^~*V8I?) zkFjpgA@MtLBOey?M;_tVdy{mAU!=|CdT2wte)_Eg$u{dzsb&b$k!_PV8e0c)jPxCtHUSnaPRP6GVy)WH_-nF7NV>t{wnFT ziR0@R-;e&O{KLPkvnR|Ro$ryXnkoiZNu3a`JXk4SDLIs?8!O(GeB*6}(?`8gsg=aT zok5>&-c_yP4nGnu5YBcsH6mJeJ|v(<2j!}NIbNybD#ERCB{fjU?=`^N5GrNx<^jt`WN-B zrQ}=WZOm@VX(>LGJLY$6P2tt?>Eq2ZnLQ@A_=5DWSHSD+TT|Yi8cgn|H3^b#>7jW+}ODOHIaW1ki2(e#!G+3o}b=*YP zUiZTN%All8wqK?~%AN7^7v^jdPts0$o%FDe`C#p7S3ev&Y_fc9S?BNt^|x%_ZGDQW z(B9Eiio%JBuPmx8axGH61_~=4&6gZt`LndGws&JMbnom{m8;fQTb56ZXpJa+C?EO# z?*2Q4h{^EGd-dUn;i2K$_hIj6htByt^@;KQd1rM%r-Ty1>zCRqwf^$4ZrtM3 zXpCl`hOCC8_xh03_m`uCqnkrt2R{tz73|o*C|k>a^`ZF!Erwdid$s$L>Fdf1i-r9j zkGR`2Gy31%+E#rVq8Z8vm2cQ-h;C4S(DlIPLF|LI2fN!`d&&$s#?igzJv(+i_G9d9 z?4|6rhbfPg+lAWQ9x)!3rzEG`Ox6+$6*o|GQ0G0MmW3D-^6+4_>jd&CHT zFaPe^Nsq9h+&l1_ctXnDS7GPR-q$U?r}uk% zbewQ)75n3_sOVeE=axym1^2tQz%7Zzl=|iRAlDVQBL73R7i*jSZNuEcQp2NZEPN4s zxu%)jF~#q_J}ep$z1&CLkC*e7kKOg6T2K|y9h1byj_~hs^Mb$Z)`DjpiQ40}BVk{O zGw9e^MW6~u-`CogJm7p_D)M*a`*Yo`Sq~$O3SYAsjTrGo^+g#I42}huUH?K&Z`?Y( z$g>z08}&W%`&#~PTXK7LYy>=&i;t(A3lO^@Xmex$AK7rdCn}q*{CM;6-s2k=pItP6 z^PoVuK=93r0#rAq`$@N%N9j$+F89Qtc)^a)ZjXh6g%|V1qI=3y^#S?>!+f2&z2ghU z_mfU5k2<|<0YQOI`Iqvh0s{%E2`UL2y7@2J`?m)pi>fV)>+Y_fUKh;eKy#oUZ+t~8 zTFcd+$Wkz{xOZtLSO3|3u5HGqeXEE)Pj2yE@n})YWu8luc~nJ%6U_!JIT=p_?alb# za?#YP)wk5*D!)}GRu=ZY%vp2QlIIrC^t>>h^trK9W1Kh~*>Ul+yV~=GY`e^@6WV&a zX1PJRXVBN{$2TwaDr`n<;oToP6Wj(|Ub}p%xgJuq_;v5<_YXxS4;)v@Pdgj5bfNnm zR>xHP_yQ-ZPAem@^`~#US!Xy5JbzQMgIjS)5>7Pk)YhuI`))FR;^YsVI-m8oA1=Wy zG4i68rItz-v*_RcEnrrkV-_l6;&GMdr*HXpi4NZ!=0;a0r)rO$bUaN&z$c|YHwSZg znD(URoXuHnx^lzOrZ(x5YLuf3fZYrNlBzDoHq ze;d%>f`h^G;{G-)jpZ7R^W*HCX>@V;uP9XE$tdKk|V(U;oS zr}A9IvoxTjFm&^J8=-d=0}M@f-7P^E*XBqcjFXF#23~+`JMBhs;c1^zt0KHWH$RT* zfv;)D>w%2~1UOcTw>|c<;t8e8|8d*!34?oU1M2jbPs8-+3<$vqG1b zmVOR-G+RE{c$r`jT#9Hylka{X-&({HUoGvfBJa=a&?|WQMN{2xxve(*40s>hihI4l zL4)hDA7wuqCl%L#IP119o~wy zSGrgm>`$D!7AzW3`!jd2Ig$2!R}!besBl}BF)&;<&?8?bM4$DTs!%|B?r-Co{v7*z zqcf)e;+E{BY4?c;1q9L^#L&%0GoKZAB9-=CY2SX1hv6}FwKKwJHJPs4^r7+>sCW1u z`-AJA8zDco8II!Rx7~A^Y=B^r%8K897O=;|Ny{Kq%{y{l>JYW@56-?ggxf1{T&)06zR|W z&#!W=t?4fuZGTGt6cgtcFKWf*K1_M|?7$&`%p@Lc^z`|2t4;JKdv^QQFRkP?iTGRB z>pt?RB|X$=eeQb2{$L>=tisyjPN3R%GijN#l}&}Pll@KyZY9ZiMvoiF+`DI%uAbfu z`|?}KycD+N8PJb-r~K85c+%#(*{J=Qs;Vmc0IMEri>sVv%BRiyR2<0PEc+3sz91}= z%`Xku1$^tV;XJ5_aNx91xvX-Eg$C%)tDV! zR;hc*Hy8PDa;CdF+p~MBsfnwffx+uP8s%shR(yhCJE)z2W#`-B8v@eI0v_6tD!d-{jS=pZhj@1le3 z0&aMC%BX7m?@GCN!T!HWh5srgRR2{Mw*Pm5u>WJ91Uq73Vr~LE03FH)lwq*_N!SJ0 z!G9kQ{5v1~cd)YjJF~H}vamvVko`Y@99*3299$gi?3_HDT-^T-=;{y;_o06u_FG{* zoUkaCiUSAuVf!60I1F}x?LW^v0Q;}wz(E#PHg*o^w>;1d)kmN)Sy-Tv*q~vcyCb0Q zVXXXY0>@O1*adBFa2yX5QhS(@&nbJpf*@==K$cU#85G6EEg~u=E+KzH;iTdz4NWa= z9bLT(7mZC!&CD(A?5{dFI$d-2xaE1<%iHHpa7gIAFwFf2(J`@);^Gq$A7?(v%FcQE z?D?C5!lJju@7{m-Tv=6JQ(ITx(AM73+134}=j-6m@W|-ckMW7Q`GudqelPx6TBdAn zZSPQb!M}U^6EMyL(0q_E2K`Oqsl(@)M60SCn_=|v+M3#g!n(TLa|sd$vTu8|!h+1_ z@kqdL9|r0sF}Xr%B2#XlJ3KK6Yf8~9yIO^Wotl1A#}sXlJCBdn#CbBm`sp{SIjlHYw02{s2lsRsBM5CZFmN>GjC*6 z9jD|))9ngP1B<}ag;r;*YEOiiP1x<_jKJ!6rLBVlpL2Nw=TPi;(q^O9C~?$09Jd-?%Jk>LU6Fpe{6-gK2h2{)poCaAp^oe+7G8Q*&-Hp6II(gSp5 zS##_9wIftzV=VMP`7&C_G_Ma%9{Y+X+ao|_j@5*H7;6dWt#3n_?C5)k$+;4n_K1GC zprNJU{ii>Z<{hdmqmFH<(F(AAnCd=^Y=;IB-D?XF{wkvzRY)Ol6JVzsKK7u(<7Pw} zF@D&lU$_yO_GvuLI+i$nbqU2+(bIRpX>kYqa`*uM@)jwmF-8n}* z-9s48!f5%eag>T=>dLVt0=$c_BQLH+6|`RH^P0=)ILaHL?n-7BYvq+J?JC99)+Kz^ zgXeSP#@wusmC;s^3N63P$U)vsn?O;O!4yA=CDjA$EyI{P)&{t3mkd_8mKmw`@qe|7 zg9!&12{VoW1j&6EX*n+jS>3#zL(^wY*X)Hww#c{&)eh-9^89_ERj=C0J(;#A_04)( zuFKklH5OiR#!~20VTIYpRJGLNV-NorZCJlaJo!KQ%Gj!!Z{dLKdJ!P_;UocqJd>v^ zXYOa^Sc@{|&8QJ+<515D+i~1dO9SlJjSB-9wKJ_G0c0j>LYtZf5@}9Y_fbPVYy@Rz zH=cf}%uQo#B6ho|A~QqEcTi_I;9VUzyV9dKEosmQcFb03ZRkCVInlz;c-o}GI^a{A zgY={LmkQkSX|R&h?C7A%@k@A>e2H!bd;sniQH(69w%w0sPNCi4;8FE7aFR=1hYKN!s`C800^#04Xbv91YI2Gr4`p!R^T!cmZpXXB0Iarxq7q zx?gR}bv@+|`n3ky9|VHsaUxmQ)r{p06%XAy(s3k+(?Dq#&OF=)JtviJN?z!Y;8+!; zVK99gO)3#;P8iYdiPA35fnOf+tLr~Kwp=n}&G}Sc9<*T0{%KH(mrsyO^b8F>l>8qx z9lc}mKdPmubK(jx$2iCVE+YN$F_0Tw&KuY6L{=+wz9{mI5E<(o45^U07JBKtRlJHU z(c$(o5PS7SH6RAmAlLjTFR1g3{3cVHCH6i==y_T^))ea**!0&S{ZM>qzTNKelzS~R@Q!^LZ$#cava`_%y&>{j`O@1Z z8UO0)#VlpXKD6yhUW4jhs(Pw-nItuZk%yDQ4d)$fx=J&^x(^iK$s0*kK2>X%r-uau zjAir|3*NUYE{hwL&*w3@`DwyfbI2|taHBJ47+HoVoWJ;Eb>E*EDxWbZdG`a^hYrcj zUpN(!YI=v_U|UCgVDZ4RB0&A`*mn0mjJ*UP+=k-vo!LhmRCY!|(-r@w2vW)!OA^C< zZy}^%CPNI?)|u)a9+-MxMVilEj@kSFBO1Qw3fwT+Df)kNJVhQ@pd}Pyjl@|UH=(e` z;SFiY0*&;Uoisvv;N$ja=A`nN%h!iRX6$~=tfao~UyFXUY5(!UK<#dMkJfcZvEMH& zN*Y^~wzZjuTOb%*dZE}T!KhosUZ8MXP{(S5K5}}*q+IWw#J%g|HJ^wVe(S9VPH6bQ zhy~oVYRD6l-DqF#ZYggOoq+)1bFHv@EQ3WtwrcBc)qjsc^0-0roHAYWqbYULZqrYY z7xNZ2Vzq1yiw_s-=GcG#?CuSU-;T^YmA3wjLoSi&c57MZ?SOkMO$j%c$G;D|g_sa+ zLsq4=`CYbj3u}`Y){D(IxA;g9L&s9+ye~51^fdv0Puj!IUe;Q^i z7#y6v@=!gKrGdFAvVAMyi|Ng`%_sgvFVK$3eGQWA0J9qk=jhaXa2U=IwC>!U=qh;K zS#sfYbaA)xanX$L2d@#PpH8L~VONo)O^64aFxT0K#RgN9pp^4{A4Zv&B6riJp|HyO zVw4pir(d85nk)Y_|BZ3%=T8o>&R*1|mRBNgLcdf}SY@FBUnbD2c$%^I#7w!A``sC- zIuGA>Z^F>WuZTykJL+sC?kQ_oTR8tO&ux-ra-XH)uqe48i&s%JZ{`q_n~}wY(+`6Wi&qSFMsqF= zZB%Pii;&H}ev`QLID2xF%2A3dC@D#f{%1b_?KP{xl2TlBfS|*yTK+GI%CsT->fVR} zKJT_24qL!?TT3`&fVLUQ3g1!}`zEZiw+=Ul!#%lE?|N>_@Ls~nV#A?eHi=a)z>Ka~ zF<$J$Zu*3-af?5b8PRu~55A%KH9B(sB7zPpm<@;c`5-jdGIsW8Z|AYpI+bQa!TT2TaEzm42l`*_bZn1?h_cVVX|&MUSt{y;_Xd*Pic< z$-cyAO}P}+*6`Vc>jqDO+Qx+TeXm0%fiE4a0D>8w^nM@q8K4V{&H2T3;3vE~a(qu$ z2aPh}-!+l|Lz->IImEBGCj3Tj{bnoy>&8J)jI=_4D%z{iaBME0MppM>UVR>RLv+*E z=POsFg(!#LJ=#1eUXzgNqojPlRk=9ooaRoeuJ}J6j|xPo0E8<@QW?Bbfi3_sJ~2x9 zny7E7JD_?LC@zDj7sE@(5IYcB*noLa9 zcxBq9x7LzbjJmVuYVLQmV_o2wEEn(h{;R=h^W{V2AazLZ?i`SW@(>`=^fS=e6Zb6# zfCBq0x39!#idTvA(x%g&^XdWa_fCD(@3MKAdcQmga!VAbw@X!KR3LrOY|L+lte`N3 z!+I2pF27LZGxq$+y_Sn=UjxLcUoX$TE+4M;YuETk1nnJjY8oP%a&js^Ug?xHSN^Oe zEOaPa;S(&hylWpe!NTM_#YkfcF~2*`9x{~15pxwOagQ`!nXhip-TWdB*VUbzbhq?I z<(xAj+$^f-c4k~-JV$zO#O77!wE{fM0X*AI`#aF1bHXZY?`rRfu^-bmW8f{5L&?q0 z%*s|U`Y>;SgMo>m!asr9v^CuVT-R&`z9VlU*cB6nIolQ%Hd^uRhk03>P)$r8^|$vB zlMU5go7&_xkBHAz9iapB3|p5q7uVrM{P4yJ-TUh&(tBhpc9c7qniVc5&*wndbY||qj594!Y_5q|MJoyrl7a*wZ!)_oCVGq%i zRp$H7A1lFZ*(R|2hnhbTwc1emyV7|0 zB(aK=x39{VPEfH;JKCr6x#ESHZ{yXJe|d5<`MR7 z)VLy&{3S4LT}^t299`Bm`Et+(HLyz;zfZe8gIS?s!Dt#krr1es3Y4_J1hgONIejgJ zRx=(bk=k>#)p2iHg3 z>Rs|KipFV*A_DXy3LH!xd71%bAEtQ_&Ja`qyb@nr4mP@bM0GUt+oIUUxy)2Y>EXGT z!A3gbg}j`7C&+q(1^#P$gM%W3E=8UNFx)OqR^!TLcAugzO!(*%)%CM`gV7nr$8K_o zF?{ri=+P90q5Ioc#PP@;X0II{*;wX}BsH*NYn+2k@&-1WI zkNTnQeV8zqJ-;V;zhyM(_wlbCN`7*;?v?*J_%FvQijlm;3uo76vRn+_`%=y_`P{(S zc{nHYE1V0*>f`(}{TimX%dz3ndsctb2|MfBs9xQZL1^5_UEuZaAb`POM;bX{%X1pdxG>^2{$0dycM za@HEj1=M%oHQKFfm>dhTcFJmK1j=}zlj4_^x_e~TwAB7R6x zA2RR&=~X($j_N<)Iof1O!i!CU$(Vc7c;G{8_7*|ThGn9-tw}2N2IA8VaNDldEoq*#<#l!hRHx6iSIj5kF8;1G@Pg@y=Af(A> zGa8Yxz)`pqk`x1wufk(z;XBBvPt2|v&9U1O9qB#~x{?Z;`%>t}{XGkHs7xQJ$7YlL zfzha8G@U<Pzn5&cSip z7<(V0mqEBuR26YGlXi@bplGjlQ^q=_4-QuY@te+f9>m3l-d8TJk94{ulaQ+>Rz~7g zk21zW#FCu=5KQ)AX!L|Hle@eSi(upfcaiZen&h9koTFv8zSAw|drNv9vUSo6AL&ZH z_f&{ZP9EDXHpW>3gn1Oa2t+~Hbq+H5efAzcTAYWcmipZ?My~kz*_6rIt!%|x&!Kw# z7orZ!pUS_(cn5)h5lPBsSqSTvoCQzjbk6eK&lLkBLj3d(AO3c(XuZmDu@1H)vTVXf z-wt?C1X!ptrgFEJ>5%tFr{YQP0wGW!R(#_HL$+0KfdFE$*Dl(LI)d9N zVi0a`A1horjB|$WEyyEZHE-d8HfKDy8fRb-4Qu(XFol3)Bex!2vkW<0hSXOqIW z9_DfEgjGlTwDlDw@CU{EQ8ker^LQWDW~eauyJEPiu}3A8M=54fPSB+DsMx(@4~5Ss zGGw5cIJ6k_k*%3LY^2hI;bV#I-4Cwr!{W-`IJ7?d8Pm&&G{1QPblj=`$C3d=9{K(l zy>PZIk7}`s-!5Bjc?dn>Sdc%?;EXt9ChdE8AF9Q9z3~kOWnM?&O9*ud=i$+D_AP1b z8P&;8F}e2a1q`Nk+4>IiIMf+J@iQgq*CFqTqI-gQWSp5CxxbzwXx})nu5xa(?1t|n z#vV|4jNNE;hhYfeSGEu1YVsgwGCAkS>wFSEL?11D#Jd%T084&Tk;;DTTbZpb)+vJv zEbbmqKK%(v7R`hz2!brqJB~djUddCC-;6? z5|i^E9h?Lkq4OgOz5~yLwF2RDM9xlTgih z8DGB zWgv>lcM#Mp#IAtD~;MdFL!tFdd}b@m(TDe|?A?Rlu*-oh0RKc#vdlsTiru@l#4I6_{e zi^wv0Drs8K)a3OMzWKg;zL@TLlWK3T?@fHg?#g#Fg4p_|o*G`1i{fB=8C`W<04Yp& zgn~>4^b6}90CFZj(2IaPyq%)dciWBEfZKfRM%RICa~{ev=Zc#nU5JCpt3pQ5g)O0s zwJB$TARw0RdV?o(-b7rt8v%m7hCi_xFA3{i2S97 zs+?s!;RLp=su{WJe&XeQC{Q_$E|o)re4lWJZlv9ck8>Bdj-M44fbBj%+PsnF@y1`= zy2h&B@P?S71$OeX(_2Smx*+Z&xqVm%f&+V%Y?4Wlog>DtX};oc{gg;E8wvRvlRoY8CI9io8|?=RB`8GjWG!6? zO$~wc=7}SQM!x9Xrtd6n*2q?T45>&D#l$1-;B`!r@l?(;9hMd$UbosRG;m~YdE&;U5Ziu;|@io{|%G_f?-Jcs<+MDXL%@I%y z&H68Y)EP=MM^M5csPS3q7-&-ra-b+|Qx49Eq!6Xrh!f%O#gqfBr3#yCe#>xafBv~C z6pX6O^%C#GWo<6fg(aEX3p5qTh)yyEj36M=B%bU&sx67L=E10&g=$Y!B@L%c8FRn% z&#F5LyM4@huC^Nv>Mt<4ITjE{T%p;gfa)YTyN}D$Ywe-Fr;CCis|t8qS2wBW`T%F~RvoH4_5?{sf9&*Khk zb01a~0t^Eo^0ozrBe-h~u__*|( zndMjJokO0!HsexA&2iY|NcEn+pj5&uZYC3@H@47C7lCM@4dWd|2T(QC_cVkzsuCVW zH+oZ+zICbfIS8s67z)Aq~L+}`7J;ujDKkQ@)`M;jRNnvm{ht59u8Jk|+X z%u^8QE^p7{p8Wz;<%>|vYHfS877kggE)$8y++3QF*+MOO(k1{Z=EY-Cj8YOhZk88& zwn&+lY3?TC@~Wp__*eG%@ukPAL@QpUjag7Ohkn$91WbC(*JRPo;2>7W8$vt)_PRdv zYto)Kkp9)5_1-mCWa8qJ?Aolf>9fzo<6RNr42XL~y~B;S{0qoM z-;iq*bo$V(>@BASX{RoOOE&=m#2-jy(nx543s`#!suLdv=h%je&SHv<(kw8clL-qh z_Sa&H(mRagGE&32nW+FN65>8i8;NkT6Z{dLzbTlaJtq=9r`RN1_T$GjLcS~U)RZ#W z{Fv94Q@WAWp$GpKyByL$J!>k&G@?RrGt%me47w;y4b<+CKtE!8Ryz{vLaWL}>rLpU z&Pm3S>ZN$2T8PlS0+6v>H9QUwobk8O{Mb-1gN!#O7yV9}uN}Pk`TM&3W5pvE)0&={ z>-Ku2Dy;x1Er!kDHF8)dAh5l{xn4}(jYEW|5%gIX&Z*hSV1z-X<*W(%2RRX#bO9TH^d_$g-`;o>(Xp47xWmVX@okkp+7uL;RCmU%_r9f? z34gTZu{j+U`6uw$eVFGgcvgYQElab&P0#W&g{MKuRy{EkD$yH|-Jr*F#F&)6`?FAI zkI5alP!7tAt{uBiGso(K=t9g}=5D*Tg!)p$NJm9SMX$20ILpNg{_HXax|*~hDC9zZ z7M+aK1_(|_-&fYuKro4>k8x=mbui?uAI-TkfGE55tT55rgFi!wzbe6ehvb+883EKx zT;7-vrE)Xs=>SaugQU8VZ#NfXkhYe-evY=o{)6}1&!=T`&Y7yDDy^fyW1@6n?Rh@B za69!X1+m5f<*~7Xs(YS-ocz>ubykhqp_@>yMwmS70tsZxnhKuxsW!Q&Wez@QE+-^3=-*W5csYk)%cVBRC96f^gu$-{lj+ z>VC$9#S{CZ$7qKy?g2QWftj$X7}_wJQXO}= zh2^96;Reg6;TH5a&=6|?p$#q#kRV!FRr`p^4YH6pVwxP^f^lt0CGymYh+ruS{v}0? zUy!Z)E9b^lJn1=#99$fO_emQMUNBwLrFnpSM&uK($S<$y-)n(4W?$2^t}2Oto#KUl z?v=rPDtbNOfac#_$o=_FGg`3MC>EBpk$7$_-yDkD6z9-wIs8$Yxs1`if&F_elGhZa zeDY|s@3t(H7emP|qQIG)lEql#(d&syeZUoRSwWZ(EPn9XcMC%BV<8b8YWdb%TV@o8bSZ!I$YXxvGU8e2QW6=3+5CQitp!j`&rH# z7S91cl;+qU7J|0@VNvZJOqJ^J7i;GfWiB6^s%T5ujXHC?+is$m5f6~I@X627sjFB7 zEgZ`~plN;B^=rm7<^>_Zpm{A)f!(3@w)djV@P}3ZI)x(0BH8G!#m-tLAEZDW{m@{khLVrF5+H_|(SE*6 zW_hUW@Q!fIjwm21=dqrv^m~H^Ak0Fub|4-G6GBmFc#oA`i12E=w-2kpN6M#Jjgt0+w z|8r~w9|Mr`nVJ*@I{)ukCbtW+eN9nwsYNJH1kNir7?FPI=f-B37p{N2-}i4bG|Lu% z0JNw=?tn7n!`RKiJBX1?adHYi7Hc-q**p^$7O2#}=1;zRL+OYRhl1>26N1TwhRB%+ zC5JAsLj737D8aIkS1c(e#lHFOOX*7wIyOz&C$p}4oj5KjgJ3DvWQajeKM0VTP@;I! zCnSH13`Sud)jG?Iu|RNmXV;Dnd547wRJU8ICYSvE7yuKW$6qe_%Y?9+)%OiK0Ujok ztY*$#@~|Dx%elXKlQ<>}av4AHS`DL}#$IMr;eD(*aoeUT@@Om5@_PgufQSvO<+8;4PMFDc1id8K$AkDsdpwT_inIkeUw^sBEyc>9C6Wc_O&+HVvsIoM7wi`Mdr=*Xn-G*%eEu0Y+Nt{l2Z zFO%DH9u6vwt&PkhQ_@lW`bUe-`bfiue%%zAy_AqTu9cgnbQ|hJVR=V3^J1apIyfts zcbSqFt7(2W)Zo;fQnTUabWM|>$=twjYRnm^bB+Ly7t@8(+VNz&@*f`UD9NArT4}_P zhlFWb$d4cXHN$gPq%SpRU+pMaWsdChX_>G{Ic`})6yRS638Im67w93?kZ$AXaPo5d z93tNF=44k5wc=H_#LVEupL`8D+=ZD#eGW`e7;I`~myxj8gS4u&@Qf)15Ug6*z^@Zt zDQkxEOE=uut%+xnDf=*%PQYIS>d-rG{)NVQ1$@0khX%S;*1He0STET^QNtLY@ptg! zs?|vFc3PUWEZJuCqK7@S=zycQQ%j$XoWukjTx=aKCittF-~cV?)f6*XkK z*&gMB>|0_F{e?w#JjUC(;B}*+rrw z3_kahB0>AGF)ij*x*T)V6kcuGL8P6OAfoqh&++AHpo~B?a*brIM_Vr$zg>c&w{6^^MiT2;NJmKU1(SP+W_qWErG@g6DM5CO z(EvB-9_7xha<3d56%RKZtJ{)OJjPbXBMCP`y@qx|p+QX^Qrc<>O$^MV7BJG8r!Wv! zc4X;ijG{6O&~ZtqC&Cl1-XnSZkvV_RT!0ZQ&4O+YA{QdU=h8a!4q-2nTk%_fne8VAHX=$zK%`ZiPt=vih;&xem5s?_j6T{rvqeB1K0d zNzoYq;l$1?ANCrkGQVbu0^R0U#+Ci@945vd81KDLclo*u%aGQ*SssZq;i$nPnVkIl zFvZ7=+kIp^H=gCo1 z4JL03XiaE{HO9X&82eD)>4sr62vgf%%j@o&u31)S6Ek`bUiTi4RHQz z%H-1r2@7y&zuHB*DA|^F1z1HuZNZvh4ce7%bl&~o0Qn$2!K4uJ?Y^6kWJRV_C9NSttCJ(&ZmqjTQYU`R7u5U(R*f{5gAY}n1E2Y z*&>W7AW@%D04CQ}npUsJLZiWLr3e&3kN53+zjxzilA&#kvg;K+l5G9(Ly}_iO-jte z%a8+H0|+;eq`X8gYN3Krf zF>^^`GwuyQ=z>F4yB}%-T43ya&m^KgEw(YNI}MLffcVultdVcgtV`=s;fcSVz1GSe zhmW7HhJHA)&mh$&6CL~kTv!KI35KzIp&v>Q*AV~k7;6yFlKm` zqTO-ySg7~M+ao7xKM$_G%sVA#_RO;9VRq1imoQb76l4m00Qn-{_&$uuRqaFCm_Sl5 zYd4@{=x!e`6)w++wKS=hoT90FaV* zTeuk6Yx3XUx_CDoCC@0-`^Z)1{xs`5d9O!BNJ;;7?jNPU4;YDnCo&#Z(-* z^t>Bd^|o`bx7^J^_bKCCJ_i1Le11)b6r9L>fG5@Ek*zc!w6EeO!)95qsvoD9alE73 zb=7#bW$ik3%_pgUZe+x<%|F&YkNLv=L$c)Gu0uXXLz6kp3fJaLT%Du{x;>`3f(9Sj zy^4u}iasdQ2FLKLa+@pxu(SHx1 zq#-~gkff}ce?n9O^&2IzP=JSANS*%Z=)Te*nAYO*x0wtpKZ{AfncDp*ff?-xGd_alB{R9N=-}G-ADo)bb#+WB&Kwu8t&T|dD^U8uVCdGT~ zarUO)cY3M*$CzwnsK?@`@*e;XKzM`y+)aR|%<|z3nf3Q5YLXcn;1YE)sU$y~_M zVJ~XZRj%wsx{}E^p-7W+3eOqgrijdmN@&ez5+MqD*^qM!*J~zxR}~Kf?K!%>#s-RT9#ACz5KJhH%5C z2ad^*_$^R&Ku6A!?KUPoY#F(Lw=W}T_Cgie;CH#ubGCVcYOZ4GfYEJ-uk$7g(pd~4 zfS`jXMZ%#CAc8CluNK!>XnHHTs&%6qA>vgD1!FrQx$xuWviFWTXdbH+AT5sKUzUS9 zbN>+Rqx(YzP86IWpNRK_(&X25fb?u1c0^~1QbXH^U2=BAJq8Hpfu9}!a2?ke#cwA% zGsQ0m61K}X97*4yZnME0l>BW+(wLb=fGE_4{0z*k=*=hVc`>;SHAu&7Y)V%cg!nxB z8t!WX%>`;X;zThh+o912*|wau`BERbOJ8q(>d1(mWDkZBmeoiynM^KX zA#On8^vjL+SS55euh1#symjTA4! zXP@$_qiWqD_8YAXc(@Sb5{j`JjJMd(V({(Eq3(}&0$hl`foEuqb61LlavNPV|ICs@ zIHJl8B_M&>?zTuSi)Ks_=hp1nCT@+XD)K0`zBv)fk~mJ-@?`tC<%VD1#zHTa8p z4NCP`bFJ03?cjxzHd9}Gp@bd%6)N5hPmbYKK@UigB)@yUethkFx1foqUXMEehPoHn zFeuJJk-IW~MNj0ZlqVZ@0Mh0!fNBjT)pc*6Ty0Q2oKN1wQ&wsEN&Hg^t9-){vxJ zJZIBI4~k<)xOEjc=wco~)f2nR$;I)gKEMdR)h8D6fO)qH$%~2Zs0FT**W<$9x%v?^ zJnn26>N15`_hEY_R#-`}F(WV5T@FI!X!kyhAC;d+_J^98ZEC0X zFtS?2a8RjG>6iqqAV5L7;ijv1uF9ZXRo2&ErJh|k>n_hNq$@?Kekq^Nq;@c#Fi+q* z;Z?QC$lHjd2FpoboWRJ>s*Gtf%csFl%LGT{l1rj=j+ONOxDnqO4sCo$?BBS;z~gu( zoLUDhW(76e-bH67ed%GSqoyLD%_hQhh?_2=HZuWkU|i|*K5Ve@!ww&)j-uWNxhV6C z3qf>$P-)IuG{w+BVO6$c2434jGhEPG%MH@{M)DHtSE3foLnK3+$rVkxU{yDS{XbZH z51^*Pw_gyYNtY@;N*9pcTTrBl^d>bTAR;2t1OyTVks?JvKtYK}Qz?;-v`Ckt2#BF5 z1d!em)Nmxlef{70?wy_a?#|xXonbO?I63DnPyIdR^(QmLoqpnJUT;-o%joXz=_@E$ z%wTzf;DZ<)q=<$9I%$A>z$Yj#i&$WfV~Ty%!Lt0EZc7|Cu~*AJ5m=q`q@smKRgqW~ zEPpA#_i}DJy7iyB`%5~!xgrJsSw>=04w8se7UxqP%>BRphfPwsq z+K+_u!na>+!4JJOQ3yD}81~1+b^8D$mh+(wjjmGw3X|CR2Z+7y>oC&Eb?o8ks$Dds zrqHYPnKlL&pun9(i7!$?JgasozRYkS^aLM^cBkH;Vh!NTY49st50TI%G6`7BoRQqLAWMc4nS`VU9y|*y8chQj`edrDO(Y+ zx@MmuS;3!yI)!D9$k0bX?-sq-T#SR2^YmCd&`c zWoo%tEbgZ^p>|}c2Ej)RKQCo{<(|Hv>gjb4XkIOXor8pL&jcf?+dDTFo$93ct${53C$! zB~&*nO&YANMdJ<|sf?O;rKJtZTI7)awPW5}z*CKwD~!IH&ETMYGc;i7LTQhHgCN%ZY%R~xkj9{dkWvt5{(^q^Lt zt|7QJA0(E(8RR=&vGtH#IhGg1iW1E{`+l8H3Qv#t1l#EcuekxHZ3@5k5qZ#yuHU*u zkt9?%Xxu(sJ}bS7G4R93wD2m(s|qejIdC1xa{se;ftm})cfbhtR*p-ZuJ6&J9kIT* zgb_Q+e4E+{)3Wp5Dt1lnx{A#7u5>981ybKc2lbtp7sZ_!b#06P(TvL$7_#&Yt9`fk zfWejYkD5m4X<|5nG5S!tP?nZ$iuj15h*^^9C^pnWEWXrRnp(m2Kxu^_+yC(Kl*Y%~ zat#db$&X)$Ui-l=`M?@4?&cwBu>1zBlLM+7c!K}{!lO|Q`FUi;I3I{Rgvi!gER^(u zP*E9N6`w{Lp3WHwJ}EaMufW^XUK6(lh%Fm@A0G!|1qoOP(@TgR>lQ{OQiK+D zWeSW51J5IH9BadLF>6l~{$w>7)5)=_r~k-3!~)^rPwU6>A$jAtpFZB5n>oL4~iJvuA-K2C^nw4iRl^~U}9Cnwk%@x@Pc zG`A5zW+rrIGG&oXeQ6z$V>Fp}C@~5>xR^$9=uC8giU=ml@RXZpd{yUcYaoP6TlAx6 zd5%(kuf}xv$w$BhuEoJ15S4jIdJ6S|YR*O2!#LH7>*5TJ(H?z9qVMW6WAAqwA8j0e zb(MAJy`fsDw-}(9vcGi0_WzQN{H(11(oI%Wd2fM78Epth6ia}o)f&DjYTa(s;kofF zWoGwj0a31!fccJ{r8e-8I_jU}X$7ZU`~1MThwzLgPf*EfCzX593fwxga-m?hX~`okXQu zz#cHt_sles9vP&z^&?)Pn%Q=!kC8Gw)AaB4x@@WMfHRv+!2-u_46%jy9mHv&{Uy z!uIpn%ev(2u;5RFM9i#-@bR-^)^csV4KYh(Q=dG#o&P>X-0)FUcOG^h3^fH#@(98H znk>g{z$knQw2S7;C#bpBz-qK8$1Fa-D>xWRRUl76nt$n}qCigRnM;4^HuPMHk$@Y3 z&GEPvl(mrDVZ*MQBIXb2honrEE>96-)D(j5D0R`^(kpzP`XHmM&vN? zAA0kfUw1brw;FE!0bXh1dl0i2gyz5lg(k59!ECNS8?%zcMbf^mN}+PeHrs5e`+7We zPnhnczr_HRk{}3Dk-CIY-KUTzqnDQoK;`n*o@kKK>51T9b1cD;Iy*_}ET?j8+$^O( zjSu=`TH!%ikbXP9WhaQN0_~Bm5fR(U)h0g6C^oMRHP4pRl8^?2y1dNGT?iRnEuDk2 zh!k;NqFEgt#UD7YM)*ki+H&Yj(at|{ybG6h?U|ll_U8w7;fQY`+sb6C^@ZjW+wp{D z(v#1%lGiA{iz52u$M-39UV=T}&cnYw^|OUIkSu@zL`<0V|Dp!{JVE1JqeFFzX)ch( zH4s$cDGG>$3&yFxhz5BoO=Ng4nNOLUYVGJ^Hk2zwz# z3oP@uUuS@oc7R8v$|S&d6c8t_HInx;KAMEL=^W}?DH;enCvNTEKePNIH!Apxs)6Yi83ZlN3I)7-i~ zlZsD1H=EZ|aC^OmQ`Er#(V3`jgThxJWq^@rHAaPTpzQ7$ub&PgfT;2{$ThNx_HluU zrZzLP>m|~Un+^UoO@1AE6C+4*m%*$_n_0($-~$6-vxHkvDUCIf92Omb7b~wGhrB=8 zzkz-_rC)XrwAWEn3hm2zc0O_HXZmT(_VRlgCt1pYDTb!1j3pz;9 zVy9-wID6oY9-}i|yn+**9_vr+Y%l2vs8{aQz%L;#NsJYkx>?{|JQwI#GF$k#$CBO1^-zfb0W)_#(6pMPQA;v9o!=;Y* zeb_ypbl?0D-y>Cr`P8RypR5^uP=63m87D(U(-@)fa}$lz&ipSYmV#2}Zn8IA9QJk- zd3{w^3Ri*Z5yI~s^8Fg4&}C8N#MueAP9@*}_1@fs1lYQ#F^`{#-rc z-e8H_08*Pl+`{{V*sU^t@4+mBpJLGHfe`Kv6afD}uW0e?-iTp)4r;5Y<$w;e`m~FP zsl(#$!B}d$RR4(y=IE;myrGN*>AX%@<0Es7)gkKIMn$HmtN-f#{`uuLW*tlRF;l?aeXi+P;!HzcDj=Aom~aBOd4q&R;{3 za316Wmc35Y>}*KD(xut}ASkcuJXD8WX2F2u0Zt$x6Tnh|&r;-!uyz_M0K!NUKwgnS zM8*jxY|}NVFJ7x^A9XSw{5W?z>HC9|e)kZbsP4zu26S2zYF1>aa>qK{N6}q8bulH* zFet)&$nbmLi249mSY2N-jY+i(>y8cP`lF$o1|xwy zbE;%MHmQblO>J?f)+d)C-Wm4`vkj-Q0E>q4E;a98^~;P% z&%8YB1O;9iJ!Ua}W}6bUnBn1)HoH2!FE=IDGyJ~8#%v|Do4JmGYXl4FC(>9K3F^yP z_c{#8bhM9XZbbu|8%--;4dSb=;jA>vxLE7E{iHmrx=3nTTqAYn4xxXlz>K2gVtj!jN+hd9KO{W^q+|{)DKl-1MOH=2@8kMDn~3^9 zUu+I1-F*>e`}h+w0s91C`3F0J%G>JXP>L4yO@5D65#kt>Ba-1VArWQkhac3tH{daR z`(!}=QEa2_%o?ehibh?}N@{Z*K-`1z{|Y(2F5Fq@Ip;ZpD7iM3{4GztO`BQX`R>UC zg=H87h)y(?{4cViN{K0@$Ov1H^`ZF@lGarl;(Sw=2eO!q%!qOV<%-u!mI4Uf-1KIAvf=8VgbUsm_?7l{&rK(-6iCTuwN?3M6uY zI)Qc)514NP<#j2Simm#d238IS=HzdAo=3ObtTeN=3Zo9e)3^SJLB&695%^#g`X`n z&imj?x?oCLa9{Y$h%L1e8^9sFuy~OEn~VSKl`i&4%uvG=KHIA-y5@Q6-Tp?=!6uby zNgd3m1xS0+mG}TqEaM}H3!bq0^kyY7sQcEV+@G_Z)l0YDM5EXDjEO1hV zL3zSL;@1Op^B2|vl~rRrsw|qbPZqs;OZm@*78hme;d+6F3PPgE($^6LXAW`Y*>*Db zl!10Mjrn1p4@YUx*`@u4RgSJ}S)Wd~XUs#GO?px{wW^C5IrtA6O6$_5xDe+H%CF4| z+zZuEZTfNjKuN;L^LPa^>gw#9H=LII6dkCc??mw#qD}cyjXBLo)9_r-I|3@xTxkJ- zjvZhb)b4@2(MV8Ih@r@T&{my1wp~NXBI-B>1EoovV(ughfBY-vZOI+=FDWl;c=ZKEzcK{gVVt^@JxQiwJRV zPYWdq8z&~PRQi$2DZ9>ZN;rmEkqCct9ie_?-MebJ;wTvG20=F$%7$@ zXdw!t4^e+Hpr3=w`?IG0`L_D0i0>D4C8D4CX_>@z+}4p~mcSZ;aw`}i{9rp2us#u5 z2_dkZCp-t#O1&atqMWiqD8|qwT0F|GXU?w2oc649hRY4aXzrm1mRyiRaxaMY7WD4% zgJ{180R-###wlmsbXUe>`YOKFPTw5<) z0gU=dXABZt6h|!|{ELUzx^w;Pz_!kYUfs32f`7faEe$i0RYAC7YLWe z__m^4uIj|uE?P@EHa`yF$&z|+V|&Y|8)oZ%=t1KE_IW}f?IX59v$78{qd-c7o>oMk zL-B5sX2+5ut;04hH@(ZdqG}bqs>P2;x+R#t54P(p3f~DQxWi|7NfFfh2JwW_Ma&?A zGrDw1JCmXt{$kyoEBW`O-STFuSECN!hp$MT&+glGYMGCJ5heLYH)VB)GyG>JN|?3< z3{l%Z8eBp@%45O5w>Tu7>a%@kW!w}`aW3NyQYCV~y~Z@6@Sj0XF5LDlGe$JykJb-cjoWu44!^{48 z_+L63N8I`p|2?AXlI#Q8af%v|t3O1@n_6T+_?jB|<~q1zOg}cd(2WasU6>{Wziyk^ zB}IJ&4}^&#KX)l*qwR^6X(5q8NoQJRpR4N)V7K4o85{DkQgt9;n=r-D=1}5Y%#hWx zC#uoB_d63@Ao|XvYqI&5~H7m%fhzrzq(bcc0|YEc5N^1B@Lh8$TCq?|3^(z}1hu(mR=YP~pM=H|{CMonZj5@y?L2}EXP`-Cf>zK+u%a?NS9&Y!y!*fMjO`DOLcNqXv=KX4jX z#9zAH_s|)@E3*- zwgxeh1^T6B^}!p)25p%sQG{&RY%v#6Gr#T%%a(MQcwTSqUKjtYmkAYnmHgt%Z>#*Q9WFMMs72lRdk@aa{}2`a4Tsd}NiJV0 zA>_+IPqbhs%Y>B^4CEq$L`sF&WJ>RB?N>!epIOemwX-H$6AiMN#Tv-UL0CY0_&0a5 z`uDb9OMdQ>i$;#QOe*zIGD6vdg2SF}v>Nz)*c31|?2lImE1ZDpcIe`W6CICp1mf%u zw6|QO%=Im(>lAH{z*O?aGo@y?GDkXXX=L;Yzvv(Pwxh@^6P&G}rf=!Qz}S6|AkG~_ zlw30J>*PKEIfCr^u6-(!!$xN@Q`)P)MPTjTobC?d(Y!1We3Mw;VEQF-%wml`$%i;! z^YYTdN2cePKwL9+gIIMuSJ6R@-&ORk%`H=8JB1lSYY&Vibn!#~P%s#mcAAEWwIi9! zWsX$EZD4isf!F=o-yDevW)gwHlDiCde@a=^~IKClEO( zLYx7()-ytVUb#OvLhB()6buTfZ>+%(1WY~_{{=Q{i^py+fGyG}+*%IEYFuEShH|^L z+ipI8y?J28_^xe1r0mAFu|v0o&}Pt~AIS2WA&bYEL6bpb{Wt?^S)B9|m+*Yx&-vcP z@4Rklo6FmTyMB51{dVlLha@$(A_mrH&&iQG^g%3eVvfjisE- zy5ZujGR~u%LNl^x!is(((n!pHqXKRQ_t=9I;9X<$T_n28e#pnbz2twsl*O^`twQ(> z+(wFHxe2P`dVZMurhqm}o9<#ZtDed(YYqoW1WWK#hGcFx0K)60wl(eD&v#KrGi+_o zj`dP6od0umawVLc@SXip*ZPyl_bvm10XwLF9O2zgT-zyM#?DqcPF~uWry~@QB9q2# zj24jO+lfGLNEYe*7H^^|{c8b&_>@c$D15_We!tO-dtIh20GeL>fuDZ=r9m<*{U6fYmyK@{_JoD89K zxaQUMu2Wx56+^w>OakfODaEp|UyfWWp*;rr0zK`EH>dEnkb=iiSK%`U=c6^^PrG}x zldCnqR^FzJgzM93TMSO#1wB6%2I2S?I4~vI0WG+r{Kg=sM?tp_Wi#Tm??l=j-NM=D zr?I_k_e-$T-7h!hPx-;`vL*;0Uf8h&YYi-`gk*WHTYv zFlUu_;{AI;lW)hFPIjCkRFQ5I1<+;RKE3=)Hz0m; zqP%`$+vod(yox;IFecmlqGu$rL1!|so4VQH06(7TB|QV4r|o@gJ)%D=MO>6Xd+|0< zTzwn~LwL?^jtgd|e;}M6O6Y%ZME^Ga2k4mqls^-+j^Z}}3WT8mawV)SEB9ddqP6>s zgqqqX_9EaX0(mceA6)rv;Y@j*=V{h`&oTXYm;w=)<+;>EcrbPrMq_;%PvpXzZzmI# z2MXySNy`@NpdK1)7q&^Q?4lUM+rE)^w)VveI}4Bo8$di>Vy_}*qLv1evDdKojFbst zwDRSx*bJkQewx_3$?|viFZESee2qA_Daifk*oS`PbL7`UnT93AOvsXQa)*AoCjzk$ zE$P(KP~VtTmLKE&)zs;{ot3H-9kWy+O*6t4lG>y2Ga0&11cFv33nJVut7@Z2!Rv{1 zDnsyA%#H~DD;iZ!5hoNEymq$?i40z>I#zq~DQidAnKmXf#}6kHj%})f78-{34DhvL!Dw-ZZnpH;sI(F zzS00$@T+j~jXOOfE6)KW)8m>w>Y?-AEK8Pvc?%-xz{8Lwk)RQ>TAU?F$d-xY zB)UGRG0?U5bzDUxgfc* zZd4jgmwLBLb>q+|l}K-kcKD)<6xj?l3Fdm*RF*wU$L*wLDNDy0bhtAW@loG>QYj+d zeL$f~zg1kMDsY)S_dLEz^7P{4gtKBl(`bMf@eK&V^|c*lLh_PL3oy!PEI52smN3NT z*qXB+Lcg)s?)>?C>eb9+W7>9WyZ1-$9@lDCN91WE*{LdY1u`tp; z*mioAHZ)Ra}YK&A|seuh4qEh|tO0_k= z9HzItci?NMHSkp5=}wMqADj@nKoQwn1~^njT>#k|`Jrw)D|Oc8akKDVvU0#BNg{t^ zj7nozGrtnAwAnuYm%A3T3V%qTRmlpFDE!p>6yMO88j2iLMHsx)GU|w!n??k#nld+z zC%O5`J~B~5-zfxMP zD3uu6X<9$(IDGLPHn@go&YIX3xbFcebZ^|s9V(L=Y4)gkaL&o*!v*=%`p!kNvh-VM zNEt)n0bWlxu+IG-f;B)KP8JTYFkKmz;*zu zuG&g%sQ}GbkGmW8U`T^$E<}wQ9nnOof)nueEP4a_)@4?fr4|rVfkUT2 zU0@U`jQS$Zl7Q&O*4y?izyb^T`|M^RY|jGMZ?+n^!*_<8`)3tz<@s@rmOi6&+(S%) z1SZL)xW9DAu=wl+j<|TT&HA0O-VFl|!Xod0OR@Uo)wit^6a7Mdfxge3^KP37ie64o zMT~|}1hz;&sCgh53u~?@A!d=xsYN$C6hn3k#caI_cjmYH9TRx;E1Ky2*oRB${O2S? z$LM(%F_hy`G*%)pp!axmdpGuNR)%TD=yifoRfs_GZpQfiCK zTo2pU9wPaIX8VLuDHQk;$2lwP+kW+G)b-{VmTSdoCc(@>bf6FI<>!v{%cr;hntQ_UibX?{~++*7Ia zwf?z@v%GS*>LvMQbs}|sxHhA@i(&PyJC9JKx?7gl2Cc8W2L&Ax*Z4G{uQuTb4JKZpLY%_&YmP^JBbfez2x7OXb|6 z`|-n-7+VWyT@H?~JP=;l2C}$YAF0J3`%dUmoa)rE%bxhe9}$>sebP|^E+tNg%n>I} z$O4@lI+dL!XhQ4xZJ9-=8=uF53~sAb^-JBPm#jL<`sf%4`@jMBtl2_ff%^Vsd~o%Q zanL@)8U&sc7W5&Kza9weLvf>ZT}>4hCXJ!$mxZzm!d}BwuG$X?(Sj(hWMSIZ;-f^r zVtQib_Q&N;^-F2Kyc-4ceC?T+@yj9?V>HSBKwT#yyZ_QP%Wm(HjVY$kcj5vmoM@XE zr(O-oi*U%=5smV{n(d+*lY30HW`u61@3OVbcZ~wklY+%37Zy$(fBJ zTQL{?zD3`Odf>^U&Np6VE}z3GBy?{(XaS2a!V-+R=C)|8j6|89o@G3(9S^6E89u~i zP+ZGK0$Gi@Mw^G^t2~Fzk2nQ0@2T*w!MIU)fc_91;q(*>T!(Zi4Mb`Me|uQNJlYzY zzEpRKUUxhjBdV^ZIR4>LUc{}EyvL8ue)xz&px-8eD4wSBbm^i-u`1!_>%|>!<>Wht z%~d5^T59g!W;}ZXMIHL39O%|fN^iXvy@Gv)hI9sLEF0u#N*EyFMv57z$O#~+K_yFL zTnH0@1b7nm?kVq`k)6AqHYc4XW7f?eD&BMm3@fHg+9xy&1X(cCA%osr)DpnHnD?_a zYkdLl8YkmCUU&xn9Ajxriu+rx0sT$y|t3H+u;S~h_RHiIQa z5nHl~%-V>jrf}W!f^AQVK%H7WWH#Q55EN;}x@bU=&u z4;Lu>ux>s0AZlh}b$D)RAyMO?p{1_tkttV-#{TNr>l5OVd16lncJ?XT)y5~YRvVUq zS^SeUM=kEKhl8$3$l+px&ms6{eGWf+U72(*1w2`CJ}v)DR85s3j3ZtW=;ANnU3ah{ z7)Xw}Pv4>mog|Fw#T+#!fAknAR+{i{$|!|(2l3r=UotZ|T6%eNR5kI3xFT5obEs|` z4H)m{9RXk@Gf<(iD8}LvgX3N%gh|JU=R9W4k^YJ7pclW6CN-Njf;@$bb0n)%;Gmh5 zfx@eG_l&hfjhT>N!7iVyVvB^V8)FyqPt!$zw>j%Vm%thH2S6bS)&FTOi3g@LHx^$G z( $1hA;w5Vi*Bn*N$QKS2-|lYA$yziFqVV4@@3RQ{aHdH<6S9L@sh?S(R=RfXT{ z$AZ*(kjZrLt+?&XMe8DpFy`G!ObE*8=X!~v zNu!0Kd=ZcYn!+ctw726!*jvQ*qoz?y*yN5gRZ!Oej3?;M!rk9&`W|NtF4Tldev~>T zNu6kAO!<={wnaWU{%gw+cClq5V%sxp+LHbimuoW7c(dS=^oOnKoX@vbV31ZUUYWud z^e^o%p>VyhpdUV+wRDi&!M&UzzGY0*s;Z(GeyQ2s-tUU+?5iat*)^E)h99SUQg{G| z^bbfH)LM8Tb{4$|OMwU2&Lj`g4Bk#6Vc$JAwY!cJGFD6Z8wdV8F_)Yh=oWnajqg$D zM-M<#aIA00>?FyT`Vy%UglG)d9$8*EGP8-~nk<>T+2OOO(5a{YT42@1FQYQUWboOJ1v~ z&WXd$7ZTfVE*b5_QOTg`oEkg?Hlr{YRZItgPCiht^}EJ*s^%!BRL%a3RZjZuaN#E_ zCeyFSUNK8_x{~<7Is)t!bkx1MAaZG)#zRF%jcnM)Ym0%6Inq z-pywEk)9`-wb@H!!2(7({FfxdFhWVP?#n zzy!|^nX{!G%LZSSqu%fEi7Ah>r51IZeZ5X<;UK|upg7M#FiMUQD5->CPIhg@@8reCs|mlG@2W87U$mGW_zWBu%chphS;3u} zmliKmk4jmzI@!Ocox_@;-F9zcHV`(S z&SHQNg*2IIEC=KuiZXah`V4IX%M0|4EvN^2Pnu_*3Kr=zk{F*K5R!R*g|4Nl-Z0u5KD1s&^9w>U)177dTM_(3m(2iU$DOLt56{;uwvK8L|g)iq~MN z?NQ_8I9>1pfcde)7k|SE7nBd-A<1ya0Jew#<*lJ(JKW&mz(`2|2(HoZhglr786?9O zq(n56NmVpmU{qK9)aXu=bRBC|PJ_~sZ6WTg@0cn${@d6z=K+ZoeD7+s?Kxs*X0U

S>ejVsx$FgDEx((k-uU&Dp!Ux-FSL_r8cf zz=He((0q2s4K$DiQY7JioF=uhODCGU!*nr=Er`eJ^|blX5veOyF+Lto##;kV#R&L| z#*Js1yVGiEoT%<_I6fCG(qYJ)5+_X#jh6UqeJp#s!{ikz!1l=dVLeZVUiS367F!8H zYapQLN;wfrV*!aB(;)oA+~a1X4uvmOG%VS2dTr#3a}YMEZThJzsd?gV=bn_B-q70V zOFw!9v(ipNK|V`+83<8>Q-p`_^}PB?4NGtyx4^^5nwPwiLsG+~H+7eFDGKB|D1Px> zhZz10Z;!UNQAD9jc5r~yjO^&OmriGLw^}qY)+*<0F3Ka{oPJNI!t_5Hz5my8d-~op zm6Xt)w?n>sOjpXPV)*Jmy8&)8JAc#d$YGito#20({r-=y{pb3BmR|0N8QtJSn%qg1 zUiPdz*BS8Eo1D=>Ixa`V5a=-o>_-n{$E zH-Sw#zmi->{EF3lmN3H%cfas&RONJ_{NEgopMyctW&mMjQeKTmjQ3@iOBio`cq@}=&jp=J}pU?TT&e~>|Uj`vN9Xft)Kq#KZx|d z{d98u>T)OV@$Bu=K(YSLK5J3J#e1OLU_vz)!|_{ZF@0F*v@%6#nJ~5-l^F?txbW7z zKNe2seZ4@bz}%Q~=P@qdYhR&adXJYQ#y7;G`% z{_he0T)!yykn|n%Co0I`9RABXy9yzTaEdUHnT$7yUtcp~G8?n#qqPR?%J-V!e1o@q znQMKUIsd>eP=R5bpbz-H71e;C@GK*;mXp&uY-Ri4X$jMVAxk3ds*J^%Vz;&eI4wEP z%3lp{#n8#vpv;$Hg|J!N*?=ITe=;2n^D5CvfP#0|>*}-j-P{P7uWy-%uLYlpG z85G?sBRyGdF&7o5I-KXYQnI`jm$=W37`nJSVRR7Iw|}YFwo~mty`-Jp+E__@)666m z>I*mkKN`KW$U4X|nn-Nb+(zPNTXhO@q|EJsxc`@(aeK2{dUZXS)+k>T!4@&Cj31=% zW|6#s%H19zSY1Ta2i{7J40f@2-#WGTjZ1I$ie7^XKEj!`^q%+1e+i-g-JJdpuS>G0 zyZ$@?*03Y0TNHIOBz-}67s&7zD3&Ixy_9+G#&Ms94njuK>!1bpxpQR=raS>-cb`w_ z%gvYNyuX(X32E>Qo=Q6}KYVMrmjPz7anWD?mZ>zK{RJkQ({c5-_6U1md|~l9uqGUZ zUveoO$p&%Z|C}+<54@Gw*QNVq$!{{^RhHKnXiefjaG~$1?*hFdyb4G+85o6Uko3;E5r zIbDA;`}VWTzdv9;!T)s;q=>-DKwWg7yV(Rw1<5~IJs@@Zps2i{4=LPaABa*N`W_k7 z^UgQDE%>ITeg^V5at=)hMo{>bNm|&>sgsbZY+nfboVp;z98ZT!DissjLE%b_?s*7q zA(*%3g^0{ak%5h%g>^w;@bC8R*7`4JyoIiWn3*4WOf_{-eLE2Q+4p4R3$wv{2xH{X z0>KJC2mGb4Uut%M;GPNZ*ZZC~L>CkuxD!+GM#~*-6wG0#% z=SGxMfIkn^Yuf1=D1K0%C8ZDS%aV+~Y>$ux%pCeYjDf~W0~^B?v6lp6 z=n~&BIzd>?;{r87vuAR;85F+l*pKiI`Q~4-l*%pKh z`FQ)!eX~$$i?E;eY_P!)L)zx8o!O=><(kQjJF?#q2QlZ~?0&%@{zjnC5+5g=`^*k2 zM$0C^1w+clGuKNHaGAWFEtKseL-pnJD2_I-#GYCw!6APSJ4XoIhMGhe=pnJdo%w~ zs#4S_(Dv)Um!VFOs6Q6>@^=Xb|7PNe^>_Q)^5*Yr&-U9phw)o$cMPW58j3404!?gO z8%BO_;o#%wupC*T*4((Mq#t6xzy%zd$AWhAz$g}N|DOR3^&XJRzJJ@x)u0~!wmsNe zEld3X^v6U5wf{f2V}oS0$*z4SZU5G$4K4d?wAhU2EA_kgzwxcx&T80iMoP;*&w2On z?(s3~h1?wKcm4K-O>p~5^npZf#q&t&8=-$=!Hub7*d{mLrGi^gt|(l^=y&Q?!#WQ0 zSDdDx{fA9z?hbmi3W24?LS(+cm&i)n#v)s9TQE#VO1{4v8UxFDb5rWSA<}=u@sAue zRkZ($ME~p3|2l>KAI<)Er_lee!z81h^?PoG@C|XBFBNgIJc<#FliguHcCj_s_MoG@ zJ@;skGV*f6LpSySREmYtg+6J$-7*XNF35`Zox-+Z?mXsXJ?5*M^I?MYtE%k~=RDR_qG0bASPFAsJqRk0b90Nn z{wdy4d2Ra5>N7{-^)=nK$9h-Ox9lVhZu-A)ruQ)me1XVNDgAQVBJgEWo)qk_6DCVw zTSG}EFp$wRPr~wN#6B@g#FqRy!5iL85NZDepGtddVc7UMSAyHLI`w+FgZv58k{b`t zv$}oVY=+rhMa^CMl{?DHE&Jw)lf#cdhr-N2C8uYr&89zRCLU{AS9S}RpnolV8VTu| zi6P!VX{BPxyBph2TaKlEotHQxTORgUBd@YjL_hXwgsv{t$5(ziI_!|kYWEkH$O61; z|778X5^;oXO4$c-M9gkZlGXhAIyrD5{2eYkIA)4}xBZ8jQ}X$eh=R{XX%)@f$CH(8 zUqq}5ccxb)y^3=k?!LEM_VYv~vq*cT@Cy}ic#0w@UAAzox@etgBRvK&>*U&5a&uW+Jg;!l`jHi2dCow+Z7x>%;{NP z`GdD{123L9@~L-Xt0Zs=#VHqtxaE5KbR8K|8jfEfuddZITPZI847%%I1h0!ZZy6L8 zXgug0cf;>j+a5~ff|lDI^a|WxrGer4WtKF~vr6jOYg5O{6<#(5p0=^O9{j1N<468` z8{}uv$6~9OH3Et*)@i$4Kh-%mdP9}I$8jztSNE^rFR^vMH=IutcCh`v+x>sc8}b!u8*3_+q}iC4y?fSo(&SUwy|#kEhz7Y15UX&xt8D8dlW2 z86hdsv%|^W+0Qo`!pW*d|MK>eg$KWs%5INyEFww%PvZFpU&^P+ke#y%O4x7Bs=f~G zi}3M!-iT(I>b~zH$E(M#?jvfoA~0>#kPt8cYQ)Z#aDZf{?3C8)4tt)a4s4OgQypotKiq!34hxb@l-G+ZU`I9H% zVYYt4Xs<_tyo3G9K5z5=qIuGD^HKEo-*2uO`uN3|Jq+cN)jztrmlS_e*!cplwHB9r zjuiJ(!-~(vk9cCPev(5TyT3hF&RlWK>Qau(OK*u8vC-}I8K(^6VJ1<9^m8}fhOHJV zdWPY1oW-V`jreB6he{OUDnp&0_hE!#GLhU|=WU%Od7jTIY8AH6O7d{k4X+uAN_z3a zblUc%pEBj2TjRI9+$#MP{-rZ=C?}_+K}QPz?D9ospBmq+1hzbO#&yd8l<|WE+E2Sv zoTjnR)F0y~{i>&B(wFO$Ly`;?Ql zu3O7FN`c8TUOm?oU}vYZPQtje*YAGQiaBO@)?qO- z3p-S~rIUp7+M@ZkXGWjQu<{jraQ3NVGC^0*c2ZHDUEuJD)1(@ud&=?2=FnM83`$e6 zZ^9V?bqDYz@DB4f?|UBzg|?iwV$;epS!&uPHH+P4aD~w4b)pr9zdf5m23`B`^~>ce z?Az*_ZTs0w?<=O1VIrChdLZRt6F%~Idt#fHSQ&z4aqPq=7pk9?Jr zqyK4F0t-(5!uer3qxrA!th1wA#^;Wc4LCzVa1#1UhmY&&`HpRS=|>B^^Lr}T?_}EX z48t1S9vQBNUGy&>h~_e92=jFjFFZ7PzS_ntRB89%^;rYhW4_Du@8&CKd_^B?E^pQy zd!yzUIKW?=;WE|o*}tm_tl@h8IFK`_2d=S{&=9|)upc1GVpRW zW=_0jlhyXN`-aVPxL zk?2tV%&8pvF+W`E>7J)Abeea)2S3~0ZS;1B**1L~Fug!IdaZmfz&OUQu3b^m_ z@nd9lW3ooB%tiIV=$fgG)|gT~o6bqk2K6hEpGS-&jZ2O&YP5+aUXtVVoUS>Nbs661 zv%fQ`qEy*@|U@gotbw^txX>!8~6 zS0c4{>Z&&cN8I~f3Iaq;{)Ohd-=*#Jp3B}fT*Y@AnXXDAWd>Zn@fPwrdgoSttFz9J zteC8Re*9#AV`=1zBOlEy*Dz1xPn=QSZWMbW^=zyD!CQqFjCZQE3P;P1ZoDm^J(z5N z6+Fm1@#AG=+IV_$NmNTw7mdktI*M^Z%J9Oo4Erm=$9^0W^On89l~Sg?abpB&-r!lA zwVoE&Y}gulVJ`Htx%R_D&BIFFi_TZRS`>N&1*7u4KiQ~dKYcqI`PyNN`QW$3uoGY2 zp8aZ~;lzcsR&mLi^IEf6%eYwr(;Y?AcQ(goL z)N+}J)f$_+3f5?MJNfDg&>cJ3y@;`H6uUFrQTS;&d9*XFrN2n&-nY)LoyjsSa$dgg z`b*5j*Jhf7p09C;#&V&bawyuql&=!?m5m$82rIa<$c^k-oL*$Jypijipn9)IJUn^tR8YKjgDskDo$hryCsabd^pTtN z@O|W|k~U@jyxpdDj+@elqK+u-vWUHPtEf{Y5%%xm2|+)+KQJTMv|IfPl6ZrAKjJO~ z-I`0AqaT&rQaJOSmSei{iJ3n4-nnb~Ey~mp{Q0X$3I60xK7XICadp?F!Dr*~t9DiX zUPmv=)`Sd{k@CL?UtEy&pnARZd7Endquz4USe?)(sp*Q2>;OsN4$QjWKk7i#^z1(fu_l>_?vlg+Pc=n}AvZP*~ zY0!&9mbqt-HX^g$2R-_fK)iiyV?-|UI%eKuf+qS!G+qP}1%eJ~~yXseV zb=kJft(n=G-H3^e{US2*pLbs5jTbL7@|=6#y;)b7v$w*y8WMK}!N`rS%H@Ju*CZKx z=>M`Ac#;}f*!fdyC&dja^z7lwIPAdvI%U=A#P(=b_+a!Y+;_uLfhX=UL?`0JgaK!% z+u{pDp;#&|z{!SaHQbG9h(m(yj)i+n;+6mm1H$|Pm$9RHwh{WJ+J9I`UVIv>Zj`*% zltGuv75fG;`GtC$l`>|WLS|T8!;mTv?RZSe%=0e9Y&wq=$o&WvimH1}i6SaHvXt9l zE=eUTU-T39LOnFYZrNL}Bb0&C>eG5nVjMS@TmoOLgr~n=MLU_nToSQv4DyChnZV!$YT+(k+zU<6~#C{T@l6_=hn>4Z(kUFOFtoRtL@ zcdju~R53pCSx0DHed*rz_=?HC!lw8CSRuM(1=dHJCH-90~?69XW{TBEY!IM5q zLL$+BXs~J*cofjF?y=P{bE&VsesRvvhrg2@+H$o$Im))MA1bQ{tFhLcvvgq-q;2%+$1jokm_)P}$c$OItM9Nz59qyI4mw*&S&J((h zK&KRBXOZe?z4uZb)_vGkt)RA9?AyL!%{+aLQ(`sn-m)99Kk91Z%-YjXA|xk^>i|E0 z)W%%2Cx85;)wY#Jh_{>xeCQX0%mVGCH#SXyIPqDVT~y!!i^W~XzXrW$Eg0^j*2?Q@ zaV{bh;a!1<^6i8F&BFg%6Jp`y{2!r+lllJtmjKI*)!Q!j%tBy73^#+#MFnm@YnT|@+qb~>z3-g z9O#P?{rMKg6K;DKv-10r$K`f&Q$K81nx{dQHSF#`x9q;h`|}yRN&2>sO{`y??CaaC zN51|!E`4@0Mg00I3+^53T{y4p<@bHP@Nrb}xu0r{HXl?_%~{63j-yU&t+HN(+V0`! z^sNb_jnn(S{gFwp{ZDrFzIS&z_aXDlKVJHyWkzQjtN8tH7p(jgX3JIa-o>$ODGB*Q=jAsM$@Xai6 zRebBh?FCFRxyZucDVuCGWON)ISVJ;`z4p`dnU9EF1mU|r^o3xh4Be& z;ZronhIC5?o0*6Nu&z(BMchjP2i=%f1dg~4b+^N6{`4ZfgF=32gW9y5TQFATJl(KO z;mp|?lKW=q-SzUMf8znY%i)=EY2&3eGQ1?kiN1xDwIuOvdkZ2qG_kBZQ- z^(2^hgB`J?DO{{kT=$kjw4E5!4$Azh%60g{;kR1brOt4S*f*zu&euwrCSQu!>k-+1 zWGGe5(JclCb1wn0=5bnf4(=|etlhXcWzD*QJ5`-QNK4PBO?}$SBXGS~%D`}3YIuKK zE+KGdAo`pb*Ch;bUAD?207vD+ntDa$&FVcH?a|KAhTySgzn>gMp}4h_gU$xPA>kjX ziFBd(*l~c~y0c^$DJQKx(OqXn1h2%1;Hcm08Ya0$lAHe_mFQHPS=XOmh(3gFAhILD zySAH{{u8CvR=>|;zL^*EtfO}Z&po%7_(eNKA{|{W)3Pa(FS7ZMwjN>ER^BBk(H z7DMG>iCbGl>7Nq@GHeYB-zkn~!2?9AF6K1vx7dq-`PPfQ4WM@SH}c}sE%K$tG(JsA z))A+ss%Pk4G5oDT4kHSv*3b%6RZ*ZBu(6F^XeYS60h2375Rh?y2%kJg>&-Ir>KIs< zHyBOA=p7%`iPcSdJ#f`wsv>m^yF8vPQK6>MAep934UVQ>P$Gjk$(}pnnc=;`xj6Q9 z?c&CBThbWIVJw6FP#;#qlIvFC=vvypKG%UaAPB}ym=+pZLYI5ve>WL#jKETa{BFk` zNsW+LvmH*bRXC!6MC?Odia-IN?*5g&xyA_>-{AA+2O&Z(y1g&Zw7yXe;LU(^gCCE^ zVOOd(8VtySP^JHXjw84Knv3GWfwPRwT6RG?)CxGlz8b6xHp*_DTu5@J%NsQ1sxgGp zGQ~Z<)B0#UxJbyZw;IgRQf#NSDA@w3ny5$pR(_}^BqJ`Gw1dG;=G@aGXKOh2R{@Auvmt^YS^Eq`b~7h2jEtUF?;Q?fNB)fXzWS%57SF+MF+oyv!)sF#6#nF0$`l zrm2oe?7KqsFrW9Y8cpORZlArA5+I&94yHZAO&4;@9kTS;N^nTc z#c2JL_-1g)X5ZDwg^fjX--7CaE!Vy49qaxF`E3V)Y7~oBXyhq{Yy`#=tq|RnPXtG* zEoRT#yshz;m&N~SX^_lS;6dypj(ld0ajehT=tO>uV)~&^I&w&hne3RsCTU+LlD*KD z;G7(EPgDF+GDnVdP-)mfX88Fgf8T>`EY+fu@%T`Hf2BWGi>#F^&X)X{RL z`iK^*+B0&RdY7?1;kfe}a1Qoui_kR8iUVvv zQR*EENl8ck0s5MUY|T$~nlarB3ch6VS3QyynI6^Ksm0L@mofd)nx=x8rsjq> zbLay33;!zf^1GZvm@91F`2 zPK&NYNg-KgrXKK}xsrxn^S0RONU5~f_pXj-##8hhk@alLi?68{MXzFe#Kt(LDe41v z6oyh<;54`GdT<0O+T&xu5iOsszH|tGPr@rZ70>*W6ddt7-_VSjFp? ze@C~z&fK(>f%$KXgkm~DYEj!Fc}?#Hctw8?95xm|{dqk<#w$(L3cKsk{sD9>R2^FH zm5EY(~#dxD$8m~>O^#Yh6-8KAQbG7A=XJ$W@!R6Zh`*apPCp1`VGr3w2QRWmpgT|I( zSbSNF#%UT*3UcC5KB4hHjBGuGp{{#|Ur!0-==7!)>dI((3c|9h%s5i0JP->+x)Ram z>T_^nQ3dD};;r3ACkb%4kzr#Cu<_!@jG*=045;rFWZIw< zLs7{ZCuEKxj2r!XKBE_5o{YP`CHC*kBnf5uXCpM>Lm#r`ebE3~wun*~>g-m@hH|`h zMcT06&QyI-8JjY+`FSU9H8F^8xa?o2Ygs&^6i{kM=)=^v%=bvAV8oW%3OhD0t6qV` zL=zz=1svU9h-q{fw?aaMht#DsPM9w?pFmToJd zawBpTe=RJu$j6g^#Z8j^%J!g_5`JheP67-TS5jbaH0w}on6sNy`kalR>I#L(i9>vQ z4zf}krxs`|=7|SLT2!T~{)*j4wDaw@$szm|`sK~RkSqh+K{O20e3#yW9bST#UW@}x ztLHUKaQf0&u(i-_DHVER(E~$`lBp}Io5{yoh-&0W3r?!8{VSbM@2`lJ&Um|^(Exv~ zw@g`WvWcuL%lz74Q!%e-kgMp(c1Ow%2+}-R_yWBN-B>B52_9Mj(zq$Nm z6=9o|Ge8b<{P4rZVf_agd%in`-x{i{yW_)C`}3gtK~F3!L)aut^`Ru9QFwu4YAl`) zHWFAhb6S&2qQ4Uc^c%(W!(K|b?u!&vQgrpv8GKAHJQl2*Nb>ybhpW8ite$jw0r2`9 zO}pX8QvFNIoS44^J2N3N%^g}PJ@Hm*Gogbwd0G_*kxp;rs?hjSOV$5;8P;lx3`ear zC9gLeZeVx;vmSnN=1m5pHcCpz_zr}s@lYW8#dsmj*IxreDSs^NjUM9mSEP`^Ew<zHGE(Dzj@Vv5~lyiZnCg2{|~X^ z`fs-Nliw6_b+NE_BBB&_wKFkwHZ(W2b8&SdGIKR`A`)^kGPQJ}f?*JGGBtGh50I#g z5HlkqBaytTi-W6+t-Xn>jVY0Ws5p@hB@+`pGd(j48$Bb@Z$mpGA`T*EMrJl0s-Nj9 zmM%XqN;W2T4kmV1W)>z^Mn-lzCKh%!4pt^s*8hHhrM;b~q00|Yl>28YJ0mkACnF0J z6B|1XBNGK9BgGF+*52g*52E1o6P58#^prnw*;pFUD2PfCanUoQr-7?F`fMCI zRKMNVt^N{7?QZq->M|VkzO%I&TzpJxH68JG>WbgLcF+wQs^mQmI1HH?!7>UCJUxFX zfN!n08&G*pL$XzyNU|S494ne_{r6AM@Qs*;lo=R)gJPg1mBE0~%76x8H`Q1m5 zPy+-`42}l{p@8BLcgR%%q!a`K*AGnF4;qpHoLmRNIe@VPtx%^TSzu6+Al$FiPZY=) zCD!xY?YwC}FeudUyX&UvMW%>A38SqGlsF1|1B-LZpM44t{XCy4wt3>p9X z1^urb_MiR(HunG7iT~Sxz{JS<{~>)a{FgSuM8w3%@*j}@wiuIYCw@T8UH?j$caT+2hiQP^&tj)jPd$RO@t*vFAupd`pE0=l~ z>g$K#U4eGY2nY23@1oe5?Ul5>wN<`m!N$S!I`L#Xlu0+Tk!p!+f`I`gP z68onHGii;sl!qm$(FcP|WJkb!KtY_&TZ)<-x(&GOj$PS5O zv5(t6Z$ZL*ywR2caUkV@`hobiPBEQ;^IZxY-n~c1M`Q>Scs^nH}IZLM4Ix zkw>Ktyf29ayS(3vB11x%k8c%@7g zYToOV?-iXLeIA6i6{5L=0a=Ow%Gv%thaoB8OT;PzNJ}yv3*M0D{3f`=TBO}R!RXw0 zpVWO{?D^&}f9#Fb@^FMqFf<_BS2gOxiYCk^sLS3_8xDsAvq*N17U;*;GZ*qnZiINq z@eewry%Iopeob2k+em{M*570Wwi7%eNUSOS(use&L$mt0O^8y+K;}_?Z#)jU+&T0i zc?G$~&Da(@9LXeCOhXxz0XJ~aO}aP5lBDybwZhSegxs>H#6z0Feta;0K`aXq*nj0|_H_o2 zQozmz^5&!75Z@p%LY{!bL9P|r2)9QasNclw$c_>2z+V!*A-N{;TDR;1bLAdod(Mta zCoAXMmvCXgh~^sgK;??*wyb+bbCG!fO8@klOZR;1G%4SxkPdGs3ltF-A~+!gwc1c0 z;h)hS4SMOx(U5Kao&cMPdRtX_h~8marASA`xI|rEns$l{pcW;LUQSzGyowg*jwTSw zO?s?Ipu#=%aYfFl-4Iv)hsvs8DV@_q5>mhyfeY#%>v&a$5_2f|!ogbP4$B!=x4P!n z*m5*a_9aGnt)2P{9lq2>{-7@Gu8z(7DBpKiA#)g3ZT?FJP##T&zGB4=#~kU+q|gD+AMxw<2?C zCz~NiygQP9i(M=_Z1AK1r0NjjiF6EyOMcw6m=b!RIOCJZiQ(TCtelIZH3dH+9SDpp zlt0iwGKJ|Taw&A8c+)&7WNVV~gnSB;)D|97(odcfD}R?}hT~RMKqfz{^%ozu;xf7P z%cKYVZW39Pi0O7l_ROhBK$R$mJ$ek*qHagFPr3+Z_L8{^mE^%?N4j&8A%paI5*|W+ z<)d6kPTW3=moU*EeW()yLyYbb%=MyuV$iW|@vHxv)}Ax++V@VJ5&H2>9c7wTtSHupTk8&gYWa(^GIo}!Nnz6IjX z5yzqsu(nWy&1(7|ms77%3G7i#Jon#P!g8#(!b1~EaS7Tvk@e!-w(u{-Z1et+K6G`67C}mJ?ag>s zg!z!j@~MjEaOeu*3KALg2n{vtng22nB`U*=WEAyx?UeKvo9lDk@PD@7s$3$&d?aT& zh3~AqKPZgs8e?W{0Y#wf2OUm+OuqH1F@V73ZpVyMV5`>6SUNz?io**+1I8V4b{kke z%WuVQ^90|3>uw9NL!=58%tPReo^pTy=nCS?qBlC6^4MngcD5mwPxixgmJR5Ae1&wD zm;bGuXZ*Y-*Zcw*hyek0wzf=VvCK_TEBF^hB`x#AsDlz};#T6W8$KCK&!ZJqZrO4SN_~Lj0qUg-uMFn4hhjw4N&c% z7rcefb}R&R_Lce>{hR8lK~L+*2tnG>e(;;Ckmsl1dcYG1J}mcS>8*3iYnLs7*~Fj5 zVM}(7jt`yOZ-0=ZY2qF5ot^J>QznpF5Pm^_NHLjK$!oTts8fyjos6wZh;U6b4z4h{?Gi!1_{2M=i2y!%@!{p zt1`ZTI~g!~pI+sy@v@9~arX*H1Xhv>3?*Q-)mCOw;b|&#dZl-2>Plf5DSR?T?SPp3ULJcxJMnCj1g1|W{spWqF>28PF~6M6sX+uk;?eTV@1*kPjP zFzkZaOaaqvMRa<`ogKV64)ilVXVq@WB{rTZSoo^_{H~7sAUs(#f=$ZYJsz-qXkt{! zZ>RsVcckC^6j(YGC@R{2eE43nKlj9~xi8n~3-p3vZIzy>1D)O#NXvQOe#=_N|8DNh z&^3C`+K+jj@|IG0=ha>LJ@*$2Fuz0OGl?*VhoF3lGp0_zKz z9RSZN0xoa#uX&}0r>j-qzJCLG%~67uM!V;4uHw}9+GYoRi@*4uO)%SqhMpep9UuA7 zTsT`27S0so>Cl|XiwWBIA=*IFw~lC45i33^B2?2XwV#3Q<36J2XTW>Nt;HUJuJ6bP z2|zb+sy++ZrOg=|2@ov8pN07l`g+CBaF#HnI);sPABwr~AH1QTA=f{f;w5-{l~IoE zCLU8xT^vXaF8qOpFThIT<|*7(+aD5$Fn}+=OdX>2dsOko(wf!d`5OpUI6%HE2pMxK{R_K zT>^i~$S^F+9pi!NzLji*Ge0xU7_JMBECVe}-NWp!H(tBrFlfK$HqzqzyB1B`_s9z* ziqk9`Z<=3^*+K9Lr857WbbI-MQc5U;ZbzLT^so98}9@RcXGIk)vUn9QEVLq3zpWs7>9sf1R;K%uq@50jGP%-}%U0z=LAmwjvQ?F!h2sgY%Ye5zpM% zH3YN)ikLTb?l)uzVUr8=SQ71`Ie8j{CgcY>OH-9&LpIb|2=*!fcC+9g3B1NK4bvcv zi>j=0SC+Z_sFNz|y%GN+$g&_%BQxMiCT{M zofdUPa35!-{aSR*YBd3$4TKH!n8qAv`LLJ+?h&TgGQH#)eG zw%!C5_XmyyUqYwOfnP&hZ3cy^WLty2{>?w<1?d5GKywm3)dyyze%GpXbploS$HD_G zjf?xkCU}NvfYt(iVg|T2Grh6m=z&bJJ&#^G!8vrz5m0hWpjhJOvQ4DcjoYjkmI^e( zKMb3Fx$KZO@@lpubbAYm^zo^^t7#nqCObGb9J&2OYF5QF=-qI_Kw^a6d}iy*=IRzg zZh23X16DA7`~RjnKvsPr+4_kexN6bQ#-Blq#*B&1{;PWz*j;nM_D4SmpnF{Q-4vGTBU6|L{Cbp`s;ux^=nbO~*+n+;n}>6I0e%6sadP z=qx<>Tno7KiVY`}|J*Qb)5EP+nR z)lBH!q$O;HMp2R*NQXCNvn!{eH~QRfb#mMJULhWrl?r4}dVz(r_vyWlF{Y#r3mQtB z+RaDA*%{+8TV+QA^J~aa*H2nYhPT7^)Mmn2$xGfL&vhj&x~t!;t=2X?f9Fc;o}h4^ z@h+YMU_Mt@{GtJ?xJS7Iek)}aXvoJNPV&WE&1b)6Zl8kFXuX$id2o()^0O>Ud$Ivm zq_YfuIOiU5A92LVR2MAa^p_nIp>a!o0d(A{16WzWKuc%XJ<7N!$e6H7WR4<)f?GYcU6Fy2zt8#Ux z3P+xheBLJP7q*Yw8|?G!5FUp6-)SencJ>x9_r%lSv^S#jgIh5?NQbQiN7-M`E&pz* z5?jg>vuJ)=57`y3Da-qJ8UgnoH}*>X5pSdAf;R(u_fX+3z?0?lIIa#yc4iv-j2;| zffN{?bJjq^y+6jARxxOH;1OdFieOG!CgWA}O-5)qSpJKoV0SfFOzp2}zh1liIM=X% z#vMhoU(*fmIWzlw-7$#Z1W6Ntl6S;a4dcfL7LN2uc10#@I!KcaGroIpzK(d66D~Ww;L==j zDIvTQ;jNd*?<-VLqHB$No=CiMKYG)>pow_7%fTP<3jhIgAO?jL8KC0RlKjN!Xb zJ}Z*TH;JjhJPE7!8`ctta9yYb@|y4f`V#4S?FM?!-Y8sC>yY7z=e8;{AnXF=_lSS9 z*q-gKJ6}5^Ef{H;4|>Ux-s7+DlJ*($7~XnsDNt9)JO_gB$NJOOYp6U#L2t*CBJKO@ zdY+{U$}&2mtV_Uln$7Z<8)BAua=*Xtb*cM0Xk?akd6;j$ z5r0gmjm3sHI@-rW{tn#)1{(X3+E<6hav}XHfPnuGh}v58lxqd?Q>8y>1mDE_-gMp) z?1#T^&u~_b$mfRVT>F(-_IV8e`|JBorsQ=q)_L=gv#fVDW1@X}qOWp5oB*!7L4Mol z1N+N7V4X;x5Lsc2@!+f6vUanujj0vW5S}|(OWV89D32BB6f_)u_v>h@ z>o)0;53)Uv`spY{_pizLwUCMSwl&g^CG^Su@R=Ov*;3k~E1_Aq^mh*Nm78%6`9VSg z-G>0!De)&8L>Z_jn~@s=G@$o~Ll)hUTQmi*qqPUzjeKIUcUS8{kGcJ+~VB zUe^AWY2=v%%B!>0d|otXcP|m0Rd3113qDt)J%7;o_Hx+yzDERfiQJLcrn+YcA-iGS zPIEklEfV_!>4AQM`5<&zUMc5zN&C1+4BYmx$9JBZ;9|`yQ5dJKPM>ASVnB3G@*x2aqQ$^?$^`S89`V;BL`T6)LPm1@bdjz-OaW62u!MEE3JG`U`9QEUnFc9@6D{#dANQ`o(7W_NQW zUmZy9q@LtOes**ApF0gKqg+JMMapyOwVD9vWze%T-5bKdkud)Y(zR{}yjwbI2WvoA zHkA9{$YjKJ@dOssL<#xgQ<8~SEbdz_EsAr89~P-=_-_p4eengywFBJ+^QJ{N?I__f zBD`GUzH9%sUNz6`5IUkKBK!pNQTi<8ZW*)}JT70(HxPX-p!5?RQE^$^XQ64U0ns+1 z#|B}pl^vzpj~`aFcSNMc`|8xu0_;sNCK3-e8Zx;|p~WHEEt->Jk{gB~ftNY3jqht` z4A!JuAo;Od+g7&GbWKhwp}k zI=6Zc6iY@@Z}dZ+u%^YN(<(4y4PsjpQ*UEUjYNY9Y5W-1ptGtZae^JMa!cD*>c*SH zFVP*O@>9l3x^aUj9fJ1JT_6#?U~VNliB6im{cp-nRUf};I&kmuRX?7a1K?<6d^l_< zX9+0lKZ08R+`ps=Pd@8MT^GwljQAc0B|uIoZ1Bp+aEl#Np;bdzZ*-*F-2!N0E#n607YD6 z9rSjg5#&;3X5Md9x3R`@gp;JaopexIv?fnJ|I_Yo{WUvBd4)AJhAeCP`nWW62yMD| zV_@074wb6s+HirHTeR0lmGMQ1pOnhAMW``s`$H?vb=}5=j+kC}9F6~I?0YBrrE*kXmN$_)Mt|zx0KN9K4JTj9rQqwnFin~sQmcsW%)kLR z6!V7xyXKyC+MYq5jIFF(NlK1fX9TtnXaZ`8Jb0T1Gd|&LKJx23MD{_-tat$T1(Ovf zrdyBLy5=H6ukbv}l{SvRO)(%M2EWjxR2eBQ2ZU_A3AwXuT_vH?dw^aYn=k_Spgqd&4PKg z>XLyYnw!B2}jC=L$iJ_QB4>Ug-zuw)1`HsEd+BbBqaTHvQc|_j2 z4?ajTZ7P&HW6lsyb}#B#rFJKHl+dq9_{so0-ykma2;-g~Y-~?m7plq0IfFMXTh#ri z-ITYPQm9IacEE?+^8Vp=qW7MC^aVT@e2GWykTWY;C*dyc3Jluz5j@~~Jb%`NjC;A) zJyt#$6P;s|DJtsXNA+e-p_ao30NA2b9d^R_acqZaDy8y*JXzQEtVuuXANHg--7*h0 z8!g1pwCpK-bOdRw6O>+Y{xF$58u7V`rX9W%!J9l04Ius^DV|gbO;n##=Re6=Mp;pd4!}= z?Zo`_gg3b}>eIs|D1f>APUAypi@9M6}b4(yyWU^~8xNd3jRX%ZQ9W*YUKu1SaDBy=nxwsy25;yMXIb-Kv+ z&R%xWn2xeeu?9MPyjPkD_5KcNynfGO7tpvNk<6AH)$Ty7djS zKF|eIt?}+u$avzn@n@35wP;o@tGL@Jq13p9oI0SRj)IC*WD5ScYbqUviOEZ=d;%@(a4RK5I@`0~Q8ntJ=;}fKLB&rsDZR}eonYlH}A$=F#(EkkeuJ}!Tq5Bsx<%?TB2(P6U++g*b%^QeAX2v zo#KA#dy8-5L+N#UCkBf-ndg3po;H)i^4_4CHl5AX{CBVL?si{XZ-qf?>A8!)+dJjy zVy@a+$}w$PEQi}IqRD=_MYgTZwOmz*Q6M2LD=8->BQZBMb5H(>jLeG<+AeLO!20h1 zwksAI4lfrLtbAO>?(FNaJKEPQ8kkHZY&sq+iG{-gXZ?-|Hr)!V85)y0do(tiu{f?V zvwj`ocYQX_N`&5j-mqY8Eme%clCe79Ujw*w{`k&uJJQB`0+Ru&!} z8m`Y{Ri;o9BuVEb^c8RcFv|u$&#ap}NH(;?FthM|OJhur47Ud$UvHg@tGir(q<}sd3%mfXGC_3^K)CfUS=7xC= zM+<#p%g}%7%!^Pq2k%w}Q8tgco}^T!0?qW7gu+#y24K%PqpW*$Lm=Ns>|-6T#7yDH zRA{%lLK8X07DpHPyG4+fh9(hm{%)W@$r_^QZN0h(V;}&U>jll{CbwH#M{c zB@$@YU;f|9yOFB#HH@D^nVHJcbA^(oG4dGpPwV#cfM||?Pg#J2B$1s1?pL~*rgWB# zm#hP6d2H57^_Y_H@MV_C=fRP%u=rdBWIPp?)wA{8{mhriXFl9*%^HpI02s1xZTj4z z(N=@;$k@ctvH?_O*xO3!(p^}<@SdOduekfE&1%+qx#Dp97n>`NJLFE|ZVY+URLxZzT9Veo<| zY>SB}y#p#N4o@JR>^FPF`jnzpiPiCXRBAU7UoiE!%JRb)#Pp3`CvWSn$`$;OzX=68 zAyI<6&@hPb<|mn2SIM`|ZW57y54BYxB)^-y#F-~8!;3A`W*2T^%VDXXo|;25@dzk0O{z> zvNo5NQlEV}>Kp@CWBza5Tf*6GA{(H=REew{qRJ6ga73b|BThME^YXGlhb2&8B%v?- zbr*^CIUJwRR4)2~_a{i|=2a{a2C){K9|Mn4ufzMOZC?*kYyb;(m^`$G3aL6eCA@}C z(0~#nq)EK^lJ!?>Ln(QLJXAMxb=QDTlzNp2z0=Q^g?ngrt5 zlFv1ITj1ZQaX6iAD@~25VQV8R!+TWzrjM=eWeJ-6O--5>Q$v~1J0n3Fxs)q^A-f{m zQoqcn(_ zEW!4_ZGK^3N>QR@c*fSYUK*#)WcRSuOJ{kRvw1Z19 zCsP$pv8Atf4}o2ip&}xu!!@(~Qsc9Q`3vRC;-UowJcxu;m2UNvudv8A;FQS@J|@bb zO*UK;!8(S*94I78OgfjX@mRidFur3lio}kSlY<&#ncttmm?x|pvVmpVVvZIfFq)iM zFDY%b;$(y{+L)ni782qR3+>0@t^ZTp?9#$UEXK*oN_dA@rQU&&g!J7(1`!b*toNRz zfQlu=ltUTIjYTF2^j}IhsnY~D8g;oSnjYml3VwJbyDD$#Kd8=nDggr4PMk$Y*3|>sMTblW9k~?0wTJU z^93+V5^?do8qm)3WvIa(;0cLbunm}hdWX!6q{WRq`o zZkm2=(jv)7050KgPiCx4_vSsFm@1$VO%o#v1<6E_qS%nh6Hw4SxF`4 z6EFiHn6r#PB^HZcjL;geHefE;@*z6V8$cJJJqh-Ozr`;v$;!ROFR7*6CUdoEyOm|G zhp10C9TiKYBx2Z4`wGmO^vs&*b*FaZK4sTRgQY%0hyMk2bPvD3m(ZMAm~d0`Bgz91 z6;OhoNfVrgD(OnmOqCYZ~S-e`Tg_kb|l2|_BA1Fz@C6>K`4N72#1gPe7>f?<)l7z zsX@jAr251S2pvEiZrpDlZhN6g<@rN9;dVakJ>Fh;ES7jY$ZuPBy|Q{^|8^^`7d3gb zx`;;6O86BVj*iyjeLd`XeR*9XUiK*(#;|gpX_lZrmY|fV+8Sck>6_W+P28QoLh=M9 ze#m}u-;<(&a{g>6GQt8PMwoQkFChH0z z()m)K7Cj^+6*k@%?E)M0<$Hv9=Rjf-;0EIk^5W?A0_)vEZF}+P>>>A9vi;oky3puv zp=P>qe(v&l@M#_)6f!~5yaS{o{h<gR`!IbN@%#!S0dD% zQC9k;K8mWVG+OAQ+FPL>@7h2W9R*BF+Fz2PGz|$o9N9fPR2?aU+ ziKj2I?;j6fuO=W~eV~jw#2Iy9k+;GKG#gX#X&9(AD~WgJh3yLU+mv+v8PeT*tgz!# zKEYuiK16mef(+hxxIZ_vpya^sfv5q%ClQ-4==wByQXUwrR(%en_vCKN0U15;t#g| zd@Ct-qY`@$KEj#ED~NCAth4y96Jxtl>1`-y`F9g_-qlXv{}G^2?@2f8X)_`AnJfNa z+J$~SChZMuSH3TTO+2poXxNaxdrz?{KpR)B6XPpEPJ z#_`jbk96=HACRsQKYEjHyf}=$j@{XeQoz)MBAw=l{y2#wG~qmiF=1y!>-n0AC$vtl zudFGRajKqXn)>=qo`yi+kvd{>j?ML%v^tctEYRZjvJ$msC(oO>+{>&+yBP-je6xaY zL}SMB&hc(E+qZckEksS@M&rBM3mJ>N`+GYuC1vnjvpq&a=!tAE(6uM|HhXrSgaAAT zm}QIahv5`UbS(uDey=5e=Z*$5UY ztA(A(^yBnqWo+wy9%}5$rPO;yfZvcqg^aCS;b-DDHn6?6xE3m)0;O?>!~WMSkKnXPz4Q|}q6Haw!i>p!nB(eTj*$%eP`s7tvseJ+DSDfb&NjukiN zie_*SF z1g(0nNZEL2@`+;VbX`%*kh<)%A3wYfjIQIiOWSJy?pqZDpU6yz&EE|& z8e)Y+OQT{4WN^e$GQ@GIbd~^1O<0|_N)!~c0ZQBA*ie-Rg?K@}aEcv6*R;K=N5e#s zh3pS)Q)lt5go|2n{RqaGjj6jhx!QxYN(YVDB4UfP`D|Q1zEHGKbV^~lKz8j7!7IIa z{0G=`pHDbH@X zQ|!~6^95|NSEidXK6IrO(WZp-2}cu1rW1&;T>;aJ1=KhE1oK&W1VKoRPXYqzm6!|P zWr0horO$7US*JtzVl6p6t585pA&n(`XJ1BSf%r~P}2qR(r|MHNiScPRU9jv3g1*GScgM_ z?sA|k*H7A>CH^V&HsTiCR1p#<>S=L~#-?}P!OBu3s{%h|Zz|=1$170JnE1)t zujFVhs=2&ng;TgI?6alzxq$In3t`LAEx|F>xG2Dw+(m*91yjoOfSgVR== z{urSGMgl6CTfaHCZrE23Zu>X>WLvcNOXc|BS<;ylU+r#rVgxeuLbr>+XRhbmJdyV3 z&nbfj#1|m`$nA;mf)DY{!k(-2AT@pAv;`cmKRw2NOG&Y2n2nk?(AxcW#<(knPdM)( z&-?o?cz(heC6nrYl}{t)RUHbtrJGgN^8%LT7M!y;WntGbM*C(s@O~OmYui$Y`KFzx zs{a>j=hU28*S70UM;+U?Z5wxN+qU_{wr$%^I<{@+j%|MZ*7^&p>e`s2=H}d)|bhR)gJ>wsPJmCi4K{=;#+u8@*HKl<< z=sR#mE&sur!@7e9>>rFDp>YK*!-h@SvmzC0^+Gk8WY^bAl^yk_Wp!21FP-X|Rd%a5 zYk8|#OZ`*)(HKTdz3;Pq=Ez zS$jr=clxXrbKiCF(+q$Od)92Nko?ZjwPBX&cAk;MkY=*8W)4=I1z zEtU_zP1mL;o`2F$IcG8$833TXK_ik(Z5rAr*`cOcH--t{#3l=bBGC7mwmi&unOgr^$Y5~~|aGBdt61GJ>z zL;2apbW_o+gjI4|sOc7+9;iG;yL}+dtc~8=Q~Bo99Sq2^=&V{i zSzuvv!h5QKU-G8hF10`QVKiBBFL1Zgw*{J7;ku|S`R$T>V;mBxL!MhbD2~BIUXVW8 zc=*zL_;28=u!ADPF{qZf^Q-u!G)v4;TtiO6|;d9-6Su)Z&#s(%k49gyOXT}MR z^qE$Tuy2m86f}yz*b!y%CUS`e-LD=HB~xOP4f?5TzIf2DWTZdiU_hN;y_g74jtKnj zB68(>`IC&J41uWLA?J^d-MRG3$XLbj3Gbt!OsxGL$?TYE3uq%(OGx(yAq`+${Bi^f zT3*?7_OEQygXfQQQ&%v}{hz9~_45g5jJ$DS1V~4=G z7Lg=@OtB5C^E>*Bu>2z$#ZwmTuwV7)J%ryBuE zDV5}2Bzo&nq|-2=Y!K(2>pM4ylq1CKgwbC zktBkAsyn<)zb*&j6jBvejG{X6EEz{PW_P+p(|CJgI5ogkqnL{O>^^fX1BG{2eZ{lS zMNAz&{054ofq_SXN5Z_A6_3ga>p#jWMMg(HPnOv`$X4Cij zF8dJ&Sk}s^l_rV2_Rh+vt{nkMpY+mrkD_6|YqMepX~WKI;SBKbaR0TJo(jMnyX@Js za93xMxH&yaL3ToMKUCvawQ_(knxp8Pdems0i(GhAYdi3oTx?!k_V!v)LW^was+Tn^ z{UV2XXEkWymfX|l{_>s)RhP&6^bCaiv2%#@l1Q=qoGo`J?;*Y5qYWTych-p2cJ1Pg z0Q8!K<^J_3eU)d1S3)xn-Mw%)&3xTuzSp1h;Df5D6mev3t0hBx3#_1Z&8t-$Fzd

7}A5S_1xMnyFuV0^%1P^6*aK}aQjm5iShiMoizJ;J&KU7zldh`1M< za}LLD!a?{W$KasBv6LVHr>5WIvuJMPcNXWZ zNo5OZ&LB2|$Lp!~`@5LD^woWRr`)^a5Mb$Zdk=e+N9WC&+04sC%>Q}NO;Sw>=((dO z(p+c&(rC+9JI1T~iWq2VZtCy^xqZ~U#MTqT<+1{5v*r(zOp`N7hbe4vv&yf3*nguz zAPDYkE|mC(51wEezr!!=enTt2V$pEz|Rqur>yCFy*vS*V9M zEfpo*JFniX=~`ZC1MQ89o?818%R@>DzXw2(h2Mf-Dbh)_-H6C zTq9Lm&d8-DQ?gk}Y+OLCZziT!G^2S7C(jXK^=87Q7M7#1N#H@PpB-r>*XQ>O;xmIkXyEUZs(bAT4)gp&WwQn-dYG^}hzb`-q|xeldh$gP!&E zX37yXx=V6E(Qj;*O37&x*41#_I%xZXzW$FYg%Oj3Oh>6+xN}tNyoB?r)!ScTrb2cxYw*_mR9Ds;l#vqO3Dh zob;n>MjxsY_-{BqJw&M$R|$^rI%L1b+FhK(>vxHH;-^*Lv?BqwqdC&%0tB-*P(F-3 z+oLU3^JJQJ;Is^2e$;z7SV}H6cD9H<5204D5*-nRO+@q$*wCh+9q|qrZ(&G)*Ej9? z(ahMNlaE9$gp(p_F$vL-NOH*Q6mNBhA(ZOK+{3563>zn2@vQt)yxsR zqbz)m4gQW3bl*MS2u%W0Z^WBT4Eq_V_zoZ0oqm)YJZu~sn;BVffU~I?)ou`dK7W(Z zF_ToCS!VZ0uf*~-_z}Kq^2KdDj_vK3#cl0tz4SW>u$uJyOU>Toz$0V6qTHh#Qy=8M z#NEHDyuNCkFp7yXp5O$pp?%?`*@AzAJjz0u??ylbA z`2HnB|F+tGy~}L+e+3|z&vYF2W+toez5`n$DW3Tooun`vj5_WTGU4T->+KJlMTOPO zRHE(8=$V*IiSa!&y5cvpjsVc@+gA&}JFN0`YgcA)?!B0s4EDf%jgTSm4ExE5z1k(m zJSbg!#`Lw+AX5BsW4Qe0+~@Sqc@U}45kKcOA4gAy5}dbuUAlK59ScwD{S zRd=kF?VneQcM_Y{FXV1LP*fpBJY^UIUpZuFneW1Ed#bf_Mw3d-uJ_{<(DTq-3*4|P zflnO!|9tKGuZK(j`R^C+r3m3qp*~P*Tv;TJA*KCq8W?F^CDIkwFitF_g(Q= zE;MI1syWv1S5VCUep?6^nQ5#R-e!(l#ayaZ zful{y)hm`DO4#%o5Mzc~jUCE51-ZM;$VyGvmJK{jZMp4KPfcyHjw^N~7DYx$fhnVj zNkvKv(TXTqfR3xi;>XBk^@D|R4J8TJ3>>?@xzBX$pM}-ZbPz7*)z^QYtf$q;)zG{G zl~-{yS)AWvF0lDMA6_7|Q#%aBE=R}^O8NiRb=YmhaBQP)y$zJKEK+Q*Qr&K9zi{|G zAT2?diu`_W=Buad;Z=9o(YwbK$lTUbzh0&TFI>+QZNsY--!|f5)owd&9b7KAwFw)v z6m#2v539+^nHk|swQ|~kpLYBA&Xk9i5B*BXGbJ5vy!s%fb9CtsNt5@KXoY5QF%$WGLq6|tY+mQW7Z;*Co^q#*|v(S z%~BaK3S4M+T5ZBttRvZ=URqYvotti;kBH*R+>^bM+8Pbg*(Yw01RZVAC5GG0(3n+| zUinC?=L=5#&^is~?~U_O8aI4;v&}nF>bEZ`q2U%&k!&q4CN1ZC8y)Lm)c-1(Ly;(i zA}f)qiYGSo$>Hy`=TO$R+0L;;occ z@9x&4@)J*|KT@<+#ipX7Vt2K465>!x)Ja5_QcJ|r_dh51`@w@mSYdN9PGYC&^22WJ z*cXz#=8>Nc5JXh74|t}0tQ65ArDBhJwUvk*#kTFclDyLpIS(^#OFu0|+>(XuIY-+b zb3)k;Xl~Z&Q)q+&RAP@kkuy7)41gt&H@ip%P%Y&ldKeKGVU@uPjzM9qE;B5KS5 z_OjQJ+xt!!Q_XtsJa#7?x|EoZx6Z05ZCQRNCyPV?Dk7*VA^>`09Tt(4+?nlA7kfj+ z7T8UdcQT0+JBZAP6O5U()XBW#?j<)6yIOhYAH&SF$`kc6)xHWGmO8WL zfUxTdJk8XZzO4<1r=d{$pT_~)7K!;!q`hX=(`jC-S^k*C>^A^yo~#k{q$N(cSH>!g zGqr>@n&eX_Xf(9%z+9p=oj&0pg$9Ml`7~_D%0xZ7cvu|n^H;xFLFHjDsA^yc_sqBv zDBgT?fF@`V%I9IAbMjg2+06R)S-;p!l~Wpz{fzITCn?`L5~}gq2r9_?YdqtLQ*f1F zFXA%x@o~8Zytl|&;ghiOMv95B`~1uR`KL1Gs6dG0r*iuo#oOrU7^GrItM6TOeTVM_ zx1jjb7E(Qh?qBpl5XotCQ+^ON?59*ynTdAh!%$eZLGypTDanRRjobwK#tBIb*O_u) zjk_pznp|mZG_dWk^dK1;1#e|crz-?RZIv7o8hvSVi;Nkuvx(W9!Z>qtQ|&%^H7jXD z>RzRiLn4WqMS^Eqd6=AoNuoVQhwTi$0Pkzy6S}3)L?5AmM$-znj*7zF#0`_Xtb6yh zqI-8o`a%*YD1|wmW*tsr)09jL<@MjCQT5>?`t|+wUu(Ka}V|$r*8S)`n(2&lina+lVS~&B$cjl=KEXWq5C>W{l-9O}Uy~hA^ zsj>Zg1NSF{frF}dhwO!t7+?fckjWwS79z&IH&rS%vZtYTqb+fqpsHEqCHBgkVv?2n zr+M{8lI7qIhUeDP+GyXsi>?m0Qy1l+agw?ACSA8$q1F%Xzf*2b`GYzfnQW=_TsEGX zYnP{sIbkHG25u9sDNv}*ZJox?>TB^zGFz6zrf%+rr#qTj9+mxog6>g!Pd}p}#%9yv z)#PkBAe)=jW6i85$De-iqCl9$OKGW0fxem{d*VuHrw4iI*;B<^?~oVO@&5K!f*KKp z_rFQ{oe%<;CoC33E+W-OmajB#TShbAP!?Fseb0C%mpmCrA4vA{JBwX$EB@a+mr7lP zSUxN9rK8IpT3&Q^8(d&l7#y99ug1KW&U-wksg2j7s>x(yTA1S2Ov9Op{8@qs5({*J z9WWE>wx<~m+^xcpY{(yt2w70-(8s@CS=NeP zFJ&eoC1aDr9*Tls_ukoxd%pSsW>2bDTfRQmv|;!5*q%>2o6+@|o|Mpd!|8IkogHr4 zb?-Bgm2Gb~arAuclxDcMTsRmU>w%hmf4B6RADV49+blGraeSFXYjE7ppX20tWLJOj zGd2BQ%9ZErDZ7;s=5O{kWOn&zOQZ`)O!FdAwn=VA^U27d#bVLCP9rrZcMm6Rh6~Sm zNr;d#GNO(#lA-_I(`(|(i&831)9{Mk<4dTdN=s(faOrScoi55>(6{p?a>y^DLnfCc zJ^#F*Cza}aXD(%{rPfp!c>og$f0p7a7sAdevt9z$Wpyr*_)nW>a8F=#-L@#? zv875R$JQ$<qI$Mwer~QS5(E&D8vEX)e;G0TZLHpi1yvpHtMbfuNy$u&jhz^>$DfI zWYxR@Nd^pg+jibDHat2JZfuu`VOaMvT+%Z4<79_@7qp`RtBuVqoP{;LI*qnzZ6f#{2Z~K%&M}W4?mwpXhsSyY|3UkCJEu#8!F*$(a%pj5QoWqsK92+8-QNJT zOn@O7TpZcIR3S`suE9(<6q>75;(^O0Q}5q}GjHWV+H`%_)Dnk7`5Ct|y*if&uM_T^ zp}%Ev2#4kJ0L_doE%3Hb4Ja5Ya4D$(;@C%2y?YA1yX&N~Yu{VC=i|`+8Yk&yJ^^?$ zZybnwD4VZq{Tj^>t|t7I!?L|&lMcPNE>B``h^ST+AX6nbrwV>1mey(Kc!_?hZwmWt z3!`C1E3J@y(zO!vW-~%Du)~1M2YK`+FWXZAd79R}L+LZ%`D(MJXsi1d1f>9?B)K{H z0y}HzbaYZlMtmB6#)@t()(YQ%!{S9uTw#c??5SS?v5PKa;591SGTFshMIhaiV~Fg% zZKqVj!&3@IC|?J$ew_Bv3DVRhlBZ`QPkyXV55sj^aUX^VbGB zr<$|5=_JTDUfc4>$K3RFk3@xKVDg$phr+u=dYA9X>{*QIufxqz$SQ4%xg({92MUhw zqY4qZn#o=Kf3f2ZKLHZwru1yu+2&EtY$4)Uq9mAu=PP8-a5U7ckCA-^kew&Q1MT+J zhucGc9nOb^V{3-W@2~Svo;6QtZ+IO3*AYnU9m6zzWPHYg)pj0r4x7bimFrx`@gg$Y zXEps!UndMx8K?ItB#}BBcc-MmMdz74rqxK_ql}T!jpYrTqSc*Pn|%*lLVw^b*VJ>GT^Uxm%{wc2?%gNJ^Rv8Vnq8O8fU;=_INv)AU)b4ULt z(a!x+)WSrQnWgi+-blz_gi?{ z{OKNV5*z}b2s2&ToNwN4!xsdNcbjqF4Tq(h1Xi4mn@wkxmYr%3QNsPo@pmA@D7dM?iK!$l?6}I&Bn5rhG(lNiI@O^Zzf-T}=<~xl_pRgdN~)>NdERFDm#Z~X6LJ%- z<)x3)jYGhPSN3Iarm7*=5ai|Bd!6P7U@&&wJUj>8)VwxN=!3+!*j@%~;TWvF7w+lP zH*U`ZMzOJ5WvF&mdM5Mb3BFFdoWRioYr+Ka*0}|u4QQIZ{s)K%OI1-6dECM|t2axsQ%pXI$UWW3nVvJAVBkPB< z9*0;ODKcFH`aBVMYr8)d!+71Sk}Z7eY|G3FOVdPpuS0$4Oyb5{&4I-y#dqVjYh*L1 zC+b>lrN8|l7>a+T{brP1N@e0Bi7z*}yD_5ODy?@-%GlwyD{ZsOKHIrp5fT$3Xw9IV zMT#BIO%N||&A)9uLbXICk5qaMJZG<#&D~!2bTbFCK`(bZ%uR2_2rtuNWL{U_Hb-Us zSw`xuw6Dp1{P)*IE`O*8+o`N$mk4Q8Vx$i3?30f@F+M#rJ)!C%zowp!K7+smv+PjL zxR|9bcm|*X56{j-cKN$1MMG=Q0hNAPG427T0}j5V)i3g$r6S{{PoSSCE+Ql2Upe6^ z9?@#28&Ap6>o#Lbt9S{5D!`)d{-&&i%u*~VuacQvO*ZNMOSsmZM#heKeUSw>hf}nx zT_x>YooLIOlm_E=a+STi^{fsK=fbUC@y5pF^7(cVT-jZ>DY5pJRVf{cs~@ed8KXx>8^oS@OOUJ zn(olg;?kjUJG|0UCZyu;Jmym|7d~_4@s29J2_D9(rrRU0yq@*C;=*z<9#2-YEl*M? zv}`5@qorA^CtPXI>MC1#&0_8fzQ_o4#zWC5k1a$d<&@{uG+Cv<8l#kq*;S=Xd1G{{Q|Y_>UNQfVV-^9=Dcj%gB)`)v1pN*CB{{XDI2S zO4PS&3>_RWMn!1?-u0_Pa@~k%j31$YeAZ!}$78h!gN=a)5;n-~@jOZV@sI1hT)kra zBan@#<53PSm+JTeKmDrYEY;gP4tVU`U9o80phy34kIn4s;EY3WhlndKVHHZx+mjln z;9yPI+X;h8{6<-4$vsrpW4F~jp2QRQnVH>%*c_1Gad zW(Lib7->nCYdHdU)CpM{Vv|-bemIkTgkUqF@a?9I2pn2~O)?=9m@M>`BzE*8O(u;nA_ART5WY|=EP$mfMTl*B;zqYIZfp9w z6iPKLgL!4@h=l|k-P;2#dlBr;-^!4oE6BOtelG5P`D}3cBKCu~>iM|m)?G146f_!| zjqVmVBJCwx4P-#f;R~G8!8SbmEzq?3qp$WoSz1R!k-#pCe@55fAt#63V;?EW@i$1^ z{vc%+WW)p(V8sxZl7iA%y06~EZru(H^m{7H6fo6B9AWuL58qoT`gik$j~V0+DidmZ z5*^R7vHTvPx)VU#t}Sj#!%Snmb8HGh9V2X+qfYg5w-6thOh3=QRjHXrm3sqFJ z2n1n#CgHWrqv@rcsEj$ss)RE>$bv;M6NjwA?~>mJ{Mat}lH z5CoBA(y~{D6sTiDU{gjr@!wVJdFF05hwf1$YHZSR>&pJIpamL?1Z%iWs2nlYfh~ZvsFy%f4%XVWwop9Re`XYM0M=eP5ZE3#P%>O%TSq* zzkK3*!wB^=XcrXcsfq{jUuGRlZ3UU2Qp05287D6P$q5{aW-15>jcG6i~ zg~$^>F_}?hp}zl3*Nvp~%&&=>+A!)$ZcfQECA<+6&<17pqPrBKz*9IZDRlTP=8_Ny zM@3yx$NJwq@cXAjyLh&&V?uoY~Y;E{j-$dSoi~TAE>xqd4JPcT4_!@CX9qi;J=K+$oDC>eG1&& z(~es*nG;!>yU6O6+Yp^rDId$TFp@7cmX{-nq2R?8JbG1VXEkLNz{zGT{HUus6_YPzGUF!w469634F*`lJiExp5uoRohI#-G!6j-;^8l$J0=Z|U z3x^FRW?*DxCXqv(`qMcUo!>L+PJ}h=SZ&VV0G^cTy29P)az&}>kOROXJ?6S6_AJ?= zYid-u9PHGyU1%s#eN6dr@1=F_w-pP{=1FvCW$#*BVkq@(F&!d)%u zY}}~OqXvyb?B*Y4VV9@B-2yy%nRdI^+=WgL9K0Vt*K!IV3y`QvEUQ$|K}l?;1(A}# zc(t9~y$Q39Kz@uAnSRH4Ajvb_U~TcrvHVS%Ft$dXrMUrj^W@zZrF@vbMph{FrdEE@ zkYw;U@j`c&E0F7Vo%g*$RVQ^Pxtk14fJgYbq-C6(QjWsl=IJuxF^T$>*C;6wo+h&> z_VhW&lzqU)GqMxb24vbka9rRDZ|iG;C&)X`2QJy?)*Es2_V~q* z?-j%cR0rJe@qSPK`*wVd^un?8hqE26yFuNv1B=%D#nv92|p z>oAsRtZ$eYn6K#SWMUz?kO6o-lbG~)ds(Dw%eKY=epWuYWD#o&Nm3z3of40w)>}@f zc@xz9pZWUpnD&38#i+FOqrZ3Nf=RDrQw1x5(V0!ipgIIQkk!6h`y60&hwH7ITb&u*j_-1Be?Wk_ zg~RGJj6GC2rn4UyVAFgaHn;+{J7Y>PgUtG`Rjhuz2C+_xfv8dCp z0b_wj@FkMk?wtR##=N)-|3Xrw1?$~cVx;&W-^Dc+-wy#FnI_Ql(QAs*cx zT}8A5G|8H9j@CTEu@Ois>6(`w$4JHsCvBq;MgtZr>041kcZ5q&h+QV$EY27ilM<8* z&7Y6hH94lh0uF6GqzDB;2_^jE@Oa0!^?rLfsF09AB7H7CY~omYiY?hh#|iuZ_wM@@ zSNl&pv*SDH-LY)Z2h(;I%)4+(;t`6mi>1P~ zN+r=rF_-S}SWnjbkO6uT!MI=WhU%^Q;`$@irK^lGrG*hQqqC)Dcfe#BDH$30+H?u` zTNvq?y6)|=6ytmh7WoYlX8eSwaOgNn3ZLWdHKPA_iiVXPQ7Ork9c0x_uw22Jq%b32 z){D1c$jj3tVo*-Ami~+y#5uZHx_HEiX*pZYkbT6vzdFZzcaPazXfwH1y;;10N$#|p zC~vGrn-m|mK^s$2QC%`RA2q2MmV7KPVjr@L>(?MJkEN~|`wte!1g3zh)g@U&3%fX? za)8mcEQsPznWCbxobU28YQ2crQZ{A1(F0&9vzL$t!xaxGn={7M#>PQwxx?;+9Dg4a zvO)#fiU2YHk2D<=Js`z^W>1h{&5ou>Dv5tL`0X`Fv%6T;2f-ih5vDYXWZ_O+SS7@T zmq}VRfV%pG4Q{4xpf8MeztX}tBaK_-1Q5u~FbN-nG^Vw-Fm%(%3uS=TNLT$(pC2CW zDD*m$5%%ZxNSuSOM@~4qJ$VxIbP8`EtjMESMyD*B0_hwcR@xP=&QZZ9ton5g9}%?3 zs9%xRu|Q(HU#ZadADatAcybv)PaOjHWQRznE3|Mf2^Wcj0{1E+L@v6*5=I+#Ily;5 zT(|8pz4&lK%WLc~yj7yU_4w4s|2|FbR`-3Wyh$(~2TnkL+H1EMLGWdD+lLQEfT`~P z@(EQ%A=g>R>jJ1fo*!QQ{Jbx*w_UpK_C5@0!of~e&uy^Y-f&l|dqe)Xa~+FZi*oiC z4EKP|rf~9%+v8P9`yo)&oe^<;`vF-NyUz+K316oia;7DD?qB8uP^6e5q=D6=17&~L z!?bh0W3*}JAgMq&IL z^rZGIB+a79?^}AO=_da+P@m$^8eU^YH=H-k;{P!4y2TNGU`Y^t?!lHZ2&w7+rA5@k zNH@sCiL)@7K_q8c3~_xwyu{$HQA zP^f3Y0vq4UCe%UI!McQB==Zluxw2CS{5SFNQ(Ua=erO>-uFaz)0~qw=J&6rj12DZXH5d zSgEz9f~@KSR)t!HGCEZoOk0$8ir;ZKF+~a&v`Id#Acv_MSfq?YZ!3G^WylU)gprcL zSKwbIi#wqe1R|QkxOZkM#lUurUr_~ufut#KT)$7zTcJ<+f3-qiO?(a`Zh;bnA|6Og zk@AFvxLy*w(QMA*8)~*9*qtR{@SO>A=(a;(?GA)0KM};>!tBTL}3%(oh@P-rz$q>s{O_2h6vP!`EowJ#u zwIQ%^Z%aV_-htMAp>J_=Ct!nLd%5nJ9`X6l^*DWbl|~L(R>mJ~#lFgcJY-k)66w|16EoC)VHX{zmh>%!Tv)c z6OS*p0caYRfb|MZazbGWciDF9cj7kP5JgqS)t!$NhIH!_$s_O@+?cVpQKmst)y5npSX7fW`b zxB#Yz1Ur+_#T&f(oRAF_EDXc2k``gW)DtP_GJ#h#l)k|VAhabX2q0aG9?3I~m^#+U z$f}~iBNudrLGS*L0Y;_2Z#u*4epTl2=mPICspnCiA@BRLiQ?!|lWa(q43JE2Z|qw>w}kgt@E30AU($<*+txq5$Uj+{2w+?X0kD%hEAImVM* zpCu+kYmwgNDD{uD^F{LX#Ki>1IR{r$i6UsUVwN53a@yM`IL%%JDB)(RShR=Q-Y?o}pwnTYT0 zS#CWEbVHj82>|6JtnVgn)U)zdyBvU~vTHne@^*H3CqH@ZR~WSV8CUT(XKY6mz!NM6IX-no<^CU|e#;?k zGAjJ7^oBtp&n<=i21;ixP&&i~&_f3yd1O?Qm$Nbr4t!waJI9N=_VNbb^ z-|O{rrJb8=9A2;lb2nE~r_)sbU0I_3uXEuv`8h7oW4kh<=_eag%CfLrG;?_h?Y_-5 z*lY5B`XnK@<#wXskk4$VGE<$?c{;Fet{1g>N8TLEh+h}E7R79qQOSn z$on@ra)pP8kFbxak#!&r&>F5)d=@Gf@jUDPYRwq6gh!ZyK43QVvT*6dXfQwKpsFUPK zd{ZxiLw~Oe4d`*J|JNC$HN7Y z`Q03_{vX5|??@E-USbV$clWP-J3$*M1H)^G;4Y9@p?y;^J?tTUtYAPT8UO&1us}se zG9@t8UX|@bevj$Y_$O1ZnUHa`=!f(e!KK0;{DNX z^UyRBcyWFuDp*Vv&&oh?`UQua`Em*`^{e*B4tnp~i@ctCT=totolbMVMz?L2%bkF} zU6zkr4mE^t+uJXKfDgS)f8eJ5wf~cCF*p#`SBOB|iv*g%@zLGlG~7HGpa&Iniqt8A zi62l_zQ%98WVaF!I}F6NA`?@NMoW8h$W91A-vj4e;l;AfT>`m-z_-q=esA0LO=&+L zp~-oA6|eLW1t&c)|CoWFewc=#yQhQxLi~>Z4tP($(@;TL3U7v`|F=A}PD!z9dv9-) z-lDrwO3rTtyrC4gEDirtK2LMkfEGhs+Te}5Xa@JLs9E8-#&ZWoo9U)i?B8HY=;yG4 z->>N~)OYOEmazq#W~oFIH*^+>b?(=Nq$yf*rTzM~9`kp_37*op>l4<-eMzv1BqZsS zXuzD^u(2Yzr7*aqbQm=E7T%*8&mqKJ)0^-M9s$`02f;H&6qM8lB-g@phsFVj=KgkT zY!p+6nk^Ux7qw8PHl41{ACw;TD=X@BT~)%7eS(?+3n4xZMQmc<*M~&VPtW<}X5N>`LC4rM zhK=WYgLc|BoE^-SCuH)kGpt`6{4bI=Z;|?+*I#LUL8QkfLmhdXZ18guq{nc`CQH#9 z<#Hmb}8r@TUlskDIX}+`Wg!dIU%0Iip{;@t%q(+PhV`2@M zIY`6IDFiV-N%Q@V^?)1@ii)JK#RH)9)j8UE*%q+>aIf6#zh6#4uy_Ee3=S$%>Vz3A zh8V<@5bk^j(EMk(%^{VMB?(E@FYR@@?OJnK<31?ZMRtsgZSuq_j|$F(<>vZV<_Peh z-5>JG>p?1EL zZk7%GgWY|B{V)#*=UtoJ6X|he@=y@{b6VShgdxtuqF@q|k{IX6Bht|5aC05Rm?I&I zH>mN+6_MJ-X#2rHgKl`gjcY942ecM^V`;3+gzx$)73xf4Wd-oiVM?=9~CU@SYSozQuZTrv9 z<+vR$@QV{HNscsPO)NoN3{qSSDTTXV+4Am;ySc2AZ1NNSPvr49qH5& zNz}dq9^D;yt*X|1uSE%x5+-Kir!BcaX4O&Jq*qK6) z8cAhZRp~)gB-(P!rfR-83a2|wlI;+XZ|zd%KT(G~bHp1v1a{QNeg~%i_RcIxrZ>;d z#pCpO*`0@zbF4=#DZ$YrQP7=&wXzuz03gG(tV+vnCzAOGh+eP_iw(6#?cim&ohb=5 zpt?17Z28(cB8{0wZct(>DjW+CHaXId${$ql?v+qR_{!>-$%^KJ1h$gVvuO58(cv5s zFVH;nz2!~p=Il#uZfFsl6eDNA$v^R+6OuR}vAq`d)B1ToPPg`df5Kk=gOKwhy6V1a z?1JDAbWUlwYTLaJG(LM}I1KO8QEn6a@+}Y;5_=${%!?XFOh7S8}tSN2%ciGv?h=eA00%D)S!m1X@H5@phXZ) z$p4y<`mIn}uTW^EV{vcIfq3i=s;H0D6Y}7N9Yh3{@1U_#oROxIf|v{AoabC7-Is=zj-W?Nkcfpmsr+gyUVpnC>^-Hsn9;<< z(e}R{a^ETNcTiuw9~lQ~3nY>=bUxN5N!MqmGjgVVLytr0Wa)~XSSHXmePeSS3P|K0 z0f!PL0WsN6tI5D)vmY1F#=abVLVYTNv~T=5@w8QyY*jzCVJ(=GlY13&{TehU* zanq#A85*8CD=L4@byL+St4?eF%Gbinx?}$;MiC+UIY{?MwGm(52A613)qfgMyMei} zw#r^Y430MwH^Vl3CKFPRd)W^qU?>Xchd z=6xoU0n;%BZ{n}S@7V7M{$duW9@)GY8(#V9)7nz(?OK$ELJ6kLGpYr8;@G}~#Uu%e zOhDX`)k?DAadH+Lt!C$zMz~^iUU(oeG7$6H&3UY*m;XqxOLvS>cm+|bSSYj5$1zpo z-eM>P^=vvsJO}2LI^yz{ORvIsg#;^v^p8;oVl6$fpIL~qWz3UW`MC5I-8Fsv5m(3e zB^!qwl(oV3^DaThJIAi?e&;C0kKbmLKHuwW3Xm!o3Mj%a zhgHyRinOo8oF{>jD*wfw1?@hMCk%~Tn^MYmn85A6YZXMW`FHqWhmkX(ERScb(uiEq z8&#}(1wvFySg2B?cT02yuk7Qm#^UID^JL;$CEm@ES_^gN!tJ>&PSQX>B(Ml3lxBdT zCK=Z|(?d9>I1?ZO%kg@M(l006I5IdxH1H!F)1P97m|lwHCGLt`GondyjA&_XtDVn- z^p8438+aRJSfC8zJ0JN!(#OHe>tvoIauw|3Q|z8vEuh%~UI`X3;sAOvdWD!^7Oh^U zkgVsr4jwDLbv z%#fyBb|tQ@MCMlQRLTgmgrmv}-Ts40t5Lw?!fB42ommH9Ed(Y#%iI23|K*0oYn49l zVO#A8-p|(_Xp8`-152>(^VQvDkGmFDyn;T2SkvAZa8Pix#4Z_E!g4R0bh?;0sv;x?R8$0dKP3%hikIP=cJMR6oYcY}m8ZVyTEQFd7v z(JtLA%A)kwLrZhiv`4Oal=iUgfm?(ArzkJ+eR4XYdgS)O;I#rkmM8%Lx(WJI1Lc(@Q=98>5jjh_Zxb2#&VCacZr&MXkpHlscgfL(o z#2ccqub;E2vRtZh2BhV#sZ5r4L$jUbtr?iF;|Wf!1JUVla9MEuREEo7BD2t;sGx-- zqm<^ud5KCWn}+um%bN$#%4tz$)W8`u2QTgeLgH(W)(ZFA2^HtUl8!dR&#%RF2LFdF z`&xg6EH{Rx+o4uh%sf%(`r z=UAAr7H5p`=Gt!z@8}}2x|7}U`$S&h$3NL&)=9JtZ;vg=&F#f;s7bhI4b<3T(S(If z!-$8>xiN`$7Z%6oKXH9;RqmBlnEN<;91MYTk zpD+)SrT||BpOg=}2Y&bPkHjDQYaAj20J8KV?9ee~;eXfRf$@%!3KpT`oFP=mS|_lv zn9Q`Jhkl94LysWa=$fIyVoJYzF(i?FMjVt_+K45r+J6rl8*4gdIgVjf*84!)Ai%gT zF@pYTY}qVdmsC0|EMgMHL;5bx7N#YpVw8zoLg){m{H?BtB=%*zo=i5J{eN_wQ>>`L zwxyS?y=>dIZSQ59BH$=HH2_gQMfW1)eQ_{irzfxjS6Ts**(f@DY9K;U{Fx;puT146M64RSjdI2?J3w#)=8M(a{Qgf@kS@4X&gE>1=k3 zriTPYzTvTh`cZ81;%Z!0weJUx@>5di$6$scV+=7D=cP8DIX$g_k39fAMWX2s+L zLNo={3c{KqP3pp*5im~%hTD_{(}Wt%j+3Bt<61-YPw5RCY5H&sp+kHj zyfO{9^`i;&#Ke=scGMILPVVMe(0cHZ;9Bm?2I8MgdX^@dU?y=1%Z!>bdW;~gFi2Ag z!qSj7=VUbf;*E||q@=`WB=hy8;mH{~8c*~g>)@Q8|Hu;NEc8pT(4`kU6HAz(F|uK( zTx6nLGFo&fVB(#BlCY14;=hAp;yN(qK`ygpycpAtq z7t}UPfw%BegrcLAr7-odlb*n?v=kL3tH`}{m#S0fbxVGydTtQwd@O&g$Kwjbm4Rg8 z@P&+Cq0-UJYmno)RPAC6HDetex}DMSDZB|5=wjK4L8K{MWN^!Uz1BNEk=VNLZRK8* z=(sJ9dtYeVzOteZ)2?1kwY|;*x@WI(%l!B>?C;xd`B?4vw%UEZv+%rZ_k?CWzhSB` z@!z8IsCiRPyzV3lXWx*%+ixMfr$!mpc*O~Nw)OnLqrUe8_w(r!k-swd%m{8#>;(QQ zvWQ^q4_Js$=~A`T-Mi4>km6dVxz#e>YZ@Q4PJs6QC4G>UjaQA!BV|Aj-;KEOJp|(* zVf%2ODkq5xx1g~Ub~B@*TUFA-NC(qXVS-H1qr~t1?91U@o-U%6F)QT zE;&c#^QpX~%s%MI5UHU$oH+E^)SD-A zgehEEM%C$M6-gDV>D4?3P>D)UJpKK7cE`J z;AZne@l1AWw@-Hdd-rhHjF0b7zU(}-w>cPMVq2Ru1G#}N171#^JguymmKJb zPR~}flMjc8T{EfLx))8#(+y(SAS~q|r4P?avN!c~q&@ z)4Up`-~_ZZoNanRTRy3UH1go*jV#4*mXXsjXT19cM?!Dc2N5CL9b1=`hMYc1B-Vc(|j4;(q@g{E!KbEa<3JJ^RrCU`2NaabjF1#*{I(H!P5x^b5I6n$FD z(F?IOab?m&!UwOM{p*DGSbPaS(Qfk!{Ox56&(T~L5M?46; zu%DWzxL^76{v&xtwV9(Rt-NpyQ)!bDEHw1o313Mtce$c}VY4i9$FenrT zW#az%2iNgWK9J}MG&BhvB%~5+l;)k~HM#4I<36yS<+VA!D&(uqimb$4l1>R=onUX6 zdV_WV^GFgl#PcytnivruFEB84_XFgTUG$>FI@nw+_W{J21ll5qbcjkC1A4+IA_Vt@ zu1|C49B9Pn15>fm?Rm^f(1>m-iSc9m2i{L*0jNZNm?tQ5p`gG%3(pM$MUm(xkA{ag z-42sK#+H2TKLMVinX$E+zl&rmRXYrAN#E-@j;A{;Pkn`fWH;QVTYZop^{u+@kKJs$ zZvghwOZ~-90z)idDByI6HR=R|*i~@3fTn%0P^+kBkyBw-G}|f@tRI+$*2PHPNQRGI zj|Qplw2?HF*R-jEB-WpNwNl{>(4cT%?_hNnCIewpB zbM{TyX8IE6<#j!g7ia<>xOu)!&rUyfYrynA1GrID_7&J9R|K&}@Om8*u+y|!e1sEP zO5VR;xv)Ri8N1t0lQnqoNj!}{&xfc)Q(d84= z+W!IwQl10zrg1voRvgU#oTj<<2Y!ZHqhi2e$KMlKser$nMAU_-uOzAVz`pPrIpJyt zXBzD@%y@Rn%8y)TvM74)v_mD>@lE;W~{eYM0a87YNA2CYl+0Z)$M#W=Fd;I4ZH~u9|5ooWPtizGducY&iau@K%_eCm~D= z>796hnDA9t@5nSP8YpZ~0xa-)l#b0#3>5eZJPrs9zuVj6t6wx>-481pfZjuYJOWV- z5&kYJQC=$VVV0Zyi)k~|Jw7}(1xW!xM$AgLtsb|xI|rn6aOO{BIK=uTZNkuP6!Cp0 zAxM5?95e9OmD~J$*4@B9VHhs4UB&#f%kbl8r2xy1nOC|+ZA{|^lEboWBfjv}BWZVO zH>YHel)8xXVZq0b$C}EnHvFZ1hiC>A*A9U?uY@UPoXQBuPe|HYV6V{vN^Jj&kp@|W zA{n2sTnFPTy9>cRT!!!xCxL7!O`UbiWw{*p9X;d7bRqvkT^k)m1Cv9j>hy!6vtv7L zmW;xYBJRk!9!J-#D%$wsFgZ*O!eFUjX-k~pWY$NV;9HMeN-#9xuJ1cST=!K5~9q(Ved$QP)rAFCt&toe(rk!Y-P!u4n(jO;;p zfKiTO0P^_8^@RDE6!F4iab`?%f)`yqb`12}M&}D3ag_Cl`MUD@_Twf@<|p`6i9~v< zP1*04OIx+wr1w-+yeu9ctLN8~?YBngsq2Z0Vm4}MFiXSM9w*<=1yx(GQz1JOulI^! zq*-cs(~DB;EEZ!SV?ws)52}GvTJF|jZk>a~1=vGdHMjo3Q@+5WzaD3nYSX;p!F|gh z`I0gGK}Ua%IR}|_g&jqjf;#<-8CZ90OaIK{03ypPL(VDBAvksfRf%e>L?b5yU9_gz z+EgYWGwveO4?!mmNkqOSd$IK#S{=4Net-Go5M4uV@q&ttbMD#y#Tf>ujEJNbu2}*v}*YfjEZeE|$>(WvF z7aT4CE`bN6F~ak8VQmk}j~ZGoK{&sSDAv+YR$J?g<1alXfjD@MYXZIQ9JZt*K;$8N zSxjYN)7@;kN~>Gb@Dv{!-H7^&uH%BXrwZfqTI27Vu8uV9ae`W83dgAa)cnf+=ZRc4 z3n~axe*tYsXs zAb>N7I>ADLoD<>?4i4oWEJ1Ik)Beb~5Xb_QewVt0?Hf^tHB) zdiF`qA*du`J3lJq{$h#1^bIY08f=Q-&BY-gO5+ofs^-5;bYRtPg?{h|3(fbSoNluP2F3V=Iah6?`gCNsL|Y4UKWI!&2j|E5Px(!mz24+Y zJO2m}G?<)-x#$c$|Kl$w?{w|UacgFX9JRHwPY0LXd%ysGyzPb~Lm9*EZs=y=b*7EL zZMqLK9#{Hlf~Ytm3|{eTn$~)|{Mak|;?bww>&XSgoDHLG9!=;5hEN?S^!)kG|Kyhd zfn)7}fwZ}M=2JeoDPR}YE$8xnK~eLBJp`3k!!C$J4)kxmII%SOk1%WBSae#L)g zLp$OY6poUaMsCS`Kq9NQvy&*!#+XI;(Uyi@uNGp!uAaow&q$7UeR?P;O*_A!98!zw zph2`e6pJ)7N4lWIo|#KA6*s$5nzmRC{p?tM{B=BlvI2I)=@Wg&-Kx54{hiH4pfX`X z^0!>YEZHOY?=hDvj>3NOP@&J2?Uq@-vCq9!; z^AwSeC{qy$L?e-Sm_=dKp(xyxhBzYnX&u6IjR!PRI%4<51_$a}Q*|Ao$1DYw-U^F= z@=FehyTVo_D}e+BggaECvyy`Hqf7NMus)uVdb38SEgXplJSJto%uAO_=7SS5D+&%x zpjB};Dfx@QM{D~Q$QlM)R{Q-QFHKgpy0D;7bKb@=^*cPCVVWp@B`IVOzFPxEFB=Qi*u$uI_Hu=6^Hg zn(h@~+jcfV@TXKxZfPbn<@2O6kD?x2zgO^;-~~8d1XY9+=TMka=v%F?<*X(9<)?Ty zoQ|)Kf!&`u6(0cQk$AX_yMC(h+;=CNcH`l(d$66dJ%QC4IO|Nm;O20^C)l2%I4MJ- z0-j+)L>oZJSmb~>W7xnVa1N9jP@MLC&l}k4utvbaYq;A$9+U@8MA=B=x_P^!TV&j2 z-~6|xpY1+BGTKYmdc2aKLw=Yn8GY>TL~WX=7S)gGa6LjgdE4-~akz1>eZ0pk@37Z2 zheRJd_iPup(Q+h{n#&D>>Ls`;@hnlEwCk89PB8(LBoc8%JU8@oCk{5*?}#yl?gGew zqv6y-L~IgbtR+xR+AMK${#PpLDlp-T`Lr0dinS4QWAX*L1;UsWwH5r+qTV)_|579*GGFPg3mnq?&@HgSeTQgU*RGHZv{F#NJ5K)1pFr(_Q;0u51GVm^zf2^zgF=u3C;DpppJMuDryPv~9nX6S zb0P878Y{%egICdjG)j*#4Zue`mHn%emDW0h zA1<4uM~OOy$FpWzo{FrfBvQMHn%mF(&EBrfhWf~WToF;QF6R&VM-O{Ab84SjFJ~p1 zsyD(y6Ox^y!FcZ?%s`jx{t~E?qgXU9RI!@FXE+r9J622H&uv1mjX@GXRQYcnoYp3)UEG*rXC>_NJs;8;(XWm(Yuu#IviEKn|-{`S*j}z;7Wga@Ey5`}RiE)4qkg&@j~bB{-43J;k_}ofpqM^2p^-px9Ma=}To61! zZ1D&#(Hunl1LD2O{ILpdpM3!csKf+7*cCj)9je|PB5SBmrxT<`(V7@iI7jj#@f!Hk zKa!wsi`R`nM1dQQIxfsba=Qdjvawl2qt!*&P~tF@*+)`SNP-RU4ja@&X;oebSteNG zilYF_a-!~SNCA&*d>*}TC?C5VlM#$QXx+kVV}>69{+8+0LZr9r;1N6KlfR1weLCFbJ`z^TNp>hj%?$3R zu5P0~#@l0eQ{T4db)U#;Bp)`Wg9oF%Z;-kLwE<>M2i6vxWO-OMKR@UJ6bmjtx-V{u z!e4YUbBlsGPjT=+FKA~xNZGIQc!lR>b%V@S%_QNOy$#Ks&*D_un7vLGa0_+U?r9D? zyXQLoMrv_XS(iHd_#J}H(aMJ9I4};6QWCpRkTQQM99i1M)%OWGoc=h$29(BIQrp$u zgF8hd5>xe0K;#iZE)MDPa(wNdHByLA<77>OtnKFSa^WZ^maQ|E%;=`h(3NX*+t9R* zbk!IQmcg28@49q*f4?m+s>t;wcP@7|9=#~I<~W;fX1`<~+NOI zAJsH8J${S4n6;?Ri0;vS%32cfZ*-cIjLueO!Gdfbi>e{pLbY;3vTlH_75kSGP<4h- zAU!Gxcbt7=X`>{^g*&^t!YY@kr|!a@BO?z$d}O|e=)#(5=HlXLwK4!Xz^lK9qGwpO z+25&c8kmJ;2i-D9|B-D!XKU-Y82`ow=kquNW(WcXJ`HD(Q@yv9y46VKv%Nr4xo8UO z^IU6LTC2-xyk*I^{<_)s&tW1aSo^$w)OU&T_{w~l>U65-E4WgJ69TJ5&eF=`?k6*UeX_D7aGvb_M)8^*r>=8;0Zg0&%; zRN}Nm&$=O6j82LUtH-gLdq&)}5v2@~l0rNKweP-_TD~2zMv8P&N?5(}UlPn@r}h#e z@3Tisf34}V`G_cid<${5sQrsJ4GU!%5mKz!WVI3kDcER_0^S**At(nXlI4-$QJ`h> zX84$fWd5t?&_jG&TghTz9a@pRx^g%aHDoo6GdOyGUbhpQigFBQ(>Nx(0tBn)2;$!h zlIfrA@#Nv`{Tu6Z;At+6v6~RJ0&LO(xcE?+hU~UUjp~~dXBY&GkSjYa#0 zk)`0-9X+-c7O+WtIn%^^Wtb$<1BMD>+-Meh8ImRR8dk800LUkKWE@O=Z^*L4ONpxz zx4`UZtos#>mMj*Tlmvr&_Wju%6#evSvZ#rUs0bpalGbRyMMwl&(^Gr=1MVy@1>~Ck zG;5;ut(YQzp0)a4uGyXp9dtM_+Fiy8AJ0u0x|N^0pNAAj6=GmCUL6IDPD1zP;K|mx z+}ro#2~$;;Dz_qjpwzr;;sV_um)1bhT&1|^z)dPGJq>`$ð9r5mO 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 literal 0 HcmV?d00001 diff --git a/Doc/Default-01.md b/Doc/Default-01.md index 11e9329..baa70b1 100644 --- a/Doc/Default-01.md +++ b/Doc/Default-01.md @@ -10,6 +10,9 @@ Server: t1.meszely warP#....#Maci +Ent +adm.meszely@aps-hh.de + 000 pandA#...#min diff --git a/Scripts/python/Erledigt/import_pdf_from_o365_de.v.2.0.py b/Scripts/python/Erledigt/import_pdf_from_o365_de.v.2.0.py new file mode 100644 index 0000000..8b9db46 --- /dev/null +++ b/Scripts/python/Erledigt/import_pdf_from_o365_de.v.2.0.py @@ -0,0 +1,210 @@ +import os +import requests +import msal +import base64 + +# ============================================================================== +# KONFIGURATION +# ============================================================================== +# Daten aus der Azure App-Registrierung +# Tennant ID : caee3499-03f8-4175-9fa8-a935248d0ece +TENANT_ID = "caee3499-03f8-4175-9fa8-a935248d0ece" +# Client Id : 3a08b279-1fc3-419f-a77e-31f12a0f65f7 +CLIENT_ID = "3a08b279-1fc3-419f-a77e-31f12a0f65f7" +# Key : 3cd0be8b-e58f-4e0c-9856-5c9788183b2c +CLIENT_SECRET = "Rk-8Q~nJ.sZ-xUiNxtEDdzVgoFFosODLVHX~jdrh" # Der "Wert", nicht die "Secret ID" + +# Das zu überwachende Postfach +# USER_EMAIL = "Bestellung-Fax-Eingang@aps-hh.de" +USER_EMAIL = "i.meszely@aps-hh.de" + +# Speicherort für heruntergeladene PDFs +# DOWNLOAD_DIR = r"\\aps-nb090\test" +# DOWNLOAD_DIR = r"C:\Users\YourUsername\Downloads\PDFs" +DOWNLOAD_DIR = "C:/Tools/PDF" + +# Name des Ordners, in den verarbeitete E-Mails verschoben werden +PROCESSED_FOLDER_NAME = "erledigt" +# ============================================================================== + +# Microsoft Graph API Endpunkte +GRAPH_API_ENDPOINT = "https://graph.microsoft.com/v1.0" +AUTHORITY_URL = f"https://login.microsoftonline.com/{TENANT_ID}" +SCOPES = ["https://graph.microsoft.com/.default"] + + +def get_graph_api_token(): + """Ruft das Zugriffstoken für die Microsoft Graph API ab.""" + app = msal.ConfidentialClientApplication( + client_id=CLIENT_ID, + authority=AUTHORITY_URL, + client_credential=CLIENT_SECRET + ) + result = app.acquire_token_silent(scopes=SCOPES, account=None) + if not result: + result = app.acquire_token_for_client(scopes=SCOPES) + + if "access_token" in result: + print("Graph API-Token erfolgreich abgerufen.") + return result["access_token"] + else: + print("Fehler beim Abrufen des Tokens!") + print(result.get("error")) + print(result.get("error_description")) + return None + +def get_folder_id(access_token, folder_name): + """Sucht die ID eines Ordners anhand seines Namens.""" + headers = {"Authorization": f"Bearer {access_token}"} + url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/mailFolders" + response = requests.get(url, headers=headers) + response.raise_for_status() + folders = response.json().get("value", []) + + for folder in folders: + if folder["displayName"].lower() == folder_name.lower(): + return folder["id"] + + # Man könnte auch den Fall behandeln, dass der Ordner nicht existiert, und ihn erstellen. + # Vorerst wird einfach ein Fehler ausgelöst. + raise ValueError(f"Der Ordner '{folder_name}' wurde nicht gefunden.") + + +def main(): + """Hauptverarbeitungsfunktion.""" + print("Graph API-Token wird abgerufen...") + access_token = get_graph_api_token() + if not access_token: + return + + headers = {"Authorization": f"Bearer {access_token}"} + + try: + print(f"Suche nach der ID für den Ordner '{PROCESSED_FOLDER_NAME}'...") + processed_folder_id = get_folder_id(access_token, PROCESSED_FOLDER_NAME) + print("Ordner-ID erfolgreich abgerufen.") + except requests.exceptions.HTTPError as e: + print(f"Fehler beim Abrufen der Ordner-ID: {e}") + if e.response.status_code == 403: + print("Mögliche Ursache: Fehlende oder unzureichende Graph API-Berechtigungen. Bitte stellen Sie sicher, dass die Anwendung die erforderlichen 'Application Permissions' (z.B. Mail.Read, Mail.ReadWrite) in Azure AD hat und dass der Administrator die Zustimmung erteilt hat.") + return + except ValueError as e: + print(f"Fehler beim Abrufen der Ordner-ID: {e}") + return + + # Nur ungelesene E-Mails mit Anhängen abfragen + # $select=id,subject -> Nur die notwendigen Felder für mehr Effizienz abfragen + messages_url = ( + f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/mailFolders/inbox/messages?" + f"$filter=isRead eq false and hasAttachments eq true&" + f"$select=id,subject" + ) + + response = requests.get(messages_url, headers=headers) + response.raise_for_status() + messages = response.json().get("value", []) + + if not messages: + print("Keine neuen E-Mails zur Verarbeitung gefunden.") + return + + print(f"{len(messages)} neue E-Mail(s) mit Anhängen gefunden.") + + for message in messages: + msg_id = message["id"] + subject = message.get("subject", "N/A") + print(f"\n--- In Verarbeitung: '{subject}' (ID: {msg_id}) ---") + + attachments_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{msg_id}/attachments" + response = requests.get(attachments_url, headers=headers) + if response.status_code != 200: + print(f" Fehler beim Abrufen der Anhänge: {response.json()}") + continue + + attachments = response.json().get("value", []) + pdf_found = False + + for att in attachments: + filename = att.get("name", "unknown") + content_type = att.get("contentType", "") + + # --- DEBUGGING SORTS START --- + print(f" DEBUG: Melléklet neve: '{filename}', Content-Type: '{content_type}'") + print(f" DEBUG: filename endswith .pdf: {filename.lower().endswith('.pdf')}") + print(f" DEBUG: content_type is application/pdf: {content_type == 'application/pdf'}") + # --- DEBUGGING SORTS END --- + + if filename == "Safe Attachments Scan In Progress" and content_type is None: + print(f" Placeholder melléklet kihagyása: '{filename}'") + continue + + if filename.lower().endswith(".pdf") or content_type == "application/pdf": + print(f" PDF-Anhang gefunden: {filename}") + + # Der Inhalt des Anhangs befindet sich im Feld 'contentBytes' und ist Base64-kodiert + file_content = base64.b64decode(att["contentBytes"]) + + # Dateinamen bereinigen + safe_filename = "".join(c if c.isalnum() or c in (" ", ".", "_", "-") else "_" for c in filename) + + # Ellenőrizze, hogy a fájl létezik-e, és szükség esetén adjon hozzá sorszámot + base_name, extension = os.path.splitext(safe_filename) + counter = 0 + while True: + if counter == 0: + final_filename = safe_filename + else: + final_filename = f"{base_name} ({counter}){extension}" + + filepath = os.path.join(DOWNLOAD_DIR, final_filename) + if not os.path.exists(filepath): + break + counter += 1 + + try: + with open(filepath, "wb") as f: + f.write(file_content) + print(f" PDF erfolgreich gespeichert: {filepath}") + pdf_found = True + except Exception as e: + print(f" Fehler beim Speichern der Datei: {e}") + + if pdf_found: + print(f" E-Mail wird in den Ordner '{PROCESSED_FOLDER_NAME}' verschoben...") + move_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{msg_id}/move" + move_payload = {"destinationId": processed_folder_id} + + response = requests.post(move_url, headers=headers, json=move_payload) + if response.status_code == 201: + print(" E-Mail erfolgreich verschoben.") + # Az áthelyezett e-mail új ID-jának lekérése a válaszból + moved_message_id = response.json().get("id") + if moved_message_id: + print(f" E-Mail új ID-ja: {moved_message_id}") + # E-Mail mint olvasottként való megjelölés az új ID-val + print(f" Markiere E-Mail '{subject}' (ID: {moved_message_id}) als gelesen...") + mark_as_read_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{moved_message_id}" + mark_as_read_payload = {"isRead": True} + + mark_response = requests.patch(mark_as_read_url, headers=headers, json=mark_as_read_payload) + if mark_response.status_code == 200: + print(" E-Mail erfolgreich als gelesen markiert.") + else: + print(f" Fehler beim Markieren der E-Mail als gelesen: {mark_response.status_code} - {mark_response.text}") + else: + print(" Hiba: Nem sikerült lekérni az áthelyezett e-mail új ID-ját a válaszból.") + else: + # Für das Verschieben ist die Berechtigung Mail.ReadWrite erforderlich! + print(f" Fehler beim Verschieben der E-Mail: {response.status_code} - {response.text}") + + # Az eredeti olvasottként jelölési kód eltávolítva, mivel feljebb már megcsináljuk + + + print("\nVerarbeitung abgeschlossen.") + + +if __name__ == "__main__": + if not os.path.exists(DOWNLOAD_DIR): + print(f"Fehler: Der Download-Ordner existiert nicht: {DOWNLOAD_DIR}") + else: + main() diff --git a/Scripts/python/import_pdf_from_o365_de.py b/Scripts/python/import_pdf_from_o365_de.py index cc2612e..8b9db46 100644 --- a/Scripts/python/import_pdf_from_o365_de.py +++ b/Scripts/python/import_pdf_from_o365_de.py @@ -128,6 +128,16 @@ def main(): filename = att.get("name", "unknown") content_type = att.get("contentType", "") + # --- DEBUGGING SORTS START --- + print(f" DEBUG: Melléklet neve: '{filename}', Content-Type: '{content_type}'") + print(f" DEBUG: filename endswith .pdf: {filename.lower().endswith('.pdf')}") + print(f" DEBUG: content_type is application/pdf: {content_type == 'application/pdf'}") + # --- DEBUGGING SORTS END --- + + if filename == "Safe Attachments Scan In Progress" and content_type is None: + print(f" Placeholder melléklet kihagyása: '{filename}'") + continue + if filename.lower().endswith(".pdf") or content_type == "application/pdf": print(f" PDF-Anhang gefunden: {filename}") @@ -136,7 +146,20 @@ def main(): # Dateinamen bereinigen safe_filename = "".join(c if c.isalnum() or c in (" ", ".", "_", "-") else "_" for c in filename) - filepath = os.path.join(DOWNLOAD_DIR, safe_filename) + + # Ellenőrizze, hogy a fájl létezik-e, és szükség esetén adjon hozzá sorszámot + base_name, extension = os.path.splitext(safe_filename) + counter = 0 + while True: + if counter == 0: + final_filename = safe_filename + else: + final_filename = f"{base_name} ({counter}){extension}" + + filepath = os.path.join(DOWNLOAD_DIR, final_filename) + if not os.path.exists(filepath): + break + counter += 1 try: with open(filepath, "wb") as f: @@ -154,20 +177,28 @@ def main(): response = requests.post(move_url, headers=headers, json=move_payload) if response.status_code == 201: print(" E-Mail erfolgreich verschoben.") + # Az áthelyezett e-mail új ID-jának lekérése a válaszból + moved_message_id = response.json().get("id") + if moved_message_id: + print(f" E-Mail új ID-ja: {moved_message_id}") + # E-Mail mint olvasottként való megjelölés az új ID-val + print(f" Markiere E-Mail '{subject}' (ID: {moved_message_id}) als gelesen...") + mark_as_read_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{moved_message_id}" + mark_as_read_payload = {"isRead": True} + + mark_response = requests.patch(mark_as_read_url, headers=headers, json=mark_as_read_payload) + if mark_response.status_code == 200: + print(" E-Mail erfolgreich als gelesen markiert.") + else: + print(f" Fehler beim Markieren der E-Mail als gelesen: {mark_response.status_code} - {mark_response.text}") + else: + print(" Hiba: Nem sikerült lekérni az áthelyezett e-mail új ID-ját a válaszból.") else: # Für das Verschieben ist die Berechtigung Mail.ReadWrite erforderlich! print(f" Fehler beim Verschieben der E-Mail: {response.status_code} - {response.text}") - # E-Mail als gelesen markieren - print(f" Markiere E-Mail '{subject}' (ID: {msg_id}) als gelesen...") - mark_as_read_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{msg_id}" - mark_as_read_payload = {"isRead": True} - - response = requests.patch(mark_as_read_url, headers=headers, json=mark_as_read_payload) - if response.status_code == 200: - print(" E-Mail erfolgreich als gelesen markiert.") - else: - print(f" Fehler beim Markieren der E-Mail als gelesen: {response.status_code} - {response.text}") + # Az eredeti olvasottként jelölési kód eltávolítva, mivel feljebb már megcsináljuk + print("\nVerarbeitung abgeschlossen.") diff --git a/Scripts/python/import_pdf_from_o365_de.v.2.0.py b/Scripts/python/import_pdf_from_o365_de.v.2.0.py new file mode 100644 index 0000000..8b9db46 --- /dev/null +++ b/Scripts/python/import_pdf_from_o365_de.v.2.0.py @@ -0,0 +1,210 @@ +import os +import requests +import msal +import base64 + +# ============================================================================== +# KONFIGURATION +# ============================================================================== +# Daten aus der Azure App-Registrierung +# Tennant ID : caee3499-03f8-4175-9fa8-a935248d0ece +TENANT_ID = "caee3499-03f8-4175-9fa8-a935248d0ece" +# Client Id : 3a08b279-1fc3-419f-a77e-31f12a0f65f7 +CLIENT_ID = "3a08b279-1fc3-419f-a77e-31f12a0f65f7" +# Key : 3cd0be8b-e58f-4e0c-9856-5c9788183b2c +CLIENT_SECRET = "Rk-8Q~nJ.sZ-xUiNxtEDdzVgoFFosODLVHX~jdrh" # Der "Wert", nicht die "Secret ID" + +# Das zu überwachende Postfach +# USER_EMAIL = "Bestellung-Fax-Eingang@aps-hh.de" +USER_EMAIL = "i.meszely@aps-hh.de" + +# Speicherort für heruntergeladene PDFs +# DOWNLOAD_DIR = r"\\aps-nb090\test" +# DOWNLOAD_DIR = r"C:\Users\YourUsername\Downloads\PDFs" +DOWNLOAD_DIR = "C:/Tools/PDF" + +# Name des Ordners, in den verarbeitete E-Mails verschoben werden +PROCESSED_FOLDER_NAME = "erledigt" +# ============================================================================== + +# Microsoft Graph API Endpunkte +GRAPH_API_ENDPOINT = "https://graph.microsoft.com/v1.0" +AUTHORITY_URL = f"https://login.microsoftonline.com/{TENANT_ID}" +SCOPES = ["https://graph.microsoft.com/.default"] + + +def get_graph_api_token(): + """Ruft das Zugriffstoken für die Microsoft Graph API ab.""" + app = msal.ConfidentialClientApplication( + client_id=CLIENT_ID, + authority=AUTHORITY_URL, + client_credential=CLIENT_SECRET + ) + result = app.acquire_token_silent(scopes=SCOPES, account=None) + if not result: + result = app.acquire_token_for_client(scopes=SCOPES) + + if "access_token" in result: + print("Graph API-Token erfolgreich abgerufen.") + return result["access_token"] + else: + print("Fehler beim Abrufen des Tokens!") + print(result.get("error")) + print(result.get("error_description")) + return None + +def get_folder_id(access_token, folder_name): + """Sucht die ID eines Ordners anhand seines Namens.""" + headers = {"Authorization": f"Bearer {access_token}"} + url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/mailFolders" + response = requests.get(url, headers=headers) + response.raise_for_status() + folders = response.json().get("value", []) + + for folder in folders: + if folder["displayName"].lower() == folder_name.lower(): + return folder["id"] + + # Man könnte auch den Fall behandeln, dass der Ordner nicht existiert, und ihn erstellen. + # Vorerst wird einfach ein Fehler ausgelöst. + raise ValueError(f"Der Ordner '{folder_name}' wurde nicht gefunden.") + + +def main(): + """Hauptverarbeitungsfunktion.""" + print("Graph API-Token wird abgerufen...") + access_token = get_graph_api_token() + if not access_token: + return + + headers = {"Authorization": f"Bearer {access_token}"} + + try: + print(f"Suche nach der ID für den Ordner '{PROCESSED_FOLDER_NAME}'...") + processed_folder_id = get_folder_id(access_token, PROCESSED_FOLDER_NAME) + print("Ordner-ID erfolgreich abgerufen.") + except requests.exceptions.HTTPError as e: + print(f"Fehler beim Abrufen der Ordner-ID: {e}") + if e.response.status_code == 403: + print("Mögliche Ursache: Fehlende oder unzureichende Graph API-Berechtigungen. Bitte stellen Sie sicher, dass die Anwendung die erforderlichen 'Application Permissions' (z.B. Mail.Read, Mail.ReadWrite) in Azure AD hat und dass der Administrator die Zustimmung erteilt hat.") + return + except ValueError as e: + print(f"Fehler beim Abrufen der Ordner-ID: {e}") + return + + # Nur ungelesene E-Mails mit Anhängen abfragen + # $select=id,subject -> Nur die notwendigen Felder für mehr Effizienz abfragen + messages_url = ( + f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/mailFolders/inbox/messages?" + f"$filter=isRead eq false and hasAttachments eq true&" + f"$select=id,subject" + ) + + response = requests.get(messages_url, headers=headers) + response.raise_for_status() + messages = response.json().get("value", []) + + if not messages: + print("Keine neuen E-Mails zur Verarbeitung gefunden.") + return + + print(f"{len(messages)} neue E-Mail(s) mit Anhängen gefunden.") + + for message in messages: + msg_id = message["id"] + subject = message.get("subject", "N/A") + print(f"\n--- In Verarbeitung: '{subject}' (ID: {msg_id}) ---") + + attachments_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{msg_id}/attachments" + response = requests.get(attachments_url, headers=headers) + if response.status_code != 200: + print(f" Fehler beim Abrufen der Anhänge: {response.json()}") + continue + + attachments = response.json().get("value", []) + pdf_found = False + + for att in attachments: + filename = att.get("name", "unknown") + content_type = att.get("contentType", "") + + # --- DEBUGGING SORTS START --- + print(f" DEBUG: Melléklet neve: '{filename}', Content-Type: '{content_type}'") + print(f" DEBUG: filename endswith .pdf: {filename.lower().endswith('.pdf')}") + print(f" DEBUG: content_type is application/pdf: {content_type == 'application/pdf'}") + # --- DEBUGGING SORTS END --- + + if filename == "Safe Attachments Scan In Progress" and content_type is None: + print(f" Placeholder melléklet kihagyása: '{filename}'") + continue + + if filename.lower().endswith(".pdf") or content_type == "application/pdf": + print(f" PDF-Anhang gefunden: {filename}") + + # Der Inhalt des Anhangs befindet sich im Feld 'contentBytes' und ist Base64-kodiert + file_content = base64.b64decode(att["contentBytes"]) + + # Dateinamen bereinigen + safe_filename = "".join(c if c.isalnum() or c in (" ", ".", "_", "-") else "_" for c in filename) + + # Ellenőrizze, hogy a fájl létezik-e, és szükség esetén adjon hozzá sorszámot + base_name, extension = os.path.splitext(safe_filename) + counter = 0 + while True: + if counter == 0: + final_filename = safe_filename + else: + final_filename = f"{base_name} ({counter}){extension}" + + filepath = os.path.join(DOWNLOAD_DIR, final_filename) + if not os.path.exists(filepath): + break + counter += 1 + + try: + with open(filepath, "wb") as f: + f.write(file_content) + print(f" PDF erfolgreich gespeichert: {filepath}") + pdf_found = True + except Exception as e: + print(f" Fehler beim Speichern der Datei: {e}") + + if pdf_found: + print(f" E-Mail wird in den Ordner '{PROCESSED_FOLDER_NAME}' verschoben...") + move_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{msg_id}/move" + move_payload = {"destinationId": processed_folder_id} + + response = requests.post(move_url, headers=headers, json=move_payload) + if response.status_code == 201: + print(" E-Mail erfolgreich verschoben.") + # Az áthelyezett e-mail új ID-jának lekérése a válaszból + moved_message_id = response.json().get("id") + if moved_message_id: + print(f" E-Mail új ID-ja: {moved_message_id}") + # E-Mail mint olvasottként való megjelölés az új ID-val + print(f" Markiere E-Mail '{subject}' (ID: {moved_message_id}) als gelesen...") + mark_as_read_url = f"{GRAPH_API_ENDPOINT}/users/{USER_EMAIL}/messages/{moved_message_id}" + mark_as_read_payload = {"isRead": True} + + mark_response = requests.patch(mark_as_read_url, headers=headers, json=mark_as_read_payload) + if mark_response.status_code == 200: + print(" E-Mail erfolgreich als gelesen markiert.") + else: + print(f" Fehler beim Markieren der E-Mail als gelesen: {mark_response.status_code} - {mark_response.text}") + else: + print(" Hiba: Nem sikerült lekérni az áthelyezett e-mail új ID-ját a válaszból.") + else: + # Für das Verschieben ist die Berechtigung Mail.ReadWrite erforderlich! + print(f" Fehler beim Verschieben der E-Mail: {response.status_code} - {response.text}") + + # Az eredeti olvasottként jelölési kód eltávolítva, mivel feljebb már megcsináljuk + + + print("\nVerarbeitung abgeschlossen.") + + +if __name__ == "__main__": + if not os.path.exists(DOWNLOAD_DIR): + print(f"Fehler: Der Download-Ordner existiert nicht: {DOWNLOAD_DIR}") + else: + main()