From 9542ec5708daad3dd43052d326780f7f5c9a987d Mon Sep 17 00:00:00 2001 From: Tal Gitelman Date: Thu, 4 Jan 2018 16:11:30 +0200 Subject: [PATCH] CSAR files are decompressed twice in the same thread fixed Change-Id: Id59cc7250d8431114ab90d14e03049f86a4d49ca Issue-ID: SDC-250 Signed-off-by: Tal Gitelman --- .../sdc/toscaparser/api/ToscaTemplate.java | 4 +-- .../openecomp/sdc/toscaparser/api/prereq/CSAR.java | 9 ++++--- .../sdc/toscaparser/api/JToscaMetadataParse.java | 30 ++++++++++++++++++--- src/test/resources/csars/emptyCsar.csar | Bin 0 -> 22 bytes .../resources/csars/service-ServiceFdnt-csar.csar | Bin 40171 -> 0 bytes ...d.csar.csar => tmpCSAR_Huawei_vSPGW_fixed.csar} | Bin 6 files changed, 33 insertions(+), 10 deletions(-) create mode 100644 src/test/resources/csars/emptyCsar.csar delete mode 100644 src/test/resources/csars/service-ServiceFdnt-csar.csar rename src/test/resources/csars/{tmpCSAR_Huawei_vSPGW_fixed.csar.csar => tmpCSAR_Huawei_vSPGW_fixed.csar} (100%) diff --git a/src/main/java/org/openecomp/sdc/toscaparser/api/ToscaTemplate.java b/src/main/java/org/openecomp/sdc/toscaparser/api/ToscaTemplate.java index 07cce1c..8d7d130 100644 --- a/src/main/java/org/openecomp/sdc/toscaparser/api/ToscaTemplate.java +++ b/src/main/java/org/openecomp/sdc/toscaparser/api/ToscaTemplate.java @@ -172,8 +172,7 @@ public class ToscaTemplate extends Object { //log.info(msg) log.debug("ToscaTemplate - Both path and yaml_dict_tpl arguments were provided. Using path and ignoring yaml_dict_tpl"); } - } - else { + } else { // no input to process... _abort(); } @@ -225,6 +224,7 @@ public class ToscaTemplate extends Object { verifyTemplate(); throw new JToscaException("jtosca aborting", JToscaErrorCodes.PATH_NOT_VALID.getValue()); } + private TopologyTemplate _topologyTemplate() { return new TopologyTemplate( _tplTopologyTemplate(), diff --git a/src/main/java/org/openecomp/sdc/toscaparser/api/prereq/CSAR.java b/src/main/java/org/openecomp/sdc/toscaparser/api/prereq/CSAR.java index b40eded..b64bd9a 100644 --- a/src/main/java/org/openecomp/sdc/toscaparser/api/prereq/CSAR.java +++ b/src/main/java/org/openecomp/sdc/toscaparser/api/prereq/CSAR.java @@ -54,7 +54,6 @@ public class CSAR { metaProperties = new LinkedHashMap<>(); } - @SuppressWarnings("unchecked") public boolean validate() throws JToscaException { isValidated = true; @@ -310,9 +309,11 @@ public class CSAR { if(!isValidated) { validate(); } - tempDir = Files.createTempDirectory("JTP").toString(); - unzip(path,tempDir); - + + if(tempDir == null || tempDir.isEmpty()) { + tempDir = Files.createTempDirectory("JTP").toString(); + unzip(path,tempDir); + } } private void _validateExternalReferences() throws JToscaException { diff --git a/src/test/java/org/openecomp/sdc/toscaparser/api/JToscaMetadataParse.java b/src/test/java/org/openecomp/sdc/toscaparser/api/JToscaMetadataParse.java index 37292e5..8f55fa4 100644 --- a/src/test/java/org/openecomp/sdc/toscaparser/api/JToscaMetadataParse.java +++ b/src/test/java/org/openecomp/sdc/toscaparser/api/JToscaMetadataParse.java @@ -5,12 +5,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.File; -import java.util.Collection; import java.util.LinkedHashMap; import org.junit.Test; import org.openecomp.sdc.toscaparser.api.common.JToscaException; -import org.openecomp.sdc.toscaparser.api.common.JToscaValidationIssue; +import org.openecomp.sdc.toscaparser.api.utils.JToscaErrorCodes; import org.openecomp.sdc.toscaparser.api.utils.ThreadLocalsHolder; public class JToscaMetadataParse { @@ -29,11 +28,34 @@ public class JToscaMetadataParse { @Test public void noWarningsAfterParse() throws JToscaException { - String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/tmpCSAR_Huawei_vSPGW_fixed.csar.csar").getFile(); + String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/tmpCSAR_Huawei_vSPGW_fixed.csar").getFile(); File file = new File(fileStr); ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null); int validationIssuesCaught = ThreadLocalsHolder.getCollector().validationIssuesCaught(); assertTrue(validationIssuesCaught == 0 ); } - + + @Test + public void testEmptyCsar() throws JToscaException { + String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/emptyCsar.csar").getFile(); + File file = new File(fileStr); + try { + ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null); + } catch (JToscaException e) { + assertTrue(e.getCode().equals(JToscaErrorCodes.INVALID_CSAR_FORMAT.getValue())); + } + int validationIssuesCaught = ThreadLocalsHolder.getCollector().validationIssuesCaught(); + assertTrue(validationIssuesCaught == 0 ); + } + + @Test + public void testEmptyPath() throws JToscaException { + String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("").getFile(); + File file = new File(fileStr); + try { + ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null); + }catch (JToscaException e) { + assertTrue(e.getCode().equals(JToscaErrorCodes.PATH_NOT_VALID.getValue())); + } + } } diff --git a/src/test/resources/csars/emptyCsar.csar b/src/test/resources/csars/emptyCsar.csar new file mode 100644 index 0000000000000000000000000000000000000000..15cb0ecb3e219d1701294bfdf0fe3f5cb5d208e7 GIT binary patch literal 22 NcmWIWW@Tf*000g10H*)| literal 0 HcmV?d00001 diff --git a/src/test/resources/csars/service-ServiceFdnt-csar.csar b/src/test/resources/csars/service-ServiceFdnt-csar.csar deleted file mode 100644 index 983dc9b6a6133068f89aaeefbcbd16ecd07a0010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40171 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 qwqHo;Ts+7Wq zu4*%|&duNwHpp?8Nl1?Q_lBA*{Dp8$M=2jmumG)fF3+$)WM-7D@ilQhNOUR6I8Xs9vzyhI4 zD8A*6n!jYK4HV$D$81j@Pz2?0CemKS60NFBPxZ}uLD;2}qiMPrNXH3KQ059?^1dW0 zDbO&EN#@O#%(+Qq=8$Py<)j@_Ewg+2v%5%k-f8W+cc)4&ueOvPOex`nCOrFV%!2iD zYCpIL_DwQrl+m#gdSO8!F$H2 zBZ0(WEWAu57-c84-kbfy(4U9i8JjRTdCHgGFHXA+#(R4<+$+pB=VYIM`ej4wYzV0{OP)Wq>x)eS|(4O-~(@6UdW+aApTlUV&?NW zK_PWs(_gGvlhH3hK^%PH6fbfyg8Y?8W3*W)EMVhdgq)#t$_uGn;k;RF3x@n6Nf52i zjs&yk8)_2RnWstY>I3I3tD9)+OqRTC7sL1dXq+v(0KRdOij+>duuf zDM7L$yzJO%r9`?GicL^o@M{&GdsjKiQbtelx;Q@eHIF}#J>l~_ zYC3r#T7&4?Vpz$Ja%3Z{rDtl$f4A1=sz$gx+U#!`s4Gt)$u#pc69G2h$3ZI254|Qm zQtAdLJ6%H-BLuU$^>%|gWN*Mye?Xv%&l zv4zpY6DDytusUq~=(KLLL9FHxa;gCn5x6+s=F<`NamAwekJ*N%k1IBw z63Th2_=sE%u9T|v`eN_I8)NF2qt!XLT_0BYVsi)4+ubc*L%9RqP}_%|-xfzDb+SZn z>3y?`Fwu|8KlwdoI@ZwB>&Ge3;Vn843{8A13SYz*f!21b4;3bD9oeuRHkvc}opR!6ncwT+{$_eT1OG3~2o2~2R9RqUu&;S=r8wW^m7 z-|~|{_$QiqrGBf)KYQ_R>E&Ga^f6&FHkq`ii18%n5VXy{FW35mF@p6YhL{*3=a$;4 zth_zBCBjm2$)wjx$1{@VlqTdsKU2r`>tY+HS5I1fjSW+iMKd@S{gKwMP!tZ31E)J` zn%ji}Kt0r%y6{}X{??hb$v3at5@leKL;f|aBy&FI!SMy?aZI#M#*-S=gA|r9+ET+Z z>1QwmDlCw3R^uq_I75v&IWu+*SB~NMIK}Q2QPAQPNW$D99{6FS$a5pigR*{Hz6i&L zazoJ=hC1pykx>-2J5lU3?ZFQmypA#4T>iiZK@qAo;mvR`OoXono}aer)?-kgT6!+n zF%4pqk(+6>BwW*}cFF}NXRbCEr~JVz$dsc&1$(NaWHEu5>nf%fc*Ig!#^T!2126&# zvqF91?IpzuE#jjqGxtvxDgS#))TG+~x44mFDlk=9w>Qs3N@ zHcTjmq`FNyJ7iI5{EEinc2M1uSHVAH9KDKY5bPWd_+l13j@MPfwEU$o9-w3Cl0ssI z8^fnl5r@%mlUVW6P&a#Yncz!9mPf}bkZ+2eg*atjz1IFNk<*yW5HMHJinUS#2oG+Z z+jtS%=lUJaezYlP%6xhq@3pbth3QK0p=h|#jUs5LJL3BqgOcsTA7Zyyga)pu~o&^o@%;V=oG8i1GS*c}|((f*53TAb5$29Skk6;fp1ni!ue_?0*F z!xH|+59-E{;78{NWM^2jOXmuETJK3LU#AhJv82}2u{bpENCNL|#tzScR!&<-r$I?^ zPaMsxoeXenOMXfY(?wznLyY!KYCW%mSJSYaCCJNdf|_fqY?}Wr!c^9fuduC^HA7@{ zHC<7S&fGm)BPCiifLhp2KE+2e=^2mzm4DX_+J}K-`+k9st@D8Jw+PRhl1x5Kv8~cu z5&N;svI3h<@Eg6KRY0fQ!7}F{1qPam1i>%Wu^+|w-rYdLSB2wQBas*07uHBJTnQb* z8_LI`+n}234LIt2!q0^2N?T}{t3iS&EWOCianrmPErtjx8e~^JG9}i;MqHmtL58GV zCMVN!Gie8K+NI-Ord<0Z;XstAlG$U9kMmWJw}BsqGPi{>GnWj(Brv(Y)hcuu^xDo~ zu*P{XmBTE2(RZDb-jAi)R{j}b_}+?C1RL04bW3`;9n8OERqe(iauG!#iMAtP^O>lc z8f{j48s=5+daV$7ZG>$y0>BL;P{`l`MSj2&F+eglU7$PEnhc-eEq8BlGY&Y8Bi=oM z4nN!(fbZ_4_2Dq@K`AmfJ^gtxW?DS@NE|uxB;E)=K5)bu}z4n!Mf_<8BEZ;w$^Mwl(N6fM%S!nn*sB}<6Qqy zP2(5`b!}h^mlZAiV5Hk=;i?+eNIdbN`Q5TG6=14~4c0~KBUB@xFDFAx)9OXqcR%_W zT0e?piC??JMc44;aXx#Cz41e49G=Uw=>2`Gy-UM3;cdmi?|ar7cX|93HE$Gp7-2*8@>W|bfsE30wCrQ z(NH#K<>jV<$BQ+~S;Lf95(AYtc-8Uv*Y{R4^Mk!zTcHoyUyR1nqw-COPhY3vA`Of4I)ot++*<|T#_~kW`yx6j?4squ(1U> ziv)uzADgDVzyQ@dYQmqS8ENrp7)Za@D0n(QkgeC0LrHZp|8r%Z`DfI#`s=* zJ>BR~=HFIo_q%%E?>)JROA|@W!oz9I*=G~tJ-A{(?BsQG_Y{64Iw0~(?|P;pQeX`+ zLzV!K-D0a75iIE#H^Z*&Mu>D(T)U{F7=;yeUf$iKK%rURu)jt9S$!5^1+khYQL zW(xeltor1_7zFEDv54Ay3cXVNWSc(sOFV1eH~8grbNA-pCE59B+2*n!(j%Oamx#{J z-}>|o&8OAot&8g>+!6ywf0~bJDXFN+!#Q z0`FHf1|12~)Gp$4z`PxiW_Y@X%O3v{*Cb`g0Blc)9c|cd1ygMCfr_xQ0w9^959obx zhYnt&eKun)@=7^a+VFG@5Xc+vC_~TKbmb`q?`(N<<~Gpa$OU#MJ(zhxlTrJX@nvLQ zv5F3PjYp)SkZyp-GGpEX_2IZy4F~iiLP6SzGbbr!2_l=FezO!^xQcb;9d#P4DYCfO+o13?8n{3Y-(qP zb_E{pCl^nhr~9s@B0bShH9K68&xljpdy@ODWD5{WeuX2m%}lxIXXA6l>Z$x~Sxy)W z2#rLSh06Hbnhn0NjaEKf0SZ32=7%WHn`62jh|+<3Qye9*d$)bt^T0H}lbviLDMM1% ze@%;F-~Jr+oT#nC>gGTgyx~}Vc}`%*5|=(sw^#Y8w3+?OWN9IRN{K{4LB>7TpGB*f z@zpNC6q@8rU}`eBX^EB*7F9!1x4d4~Oog~vYa9T+bUsvKPfCqFRhtiw>64NQq{Z;U zTl^upR=$HT+NnoWTAvycv=#q5r5rVeu(Vs%JnB>6iGGF3VQN!p9esonHB;UF>?!3! z#OLAb_3#KQBNq=jB;@pZg8Tl9D_ainFZ zLtg){cLV~ z^71BsVJT=CZ-@b`0Vg<^m-IqMLpoJ4RAGmfMTLOVcR}r29MP?%V@i?&j`WX+YN!z| zUzDX8EzT9@11c_v)$m6W;6e*CJA+QgbF6Bp%|E7;l)FM(vl+2diGtKsH}0B{H+0e0 z(gknMHcD7(Xz5_Se!^6paHTTQEE$QrZH^qxeBfaN3yQnW9ts8`;4yTQ2?3r^QZqr< zNkG%1B8Jcy+p8V>@MtBM7&sT}ZogR%%balj@F22j+p~7TQ^H2ePd@ucJ&aez-Bg~k zd__V}&!S-L?l??gw7~@@9GsRq3>wDYLe7#rnLX|Wm;KnymNILTm(^Pb>S#p(G`QzE z{>Z&N_cuTw`rKQ99sd5eG4$p$QpwqphKuuRp0C}iqENlXbW@$LfDP_hvQEYwQss}Y1+YI^Y>4t?BKXG) z&+HU@l|!)3t2~u;7}gTE2yB-~x(0Pho{<@dz&tlIHh;*=?Fy`YXmOT1!EgZ^TXF@s z9j0}du@Jm7HR7#9BpRrdq?{I75g>97@kZ3;5n*`$#n6boO0-(kU|h|w26Q+O@|vIL z*qS|uT@IxpmYvm&ht8`w%P$TeALH&I2hp8L01!A6I4r=XRqnbNR6(6k8DofE0c;{< zM>m0ugRrS-ys!byndI_|Hd01Bmd?(aA8-K@xB0VA5)0e@m`U{Rhfn6H5-(Dm!TkHh z{V2BIv_|EdF&^JYoo@f2^BtGA#NV_)5m&Y~^wp2b*TG)l5EZx+B4#Eu<&zi_rSy^x!E&kzY9{Vp5reh6l2WVpb9Ja$= z9D)Qtqs=&AulqUy4ZE1BjyeUj!Z#SXZ`IL8TJZ{@^v$YH7M;&1R0akaO9kgad(~)H zJemv#VO*k+u$oaE+14qD!}*aQ(K`{9&J zB6x+3Lt(QuzaNFABqTUbA>A%*QZj_5iy|X%6mHt4AD#;{1E+IB5E$f9Myh2x4;)aX{x^R$RgSuC`X`mEY^C_qk3x?(0QW0?xP&Yp;EtBlusMzA!?)wH%s4)9RQWsVBv~C%EK1 zy+haeKL0eS1$+9N1UnmhSa3~07nwf!$i{g}w4NusOS(*W120@kn#X4AvgJQV!uU(~ zhA?`Noyp7dOo^L3VjY!=Vj&4UZ@PVhvT?s<+OqMhrtAG>Y~)Xhj1FkO`rS zHiD*(EM7)XfQV;+S*3y<@X{E`1Vcu(-~jb_4EbSiH_TrtTv~eYbnpc*@yA{Jb-x2f z`4JrKL(|-UE$X%z1BgBiv0v+IEK?sc3>#mSNRep6=tP+jlsBhQ`?C5djTjM_bLTml#rj!m z_062lT^xu@gi!zH4U~|FAj$ouktp}*-gqCky#;!`p2FJ4UPCNCL9a0qg@;ar+59nv zQ4-)&9}xXnMY{b2Uf-T7H5gU1P0zwKF5~y0mf-))Cefxl3&=cS@Lzs#LID#S^}rU& zlFn7Uk|P!9Ziv*y8}tmEb=$Thaz=nz5ejug9KiLO!12FH)r~soQjh6lh|q^&q6ZtMuYP0mnOF$ z@=V%;p)DMMhOKx|7NSzhiekx#g^rp~d!&L|DUNcnA~+=(ne4HO)jhb_eu%@F2ZMID zHm5DAk+vMy6!OlI^VVcn;KJMH%o8rFdBqNG~#~5}~6F_C-%5BX$o(5ouOYuTq+0~d|H8jaKe@MmAqCCZy+q73iv=hi2>uu7QbkTc_ zAOBB(vu_y_!9(M83!ssihKC4fp>pgo!dC!tqVI~vklR#1=ldJr33xiYKYR@7p@Dx0 zGxjcoRv@2Vt#6|V;$^foa;$vsu3%iMyxZBG+cb9q>5_C&=j}j2h^qkwhCkN9mPM8z zR;1tW0Xn_+-baX}KeAHu4nmEJ0gFK6C1&~o)dYX&5AbtMCf?hNbC8mVc#yr91=7N& zp)-_{4VB^bquf{^b6n=aFO29@$(7ayClp*?Z~8r9FZd(E!ZBbF**k%ex(`V)07{KC zq03IdvX580L^v_@m+a@ynW%mOH&cfuNzjsHqF@mIJEruzJ7$*bolMMt<8h)EJVW=W z$l{KtKsnEJ^c@oQz!D4nA^n zn^HoT{qy=mjOvi=t`(W;v)kkI!&em~?v;QIlerloc+u(;1js5pp4b4SW$WjmK~T4k zG#57z$cV?>C}EWL6biA*B~!GyE)S37XaHU=*lKX=uGKp#1^p37UsJaNS;Q}TdFzB7KX{urU;jKmTdg(2o)sP$1_ zE}tw>Nk^Tmc-EMgwkgW)&BL<^B9i&gsFHQ)w~`AMZ1IM?B!}F6cvZXctxdt29=?3}2v8-X2W3rK0 zOHmPUkbIP7rNqlck-ul8YYowXZxn^Ami{bGb1AZ?&r_Br+lT#<9xzGlCF+mI>j2K- zKq3sNLo#SMrYu)93(_y(T^{eK5z6Q`5Q%wDi3ihG{dt%`a=f;}9fe&Ye%P`QQ^D^C z^n)7|IuHQPEs9McS|b-m)VxZT8OuaTe5jVdP5}^Kgb9T)8P7P{Q-B0g2sekTBG<*I z6cPE7%=3Zl^0-a*LZ-hnvMG+uojxW2UJ?~YSz`Z;-kh5(#vfY05}3j5 zBNtDS5P18s0AY(+bST9*QF^Z2S3#>RhwWhtTZyXWh$vUQ7n6E|xomDJPz%C-0{ie| zPPO4tnUUh8E1-HxRuPG!gin$12mMhmN%{=($OUcex_>ZDCq&y+Lr>zZ!wNVS4&OIivL+qjDIqy_!mC83SBvD0@uC$SP7iSd^{A=Nd~vAN!tB_Vx1t$VCF-l8(dWoD z3hb0J8+BLEdetJVZh<0>#vB0$+xlTaV6Tfe&TX1ND*u<%g>OHpl@`jMsS!z%oZn01 zsKDYWrud2)G~CUXz~+$7JPO52;*{GYF41FLV}WcVhkB~hF-hyEJ;koF4~#?oDEQOr z?Z=sckaEtjb0UA(jPe4>?}yT^ZY#xCxY;vhkR-Dzy)f&Q_GBr@2KZ}{P-Y1s=XHu_ zn~0wL-P2cnIg^C<=C(+dp^;b`$wsUjg2q99=<&Vt$N zQm$oKpGXHBX$lMIr#(89^@&)$S$8udp%Efu*_Oo1T*)#QEn=0CBoQI9g3<*HsVeH{z#vbvB$?o1ao&_J0=g`ne$gptl~MELQ&a?!+M$SgTJYa=@}^j zy{RK%NHR*|NgA<&uzKt`cFC&pr>B-fEkYq`g!2z=liTF+zMi%SF3-7!is$dXk1P^5 z6C9XJ?2%yMKw;YzN~o<6SKkZ`{ov$zdwT7tLP86O6Vivq*P5e@0Us;hTHG|n2@!fU z`*HP&o0(Lo>wYhFBgG(Zvf5E0QWKt)hQ&_s3qDjRmc6yk^hti#`- zznGdA`wzIPPMvG-eb)M{KsGRc)PoDG>p4rdu4Vk+iliQO{c>Q{2&)&W*(YjQfF6C~ zIC4@jFYY9Qa|T7UY8lOW*D;sGjoU_rb)khn8jxKu_RFXqwiH%+{V_w#OMvG-UE9$m zbFi=X=8ytz$b-$0TTF>9k(*qR%Nrxj{xdEf#w7$9fzlyaI}B(; zI>Vdqd=f7*N^xTyL5Ra`22E)3twF#%X@(xCm6`qVE<0xAWJ6f#%W3vNb&6XTLCcm} zTtggF#R8=QaV+CvVmTQwvpyll=|z;+k`>2@&y;uLtT{I!uP=v>pPXmT(oNe{Am^!> zKiMFt#WCJ4Z*o+zx->MWwpiT7E*rYn3yPdy&p?A*?cw^YLC(>U02=l<%expZGe*Y=r)IL+H+3XHl0|CI`M-y3YtJ<(e#VI#+VeI~SAgXC2=(CoWiQ$#> z)Oud2EI9U|>LDNaCy}?@5|EdGtRpXXJ2j+Zi<1+sEO5w0ASJQah`&*J9!rCAvYN5D zg7#Lq_y;|&YW*^ZrHN?!p{Gva>*`;J;d>3M7k3SOI{vEBBOVaNsF_+&Aa^k!8trwj zDN2cgMoJ+($F~(0p?a~q(^ZA`e2j#Z>$*q^jF%>w zc=9?2Ayrvsqg(jL?7*?76s%t!nyIs+%E(j*8AUFeABFqWu1OI_O;DzA=6mGl3}PW^ zbHz*_MvBVmHm59;-oHBhD}VROH>WCo>z0Kb}C-MM{o5c)4Ez;wmjN36m3C_igGx;1*#gC9zn2_uj_2{GN~BUL~GYb zhN#0tQ;9Fx`zi~lN$W_i&YxC+Av2kD%!+3Gnp-5di`HK1lKEyOwEJfNFq^!_x?Ch_FUN1p=B2&EpA2dmaAqpf=i*>~q8!mJm3{S#I2j zip>|E2A5dvj+NrT-fpljm>IuIZ3?$Mx{3FVYI;$u#PNzvzH|GiChmX}n)P6tO|68M zuQWLUGbuxb*H^ymVu(m8QC}aMf%brwn9rCv8zlw$O`W_cZM^>v15-$j>1bn6*KISggpTOJ(m%HFHB9iV#Y+5xgI_lam5VZNge1_zNNn8*p5)Q? z5ZzZ$TdbY=iHK*>cg^fx>BqP+McZuTnS#nHml*}Mi}bCm#4AT*i`E~-8%pS=aF(UQ zU6}LweaUI&aLu^TTDAv)TG)eMx4D@8F@HxL>r1O(@^E`Dv5IHiw$#&9)Et~}q9HNp zlDTVwl~4@^%NDv6v;bLS&5_ymC!Ve4W_80V@5Q1d!TPJ@hHPjV)O4Wuf`D|<33h@s zJjl3+SZ{OqnW5aR^^S1gP5hhfn!llGo}SI<=@vbThfdrwU-<)Y(XP04+^PP>NE=(^ z=BGk;UAH$eQ&+1p&^n%3-n(r^!E?P;I>^QWt0sjG7{dLB{=)X1kSfJ|9c1vBEs)cU$N$A%_{HkXjIkMYWB!`i&@+!B2j>T(R9^FNWv5Q7h_y&V_CJ^F}%2}lB^7>K>uS%`vh^dy{q z{L=05gDNu~%G(E?EQ;zL0pcc>HVb&Rerk4MlKhLF>whygwz#0S;HSkCDa<$vqH%wG z<9YOqOhvNq6AeiXBb#ZS@D@mp_JR$6Zg^Q82-edU5Yyt(GllHGYut-|#OHw}i8tib zQW~#3YP6;T{022(WPlh%5=_Xj#Mg|OtAEIM1a6;Zm5F;Z7vmPe6zc=UlY&X;oZ@Kxpiom;z zn`9N5s&{}cTlebvO;TShGqclTb&%U_<>U7PQS*T{LM8~@1JO3LW%)I)KZB`ASLOTk z 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