From dd7e5728b6ae1297293be23813b005efef8056fb Mon Sep 17 00:00:00 2001 From: Masin Al-Dujaili Date: Mon, 13 Apr 2020 17:21:35 +0200 Subject: [PATCH] Import fix --- README.rst | 5 +- certbot_dns_corenetworks.egg-info/PKG-INFO | 124 ++++++++++++++++++ certbot_dns_corenetworks.egg-info/SOURCES.txt | 12 ++ .../dependency_links.txt | 1 + .../entry_points.txt | 3 + .../requires.txt | 7 + .../top_level.txt | 1 + certbot_dns_corenetworks/__init__.pyc | Bin 0 -> 3467 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 3463 bytes .../dns_corenetworks.cpython-38.pyc | Bin 0 -> 3867 bytes certbot_dns_corenetworks/dns_corenetworks.py | 2 +- certbot_dns_corenetworks/dns_corenetworks.pyc | Bin 0 -> 5015 bytes 12 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 certbot_dns_corenetworks.egg-info/PKG-INFO create mode 100644 certbot_dns_corenetworks.egg-info/SOURCES.txt create mode 100644 certbot_dns_corenetworks.egg-info/dependency_links.txt create mode 100644 certbot_dns_corenetworks.egg-info/entry_points.txt create mode 100644 certbot_dns_corenetworks.egg-info/requires.txt create mode 100644 certbot_dns_corenetworks.egg-info/top_level.txt create mode 100644 certbot_dns_corenetworks/__init__.pyc create mode 100644 certbot_dns_corenetworks/__pycache__/__init__.cpython-38.pyc create mode 100644 certbot_dns_corenetworks/__pycache__/dns_corenetworks.cpython-38.pyc create mode 100644 certbot_dns_corenetworks/dns_corenetworks.pyc diff --git a/README.rst b/README.rst index e10dc71..2484d43 100644 --- a/README.rst +++ b/README.rst @@ -39,8 +39,8 @@ certbot's command line: | (Default: 10, Recommended: >= 600) ============================================================= ============================================== -(Note that the verbose and seemingly redundant ``certbot-dns-ispconfig:`` prefix -is currently imposed by certbot for external plugins.) +(Note that the verbose and seemingly redundant ``certbot-dns-corenetworks:`` +prefix is currently imposed by certbot for external plugins.) Credentials @@ -52,7 +52,6 @@ An example ``credentials.ini`` file: certbot_dns_corenetworks:dns_corenetworks_username = myremoteuser certbot_dns_corenetworks:dns_corenetworks_password = verysecureremoteuserpassword - certbot_dns_corenetworks:dns_corenetworks_endpoint = https://localhost:8080/remote/json.php The path to this file can be provided interactively or using the ``--certbot-dns-corenetworks:dns-corenetworks-credentials`` command-line argument. Certbot diff --git a/certbot_dns_corenetworks.egg-info/PKG-INFO b/certbot_dns_corenetworks.egg-info/PKG-INFO new file mode 100644 index 0000000..3d8cd9c --- /dev/null +++ b/certbot_dns_corenetworks.egg-info/PKG-INFO @@ -0,0 +1,124 @@ +Metadata-Version: 2.1 +Name: certbot-dns-corenetworks +Version: 0.2.0 +Summary: Core Networks DNS Authenticator plugin for Certbot +Home-page: https://github.com/MasinAD/certbot-dns-corenetworks +Author: Masin Al-Dujaili +Author-email: masin.aldujaili@googlemail.com +License: Apache License 2.0 +Description: certbot-dns-corenetworks + ===================== + + Core_Networks_ DNS Authenticator plugin for Certbot + + This plugin automates the process of completing a ``dns-01`` challenge by + creating, and subsequently removing, TXT records using the Core Networks beta API. + + Configuration of Core Networks + --------------------------- + + In the `Allgemein -> Profil -> API-Benutzer` you have to have a user with a login name and password + + .. _Core_Networks: https://beta.api.core-networks.de/doc/ + .. _certbot: https://certbot.eff.org/ + + Installation + ------------ + + :: + + pip install certbot-dns-corenetworks + + + Named Arguments + --------------- + + To start using DNS authentication for Core Networks, pass the following arguments on + certbot's command line: + + ============================================================= ============================================== + ``--authenticator certbot-dns-corenetworks:dns-corenetworks`` select the authenticator plugin (Required) + + ``--certbot-dns-corenetworks:dns-corenetworks-credentials`` Core Networks Remote User credentials + INI file. (Required) + + ``--certbot-dns-corenetworks:dns-corenetworks-propagation-seconds`` | waiting time for DNS to propagate before asking + | the ACME server to verify the DNS record. + | (Default: 10, Recommended: >= 600) + ============================================================= ============================================== + + (Note that the verbose and seemingly redundant ``certbot-dns-corenetworks:`` + prefix is currently imposed by certbot for external plugins.) + + + Credentials + ----------- + + An example ``credentials.ini`` file: + + .. code-block:: ini + + certbot_dns_corenetworks:dns_corenetworks_username = myremoteuser + certbot_dns_corenetworks:dns_corenetworks_password = verysecureremoteuserpassword + + The path to this file can be provided interactively or using the + ``--certbot-dns-corenetworks:dns-corenetworks-credentials`` command-line argument. Certbot + records the path to this file for use during renewal, but does not store the + file's contents. + + **CAUTION:** You should protect these API credentials as you would the + password to your Core Networks account. Users who can read this file can use these + credentials to issue arbitrary API calls on your behalf. Users who can cause + Certbot to run using these credentials can complete a ``dns-01`` challenge to + acquire new certificates or revoke existing certificates for associated + domains, even if those domains aren't being managed by this server. + + Certbot will emit a warning if it detects that the credentials file can be + accessed by other users on your system. The warning reads "Unsafe permissions + on credentials configuration file", followed by the path to the credentials + file. This warning will be emitted each time Certbot uses the credentials file, + including for renewal, and cannot be silenced except by addressing the issue + (e.g., by using a command like ``chmod 600`` to restrict access to the file). + + + Examples + -------- + + To acquire a single certificate for both ``example.com`` and + ``*.example.com``, waiting 900 seconds for DNS propagation: + + .. code-block:: bash + + certbot certonly \ + --authenticator certbot-dns-corenetworks:dns-corenetworks \ + --certbot-dns-corenetworks:dns-corenetworks-credentials /etc/letsencrypt/.secrets/domain.tld.ini \ + --certbot-dns-corenetworks:dns-corenetworks-propagation-seconds 900 \ + --server https://acme-v02.api.letsencrypt.org/directory \ + --agree-tos \ + --rsa-key-size 4096 \ + -d 'example.com' \ + -d '*.example.com' + + +Platform: UNKNOWN +Classifier: Development Status :: 3 - Alpha +Classifier: Environment :: Plugins +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX :: Linux +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Security +Classifier: Topic :: System :: Installation/Setup +Classifier: Topic :: System :: Networking +Classifier: Topic :: System :: Systems Administration +Classifier: Topic :: Utilities +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +Description-Content-Type: text/x-rst diff --git a/certbot_dns_corenetworks.egg-info/SOURCES.txt b/certbot_dns_corenetworks.egg-info/SOURCES.txt new file mode 100644 index 0000000..3ad2d9b --- /dev/null +++ b/certbot_dns_corenetworks.egg-info/SOURCES.txt @@ -0,0 +1,12 @@ +README.rst +setup.cfg +setup.py +certbot_dns_corenetworks/__init__.py +certbot_dns_corenetworks/dns_corenetworks.py +certbot_dns_corenetworks/dns_corenetworks_test.py +certbot_dns_corenetworks.egg-info/PKG-INFO +certbot_dns_corenetworks.egg-info/SOURCES.txt +certbot_dns_corenetworks.egg-info/dependency_links.txt +certbot_dns_corenetworks.egg-info/entry_points.txt +certbot_dns_corenetworks.egg-info/requires.txt +certbot_dns_corenetworks.egg-info/top_level.txt \ No newline at end of file diff --git a/certbot_dns_corenetworks.egg-info/dependency_links.txt b/certbot_dns_corenetworks.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/certbot_dns_corenetworks.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/certbot_dns_corenetworks.egg-info/entry_points.txt b/certbot_dns_corenetworks.egg-info/entry_points.txt new file mode 100644 index 0000000..5af60c4 --- /dev/null +++ b/certbot_dns_corenetworks.egg-info/entry_points.txt @@ -0,0 +1,3 @@ +[certbot.plugins] +dns-corenetworks = certbot_dns_corenetworks.dns_corenetworks:Authenticator + diff --git a/certbot_dns_corenetworks.egg-info/requires.txt b/certbot_dns_corenetworks.egg-info/requires.txt new file mode 100644 index 0000000..a08ac39 --- /dev/null +++ b/certbot_dns_corenetworks.egg-info/requires.txt @@ -0,0 +1,7 @@ +acme>=0.29.0 +certbot>=0.34.0 +setuptools +requests +mock +requests-mock +lexicon diff --git a/certbot_dns_corenetworks.egg-info/top_level.txt b/certbot_dns_corenetworks.egg-info/top_level.txt new file mode 100644 index 0000000..8fdc0eb --- /dev/null +++ b/certbot_dns_corenetworks.egg-info/top_level.txt @@ -0,0 +1 @@ +certbot_dns_corenetworks diff --git a/certbot_dns_corenetworks/__init__.pyc b/certbot_dns_corenetworks/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9879d42a69cc86dadeb9c88ee05bdbbf3c01b99 GIT binary patch literal 3467 zcmd5;dU2SH7NleqVDHiZwYd?M-}i`NJiCA=BJb?PV>=;uM+F`6hLma?o`0_AF6Ko$Hcw zI&t&5L@2L@`!A(le&CDfg9fTJ9S)`RE|^1(!nyBh>$_|9m<_QH$D{TVJtRwLCh>S3^ zU5Y^q0x)TR-O_e)`rVsHMDy%!kQsvF!_3x^dL*)KkxaQ2w5bHMhvlL=av6}F%4leQ=4?r8 zTSv}}w5Ccg);@4aujm~bDlj1#=Tr1al3<;jhttAl*W)o^JwbC^p?$_(JtpmwOfN+~ zV|sI|C3tsGOnj^)!WRcgqb>JF)*h*%`A-`kk|~GIGr<@qiO@?b*WJF-OC!%7oV3*5 z!^!eE2}*Vx+FL4m-%^K#XelxwZ9|!^AW~86jmeRgsRBEl1#`pjAc%i!I1hJKhX=7e zTb3}gVF5NsZwx4D3*DMnG*P6Y_EM2nLur)PPKXy@Ug=^$(>hRY;k}g&qO<6b1Yk)vK{GR1+|_`*;~RU;5{Pe&k2~7l5Mc-MvYEk*9E6l; zIX@u2;fjnjw?$r?+o+nWXF;M(S;&Mc^t@4h)Lvt2;H<52Wr~8hgyU)$uZyjZsQ8_; zFef{&j{NP_-qEnqne58VA{LB9H90}Mf!aqSNazycX_pW_Jw3guyq=*8*p*-n0`dy8 z_CUU8Qcnli9E!rO+OjZz+g^JNsb+(^6#Huzj`gDPq-4R9b%xF~X!sTpD4;oRbkmSX z17)hLsB^(pSlKoTI#1LiZGy-iL#s?e-)6kTtu^U9cYsJH0-r{ps?W(hL6@yJ0uw`y zT}*|!#&Idl7NyPUtK(xdxJZ$Ga0b29;N93s(~d_VbYqRXQ^$Ryooc@jX^gjidb!gk zmftBe)|aN-*lmKu(llDEjKL8uj>SqZ^bpIUk_fNVf6uKKFjbZxHCibZ7y0Qgq zBMGF@|0SVEmnZOx@g7u(Y8C*y6B%&Jp)l6fUea{6S|xjf{%3e}P&!EU(MTOabb!tv zp3p?hFTOl(4{rN#Nqfj)sXdUPv;TXz?jMyq>9t4GSW_$N1Hqm5<)2RY1eeJqx7lRU z$JgHO;=jkw(ZZHIDmC;rdh6`3d>wd%b4IK0dug-}?)@(sO(u|km`sx8I(&-I-@p*+ Mf?r+Xd%(N*7ZY(}=l}o! literal 0 HcmV?d00001 diff --git a/certbot_dns_corenetworks/__pycache__/__init__.cpython-38.pyc b/certbot_dns_corenetworks/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db89ae836e9ba3dfd7146737dfd86e10efb278c2 GIT binary patch literal 3463 zcmd5KcQ_s@U&;n$CQz2D@f zd)>j!m-zU5_{w|V_3}Hfd&hV6FBq&Y=1l3kj9r-6FwQGK&aC5#!^*l#pBz3&X;IWO zQ<1KNEp=c|0TC9?X6!xLsmg4*C^(pEMw-$T0R|_J(v-5fE()$@Oh@TEot2zypZMhY z`D+Y1rpcNz$699hNmse@^~CernyXN($#H3y@zupQ7q~;Fxu@F8T9U;nGNNMe? z>DkM(L@9NyOU~(;o7E*kc{SL-lzQ@k7tsd|RB1XGNa=yG5K5aj6fCW@ z2{g5iz}GD@!pwFl1}zA{r2S<}+q2WJUfd#@XSYOV2#P;ux{lN%p^YGtTZB4#&Qo0% zVMLD}pB(?|B2emdM`2fUO1<$c*oL|BZAZC=ERVJU6;m^-U8E+GDUX6Sm0)(WTvSIc zeXU50 zpHWwjN&6<#3z5%=UR-Gj-W?PZA1R6O$wAU+%e|4cN2+N4)5eEn%Axa&F~&(E^n}WF zx3BcV$h#XSEwuM=vOG?Lk{yTkk&528&|xlGicCn`P^K%0R1~{3Inpv!V5hTSmJAPq z__v00b60hE5Zkk52_qX6V1x9=fReV*t%*ewMJj496=^k;MtSXoc=6?xF8Va71LYRp zTiHN9NIyvcN&lgbQW2Ni5DKRjhDL(Vx3(rfw{?+AeSxze6S2Y}A=-;*XcdQQYB5V1 ztR0ff_4M7k4BKt1;o=XA$)pz@TT&5 ziY{PRf;9-pE6myh`I<>R=wovz3cG5{!u)M}?J=a94eCPduU$CSi^h|Z1y9x)I@6%x zTSTCM=D5*KLn8H+sj{NZ1y^BZ+bHNfQIE69GOOF*LQ=a9dD(>2pVL6xXx4zN3s0k<3qV_of6nyyx>WN*;_437>< z2dUl~sY8ek(CNn$nuz)Frzh>fZ67Xa4>>Hg2QqZ_e-GF7qjD#`_GlVwYDIk@xbx#X z?>`!kbDNFFKlj{S{LqPCe||lj+meT+hQ@|3o&Aw70}pYwXf=Ip>Gs97-$KLj7?Ka; Wak5yyzxM?kpf32S{J8o9pWa_M*k(Qe literal 0 HcmV?d00001 diff --git a/certbot_dns_corenetworks/__pycache__/dns_corenetworks.cpython-38.pyc b/certbot_dns_corenetworks/__pycache__/dns_corenetworks.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fb62f78f49b83d6377a9ee6c4af0319fdb514f0b GIT binary patch literal 3867 zcmbtXTW{RP73PrKU21QVWktF5!q`o!P3x7D21RY87gtRK0meqCWuV|gSei2{QRb4{ z8Pbkv34M@(Jhe}K?89!~{FnIJC;x>2b^4uIuCy!JX@PRV;S4z(&iT%FzH|0|r_(fW zT)Xx6FL&F9@h=)I9(4?UgH!zz4L3Z4Gj7JrWBO`(7Oqxok7{0x(K9=)j~ZS>_iN}o zo}>HqcxBY|n!4XWzvZ=u7CqML0+6Q>Ob@(chS|&ker9o6ij1 z6wRYIPOVdR%Dhe7ZSgklwngjc%~Q*Ji<|e1UZ>dl-Qb>kC(jN=l0{*VrP3YZ+)1Ty z2O@i%%7@Cuoc;?~WDI(&Y=?N3RF5#O3n^2n&}&9XCgd;(g&y%l`C&R5r3s#`pO5@l zd=-UhQrtSsva!0oz5PIBK|dHreOmg)eC<9L+dK`ouMhJi%+kaUuuVTpABrTT%`6^v zHBf&-M;HLy@J!ACxary4@@iijL%_{z&m6BV8hTXcjb{$Pak#@*o*5os<1Jj9yv;kf zws@DX;@akG{0gp}uMOMqx`1uH>?}c6{N;Z@vDtKS>>ozz0^Ye2%7p_ifKH&eclLJO zEOm!@JdEPl4P3x@$k5_vA7oP&mkX6vq#j4I#T-Eo`WJbo0jZ^c;JZ8t{ z-xwHc92>sHjeEv(Ht5-9P32=Sq=Ct$=E{IjnDs3g=VQB~QK$Z1} zkLmiHl`Fm<#(`44|J?ZI%k9H-B(_HZjN0Cl>5+Jtfgg$5CYv9m*$skbk(=`e{)~F( zq@}mO%<~)l@e|p?2FW6&sl?VD5fBRcznaWAM$i-Y zs87K3>Vp?Qz}z15-sNH#woFQOtu;SV> z0>!YQw z4SLRG2YZ+qcV=O^GJ?}V!D0G7?NB?C6>lzEc{b;gX~bb|nv2e{G12PItqIG_sTP-i zm{V)cemHsNz-#~AfyE~j=gL zuEi;UE}e1pyk~oxAbbV8zrdlgj%XhRS=qX?v-8FM!M=b04|nyx<=ZgwB7p1QW|of^ zSLk7y>Y_22%}i#R4l`fc|1OqAu7CN(aIV?(F7<0THM~Sbf_G|67|F`9HMM4uBUkVU z2EOGVh-@i@p%f7a?sbWz*;koA6T9cOCPG=~=?MDhtv(9kh|j`|pe~!|H!d3M_z*6F z=V$onoGcebp_=l47$aRQkDM;zg?-ESaP#tp!dL`JKK}W4Y^a)YiM(g%lJaE0_lQl9 zA*YaU-2;Wuvra8UtTmAD()URZA>r@%MB#ZgaCerycQoFbDy2=_Dy=MwU&R`2;H`x% zf3O^Iuk&SZl@bPd2??X=`=gZSG4wrBn-wX zk9BfK{)du|MtMTn9wxhwqwMe%bp+|cqbP7Izs(AUCB70h$S&HVB5uu-*uQA{~z0BAq+2v)ZJ7Y!hw#hE8ktK$4_t?0cry4yaxuRfDIzjvk#Uk~7OxWSw@C zq|({jc#uaipBIRgWa&jc2RZ*y#D#>cRlQzqrt)W8)n6{_Go`zj-iQpp#i=&X7_4j7 znQ55cnifRsrTx-w6xUzR^YiRK_aiMrszr*lgH!zi4L43K#1=~K2}=GclbhVc9dlwK zP1sN}c5KO;+(zG;vc%-IDXzLAD1Q72>bhA}xt~!BtYZxKVP?3i$a@&3S(MkX5 z$0tSI-NLw68ogR+sZ5qll?5_W#41Tfm#saWzxCSk`?%Aq#FYuu%35D_w4xTlAAyDF zp};BE{lg&Ph+iuDeN=?09N@m9(4y4QMI0e@7^boIZE@qfJaK8AUPDqAk{?p@6KZ}+ z4LMwrSL8M|x(v|Gc{CIKeu+~N`y6K5?Y0iM-rIVKvVla3OnOjui*zjdXa8?Xo5tRi z>Yq%1&Pb)XS~jYZRO2RzCEjXvt3NA(l%$~3q%T*H%kJVkz=X^w>-13!NT|z|^KZ7I z(Kr@V#vus0yGtS}Z_?!M?#xBM5Ac6UKJnI2#xGB!F!wsk60T$L9G&xW$@z39xxb>C YPLXQb%z=~IW}E4s*)(m7dYd2q2P63ZVgLXD literal 0 HcmV?d00001 diff --git a/certbot_dns_corenetworks/dns_corenetworks.py b/certbot_dns_corenetworks/dns_corenetworks.py index 8728e07..7fa004c 100644 --- a/certbot_dns_corenetworks/dns_corenetworks.py +++ b/certbot_dns_corenetworks/dns_corenetworks.py @@ -2,7 +2,7 @@ import logging import zope.interface -from lexicon.providers import corenetworks +from lexicon import corenetworks from certbot import errors from certbot import interfaces diff --git a/certbot_dns_corenetworks/dns_corenetworks.pyc b/certbot_dns_corenetworks/dns_corenetworks.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb89284153d60c7276a2d01023f55b525454b54c GIT binary patch literal 5015 zcmc&&U2hx56`kc$lt{_3V#jfky2Un5Qo4mHCk+I|NZLB80|+%}VI>0zAF^2Q4#lPS zgV>q1;}0PZ%5$Fb5AzfH1KM-$kfIbjK!5-;r5VoLnVp@v_uPBW(Esm+-us{Z^lhT% zpA~%n3&s45DphKP+EZyu<(?X$;o2=V@}=#oyse5AHCj;~$J#3IsA5%(R$YHZ`fF;m z=K39#cU93-qn_)pN`GCA)|IC{HQiA9f;z^l-cTu?x~R0TrkiT|rqXL_dWl1G$z_qe zMM>IKx~HaB)EMoa`a!8q@Vy=~WrtSPYNe;i>lf7kJn{s(%mngFB6# z=+b6MY^ypLqwG|*4u;x3sp>~2z??z$KYWIL50BUlR0(F3^9fGcfmGLZRU6mup`Vpj z*W)}<@&oUsY>%1#1m_0=JwXsLv7&?Y$2dUml zt7Pl?xG57`l~IgyM7DZ_v+#Upj&)+{7Dm2AF%c>aQ$u^GTQn@q3nRBx>QiAbukO&g z)GbC=Rk|YbHI;Ux(N*cHG427%X=b_(rMrf16lG;*qsX>7t%B*-(MW2Y z60mV@`h2g98l8`&5!Z*t5{-|Zut}6Fsm!-%ZB42|Zxt~PzO`3ZQ~k&SMy1)JULIEV zCN+2(-HU<9fpiIbJ_RH%1%uhsa22n(hGMv3<-O}A1RM(mJ1FKBs+X1HV$8AUdC(N_ zmqI@)fSpHu?e}?}q5T8uRFC5(x6!PwX7OQcGa%ocKz zozh;gJKPO`96b;{hJ1@t{#$6pX&TMq+UPohBAWs#H+>$(Qt3%<PzmN$oVgQ^^7hfNJ9cnSXSD9C3}DV^(Or<(hO zp*eotF$Yd9+*rs!aIRXiL_q;?!hy!shv>`^=`YnqYm2)6js{$Ex=>n%Xow8tDch1v z(^lKSB4Xb5u`j+0coLKZ`%v&^-sf6)-7;&u3TEb0Ok>PKOsj)3F7zwX%_6W3g8shN z!Sh>3gBubX@(PACSFprhYz%T!Do-!gv$XnbKGLTH*tb!^Mdy}|PHjm71j1MmTL~$5 zc6RPR7#>6q!h3QciA%4+Y|MsmXWPt9@Ad|yhG|!M9nY7)O)udQ7e(y&M+lr9k6}#& zT#30ad`G6*e8R2v>u{Z3Vd?_v#6NviW#sw8A22pRW7+Tb;uImvZg zHnVNKeQ{>mnuQP%c>E0wBpxCJq*E9VXw9-K&d#m?W*#`h%XlheI&d!a9$FDSeL)ZJ zIl{Ihz*#0AdY$A4YxCFSOky|k$hk&@^-7e8A|e&Ef>@2BqDq^bT?Vu$0;xosL?hKE zsk0e#Y$BG$q+3bQV0x?Bo^Hl@a@K76)_aIF2gej9WiROZ(^mucuk$F(3_8O+k)4 zl>xl6xospY$C|dmF~OXer;gfWl+%uS(Pk0@t|Jh5rY*i?7@|^QRJqT{-GNyNz>wR6 z2u`vIEhxtPdBo>U=1Ymah8Hyat)9+>Bt@=nlAmzZHA|J z8Ec80^8gK@FDPK>SKj5;hPR4Dv+7;&6WW}oJ+aIKbfC&3UyLJH&Xagjf51x=hDxZ% znF{p^*+27EMM3f-Tc&da6L3E`(=eg!DSpQR8V_Z-P?($lBJ9tpiC{>+3(=PKj zb$(k=yK8t|spr=rTmSq7Y=f)BI0GT! zwFY$KcJTb;qrvk}jtmbR^dY(d9Kx5`4{1k*BfxF+8E<80639Up!50rDaX+hOdT{b^~F@Ef*pW02xaR)y;nW0U>*V(L0Wu3o`B;tMU glIuT+dPDNi@iu^`&DN$Tf31tHj(-U#yY|=r10BNRMF0Q* literal 0 HcmV?d00001