From 1aa77935b286a698c74f3c07e03dbb5ea2c2a139 Mon Sep 17 00:00:00 2001 From: badra001 Date: Mon, 24 Apr 2023 19:21:45 -0400 Subject: [PATCH] fix --- code/ddns-lambda.py | 46 ++++++++++--------------------------------- code/ddns-lambda.zip | Bin 21248 -> 21176 bytes 2 files changed, 10 insertions(+), 36 deletions(-) diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index 8f5042e..07306f6 100755 --- a/code/ddns-lambda.py +++ b/code/ddns-lambda.py @@ -73,7 +73,7 @@ LOGGER = logging.getLogger() account_id = None region = None -VERSION = '1.2.0b37' +VERSION = '1.2.0b38' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -761,13 +761,8 @@ def lambda_handler( 'A', private_ip ) - append_msg = 'A record in zone id: ' + \ - str(final_hosted_zone_id) + \ - ' for hosted zone ' + \ - str(final_private_hostname) + '.' + \ - str(final_hosted_zone_name) + \ - ' with value: ' + \ - str(private_ip) + append_msg = f'A record in zone id: {final_hosted_zone_id} for hostname {final_private_hostname} ' + \ + f'zone {final_hosted_zone_name} to value {private_ip}' if create_response == 'success': LOGGER.info("instance: %s, Created %s", instance_id, append_msg + lineno()) @@ -794,13 +789,8 @@ def lambda_handler( 'TXT', heritage_value ) - append_msg = 'TXT record in zone id: ' + \ - str(final_hosted_zone_id) + \ - ' for hosted zone ' + \ - str(final_private_hostname) + '.' + \ - str(final_hosted_zone_name) + \ - ' with value: ' + \ - str(heritage_value) + append_msg = f'TXT record in zone id: {reverse_lookup_zone_id} for hostname {final_private_hostname} ' + \ + f'zone {final_hosted_zone_name} to value {heritage_value)}' if create_response == 'success': LOGGER.info("instance: %s, Created %s", @@ -823,19 +813,13 @@ def lambda_handler( route53, instance_id, reverse_lookup_zone_id, - # reversed_entry, - # reversed_lookup_zone, tag_data['ptr_entry'].hostname, tag_data['ptr_entry'].zonename, 'PTR', create_fqdn(final_private_hostname, final_hosted_zone_name), - # final_private_dns_name ) - append_msg = 'PTR record in zone id: ' + \ - str(reverse_lookup_zone_id) + \ - ' for hosted zone ' + \ - str(reversed_entry) + \ - str(final_private_dns_name) + append_msg = f'PTR record in zone id: {reverse_lookup_zone_id} for hostname {tag_data['ptr_entry'].hostname} ' + \ + f'zone {tag_data['ptr_entry'].zonename} to value {final_private_dns_name)}' if create_response == 'success': LOGGER.info("instance: %s, Created %s", instance_id, append_msg + lineno()) @@ -858,20 +842,13 @@ def lambda_handler( route53, instance_id, reverse_lookup_zone_id, - # reversed_ip_address, - # 'in-addr.arpa', - # reversed_entry, - # reversed_lookup_zone, tag_data['ptr_entry'].hostname, tag_data['ptr_entry'].zonename, 'TXT', heritage_value ) - append_msg = 'TXT reverse record in zone id: ' + \ - str(reverse_lookup_zone_id) + \ - ' for hosted zone ' + \ - str(reversed_entry) + \ - str(heritage_value) + append_msg = f'TXT record in zone id: {reverse_lookup_zone_id} for hostname {tag_data['ptr_entry'].hostname} ' + \ + f'zone {tag_data['ptr_entry'].zonename} to value {heritage_value}' if create_response == 'success': LOGGER.info("instance: %s, Created %s", @@ -3127,9 +3104,6 @@ def create_fqdn(host, zone): :return (str,str): Tuple containing hostname components (may include dot) and domain name for which a PHZ exists. None is returned if not found. """ - hh = parse_hostname_to_components(host) - if hh[1] == '': - hh[1] = zone - fqdn = hh[0] + '.' + hh[1] + fqdn = host.replace(zone, '').rstrip('.') + '.' + zone fqdn += '.' if fqdn[-1] != '.' else '' return fqdn diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index 35391a5b41a846a0a672589a1a49e1eb6bbaffb8..2c93a691ba674c82ea33748ae8ec3945d2cc4f5b 100644 GIT binary patch delta 19015 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 delta 19085 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%0DtK=9{VOlhe&mZPhR*`weRnGZ#{BW z6V1a5{V?Rt2#w2?m{Hy}C&(PDZASnd$#h~QoBPCE9~qgvApI5B8%AP9=)EPHoL%;9 z^izLK7?;(M#|p(u81Z~2qCBeuLoq7yyxdvF8ATWI^l~Sk%_IaeLorHoW*<@F3j?v; zgA+J)8Z(qg3TfFR@I|NSJY$XhG&&wG?H35nqs$up8be zmq+dl0g8f@!`gr&xbvb~(k2qTS=eXB4GmN!S3P)BW$E!o`ZD zY=>l!BJ~DcteDWztAeYbZwE@WGzAH7tI|3U7*x=bz}eXsy4-b4nA-6a1R03`x;^wa z^euWS%erAQ4+k9z+fz)11WT5XZSTA0`oImzlm zftQ?!lC%oTH{MPtZ1}+WaBloII>7?SIgJ?d*7@SubJ0jz6s9Jk_Lr{RH)%wK3j4d` zqSe%|%G|1YRM)X$f{4TP-^COksHA^*wd3^m_H0ekx{N1sF^aR8jElkd$9s}}ESasJ znhl7{a-%)js67_ZSD#$aCr4Yj;@Xm09J2aiPPMmrURy}1Y`!(AX(BA^GnvO3p?4Q7 zmM0pGr70vYfaR1pMxzcy%Agh4p~DH}O_dNsnWFg$jpkM2O)9tPbz?FF7*2mPr!m8& zbOXjzh>IknuE8W1u8;~&Zy8jwhKR#&-dHTPQ*LGN-c*XzTU@)MLIFRBjPKE))>dd- zVTD?-k9D*lt+q$i<6Wf%J7f{G?b;2=dAqxlyKF z28WF^Rj!I@ZyiyZ*wMz2fLVV7rie<$9?xqLuuu`wWkPgWKE;$yc)djm?q z$U}=pMp9Zx54s<-IO@CLdsf}ENLpAT=P8%>HrVdpEYg^z1%(3eIIe%K!STY4&^AIY zjGJjv`M_xgTsKYnAX@!X5GJbAaKTCu`QmGpOPanDHRJcFxnSFo#id7`oi$H3akMJr zV`{D<{bM!|vtAx4_VI`);a~APrss;n0Zb?DIg969(ij=hK_iLRgMe7EEYJ|{stHdC ziMyJTmCT*#P#j}iLV$mbS_+b{meZItBQ3X2Yt`7aF~Oxc`qlz=77hBm8I+${Z|+T0L@Z7`WSLY&;BWX}lqEH<&#pZSP1q zb+?91MHbH=j%@PNW6{e2zm`xBD>+h*De04_(g%b`$jNwK41il2x869r(y!CEi88$N~Px-!s65g6HMCmQ@aCt3F_B1LqL zo*Gq**yi54f!;vY+;g6U32us@R>ZHmdiSaEPy}2vQ(DF$`dyW~)pC>5>;3VboHB~1 zxpiC}$v9PK&}x67Rj6g0VRWySqxC*8a7&XJEL4Dj^pJ3yAKIusaa!`%!^)d&ZL4jY zs5>O|8QVTf8(JE;G}Dl0B#Tokv_&$2fCFz}>bq6kl@%Hx)t%ZmQ5R-g16{bJ>(+_W z(?n}p_(3A{Z~Sy@K{+9=^DMpjGNcNvPrZ~nl2n>l^2C4hUCqtA@RKr%D!NoEOn=h? z;;vi;1I~Z9pb?Z6r%NVuHJg!-ccRXHCRr0v9%`a(LXyp9SeP=6GwFfp1mgCSbbdb^ zksfAhDT4Y0kSU;gszA4ayuG`S&dWxyWnbx{g*L2&rEz$S)G4pcNol@nE3Vq|-5vO< zp3lcnz-WI5g2`oGmoL=Wbqqv3@>QBVjdSEamPfGX+ngyEa(6$;`|eeJRmqTfWZ`^o z`$$7;-Xttm46%H!cL&j{|FeIj&cr4eg$X|x36VD|T^=ZU~l2b_=Je1IDqWP~j2!EXD>sKZI*udbiced};TFEA#JJCAcT=9LucZP&a% zt*+d} z-uF=?#sa=Y>%p(jyfk= z>t|7x&+_s*E)z4sH*)8fM93=O&7^A61~3-E!XnyL0SW~vszDnD_p@z#wyMZ}WIsIy%>ogQLp$xN&c9nfWGP!_DL@e1a-j?oi9fyqO0i?QySGL18Oz} z_l&6c79!Iy^o*hPg>#xuD6~^G&dGmKfvdx)M>nm3?2u?PtX{<=6#!;hlx?L?eb4=Li+UP$jC$7U8uhf-Id*@IcDl!| z(@qDeCmR1eUSrWYHd3fqctmVXC0J+!U8SDQb(VTI(Ov4fyAG>EXs^rE(^jXc$1_*?MT|y40%r$5E!P z&Xi%HuF4GQ+rW9tfZ23!^|OCg^|Vqu{xh%P@^yEOe4LotdjK#{34^JE8H{+}!FmPg zulGqgNrUyGcHn;6Ta8YN#*zAdg1s*f~{%|w{v?{>p8vLO3`kr zWUV9ZFka2@8@$}!I(OD`52@kqqum}tvo&kA`)afY*Jf)pS;fzx#om7(R6(H!T-Su_@`VAM)A~VOvnjPIkyQ4d3cytFXkG?Ku@2T?9TD6ZJK=n7kxV!pC>rH^a z_F@*sRR$8Nn@<-UKScPp>H9q8W;JQk-N#ibGaRZ=QPE zT++FD^rSR{Ro7>uj+n!3zHlQ6fXxe)N4=dMfvvr1DxI&`=x2e&#si78d z?D$;>8_rtu*VjoKoV3+UI5i1X9#X;}3tACViUolnUkp_D9qf}S7Tg10@EU}- ziscN}T$mxFRb7AU@Iq7lPi817s;!ivn6}Mj6g}Dz<_G5slMF2`7IS*Wje@Pg7J6!Y zv``Ot7(6ALBQZS{&YPhnoIwK3`0`A8=vD(cbP3@Wu&;lWMxw=ORmNFZvzXeXDU1rW z3xRTmCp4hyX&%_{B4I79Hg33qY23PN8xO?Jnoo24wMc*38nF9$a_$!~=0~`xtRB_Y z0R06c;N-w6r{!kBy2vqivb1m}G>_uL#E*HV$GX6=0At@jYAm$vP^)k!XT(D}A@1sY zxUbXUj~_y2spPL=WNumXg~Q11uyrv0c|18enH--SygK|@iwaj5|Ecy7HqlDzX-B3_ zn{BS}+ce2yG@N=i(RAwJ?OB7fPT!doH&m7Nsx4KfdfKW^^?dc`-&M7$ z=g;ELUrTtu!+%zkt#q^n{*R-iEq8t&(Oh{|l=D*beZAkZ&L&=8s3jNILq)%ZH?*yG zTdTWT>8s#6>p{GQ&WL<<7Y5yhdnt}Hv?|d4O%{JI^ZoBoJY%>N*o%W^)$W#d;QWW> zz%izkax%tgs;$gxTypC19?n*2dLt=Qu{)VL#2Wf23r8jSXiO47HMy9u_#(w!{Zpmq z-rxU@GglxH5^C035;<|35L~3h89-4daA;gTmI#t)1XY(S{7FV}$-2+`C^{AVAjnnX zWqyB!6GczVXk-HlBok1d>oTgL`;g|?7(7XiK1y+X1$n&Wol;+rA~oQgM3veS^fAa& zA*-3Xx)MwGmaEhtgEZx52;cPL(9#;ksWd<;GzVeISyZdjsx9Z#+ia1etCQdvq#h7* z9A+HTnWaU?x3+}yQDrs|E_iWgxRjXjT*!ZnVG)LFefW9pI1C2^4?r zojpJ2q|l?OSc-O)m^7KcKCF29QkOs+WVx&^Xz`CBK_m2B{G~uAR?6_}1xYa?=s(d9 zyFX8Mj}Ip&2ji1}85*SKIdLHgV8#hfdJ*SLWxWQ? zX20fgX@Yz$gl@t#p7oZrS=zr;vhDju#%(x8f}W0y`;Ip2yx>us1gM~HLAt=Ryu{)% zsJ0>*IL1#AmXd7V+iE2gMc=%$*VADpz~clZ zE4a&s4-4EC*B1jxGSjrUy9o5=#J!7$!xBL@9es$k7oH8=0L^?!VM%5VgY)@SGl#rx zqjlXFpfOqE1m!E%fO~7?8*bzBZU64Lj?X9_&OFa$qfZ{BH_}+{nHM5?$H*7Xe zQ4a=Tq2XBi>S;g_*m$@hPX4t)-QbcofH@jX`dD4*?NQ6M8}c7XO^f&Pl6Ui!X!cK} z%xm|jtLOdk-eEFQmKrh;OK zFK03+qCL5~ukql;{Sl1_DL*`AsL6WHT?kq8LFwosqu;1D}u~W z#Agfayun@9RvmkeYs()BHXOk*j^BvmSkT1znGeVFv* z82uBPq9`u0aBy(JHOots;(0v1LHjajg6bfGq9hPxdoABXSkHAy7{gf$WNR-6B`(r< zio09URv&*wTTW2R#!w)$cb|hoTl~+h{)0fgH6Y$T2*iiQ5$-*gAmQ&n6wHR1R^2)u zP&45bh}594Xi4)pp}yK3r?eA+@jFyczDp^pW2C<8_kHm?>S(6nc|{czC?@rf4`5qG z)Ql?{p)*4;L130N7{iUKr>TKQGwIweo zckx%2Sj!U28+9t%W7A}u2ZqRG2#XRkAM%XbLcR+2{WGfCJN`C07g1&J zt}~L&cV&@2iXu;T%ZSiPyo^7=WhRmME54?KX8+VDPZk98*zE%D94zo%U z`VW6Jp=fvWd1JYO9%z=(hPh!DGdYjC#|k%`B350<8o^m%FVALV&JD|Bf#wIeICxm& zEnhE8@!E_#dlECWr?6Wdf<=C$JMAjAV2>xxKjT2Azz3in1I@E)W&ggIaz)=e*Nbu+=6MZP z_;lg=7LLr6Ds~mc7ieU`5rcQ$Fnvsh$V()5qMP=ZId1ia|KNesoSpuPG1Jg*?b-UB zgiF`C%an-?{#kJ(J0Six_Q;APLwqd&CP8mU-?_xGxj6VCW^W4jqOPqhPts&a_ zu}HuzdvSx_#>pwZ*ggOjnh5ncL3 z5<}ddc#1i;P2iytp9x#TYBbT)I*YA?F}^7{43iPpRvEwD8lwH9)5*!nWITSmwu0Tc zCW@NRy6&rI3(k^l4F!9)sC0k34&n2L@3(<(UZ5@@v$DFM79MxIL`)gOHrL4mEOBJc zGLWJAK%)4v$-xuZwkV~u06IdaDR8fX7z{}?%8(h_n&#OoB~wO4qK+JH?v~OGA`~q^ zLx-4lkfLt_#~Ju!WQK+$qbixe1)jz$3b}idRgscuY;QX^^bJ+Sj`n|5U6)LeNsQF& zDyQkm37_A8fd1_nNH_M7hLFFDj`id6qXR=6MXoqYhg^qMbM9UE-9u3$!=ec*X;dlD z++#0k4UN3|88vBVRMXAKyVTr9Y(Xd@^DHm1$a1P^5oZZnQTdW$O8Jro*0=HpJ(Dii zb9H4#hOc!bx&R|g(0PBFU&N_DPbU-*U2V$d>2}d~%lMC!^W!IRFMVHTOX5JEm@KZX zJr|_BrbFY>bEC20i|jKRRY?19KyQeW*^5)yAck;7LCi@^>1v55WuD@059OJ7dTHwIf4=Q_cvPp7d!l9X z6RLB2g=u1mnMQ%+$jjNU2_JY}#d!O4B-3oUK%9VY`7Sf;Nw|AFibM~;)Zq@BlH>A* zldc^>?U}D0((8ZUiLfRNsZ}ocD#N?$Wvnu0<}%~+?(y-_?hgmI=<2h)+5c9^*UweF z_AT$pXA${*>){J)E#iJeU@QCHqQE*NSk}J^2^B}i8bs!}g8Szh$lGw)915*Qnk&@S zB8|m;E0LxOsFAkj^_k?md4t%&~?AxyAVF+?z(cyIC#l z(5s8nHZB6US-+FOEoHh1Ozfp6rqMPLf29q#4%B{eLS-#3duh8LsJEyTU8QvIBAeAdXGS4fl_4^{f=68Ehk1MnZ zgw$#*I?R6{-MzsQ9tsc&_!hWa62`kAwaq5I_YO2)xEbpQCE=+*2jJWfH-O$eQPt#$smF(cX$6q$NqXjwq@p?rj+ ziT1qsnqI-Th6i_FAi4Qty7|TnLeXrMiRep#0IlbUmrG*Pf|6GUUEB!woAeDSPy>J- z-c^4!`tlgwL!;lVy^1L8^{DL{C^Y$^ebICY&6X-*p<1o_1&aK)OzZuG3eF4K{hJQB z>j7|13du*hP5{c;&Wm$M?mCD(B`p+87mY}NUYP*4zu&Ab{0Y+gQTaTcP;MG20t7r9 z9TyL~|Ftd~9T?}RDDf4}7%F2povI8zqmX}L1iUb6*KZ*TtH#P6ol>kz#M5ls6K{idDNZQ(@TAb?)U##;0)km)$s51DxTF*>4hdI!X!Z)<$no(qoW-6YrGTg?$o;7 z^su4Mdcq`KQLhscTNRoBPO!)Wu5O6DRZ>kNCxHw4$<%(BM(3s7tuQ6-d``PjY zM~D_1Eu;0DYVZUtJ-g8+6R#>+_jE(zl7|X~J7sangsg@rNy7{Z798Iccw~Q>K6cR` z;*W<6FX`xo8^4p{%!o^Zi?*EDjgt2SavF(JXHjj3iALvV&)qmFGLv=HIV!GgE2_p> zqQ7(W#dpuVFdxNqs-m+M1ZbSeyyWMqr>z30gh!pBSDf=5`D^1*V{66F8#uefL1S`XRRD5$SdP+y~<9wG`#sZtdg zbl(`Cx_!rm3^^Y5^sHeNgRv~t*?T1SG$97^;2QYDM=+OU6X*3lXX$s4u# z9Pac+HmBQmyV#1L-RV7%&``T>jJk!jIU2oa&V&*ki?*>C#=eQ)xnNa=krf6n$<|oB zb%rZT#csCYTPwJYrVBj1u6UYB z+8pMA9&pv>w)~rRs$qXPjLF79HIEWd(}H*ZNO3gb?mT7`jjn(5HB81zlzpEdnea${ z*;LtI<56nyD3zYq8yo?D#y$2pLg&G4zmsV9paF^qF#P_)EyxiX0gFW ziw#ZS{H3>u9v**dOS^BlQKWZ;0t)%THip)Rhd!)oMyT-|`R_17^y`kx*BzIyJ1!5g z<5I~o)xQ7S`8ty~M3Xz4y6ddmwdU;~@8EjH{H;!|w;K{$cBtpepIjFg5&hmyu505z zSoZ75buC&e7(}ITxO%!=6(ZGF~8Ouu6Vl3V3vEKq{ro6rKkygr32L6?--r+`(e)-gk8-u#wwbj#}4P4;xE3+Siv+ z@Sme`xyE&ChO`M!Ujh++`Zu^4*dk^TRi0atu^b9`eYSqLs)=L3i;7&)LS_}PU=(ZR z7#SIVHyt_O()}_Na<%^TvWgAB>P!X0eC-GGsk(pXM7=TsW$%7rj{sn8`tTQFwkPUT zLGacdt}{$ls!tIEMs;|}8GZNpWL~Bsk!%Won6QrwzGlCxxz=Gj~_28EEx+Jze) z)*y+?7!p#Lp0bq40X?8aN?5m6yN{x0QSa=fjewl-vZVgx6HKzGa~EOFSZT4Hv`!R( zxFLUZ0wx38Ys1I1tNv(C7P7$8OGw#3F-F%545xh6E|73rW(=3|=!=#nKzqKZnF^T` z&nY4l#R!nll?Sd^$u_ux!QDG$xLlHqs~hQR6)sjP+H~f2SUfnD;Y=vpmYNwA{|mkR z_FM0O!i|?cU?BCl@iy49E9%xpRoUUri;91<;xx^#aRO%&2h)66kQ8^zt?qyS$4>8T zcjv<|$vMjmG@lX(JkclM-yiQmq@6E%x2OBW@QJ}W+KTdnp#7;)$^2oD-W5lT+lLRg5Dudgz8~kc{oXLtRn|P7f^Kk z=7Tvm6|e!H3T3y4{C7~+$ew8XmlL?v!w6)MH`+I?1&g>yx3^fT9g<9ePgV zK_q=7E6TjUB_m)XsROV60(B3Hn)|g6jW)WCuJzeLcpGIHC!FUjE|DnRa842DGM)7= znXT<>J;MreT@PM@Z-wr9HGpf+N|p;IQwVSMo5sp)rqT5znWPzurmN5qvaWwaZwAy5 znUCr-`2F!-NTQmPT0LYY#U7v1%ed&KBI@ts5Pdw0-XHJ5g{^Bw6AIGkJaDkbJNpy4 zLxMhl3FM&r{&;WQq*ISqHuwrkoz9nsweM{Y?I_V@;?9kqcjHTdoOylv<# z$*1(ZyI`!K!)MRn<-odi_}SHqXGuO?Epf)6JI~^RJWFGSDSK98I2wO8#m^`%ugDbB zXL$PZndt8`x$$jwbg*E{RIrr@+~Ug&O0s#1#m+`NKxydft_@+!`Jf93_2&@vVuk~GAeFvS1U|rW(7go}de?uNNMjd9V z6||SWO;$(iNLCYshwFc>tSm-HewX8sqvrPQ2)f5qEMt^R*&PP_TVza10xe@@>WA@P-bl9^xgi+|&j8$1~S z?~^q=w10k*@jFRIbwCqr4oOfZvw3!TteBaH-`r`~zTqv$jFseK#c+N9W>ZWZh4yk zzc;_Uj~{KZLRUqRm+YQGMMC+Lij-5)yN41ek$=MOOlR-M!nzDI3T9EG)hUV4 zay1wtDrJ^K#%`5lAh_s_0&$9!pmFeR6OLHb;4i<6kek#oMsY_?TngCZ}w zb$_s)CA7c(<1eD^n`+i@b}dA|t~wi795t%Vrcn3R`ZUOPGQjtN)9t9yXwJ5?;iN;M zCphiQLid??CY(*Do{Mao$!C_|c>1+#FgO9jo!xRsROzQp)5NP^EwjV}*oitnJJM>` zrPG#~6k)5CIU;)IWvyCwH%yCgceCShGJhc0RJ^Cf5@dznBIiM9YTHKoLr>&^wMuZ$zom`3cgJl z;xG`vfKOrjNds$VDQ#}kG&mka+ny+NvE9`WfUc0PeQk<5ujpzy2}ENmN_>wb+Fgv!^>Q=3XcP@BkyE_AT!{Wv*+Rj^_G)hkbeU)JIl{r42>u^4OqId{7_{E zuST$txeLBtUQJ3&S1B|0nJ%wnIdx*EAN4#usD~3uApyqltzTZ%2W5fd1ea)pF0Wv7 z<9ScDF^UXdF_hx;;dZ@hCx5E(m5WH6#pw+tbXeu$P)c2w5wKO}480o==B|oDjXYKr zgD83 zQB@zzG3#n=+f(+{(CIlmN`33vVs}wjuGgu1$JFY7goIPa5=}4-0)k3`5t1;(nF+Q`;fRXo*=YxUVL&M6I5Wa`vL$L$cVhXsQd{9)VPA zmWA5w3$hHMf8{GQjWe!Q)LEUHvq_>$=$gT>Bp#@4CbKdMAAcCEl7yLJlYd+4S(R@` zyb~_7kufU5zV4&Xw>?#+I%r2F<%MKW;#x=(Si*||tcvJ1uQU=&ob=-Fwch5WG0zIX zKqvMA2T!zu$sI!gBF==_lV0RZnx-+O&HKDu3c!ps4(!42MuAY}xOLobvgew#4uMdc zKB*WQ&R$QbWPgP@ z6Ll})BTqu`#|XUmVoJJYc>PfIpmR;YAzbx1v$9;lB(o-D%`qp^xvBdUSA51RDhx!9 zHO2beD$*_=uhdj6ibh7GM(HTLBr=N|jO-OI$?T@80DspP${N0r-IwWxq0Rd65~{Zn zE^g3@R{jMot6Ty12*YlSTTPrQ5!_r zoX7^XpDtq%oKZVo$$J$T8FbQ#iCKoT_7NG&!Ti_|A69XMi$DhZO zlatBu$-%3`pG8^+^wdPzGrQ|h%<@poo_|F~PHgwCZw<7T1lt?7R-5z=E>21N)z+%#sDAd*n}d_X@$Tz`$$0m5aG4gyLSnGLe}8n^ zu%Iy;@hUqLJyT40^^=ee4gpgNto2Ud?A;KrP0=zkDihB-t0Jlu;cF?tHY8RH4pULo zVnUno)diRGcH#{w>g2M1NK6bOZp&+@4E6d9WS>MsQQ8^?k%r9+-7yKRF}HeZUmYz( zo9a5(HI>Tft2^@blBm%e-9m%dmWw}l5Sf1(lHre#9Y`ubL(qf5c#3|hp%dvPp6m!8 zH(pT+;y@+iYA8pY1S%--8N_br1{!LJ?CfI6XS5+>0nD=X%Q?9+s^0qbk$UcSIYZDm z_3A3Cmj9E<5225h9#fCQ31sHGU$K5+@6gji$Plw{0IHQ=(z)7#-x9a*_feK3x|)A3 zpu0n~1%qd>=thzFF7E3#dFqy$IXS}Ny#dm#y)?IpmOk3Zn`@79hF*y~RqjWhwFv%R z2v*(Y`AF>N?V_f8DI%n~$t9$tb$2j$)VY`!Gwsm^r6R(Y9TwjuE{{)haee5~yRoAA z$%9aLE%?Ww?1o4DP6at12OAU;GrE6O4~aDd=`i{(ruYE<c9Oj04s-!b z*t=q-D>skbS}%$C@uxmNX`N~eE|vUb7V8^W+L%s6^Tt@SJ;N0dAcHD#78!p70H_(i z+ttieoRRT+O-*g^LOuPfO)W`%`S+R{w&MjVI^Lh~aH)b&%LH4i^7Yv1qaHiei+qol zR$bQ>m>*F8?(2UOTmSN3Pc(s>*Ac)}PFC#R_r=`hLY5DG?Cz%yLPWkx;spyp73gR>us_~Ld1l>vkQFRBP|-rO0yK}5w# z0f<_Yw|M{nd3i4@^E7`IiD1ZdA@9VFAq&u)P=-q^A``C{IMZZ+KUh46ixap&V)0yF z;X6oq^F_BeNb_r4c6-nlot|0|2mB!MoC-+>lu^J8B<1z>L!p#=Raq{dWb<%@V!ZqM z`-6W?UcKFYeX1IUlXC8XQ{Fs~g=7NK(9}fm#fb$*o*-p$_9A~01Iqb!T&~PGT>c^K zPpf)+#{WE5!89gkR%JS!Z6v!VB3VW#rvsc_kuuN3(VTHS{~q7$W#X)q=C>)laARtL zxj|HR`S%9q&h+`CJgc%&aO#U&G*qI81a(=t!v7cUjPLc)BB#PBC2lejf6M5z>Xkg5 z#0Mfq$8SDZ^8$ZT7C@=4N@|ZFagnOsgYz5`ToUz~xjkP~tD z+$>R0O(bphCNqJ6!w%DYS>zec;CQnP>r-j>Sw5*g3+kHORef_UXTZJ7nV@f!I(vR@ z{d^&BI8^0fQizj7_6a#_sKrIX6JUmQ;!H4@yzZXQQip$+`Y16EfB=0sFMzL(3k_Jv z%8^75EaFgojQMwwB0!8X`oC!7aeg2%2FKb|kgHEN0d0e_X^Olz@-~%4WGf z)=}alM?~kBL)EcHb>Cl3R8X=-=H|9xkv>@sQL`e32Y^@ z6maR;BZ(kk^FVcZnwKS}xmdQ!bAx7=oq=Bvsz}Ti+u|>A9$cd#Ocqd_+SNm5!j^^~ z@`VM=n~=h`&kvM)Ue(ERzT8=5!u2KFM^DyzOEspUebhX~lepwPl)0o%4t{tyKA4=m zdwYK{**!U$yn1)?!|oV8LER!Q8L0NY0_&^_jEzXjl&@i6vgb*j;@vVEsb>3#zd041 z}DE@jq&CUDG9BG3!v`=6FL!5JfQO0AT{d)52K zG{mpP(F;|!kMPHWl;R9lI~0xDXVHPK9i4v%aduc%aK9vOedi*+rjry zY;kKBK7EgG4wJ3(I;y-j#nTcq1Beab6h3P>VJJe3vHTKeE(G{A=3ji(#d%%OJR|Y9 zO%OF{&m_NsQ_vt%6O#!GHN)3>4sJH{Aa#(OCcXiyZ?M=1z+PsxPuGNmZ#h+UETj>xuykMzg?2-hYdV>WA?`1;qSi~ph_sxCaKC==Z6Fmq5?N$VQcsQWpETNF5Qw_)Q zn-2qoUgagiALC__f_p&f4Pn&uk+pyD0pX8 zx}t-5e$`i**ksfSMgC%d0349N5uOFecO}xY%t%QY@1gKVj7FkOwJ;csLXG!C+UHqJ z(t#i;{GR7|UgJM6UKV5F$kZhW+5>5mrm{L$fx~}q4dNskp zBpprzBy-^yY0+i64TC7!l9_*}`9++fV)1D*&C?Wvw|a7MGr1~6l7tLArX!ISycCvg zG^keh1HvAr&S2J2GrJ-0CmNw>Ak$7lfwSjBa$d6_kYSv2a?YQd+q@MP)h*<6ay3h2mlBG001G1MC?r!a#8>Q Qd+w8fQZfdvQUCw|0QYZM-T(jq