From 041d5b85ba7f8870d7ec09ef92533606d4ae28f9 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Mon, 20 May 2019 13:52:05 +0200 Subject: [PATCH] add ascAPIget Interface --- 73_AutoShuttersControl.pm | 31 +++++++++++++++++++++++-------- ASC_API_Dokumentation.odt | Bin 0 -> 16487 bytes 2 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 ASC_API_Dokumentation.odt diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index 0e30e32..0ba733e 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -45,7 +45,7 @@ use strict; use warnings; use FHEM::Meta; -my $version = '0.6.11'; +my $version = '0.6.12'; sub AutoShuttersControl_Initialize($) { my ($hash) = @_; @@ -96,6 +96,12 @@ sub AutoShuttersControl_Initialize($) { return FHEM::Meta::InitMod( __FILE__, $hash ); } +sub ascAPIget($;$) { + my ($getCommand,$shutterDev) = @_; + + return FHEM::AutoShuttersControl::ascAPIget($getCommand,$shutterDev); +} + ## unserer packagename package FHEM::AutoShuttersControl; @@ -225,6 +231,19 @@ my %posSetCmds = ( my $shutters = new ASC_Shutters(); my $ascDev = new ASC_Dev(); +sub ascAPIget($;$) { + my ($getCommand,$shutterDev) = @_; + + my $getter = 'get'.$getCommand; + if ( defined($shutterDev) and $shutterDev ) { + $shutters->setShuttersDev($shutterDev); + return $shutters->$getter; + } + else { + return $ascDev->$getter; + } +} + sub Define($$) { my ( $hash, $def ) = @_; my @a = split( '[ \t][ \t]*', $def ); @@ -248,6 +267,8 @@ sub Define($$) { ; # eine Ein Eindeutige ID für interne FHEM Belange / nicht weiter wichtig $hash->{NOTIFYDEV} = 'global,' . $name; # Liste aller Devices auf deren Events gehört werden sollen + #$hash->{shutters} = $shutters; + #$hash->{ascDev} = $ascDev; $ascDev->setName($name); readingsSingleUpdate( @@ -932,13 +953,7 @@ sub EventProcessingWindowRec($@) { elsif ( $shutters->getStatus != $shutters->getOpenPos ) { $shutters->setLastDrive('window closed at day'); $shutters->setNoOffset(1); - $shutters->setDriveCmd( - ( - $shutters->getLastPos != $shutters->getClosedPos - ? $shutters->getLastPos - : $shutters->getOpenPos - ) - ); + $shutters->setDriveCmd( $shutters->getOpenPos ); } } diff --git a/ASC_API_Dokumentation.odt b/ASC_API_Dokumentation.odt new file mode 100644 index 0000000000000000000000000000000000000000..7951cce5199ad937fd2d4b1b92d40db5bd33047b GIT binary patch literal 16487 zcmb8W1z03Y(k_e)GPn)y?(XjH?(PnayA19wgS*4v?(XgkE`z%c@H4x2zjJoKbN0VC z`l+WXyDQ$TjIPSccq2ky3iJ~S5D+8~kcUpatnMHq3>gp*(C_WzDCc%*2%=pN&er!coQKJ;xK@KesAa> zV9MssHiota7S;edr+*#N+S{6i$;*ntLSaIEoB}H$F0A;mZvX-U27(0rIO=^J`uVZb zmzP!+K|nyj!ongVBBG(8VPRq6l+^*pPQRoTU*=R-90%uxxT)Bdwcun;r;y`qsfip z<5Ev0gawq{R?l>xjdr-JHauM~*p$R~LX4kY-`@{-9CHd$IDf)ObJcxW!I6~U z0;CCFIx*csxW#$cJUqZ#PtFshfj}M2-1HnJ^9DOLpm;v2>GNgpEz6KI)EWHVpt?hs zN)I^+7!2AJ?_+=N9-XAKV|1NTWukfTq$JG>H4U?t-w}tm!Yif`doQ^8X)cDs6t*`E z2?`zuP)k>9yQfhJdVEst$=I>Y8lN2hL3eZ7$;OuE-stTU?#bxQXqpzaxw3NW{mOemw#sGqkbN?+ z64JhTF{`xV&ux~hb7Q)CCbh;xBX>K0@3VS=_EImcv>EhDEBn(zmdTfL!GOW`yQ#)0 zNEw=!dOj5@S`J-tb}J~vI^&5z{SeirRVh|UQLVws{E;fO-S=+G&}o&hFbusE3>m`1 zERt7Ly>@F10zjNj$;-~p>F66{0+?NRH1>rVD{AofJJ$7x|cNyo`vRch?Ck7NJ9lTZT9&;W?EhFl5ceEF+LC5$*@8Ys&>7lWG!vYZj zSL3^heZ&ys6M15GtYLK)+MWbsKOm4CvI4X*t8>Ao%=J53m$9YL0mig`Z-UXjIGV~<0*>@G%+sK-DOs<#RoVH903YQMbJFAAY|B@}^Tb!wjry!-zOisHrp1zgyRXOtKdU?o| zk?b2PCLoENrbI%C_(?RgpNMDWmVg%f?cf_}YFt=oVjbcyd3ZQW zBU~5I0+Hj}>2!*W#-XwmQ<=*&6B}#$=_|3V<239RQ&8!CD31r86k6B*t|T{<#hC@!FOqZ|u1?6vKV zA&-dSYhwro&_$_7HkegfRyyw8zh{|T41=37xLnb_DZhFsiP;FN!ANVUX^mw|G^`Om zpFu}v1dg3;vI(VK?#r8MYhK;{uoex?#by`ji<}42R6)|8obU(CH6NT49B2@!^g4-% zq3Y#>Io8k(YRvuG%f*(>`exAJWhQspct`yl&7o z(%pXd+^Fj88x!?icyrHxEr~e0uvstROT}45^@QZ9w8K%R<&lbz&Fq0g^${pYIZQn|Tv3_g08o%$%)5|7$27^l?ntTrk zctr#3^7{|UfIA9dDp?=ewjg->G}t}b?;Ou^=%^2=5j1T1dY~E*83{A_Ui!OY4GK5q%_imD%Ef{;M@*If;40PJG{JKB+ai`ZOIubq{mTS>_8*OQm z8FKZhnm;jKO*nu-k3#%26qmd(tY61BORGdnV4)Gp9iT&zU4Qlip>_Utk_8bRms4uw zdV~9*S_9Uf(%kXivqZZmcPgC1nelODxIDvag6hGDW9*G4emW`HKf@Xb!Qga@wC2LZ z<$X@&94KOPZH|(to1auZ%7G9oGgaUzb@4JU2|7O_@~#8kQK6Y$X;EI{trO&495x(~ zZ>3-x1=Hm=LVU4~$gcfivbhqr{RVP{H(lSidEyLD@s@fcG*MaD+8F6DaIH4|;{_e4 z%>0CaSN-sNlT*!;iA}JnmEh{PoRyONFFBu=8>fI4!+L6JkA7JIA3pbNG2J>sP5PedQsqI9 zc;@4yggQI7)d6*@9Qw@$F@(Y{Qe6`xP$KwyI8c9A@CU1o5&~pEHj0+{WJIcr)vT8< zjaNDtr2h&?&fayd&VBtf-hay!fAJ+xZ`TSy%0#Tq06~k>g-@!B!;?V2-RIN!-J@rM zWT)yf$AGQW4NuBL>OYfjsLAFM{SG_{j35BI#qF*)DWE5U# znQ^5uSc&>yu7IyF<(hFt%4@cilE3}1dT_DTrWLUov5I=4RzDek@|nHgbHH4yNNs^M2C_McS2+qKFPJMYIY8_1|=;m)JiMb}AGX_8FM3ib_H{#S( z{FJ}c7_YkU2s0ljf8F;Mz96JDtRPmu^V8pI#Jq0C_H&l!=Zg;Jna45tLGFO`aohY`^cqfVb*M1`Zb~B% z1bzb)`ct+B**q4hMc$Pak71$7^?oNkCeZfj+Bcqg3hop_;4ml|XKHf+krga7Sti$+jvaRFwE-`y48Q$x=mV`@RS4 zlv7tho}JC-yM_{3eSfHVCV3Q#Yh$_TS&{%vy}egqJO3DX-b<`OS|2AIo`msgf7I!` zP>wzeLkNi+3}{7}TJ5aYpLd0PV=aF=BLXmmy3RxLc5117sOSfrxNAq$}d>d)tdrahZ9 z+PZfz!dr>dxKUgUT?Ia~tsu(9QVpU(kIX2ykY%Z)xjLT(PKR7L6qrWhx6~9>mz(f? zMN~dIHdUO{F=cWgfj5ZFL@ZApIW;e*$;Xrr7Z@($X2xsbcb19Y0SW5lx9FwN*&swB zaxp9AWC_?M5cH0tJYwoGzs%1g`TDt@sX|{XlSHAI%Q8x0fi}9^;Ix! z!+lw%ubX#K0;%dSn7b>h5NG_p)@tIkUBRcH)Hd-bey&ydii56BAB@X@547XU(!2=x zB4bbCHU(&)MwLSDCh&Kz8f^yN5;Wa_qGUu);@mcgPDn=7yMA}i@iA#kH73%VE7;JB zTnj`hb4mpCJu`Tf0RiEaP#I{ho?Y$gG=pdw1mDGVs$!(V^|0dhqDO zA4L5+OqFuLFE*+Nh3u_>Tez5talk94wvsrvHJ9X*V;+k1P8qNRJ*wpVh_;`@PI?;v z_P!}PGy_Y26WRJMFGvdP64!5&Ye#k`#FAra7aVn7-i?6rg2t4~HlGEPs5WQ8j}KiW6l%)G+_ zVGa8&0IBCl8dJqE|C94faW`F|AusXM-l6bOOxyvE4a-LNgA)(luErWO(hmj2{SN$V zD`1kPe6dColj!Brcv*s1?mkBBZm$misa7E@V6~yfsi(NJ`1l-%6Riw8yDvdeH;nRB z8rWn66BL8XgE=O-k2_$qE5rdVDlmg2PO{+zZ;@L@M~lS;0ENu|dwYFnUdWDI5-t7c3dnGLtWp z2Aa$RmSC+B=&TFqZfR%EVUEg0WV$8FEO@!pMG+FIF`AG)B=lI`02s%hlT zSl8VwnQ;N^w5>k-D&0xise4Ik1VqI%WONRse0@>A1sf%~LqdM0utRN(ROqt|;na1U z?sEvO7GK&MusdJKk)gm8MC7#!WqfElZZHWMSvB<87tP{se$A~Nm>k21er;JB8A$@s z5J)KP&ZIS?g1IG=dFgJZsMtoUn8{*!)CM}C$Hez*&;IPef2-L<1$2STDL&1i|BPhM zrql#i!xzxC67ar&Iq~g+rQTl{RZ$WkQiVbk==`l=Rm1PDq5odHyyPHH|bG7@$ps51Ors zRY8Zx>T8oP+hS&Yu`J|mP~r)RYYGMj8IV*;-*VN$B1 zOtxe7M)Drn4Xe`)vBz`cMOP{o7@g|UDR4ox6EV>CZjWa0rt5&o1Vkv&xNhZRQEu4u zpq|*#_Bg8~O~bdS6J|E`WfKC{t)>?3ds*3qSj5atm14asPKYR`5)ZCgV)2vaaTZz? zGv_+Z&C%|H%MCOZPRPcP@}_u#JdZ$9rDLb1q;yNnm2+mkzE2`1YAi2#C%1~T71A_~ zDS3@v@s<6O%rC+`^Ob zEKL$|?f%Dn2LE8pe$#Jr#^RHa@UCTwkPAr6mrZ`BO}k-thyLA)=6(D zHqMVwubyTK9(TnYUyUbh%w2DsW@M(U95Klqy#BaT)~fdNNV( zC6z7hoY{PuLczN~vb>UNve}+_{{mB%f^$}$5{Amq*=B;2P^@1h#5rje9n11==Z(WB z>(X&rl(13S_|m~De>Ugvd~+GMGbU`#>D9W)#Mk<^TBQEKH-}fdR}XD6$~xI8os#WN z_ygqx)%+m>6F%MPocHc0LC^3UZHhPO0%AGZ6E(Z6=i5DVmU}JT9P^p0Yre;tSAOy@ z^HSI@aoVLk&1f*HvgDFcjn1d3_N8+UB^B92=E?SiZR@-p-00Z%07{iI`vSbLrr^vN zH))y$ic^=>3yHhOoQr(`v%->;0&nT!71Z2|VHKB2cHg^B2!ma3^>~Z{3iff$(s)#( zw2Y-$2Z289W&VEiqccHG(m>3u&A1s17*8WCod9T&Y(){-AGw-04nhv;hg0J}$Y!n8 zW}#4z@N1NdhSPU8m<{ZeH|(DGJSI9K2-Y8Uv;AJ=a-=P@iG^6*D97)Pw4MxTMq^Z~ zHnV^|mD8&GF@jwg_2ChPLXf3ico_Rvv=_M-h0*5pLX?M{hW%v7Fls;+%DJ@e+z~N3 zBulkYlrU8ok9kT_?a&-#6Vz5Lo=;9EXZ2ph9ok}n*EV$L^ea{47P-|!kzoTu!fW@^ zd^HE{#;z^$H3zm^RMBSjmJB{%7o-cgku;aqRb_m1Zp?NXGiqVCA*m%*N= zCyw-v1c~C4Y8P5duQBu0ChV&xschC(&sMNMsgKzEcYpP3fS=mu$8awf-H{eg$+C$XlUECB9NI_$_>TS z#yJ&8FqDh`8pw+%i8rMhF&Q)*Iu<|vOq@%+C)68;=mES`z(}9yId(!%{T#s@pW3VwXpzaR$N znKYH`rFtSRBzSojB2)s$Tc(V$CJA(8_H^pGF?s_^U+uyi+e!IYz0%i3o8%jZwXZ_I zeFvF`X8WaODKP8po?Mt$8Q>`=0eV`HK$@Jy%UMC3~V^j(XG(EgpYmOI#@w z2L4s{$ATR866o-kkPsDbmEi7Ry7>B3)bX>5Go{yY#A`E;fG+HX>!lx77M+&NRhmAX zx(W;i4nwQ$$&3ekLM3rK7 z^)d21Z6E)+Qfzviont{3}g+M>{h|6TtsZpMUjd z{2tzaztX?5%1^2UvZ8iw z79%L@&w%XWjkx@(Lx#_I`Uyw>6FdRN^a4sV&)9%?mV|;Ut(;f8hq)WmiS9WJD@g!Rj^q{B_@6XIy2=JJpu{SU@;QK}wr z^_;wG32RkiBygp1D5bzptF@GR%|Sed+vmB1=>)3FY=oDs?p!VoH!i2vYd~QuxZhwj zm*g>Cn|+$D!BA0fqzsozYE#+hDvAWn)|4cb6ih%_1c)3aT-w$Yr!a1>@x4a4{WZXC zalUE|Hz^KU)I>0MW6u6ee-9p1HRSp|dEgLpn|1&cNF z8xO!Fh%T2~R1aKcFvcP6qQIx>(=a93kb?NWJEb&yo;PXiK!)0J(xksL*kM7%)%D4* z7P;<&V_3HjC8s`M3FBXBcCYcDv6YbKjOr0l707D&$+xWe1GVp2Vg~K$fLeOX4 zx_(h;@x=Q%lyQsdB9mDVB|I_?zi_h%lzOp$q-qcA4n8bco6|0r(Q!$&F^ncn}`56Pe+Wk1qA?n zHRp;fWL(#|%7f;idBQ>(x6b>6xAn(@tYQ~c1GmC-psy%lEC-eQn zhzN&aQ9xv=K<9QoRS3IV+AVcxtI%vLqyLC)O>_vP6bH%z3cxda`5n|Dmj+rTKEi7% zD2#552$m6KUur4iG!fpBnGa?-IJL}PYqgmhwRP=Om@y?~|9Gz!-L&qVT!FOhY_TTC zLkWp|bQHKKok;6!bamps25-$yGA&BOu*?oT$-2EIz|0_}k4XRVt zri)}y?8u7jI#I>7vT}xWZT8P5QE4>&68 z9{ya8?@ZIJv<#=b5vY>(Bh5{wu-g{0Iz|;-*@sy6&p5bI=iZ?|D4P=p}O#_MVEb-3?YO8ci#|t#0 z+E-L@@17rhd{0mi8t81NCXG(r$qo-=Okajlj*}qic9Z&OS;0AUOX&w1j#R6_Fqe4} z^MiU(mh#kEQ0EM)?GDUyKYnU1(S{zwWOsLvH3+wwsn&+Jc0TioMuk$+ju6<_WbYH8 zvvZ-6cAyDXu`;Nyyw7n}k3d&4T(MhHghf6OX^O;*k<^P;6bf@QWWh}u#x4eDjLP_o zYb05s@bqls0{qXBJAm{wRV@blv}>4Nu0L4CZCBdjsHHW!lm#B%gm*SJ4JHL7~0)$6l4#NcT@^q13I%SiJfQF^Uc&YBZuN{chxx#&w;n8 z?V;Ys_dSNEhbfzVV#SyBn{R!~?rH5;L%EDcYjRU;MQgKtNrwE4k2chqqO~WbGt4^1 z!KoOsG)cWv7JCDwctlu8N5)+6CnZ=Kxs0+e1%(kAwv!4D0j0soWU{YNv$JjV3bMFK z`eix$wl5oOM=EbMm5+XF7XT?ZH-1!lVQ zq`8n7nI1JmwoSt=9$0T@u)Pa_e@TZ~w406;I4<{of)z}<2SbxtikGdFaB zfL5K_)UCIPia+syfM%_qVa1D@P0|!^gnyrL)Sk-%iHslNWFe9dPUt=(rW?OnXfo|qRp1IYOubNC} z$oG(oj9VkHeW12JGHK8l+B=8jPLo4putX#;CkfW|h52~gCBP0}Hdgx5 z^XhiK^JH(LFiLy>%9_RJ2f1mrJ}s25nTtf#EutvhD_d9OXp3(gV3X^cjImFHUI=qa zy8E?Fe!+i~PVf|`XEO{QM@rzDn{Q5(?#4A^C}4!lJ?HcOq=)3{`B+%S8QY2Ms%V;|>M;5AynZzS#A-*^|H6MQwCuV6r62X%^ z&a~rsI+`EL*GaLDhP11;ECx>(*hiN@$&k9DMPhbcZx@ckebYd4Ux|S-(tT)fMr0^B z$cyKar2g_Xpr}Zf$jerjr2(tN8?prF`anaS|5!WaGm#0$5*q|p-t68z32ALJ?zn6b zoY2;Hr&i}4f!2ohHwP+v^bX38S3qp~kcbA|WU{iShSA|`QWAZetz|02$3|jjnY#b6 ziEYl)TRAE9aSwgNJV1;Cl*AY?xrN9zMli;tZuO~D<;wKZy$2(F3K;2Xz+jA0f?#@D z;{RMsuVH*oSB;hdF#(!};4qaea92RJfav79%B92wSrS&@Kwf5l#`$H4jE|Np{;+bl z7GUary#g)BP!3!tN*H;6l_A(;g-0iUj1^o%6A^3vvG5{-aQ5aD z>68@FQ=q zt+)QP_H~@$U1;P0&TaP|4I)~AHPaT2Na}@NlB!sJ8$gxD#Oi5yzu`6&6#Fc{#vQ~~ zn%kt;F!#EsZptnkhF9fL)atsw8Ypmu3 z7uo;+?Q6}0U%R~_D7QK%ERne;NSNM=9;|NIWQ0q_ox4MkHCER zdo~8P7N#ZuCt62i(}{!$+dz7RuNT}wCX>tjbYNhPR@!&=}131qZ3pW z3d)YN=Xa|_nKq;AznvLi4@cCN^e8hMQIL#^n>YNV;%uXBDO}@RU2depOUJpg3@ps1 zY<0DzMSzvb%hZ(GohWv~hC1`QC=Y`2Jx%1gnO~L6T zC)WJ|pC@92voxm`%AirPBcu^O&YwT(v-Id!r$FphS*Zc0s34?(c_hv{UaGJJt0r z!q)tg`DV|thxONZDq_{Y%~$_mJ`46?zQB+4)W3hkewz zeE7Nu`#hlt{8^>r;Zmk&)8^RfsJbDl8;m?bf4z+A=5TycY~A8zI2DOE`8h}C zZpTY&=x`4s2}o=Tif}FL#TZ5)q9tnzvg^Bl3h5nc^R>0-J|LJUgqcGx;8@a!;mMmi zaxS%6Ia?DfGloq&XeHHvX*KP|B*kBl&v_ z;%evlx%KG03J+Ex`e{#IWo3>|gQODTvhg9%mIB3rOM=gI6@BUdg5Ox>$L-tbNE^C>3 zJdKQM1(q3nH?x;cDhYnUtJfEQPzb33$3aQ?fL#8#mZYdCj4*27#V}ja1JuE#cHHMI zg%ujMY@<;x(NS}A1{e|&R@g=ajXPC0gL%k@PaBjg#PSV0bfvEW-_Z5cju3>FP3QVC`i+N zAe~$0b{O1?-0p zanjcAJhsHWhxb@TYn2Gb>jTHCDx5Mm$*$=0TEx&r%kV9MKK>hXzh;_r!hjO@{W8tT zk%M${2}W`)wk#AWk6O0p7=->lB<%_GtzT4r@PtA;cR-(JD$I^!7_B+IoxG(8O}mk5 z3Hm=PkJa&Yd-?e+GvX&FkGo>zPtdndR z5sP}&h+X4EKrQJM!nu)m1MkCn#|ogR!;uA#v+BzB@6w z*@=8*rO8;iyvfZSXrO89xLSUmvqk-%zM~op}Y8oqKHjSq%V75t= z`N_t2TCRjpYbiL~L6LO?e`=^%0!fPzRuN)UuW#49v3gI>VZIB{4mN5U_BuYK$me?9 zdI%as0rtRgg@jTHmY;uA!P9s<-|SoK{x*p4h<=sYev}_rS}X0&bp0^hF&2k2+6r#H zA@>5=?2(wMrqn_ZydU(UR4R*qd^61miifE!3N9tX=Cxml1!pb!+1Z$B4V;llID0M{ z9|uFqK6LtsWuUapSGPSi)x>J==)w%w{~iD*4E&HOpB^IZ2G_ozkg!3n2YKvuZ#u)L zDwF`CnH%$zgDi(7vt{=)yBci1P52lniTopg9LFE-8jOTqm)+3&Yji0V%Q zFK{5BM5_Px*7{w80dR7+Hu=Xp>r8V4u*Qnyd!d(WQ2YQck$5(!x_e8|BFmLb951r|Z zpA8a=wZ=i&^>8gqE);BrK{A=PX?-if8{bM3;+mLJY>TR`KiZ{vAs=ltFHG5~z4?&` z%~(6ZRff@K%r-G!3EDL3g^R#@hz6H1O>T^I@P*ASP8xyne5`WRjNJmX~HFGMgW zCrVeM`u9ApK8M~<701w^D)Tzi?431JDzs-<7wy6wN>N~`I0Q(^m!DgUgW|H;h(pMe9wrN|cnIegEcSCG^$KPsg$<93-%Gy) z@uL`Xrf*ZCsqds0+J3pd0Gow8$CbxBaSo6HeCfF1GA1=}9XIb4A4SUD>~K!1#K>yd zEZMWU6_Ci9VpecMah~0?G(=fxy5NWIcLgT;x z3A)6onX$A_6cTR(%J2d+SF1qt9Epq~&sZ!HlD|jl57GhwO09^Oi=E0R!M647^qW}; zD|%uI{I&vCa#w5?p8^3ZbIZ59!b5Kc95kaa#hA9q*|qrENY%V^wvIi`rOLehXtKD& zO5X$|#|( z-{3|`%4!&Zextnm>dbF?W(@3t-MoUhq-Uml1Y|^_GXLDRYa=D-BS=N$01JdGm*!NV zoXB;IR%2<6l0V%h80u!oIlL`0YHu~zCtC7-sh_)C{G2r;iVdjUMzHQj1Yp z%_3}-M2=bRfI3`LdvoVuRLV_x?NzDTfKt~vcj4j)@{f0qR!-KXfQ^`?)+}&X-*(Io z#_ZfpFC_SOtXctUN)|R%5gijq*lZgLI1UOy<7mx%e>MyBQ@UQ8QHxO!EHfgr41u(& zf)?VZDR-ka;o%gOxYW_l{ox?AK*jvac$1&u0r8F{FkrMGHbW}wq|}WYsWUCo7_ItP z#wS$A?`raRJJC;?OAz^n9Q$BBpygtF6ozAx7ar78;uNk~kl|JO1Uc&q!=jYZNW%Em zxOEAKAFK{kaX zh=?rtC!FOfT==!esqV@y#k7NohxsfLJp{QeUJ*QvofFQt3?w@|`SrU_p5&jj10a)| zZ*)UrZ{jCMgZALJ)An9LeXqv)?AZ(R{v*B=Thdmzplz5QHY>(^uOMPaFKGQZP1ln< z=Rx$>?>dN`TUo(D*F2=(ycf{d!((k051#zEy?RRS(O{F4xSr{L%6ZP#oSV{4{KWcoz!95K0a03@YxgE== z4WN}^P(7F6{(E)H6&LzI&{FQ2MC<4(4F3e_cArbPr!N@mFC>y$X|LW&To6r2vjv+2q1a4 z{G{29JOlX3YzS6wA!p98m3fogv0>@&WR;U0w>hDWf-27jl!K;F8vbU)!4EJez*dKOY&(FF-|g+(LP?C`klzI5I@ude<*?@}u!m)+CKHF77g;PpGC4gyRTlqI4&R8M-W(#Ej4YB_|$ z>Y?}Og&WeC3r!lc{>{nSDC-h-$2*DTL;akpO=lAvEbGT41pEe-u6BxcYeS}h9?yUspOf{fjZx7ga-+gZa zziq6n9DicKh=G0Cx~KrL_BN}rTYlIse=}}7v)o0&gbmwsDjDUHZmKol$h)OXBUa!L zkJtPOs(-k43MBECnUX(OnGRgBqO$72F4y`!B_Z}6gGVJ}d)&9y${kztGmi7LjBJ*+hcSXMciSmcmKZ}F^Xrp{& zDExhn$-iIAA6oy3BKa36f8?C}J<9K_lRw1oFHrth4$9wyeQ5tlI{pIe&p9dow>Woy zf%E4amA}XNoon)k&|v*gpkFJ}DDocZr8mp=sl!(e~PdHL5p{4d2n6RE!`^*?0oqk#USa{eC#`+sWv znLqr^68<6YAJymoGuwSouK%g|XCLn0HF-b0x<9jx|Ec-sY4^8}_lMjv{MqCCPrX0S i9=|8$Kg5&sZ>DH@DX6~)?ZvB69!}6{G literal 0 HcmV?d00001