From eeac4e62f65f623b5f82cb2d2254488f0e5e188a Mon Sep 17 00:00:00 2001 From: Karishma Chadha Date: Mon, 10 Dec 2018 18:17:24 -0500 Subject: [PATCH 1/2] Fix issue where sb2s originally from sb1s sometimes have baseLayerMd5 formatted incorrectly. --- src/serialization/sb2.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/serialization/sb2.js b/src/serialization/sb2.js index fc1e0afde..945c183d1 100644 --- a/src/serialization/sb2.js +++ b/src/serialization/sb2.js @@ -442,7 +442,15 @@ const parseScratchObject = function (object, runtime, extensions, topLevel, zip) const md5ext = costumeSource.baseLayerMD5; const idParts = StringUtil.splitFirst(md5ext, '.'); const md5 = idParts[0]; - const ext = idParts[1].toLowerCase(); + let ext; + if (idParts.length === 2 && idParts[1]) { + ext = idParts[1]; + } else { + // Default to 'png' if baseLayerMD5 is not formatted correctly + ext = 'png'; + // Fix costume md5 for later + costume.md5 = `${costume.md5}.${ext}`; + } costume.dataFormat = ext; costume.assetId = md5; if (costumeSource.textLayerMD5) { From 27be6f1677f46d10f1e7d274014fa0f4ffd0b4a1 Mon Sep 17 00:00:00 2001 From: Karishma Chadha Date: Mon, 10 Dec 2018 18:24:28 -0500 Subject: [PATCH 2/2] Add integration test --- .../sb2-from-sb1-missing-backdrop-image.sb2 | Bin 0 -> 30439 bytes ...2-originally-sb1-without-backdrop-image.js | 41 ++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 test/fixtures/sb2-from-sb1-missing-backdrop-image.sb2 create mode 100644 test/integration/load-sb2-originally-sb1-without-backdrop-image.js diff --git a/test/fixtures/sb2-from-sb1-missing-backdrop-image.sb2 b/test/fixtures/sb2-from-sb1-missing-backdrop-image.sb2 new file mode 100644 index 0000000000000000000000000000000000000000..6c36c68b2ed0dc51e6e2852c0f7c830108006b04 GIT binary patch literal 30439 zcmd?PRd8KFuP$h2wquBynH@W3rkEiyGjj|vGcz+YGcz-@V`gUdHqLhbb8pR^x-&Ho zGf$^#t%ud!>Xy{f*IH7`OMyecfq;O(fCR_*$OyPPq>)2_fRqB85P+?}?QG1A3>+BD z?QN_(eregPvSWBSdIe+`VVY`sO2*d~je|CpUvtq3C+XpY(#F&-NaPAAOxBWoc#x5c zI-*?~t?Lp6Pj$4n9^Pbf{Coh27aKW$^;dynXK}aak-d*NqI-BrQVAP)^7vu# z^E8&?X=lyX8N?j5C7kYu{$wtljNvFm)OT9v9@fNQe|^d68ze_1*y7b6m6pT?a0k@CG8epw#h|J^TJSZ|_$@7OW~6#}+M1N5Rq+#?hPB^`~f2Q)Ah2NxvBzY|?l^ zmkv8WU`Rok$Kc09f~lgSso(@nW4@$|F=v=36b3$+ESHpW6qp}yni_Qz(=KC|RN=D* zYQw!9Op=)z&s$i5m-!5elI~@(_u(UIEaTlJQ({v^zz@eti{Xhxn!>?GhtJ~88m(IP zzS(D1R~Z_vm)dx#uU^(bI~GKrl$$qgDJI5T8fyINePEed^xlxLucorzY4|NqnI`M$ z@Mm#!N}OkG=(&(A;5DkQiq_BzWHbM>;~GU7e&Jl!jN!cu}K;X%TMZm-Nq;|U6~$0 zrH>I;pPKLAO)}7yg+Rm$iucN2XaeOE3d74wP#mlXAvc5j9s)@z|97?SPIa94N2r&e zg+o`BU>IJGXw=LoiO~4~Qzp@&Egm^f07j8~a6CHB$5MS^1dqA5^{su|HsIkIXNR_6 z#@}b@TGtR0r63XT*Z8?Vuxh+R4hgp?j>g>q2{8@v45t_SH=-6>l2M`H=2YTcKkuMe z`%g`_fZFD+>L6i_W&3$>6~J>Q*CIdSyNP|lUUA#=qZTK!$<-V3#5+RK3-7YzIwBVK z4mrFss=ULE@Me1Ud>zb0V^tm0sCoH85uT7uqbH5t_XJuER<$A%eUo`h*GIlOwOX9p zi_oZBbSJvOF+q7f1;M8Eu!^Z)kz}=m;aAQp$ZoEoSr*Oo+3ASrN`xp*5PkQIj&_3CT)}26T~4(V!Lb+gQ}2&IGvXW zH(PxR-eniMzElU`8%~N@R{58#nq^(1rM_uSGiZ=i=hwB&rK_IknyNLwdgK|K8)>g# z>*S7PelM;(PFJzG>3nqyz9EnBTe|G}F!BJf7msS-xKrM0+*7DpHI(j8a7QMZN|L71 zonN+Y!NE=MJN!N}fnP6G?D!51ep|`Y?)ro)|6gzd@()g`XV7*pfpGHqLIUB0iQ%`k zNr=3xI3nEFPtZY>ln_w_0Ri0tzNRoxz?LWuDk2aN2oFgSL1pKa^95!^AQ1IcUXlg~7ni<+pKE$o#)YM37`)-_<`vd^M`T1OXxN{4Ye*a!FQRNa$*K+_)RuIAiCI zkwF1FDk2kNlMukqfRLP580qiPbC|d3eBCxB8w+R6OL2cL$qIq$2^2x;f#Cwv3jCW_2*EkHi?K zmg%Q7(_XV?jLonw#&=Ug%wg1&6H&Q^uu}w=S|mP|MsKFn!sWUps1%3(8(8yCD%R`{E;q4}aVGX94 z^D^K9&sTNGE=RTK*jEmI&4OH}3q+49-8orHa3e1Jh+BP-3@>=v`p~%8emzhWnAnW= z@FF$DmxQ#lVqIS zi5#JPu_NaFPKba}tS$J9atx;}^2S;pX6%mXZfj<3YXXq*dqP&9mYeCKQ9(0d3cFl6 zBT)*Ll%JbpzF8%4p0B%Ja?yVkMiSes+~B(EA&nf^-8) z8z$feOs+mY715DP0yQhqQ##1u(RzM_tTCL5<)u}70);n#dD9ug*~-YQbG^~I28T_+qyc=!PuL_n{!AynF^ zDo$i$NKo>i&0;bwp3*UC=ux`bou~5zw8cPhuyl~C3wPq~z_L&z&Z{Ni+EOBmLPSux z!6$2>K9DemDa4nIzEjJN3s^tu%4YP+Q2F&4EDTeb0DVjv&AYr$f%#SEwgSvMJ;B9JR5dr!+#3mR-f=@p;r7m5NxwKl@%n%IVNIUe{4v|S^R&4oX zo)_#^ri<*`1ZO>FJggb~UXXOTf%`Y3g-AC&t%766`Amgm37DTUB;OoG8#G}N1qAg= zR5s=f2hY&BF9c7P|7ay_ovJYUy{T=?1eNFZHF=z`xd3Gl?@$+tHv(rRMxlJsF?kGw zJTFI%th36a3$maBe=szfxMU6K^-L%$>LTvqrGsVK4^P6g*mjNe<0xWbrqjy&jf9zb&5c>hVy^#Wm5C+Oy0;4 zbFr|_DureT@-L2?%>P47_`o+D07AN+=eeji(!=4f_BFoW@PTS<2nwiLFz~!rnvckS_RFl?Gu&;!uEIO|=w@#Dbnci0j>?O~qZv!hKcj^vmDf&GF=!s4GW(^k z4gC>?eTf=BK!t3!pYwZuobS_FFfm=lsF}xABU%RgRnhysAMSH6vRz?HiR`&RXz|J2u5_-REjU-R;RP<{2dbb^6r$ zlCMvDN=MbX(z7K>X?f3^;Luy{sklrY>UAgJXmwomcH2KHHyWNe6M#r?6a!`4T6&s4 zm4A`PoG5o|do}rZ78uZe(QFUHg#92_p@SSIHkCZ%upo54i45;cuLT#TIH!&^V3U<# zw|FL&(BrP&@?5Y6vt4wt(ZiII%mz=0nL5q-%o(B(sh*@Djv6)%N>TfUbByWcHIWk z+*;Jo6PEB85IMPAX~$uY$72G)zI^Or3@cqzmZfnjdtvz#91O&laa~EZ#Vu@nfcE@! z!~F&K%8rgFAiY=mvJ<|xQdZ{M#HjDpWe;@Om%>vj=@lA5zK9Xag9}Nxaa{y2)IW)Z6Yy@lo{l{insV$D>t-{_7s8!`>nb)HGYNN5MjkrzaNZQdy;q%g+!Wxytt2aYf#5>NJ5;(^n zxs(9C?u#a0S{5$-+ydv2+MNmGV@?Nse27zsUa|=o+C)QLi!5~!jH~nesdkMFTe0bl z*c&Y^x9juhCpgN51MBpz4zs!Ii=|BjDeBbci|e%x(9W5X-g#LPr}D%)v|rc!yWE)a z8W=aAE7-N7=4gXpx-@xgmghD)hr>IOYMgivpdtzKv*$e%+RD$4hJ{PXyzxZi<^ z1V+PT!Iv^J+j#kfj7e!#dI65$8_nIWNh<5_2fXx_hYn+als##G6SehIkOTeO_^$sY zcxP&Qr^C#b^t#MXl!7{iGIAerF0l=Bk{<=c6a^d=4OnoQdQN)bFw!P{+q51gq!Y*$ z+8me0DVQ%ayfid3(~&&OxY46_$40DtVI2l1*JmYYK{HZMrcJGX$;oVo1HvP#DhHK8 z2Lh8WD zg3H!)+VoHztfQx=w`0^|mDR}I)nv%-9ZS-CX*{#U_Fr%PQ#KBM>&z4NANxf08~Kx$ zM6W@?ujBQ0uZZ-Ot++!e?oU>2@aRu%ZHE1g4!44}Mypk6L#EF|f*U(|ymxA1A|WMx zu1GE_zQq;di0`;l68Uf{tLW!mYLK_4;d&d91sZ8J3?`wjrhN3z{Ye z1O#YmfYNEVt412jW^nxp$p=si+-14njBH9hue1Zygb6t9_B@1LJ2rH7N?wvbjgHy- zY&i9s#o{F*pdVdsnDKBTjne4XuSC0Qthm+tOE=m;L|n0%{P-|Tdd0onD1L@45N^k_ zXn;+bN>!rWR3`7^4*7dGFra`smDpv~4h;>>WZeVO>?OUuJO;^Aj@OP-%4NpeZTA9s z>s6Js^^OM$X@2`SE}abKxoXuUDfwpNL+L;N5`s?YxRay9>IcMwTyMNLualA@sKx=! zLMC(+v+;_iyR|0hS>fgyiCNO)guB>Ox{wW9Mig$NElKaB>Z}j7a zn@t+MY|tDmb&iaT44!D9_nm+%F)t@xWZB6dz|Fp*^>VG~qOh&)wcFF2+dp#l=qNt# z@$T0FMo-j*ks{fQ*xKyuty1ZwRRLF`j_Az6NPOHGz!V=X_wzudR-0jmva<5oP*!Pc z8ql6?zcFzdxGa?ZtTl`H`i-VE?(|getD(6$&5|PSCo##uwu;C|)tvv5yFx z@E!!rZiHQ<$#l*#1VCKYtBB{awpUW*?5rZScoe}z!#tD(V?O05pBb_;vNB^DyOnwX z-*TJtu%|JTSd}3YCo?lE>#a-p*ZpF?h-dMz1LI^gnOg!J8X#4XX`Xy3R%uZHJQiOR z-#VgmaTrecOd0l>0^sH-&#rgpY`Kp6PfaMC>U-!-7B-ONbgAlc{!ejc@kXZS^Rf7K zkq(O=vn!Aa9cQ)sZF#lTlhI0WFRf8w`GWeB=p^J0lim-tc%zsA zi&2~Ibm8>gGYiNfDbAVTuF*i~7Z!k9k1r%M_4Hv@Ut$%hSoqdT2uMEVEN;X%M-1gC zus-6mC{3w4d-2o*W)SRYSt6F1_r1VN5v&2F|l=2xqg{H1zq#g-zG`&GlxEv2H`hS zGnAW~8;n%gKrUfyXeg1AiIk??wr;)ebVGdPG`Jw>O48wRHzTeXiN~q<1J^oo{x4Ni z8U`XF;^-w=->-)RSB4WBV0^!$uY2=%90gt6c%1br^O$wFA8;CvQbK>{FlN*DgF$|RuBTyyY%CO+(-D7I9(W(kO@K9Bt z;@*f12E%dC!aOlu7t#HG{_L5B@j11xZ~*am`QeK?6p62N_ro9ze}bvdwa~SyxH$X0 z`mF{ChNP7Ui6-rLmzz550g;tBg5#pGwUon;JAb;lpk{H8WA0L8W6@%&@Q{?JlrIgT zubKXlP;jdk%4U?-`W>>ZY3pV`0HF1w^mPynWjvm7ij5zz{nWa4oN_{B_eY-Z11pr3FMQjDI&b~N#kg`gCt zQzHf=M9UVS&z>ng1(|*rKJjDOBug?S30hdKJ{A6cNji-^!h$rAPgPPfs@iL z{owPIE$BXs3Yer;dKjzrfo;{*@-p5xI zx(z6WoyI@a;1#@1N%80u!cN02c0Opn;ey~F8lx@tdMPEdil&k;59dnmPy~MAh(Kkj z%-ZX1>y|_77HSdNB;LFN#G^}yu*bX2zk9;8wsijG79RyTS)=7RRvS-fC@n)9IKV^Q z3dDo<^!dD16ZZ%FP=(jiSActH^ByoU>}B;j3a-k5v{EA}=tJULX_lNOVbCu3Khw7f;aS=Z)VWvb-)TQ#t`YwL% zUr1JL(qkNHG1yf;RSJHdYlv}!bU%xVVD6HPcF>1+eJE$oZ2DZVXn_acy?IzLnX4htCenMX zIkYd@bKNF_0BvxR>5cI?&a^7Na(J(}6g&+MQm4&qLN4`W$;*@rMF0SDE#?A&t7P_r0a)lQNxsnd!ea(gYNTZw=` z!ZIg-BmpkP-vZCzQVWqg=CbKG18BKr?;fz(pdx&LMs|JZ{aE8nDkFZ#ey#F@Mm}TT zBaM=dc0;w=yogcWcj${V!CfpW4tT~*Mh;(;N9xLYLCcgL;`4cK*F&8@q^)w^$3jHZ zr952>(YUT^0v_~eqq>j4X!93{JpfYu8LIk@*+Y+<_r$rVU;Kv!UJ@dvwiY-)Mi&zA zD8D<%U@d_sw)%7sAspuyK(~)y?QwgHam8z1s=BHNB|pE;Xh@!J1Y{g??h+nX$Vy`-4iZHuw>4sgtxk(mcFK3i^v+$6iFgnzl2hXx!WN$LYzMDfI6R z{72Ba3e|0UBER(^po*#dMj-PGWxv=(qXw1tUu1M^9`lXU=GN02BGsu`naOfAfIN|0 zk}$291Z{CiC3^46r9ssxZFst^iwVCQy|s!4;>AP7t9h%5H|@5%){9AhkygcARzRcEs(zoASS>dQEOC}bDEJPzVaU4#3xq_!#N@GQ6^ypt#0PeNI&LEF#V*l zABDV|iyi zYLT|hJ^~!B;94Cl+v6|lqi@-VX~K+3VQ&e_jC=M*M8XTCeM^faCnFP3oFM00^J;%C zM1$A&fccx&_#RW5d&6C$VH9<=D7%(zC0IIca_vp3J>kbK)MOd`YvDAS;V*V4mr;qm zC$wW;-U@N}Ccl@G`x+zxUVL4Pvws4Kow;3x&NB$hYy*DpNBwMhvtrG^9Q{~k;{|8c z);yz&mdU8 znH|X5KI(-+_7LA56f3%xRmMKjB=NNX=y-nu=N8oD)5EDSFKw4m%t|H;NqGZ5GHX|lWVe$s{ubYB;PvpYB%)Lv&AUoO@jTme#rf7 zle+oa$}TWJ4->xmzQ6`{{Yw6T#nqqDU(KOeja{c@yCn(J@!5hb6e4y1$v>j-&JX26k-+7Z2nkf4E8xz)xF`a50G9>IA#7hSQ=Ya5DLZRyw;?;Dn?H6v z8egj%tW6)vpg*I>kkCC;beQi+`Yh(sCJ3t9iB|P}#tu%!-K1C3qCWhqNl3x4Lu_ek z`mm;#Z{{ZJP=>>6&a~KJA%Qs_nB@%_dvd+OoV@|}VjQh$`DEamF@u~w4lUwlvqyy| z7lf;m9#t8pzTxCh%ecGGEwAMqq`+Jo&Jl}ehf6F4qu2HXZ9Re-iG9vx{9cuGr zFj%u}9jyc;+k`}8iwzU*)^6O9fHQg?3jD?a=H4+UxPY;##ygwtLk~mpA~mKyk`ISq zyp)T6zPPQ?d@YIcCFgf|%iB|V{yxfXL^No#?g=54$aY!8bsT02Hz0 zhQ-~hneDHRBT9khnJ%a-cBc=fyaS~K=`h4)79^(=%CNf?pq6GFb2);C$IChSZ&{f) zLL10fU7qH&ov2OV$@>2Nqo1o!sNI6EoajA8Zxx9L-WiBu*g4WX2Ft_O+OA;Q#Um*AQn1#>f$paWLBlW)xMLEjfoMPEa^50|&W-WG=KWI2Ev<$)7X- z1{*qPISfLN9RYb*XTgW2(?kD+TdRh6Qe#BYIA zc&1f{Ui||NI2eD();2M}4KzA?2BO#H;0lWE_-*vRnPtP{iEs~%9U4@y4bMjUyhI2UvrFg4Ag>XdepbV zbr>CD6hZ5X`OJB{3C4)mD^6uNq0f=g4_{U!*|e?=V z{DtcQ=KR17fW<*rT_X|x%Sn7>|D%ML&lJ$Lx2CAx?^bUG{u8;I-vth@E=0b|M1mc; znWCrbbN_ZZqlawQ$d12ZpV{vZTCw=-sm74N6zD4<>nCH0K1gER;ZGtlp_!bahM(n? z|GDT4D?)hF>+!Oy5tPB5DtH|4H~M+|D2sG<3g?I!w)hFuNUCXDPdX+M8ZA4;`7b!HPbS2aG# zFtLX7XYksvsnf6;tHP25ThVwD#R1CovhP2e$MIY>za{d|04(cm$bcNXk9?6{v;rPk zKobRac#b;hwHdG+{`r2E#997tO5zUxvm`##CU6V_g8%qG zO5$$7l6VZiN1I9OA?&T8w~r5~*ajo2yvTGgOlvG-=Qmi}2jJHcsWN9%r@~AoKq8a`>~^ z`M73ZcH&ezSym~W-eoAx2LXT_rj4FrI`bf1PJaC5+kQa3E9FF z*5|&L%j4d#?9IjKn0tOd-$9Fu8b*tg;j59yNNewhq>LDW)=nwHbj_C;X9sNmdeXXt z(q1R~D(%@Wb@r`=l4zq}YD1tC9$>ad{EKSNTlomgA$pS?aHV78jN%22YGT6ceU<81BhU3$Y-?4vucS@GzyB`8@v3KA zzbi=8QZIl75hj3vnV*3c^;G(OAC^R%qz>gBFB5z%pvH4`OvvSy?3Q3i*KZ{2x9C_HQ%57f#uyg;O)A~-d z?a>NWyNMx&8tps$l!meAI3tE!@+-dy_Uz7Bx;G*gN#DNw_E~=$gr7N^McqK9jB)y| za<*1js2_WSDA8Wql@oz>lFy-1M;lMiq4c|JTr={=3Q^t_oNdvFO&fdN{NB{-2BXJC z%HS5M^9FMH*%FHoPR^mcOML;o+EFa#(~*bn@1F)du~q9t>Q_9+76*x(p87XI?~s=3 z5uGD%sVX-fvpEJfc)c?w-psY6o1eVAJjj7_A(qLadj2m4{%AYDIFglK9An z9z1Z)*U#e(m>xG_VQ!s!=51QV*?w%QQEJC=I0SP`zpoGFM2n8;GJV?$+T=b1@o8_$ zN%u|nKGB0oiR{np#tijab3QcSg}Bak)nX;N-P`vbZ)p;EJKsAU+xoD$@ITByL>d!( zC|-K)rX6Zt{D6SdY=Kj+|I&3e>}jPTegxXSYc58mqzH!}Fq754n9f<5CjDN)y**`t z=~LkO8%A@;K_odI1m1(73&@s<^rKk%HG{JLOX*Ilw3o|0E5DsIRlmG&c`;Mz=h*seoSh*S z*Efc{wjWx$qomNn7%w|IJ&%Z^;BnSGX~b3!v`w!31~*w1AmKRJu4si@Gvm88-Eq7d;RH!I-nWGHBl5#s9Wm~yAM;@;hz=}r%B%WICS$(r}(1B zQpAY!)`i6diR=r7M7{2`u)lKevKzubZ8`ZaCBJrL>||Xbb?N!D2$7Faoxi{IGa6wu zqFLT=fi@dHQdIxtqI`=M^8RQnD#R=WqV?Z=SY7T# zO>ct^U8~QbwZFqKY%~(ScL5@0U3z@*Q))b9B*I7Wt$za$l`>)0@FU5kjvEXb@gqnZP;X@8dy!_qk!(6bHCOl!QStKK>h@$e{KXCxb z+|PN<5eD?nFX7I>d6Y(MW#k}mS(vRigrHwl*)+?A#>IkAmBB=?VS z;VLV@b>2o@1#a5OiIRi5c9XDpnvm`s&XS+}g3bG|bIii0$Ht=y!Ujy^4!7n%3X?#6 z?J2!khsAXyhsU#Br104O5X}qm-6I)>v{sQpOutgRo!dZYFM~iX?}!!zW2j!Ei;Y{I z*kqhRJ_Sr_gr!HPmV5)jG3Vt`WfZSm$(>#yPs<@$-)*8sK~jMCw;LUR{bin0oIXP; zNF;isvH8Tx_Gir6XIBafvLMs56YdVPke^v-4ll>f==ltOTfC3j^d)G|S2RAp7*nDS zKBgE+-229MK+p<5*-;YpDZG**&3D}UK-ll8EyH~pl&(?X)>a7DEH{Dck%&>|YJ`%w z3kx6@owb;&BSf&62Y*Ul2s-vnU%ZWteSHCGN=p#|S=EhBI3`YD)4b2qs!*w8BZOYW zg;#TP28N^kNT``FeEK+i8q|0C?LhpV;K>$%S6$uWTsE+?YJI9=-3H1|{foxDFf2-LSD-uoO@{h>7!UmE zAM@`>65GS71dZ}3DJOsk>~-Wakd`MdtI%|kH#M2e`o$1;S3OXSzcWx?%9lUy2j8Ya zy{D1Kqt;)#jp3xgZo1YRbV+tuQPnoSlkz<|VLr?u5%}c}X>AFIDPgrcW+PkX#bCVh zVmO61%j&iCMaxY`b8hIzk@zxBbr{gB%x9WeSGge0GzJQAzfe04gAysvdv!}ElNC;G#I^_&BH299} z?L#ay@)wJh;GZ9*-fa7O%bf=`HtAtR95(D+=Hi?YVm`u((_`f%?hN-(Vh*96*F+W+^Q59a=DapzsP9+lnS?|8RoU{ZH4AftrD zEZmX$%He#a$-nYEwQm!wBTS0FZC=YJ`Ub-@p8fa%0=x#YG`Eo$X8fmwK3eV+TB(Bx zU6`|S!hYLwn);QWO`U4$yzku<^jZEYbbJ zFAR+!#`kOoQq`iIbp}g|A&LU%0$EHrUWmLOTxuhr}f#>6{r^Pg|>v zpcvN8ps|J1syD5Nk&>Px?MPp8T)mvD)h~0Q@Sb{(9@#EB;E@90qrBpM_J!bow_|cu z+O&fY(TeMStRo`-{R`^;AS7^5mIgACk2Q-<>HtE*7W`J)ChfUiVTxn{QX-Y)8$z%K zp7`hLyXs0bs;;0Cga1c|7D$Rt1?b`41|nuNT%H*CiwfV$z9=7U&wvL3@?@8*&zv^K z^E&>Fi!#!LrcllpP4t7xrX>t;LC?cga%r8(LJ>R722Pu}*iJ+0XbuC08>xtCVvd&yvtFtsU z;A^^{t~2|sF=kIf?%99m2M_uma~`*p7=^}4jqjLopLMQxe*iXK^8GKHO%liJA8e2} zoS5g^9GSIiGf=s@QD{__rBm4?N$T{;=vvLJJC#%K0++gIygpo@rH2yYdqnhHaAfkl z<%)SBg@yQ^ub1}13!5BGDDLWXX~kOlDv+FX=dnkpbJrk_-8TJPGr1rkHQlVrX89u= zDz5_>+d*Le1R+6+d^|J_#R*X@#GS|(ZhidmJhEYUnZ-xbUTIo>H1SZplhn^>2c91#@^ep zT(^eC!a6-5`QzxK4fhM#W4xvMq#$=A2z2_-X*Bw$^gV+g&{CXd%kb3bjk@rZXIn30 zfxT!UvBcH&UTe*^-*edzTGn6~*sXj|*{#-@9H1rGy z3bP*o>*JEeAnUn5e(1WX?;mZCUbm(qlRwrADW?ZjPWa4_Sk1EB#gGW&rpzo=Ir?Qc zbK>lr|BbZtn!CUa=8gSQTQVic4ccyXl|Ilc-{gLRA%!6ZytD!^L&3M0gpo1uAH8ZQ zFSmq<#89&XAEi3yM1+|z_X$w|KSVWqk6yf=O~r3Z?4p{z?7Ok_v5q$F=d2`UmW>Ru z|Mdo#-vzZ=N(ayC%SKpxO4oW?%M7jAI*r&EiMtbWEiEg{!`X8cGfgFRhzBq`o~fFF z6%-UCu64_C*Wv1Y!#8RRKbsW_v!0+F8|+hNZ3{Kzu0X0Ud+V}}p>7o{1Y(0EEsZHZ zZAI33|Hs?k+4voMLq&MsDOA(%aEIIX9imjn0e2W;M^yjLR6GkhMn(>%(AqsH>ngbw z&()laSgchL;bcq>G;((KQkXnmLPvTNP~tep@3>#ltQxJK>(m#&c<{0Mimdda%a7%4 zo`2^w=sTk$udhPSqK%!sl9nmoYCeP$2Hr{OA8PY*WcrM)YW-MUZVaU!oz6EQZ;QtW zUu>3zY4811@_F$@@TUyeq}6_Edbem)jm2u)_x~xjT{t%@#>(hZV@zUnF5e(BHQmNpY zItqgi1A{0o$Fe&$979Uq(bMViazuOnoiBB(z;1-l2j(VfZ5^6lkx8aE!?yAb8gC;l5W4u`8_vLjogw$cqUtiBx-o$}s}s1Wg0Y+j#sP=f8@yD}^lNMl-MUHRV3hs0 z8ga(q0PIYi$<(ZUgZLOR9Tv52(cE&`Neu96lAb>%&p!h4%2!pFe`h&IjW-A@$@^iDaSU^+c|d)jVXmI zxTI_qFFAQ)5w(Le*#iMF)Gqd{(%9-h-vMHGYh=)|QVI$&1^aOXKqUoF>*`>*KV9j4 z9nqy0AMx2^(d&gMvq3fVFQgVCUp`-y){u|Ky>OD`bAS4sXcv$7_3Kv*&U^OJh5JDm z8Dak)=p)0!)%gOcNiRpF5>(s&W|+Cn&B+CLfCfY znqX(tLmI`iBVE`fayXN`e>9Uve{50!AA={sKt_3zMM0y(#aK=$SHB?<1tb-riqR~2 zpI4I8vbjmKZk1%XE-c6WypF|CUS6)8%Tb$-PANsHBwlGzbojM0JDD?}ybAP*H zI`0nBY~I61uoyI{KJpt_`XA4HRKPA*AQ@@Q`YZl=Fl{Db?%B0qaK@|+H%(@6t8iv5 zQrm2_r#xrah@DcS2Cx+12<`vXB|>>BVe>1>N^ChWnaZS}`oopccvS58e0LlQ8H1cn zl`PqRhF`AJr5$2k0-28wy{FOFC0q>cRj)0QUXKX;Tl1FBRmPVs^*kUT&c z9vPwD^EADAlaJM~u%PV-X!k=MH7pS_Qr1uat>WEUHx5A^3E67|DxU6<-xOIVW) zwYGAt%&rf@7@Z^t?f=@->kAwS;hij)W+iEf!Rv#;kMQc4`qwEn9#vXOqb+O*8iUtl zv#H&yzz|0cmq3a;S14mZtu8<|v{0rp7d%57E?>CuB44(dz%EbyBl1i*g-*VB?znw; zPpL@O=yRZWEbaLoFmo#uSEzR&uBMi_@~ta}l=^;#qNj$JoK(shUpC`t8N!qC946MZs2-)UAM2J)`+CNfwa``lD@pwbij#D0FS-#2OR`quo0Hk|SVe zlUKbg2!Yse)fnLWz$HSpu@v?=fB+N1PUl&!3!fi~H4r^2_jL7f|Kh{(2b4b|j#h^6 zdd!rQ6_}ZpL^lf3wDP3Grz8{d5?6BsOGQPG58rSOEIt+Hs_J`Lyq86b^M@16cx>Dd zY-q2V>ajV}=(-ZeF#k6E)6~XI7q}U2#%?{)#v?i3JBkGuEmqd=9mB}bPGlIFd|ZR{ zn?QP|Ig>HN|)~ zXAK9v@q63^7`w1kZ=T#2Va6=8%R~aH$}r$Aaed6>YXD5Yoru06>x)Zms=~YTwG*lA znOmT*+P3cAD|ILJTF8qMiORrD#Kq!?PKih009Q=db1WfmuCOKEzql$mlANB^8MLfR z($hcJKPL}C{LbHU&vqrMe2LLO$EMc~aay$`sEA)-#aMc zk)yq-ynuU(8bdmo;6WAlO~HD)Fd?2sst6!2{9<)^z!MaBg<(cyx=WQ*B8RbpPr_&A zKd6CDwu9GHqzdjD7Gw7hV_#_h1j+xRLZ^*K9fdRc@rOTN1)wIRV7KQ9oD(i#WcJpU zL$ymI3fE@cg1^EufbBUcyau#o!YBR0vw-~OSvW7YAR{sxlvlpU2ybL9&ug z)=gA5K{h^KRs}0B7vM|P5dS&!$aoDvmRN~tZt~b(Ojl8a?Y7IX&NP0ZCJY^p2u$b# zZ~a+RA)jb2OWl8ECMi}^a`H?VCxI&@V>mo1z7XBH zCRRd-mmjsGEVi)@+)oLbw!W37|68e~`}O;&51~dRWl(r02^QZ-=5zmK(d`kJQ|M_{ zz&%k*?0?3YRRXR7l2-=CoCGrWmhhdzbTgWeb=T{r@HE%nRbHkfQ?Rc=m%jf7XDS3A zfbAIJ0_sDeQ;zUNy~?^|;%Fa*|EU7#$3O%A58MCrGYK8gn;iOXys2C@C-WfF;`-+I zR{0JJGz>+!gfK8TmH})tK2v^^NwCL4XS(qP&+QnIOAm*~= z&r7u7NTQKcq75vda|*?fiMSDzGOfCr*heN2#U?gtEp0*)tSvdp9W-|RuYdPf;a+?g z6!dN=%ioqbxP*#V#DuZPl8MM#tf~J;b6*|~b@%^0Gb)2HGnNL?EMzImEViVW8B~olE>qyc5=y)qB_OfSNeDF88AIYd03Zro@Tu!;=)VS zt-}Y0teCl!Z^tgwC3kn?*?1#VJI#7f^MP@{j(| zX~hX&@Nc6SZRSY?=M(5zMV+Z1>5H zvzNA%nn*2}h}uX$dRwPoT}wKTbHO~a^Eoy3=+S_<|Fm*$ouf!Sz-s3562qcoCATEg zil2E5s8shF+*CaS-=3KtSmkwkYUSLKTXk(ul8uv8ANRb(BGh71zHZpk_klNEIs?BS zdv)5?bSgqFrzz9^Opbh<}ls7d|CRh`g^J= z&f=gjE#EPX?d#e!dOuAY)rXyGs5Q_$#;oiZP;6e4()J)9YkRbC|K7u2Y_yjyaqpP1 zp3NVbfM0vF+VFtKR|3a*6)8sjSL^$zT*cP7sMwk4Y2DEs8ZYLjO8ZeaLo44MXNGyL zkb6!h)RwE=mTx;ljR~g~HH`PJ30rBL9~`*o{o?AH-*d)w$Ig7%c>nqL9<}@x<$MHd z?+lpLX1%7NxuElrQfFGtRaFmpXwTHO$emky%YDB_eE6XAyMOPe%GU!YZjUX45BX(J zhn^~r^g6I`vf@&9a>HhaNMCsRa-ckm$tX^1C^-9Q}(>&~hWU=At)8&z>sEH~EIEyvt??JG?n6?#_q;{zrf%LBaiJs!@JsbTRGx_tj z!;KzS|KEZ-Uc|X~8p~q;!DaCIcQ*q%-;K=1!`(?mrdzHP7qKXFw+o6f)0B~w;Mqbw zR=4ehEXreBRnhJTii(-fd$I>srN3d+q0H0oblH=A8u}JqkgOSpwnY<0f z+uSVm>##Z5s?-az`r+$*P@~Qi6qypHp=wZ{Cwdf=b7b9XxzXT3`Mf7K1Wyx^yK;Wm zdH7p-$B(zkzcBpf=YK`KQ(IhW9& zmkUy$T$0+>bgk{m`KwxA_jTW5DTHOY%9ta!xMucb$R6`Ltoe1ro2-YP69KDclcIn@ z5fo{LbjRt8@VJ_7ib?RwmWpP<9pAXebyE%jV6SdgbO`BX(AU_#3Bys#As?5AEso$} zC&z|nTxwo@tFpkf^rf!#BaYO=_1-*EFH@hk82)wFVPw*N%5Tf9aNCu(e(J;l(8SWu zlvjr~$(|e}26Zs)8J+<;4V>W&JEnhdxi`Iag{@V5NU|Vp^p7yC4Gh0nC_wW+PmK7l z4+6)Ou31~rD^;I2kSRtT;8{Ux4K03LPik9gD)+52u35b?AmFx-Lrnu;{#92+!PPMybfvFpL^o~S!Edc0n~i`AW>cm{LUMM$X(i;lY7xH z>to#&6ZO^*hYkp37|o86O>G%nvXr{{Xg#u($_ zT=*meh-z?&h?TVENQC|5F=u!#Vd1KyiQsw6zTrzYZ}nrm3YFxUM~#P zIv((ZqyIH}B} zR-3wee~mi+^je$HdDX9msWUFbO)kdHm&f$gfhY?}LJPjrCwFXE+ThX zbJKhDdFR)2NNl2EGo`bIbylW)r_NmK3t+Q~SBU%Rv+sLl# zEllN%W{#h^(m!dv7OGXFv02!>rZ+)N_Wf3P&F><#|FkZu|6HHIKUwi$S)MibFPAFa z+ZII&E`rl9bXRNEM@5Ak4RVsM_%xtyGjef~Y<2I$s<1{rRU@+c6-p={lkFJp0!;4 zHwCaS7tb6%lkT!L1KedB5xZ$ODH3%}GorHnrYhuz?ry27*B=nt^F&h5&rW&hbX{EH_O0~HTrJi7 zm*I^|x8dE+aD(|(Sr(xM%~yW5ZCG(jdMNd^EF-q9MyOMom9TDydo){L!|5a_KnvOf zMUI5_kfQxVa2nB#inE=V&(%gJPSlO2zUa#S@gwD)C?bB-ItP=q$mK}SaP#jcW?w{Q zXO|z0FpA~J22Zl9C zTLS=_%td=_t9IPAt1w`#hAf@`rFG|XSnP!_`x?zp_N`rW06KWm75t;$>6Gu0-N*c} zqrh@aO|^CA-+EE8=EP<2QvSYs@g8xmclwL$s$5@N&)bB(qAP{Ojo-H_{ozb6u3h{t zW|&xo>!Fs)>#w~`bm8j0%Wg>h-EncC{ajzklO~G=$LlwDSQ0gVow=|)d#}GfNG(cQ z{@ws-w=R15Ttv%tQJ8E)H1f2ceUuEUf*KvP9hgz@o@K7M`RE`i(qn_Q>_b?>nw9LK zpYyQ@dun&cgfvVb4kAI`gYUMHrSAqF(){B&-Nrg z$?*GbRUcg|WjF2baszaWz-DBlLn<pHk}TRX%nr=z?}xgcQE?3FrFkZOe+^fQ?2aP|}4vdAEouYbL6onex$&v~gHxeO zFC3;E>YTI#yZ424cXaij!-J6agJqf(hh054RS=9dj@>jU-9dXM*%{&9n?~q_F|;Ki zrpslKVPs&it3f`g%cY6i3*K_RNAb~~2!JM=6@3T+E4pM`4D zYoN8W{OwPodU+GkzAw*b1xuekc}(|lk13*vW7Lq8%9QM)0F2JFZBGX#7Fm!SQ_~(i zz*jwg$3T-2VN!|{rDxTb$}4(wN>=hxSu>VLyCSoW2f8wyHszP7KKk8Zh_^Fuc$@ZS zpLF65O2N8V|M>W+f$M?L$ItgT!%kj#vS^a=eCE@C!QwVSGJw$op~;Y=qhq_SwtdIx zoR|=;Bxd2IsEcH_y3XxwC78`hKkuoYk|vNgmgt$E*g<3oM%#{CdCEK??7k#0_xv|rg z#MgDFP4)>NU$Om3K+0QzHV3N>SZ|-#kM!Ra3b%R6Uwk|8?G}5INS|sy^`iVpn);*H z->?g@vWs@TObrGhWFyl%v^%3SQ?Y ze$dTs#W_F2OBQB79hwI?zf3HI)AB=V@Q*>2ujkl5<>zc?=QNInvr&mjBf$pPitVVk zgCWWTPzvcx*;(Ccq~}T0EBg!FAEb&ed3$5!674=sr=PcO3er9OkTZ+eP%9K#byLF_ z(1TTB0VJ*?5ZP3Pq~Ihyy>N@U6GP;x!b0tQ^I~9TL}|sBjtppxE)s>gDKuDLci~NR zfSJSr0n))7B$MK#<^l>eNJt zeNZySV^7fM&!3<5fFC|Ug!x4kU92|w49pamC95r2-r9~^$g?#`J6>;laJxd^f{CHA zwWeF!?nTClnJ3YKcYR7HlMp`SgmLGY{6pq_6%K#(+`4rOKi`)ceA(l^oGzs;Ck|a$ zQ9*PrUJnVw-I+|`Mg0??WD@$_i=0BWpM}vx7J5-)!zT>8U34fjWKc0z^qrH}1Z`)r(#<9{0>l@q@m{I_wnsMuvX2*4tJoBi-FWvv- z(tLx%;q3RHa?rXkBwSNF(`w~EX6$OI{;=@Ty6L%xZkPYy8cQTDL&rPmY-?=4x zgb{Y>`%xAHrLbY!W*6sk`B8HBT#A&*#i=*O#>XcK3kizb7Bmw2qs_n8Sf1bfHPsGl zb8+rzR9ifxGwk$oWM?P$k;-}6{o-QZ(Ij-b-0*1n8GcF0-XTZUwD#eqaOj9#;@Hkh z%lpjigSgm?k=Uzgk4|(n%{Lf(KR#Jg_oemLrr(7=Y9ECWllv}x4faXylbeYK%%N8I zzhLj%*53Ng`{TVIKh>gxt3?{zdqDs&djvW=xZ}l2XFn5q3+JD71V`Msv%TZ5s~RdB zY+OyQLwl?u=emw%7T@^mm458aeK6R)7~N4jN(0d^aZV}`(f9B$S#F>QI5a=VIaM3L+o;>O#AZkvfY~4?~S@|Bq(`+NpEPq=AMl4jbE>9i?<8v z$U0jMpxl5WUv2&zT%p(KoMSQVneb(3XtQ7Wd1tVtOh!)+^5voHoBsq~=h7XSXV0F! zl5ZTqvA5OMP51Wq$4*4NZG;BwDkcTEwNDK`ANH1&m6O}gb^U{A+vpkMEC9$^@*3}Y z;X>8g9t%bDEfN`=|JsSW4R3n8Nj5VfJ!7_B`O~Kf|EhM>!Z-jRCK`knP1{;JIF-B7 zdIK@BS@5O|i_2TqD_Fj^t-?8#!yB&-?bsg+d|9bta8v8c@NlDi$j|XZG1Ca(P3Nmu zHjV;s00Rrv_h7&8EcYLlGYpPN(>Ieq-BQrI4t=Kq1j9!*Q+2P0M@H+B)Lhb#h4%hG z;aw|!8?evKb2ldtbA3mNx4E2RbsaPy*)czimhhpwRe8hZhH{kTQ=P=3d-ud$;17!C zI0}H-y}qw2nQ73hZT?EX&bEP43$Lt2G%|+{xVw|%t${QW|Dt@)v;j8G!lz}-yX{!Z z1mYBM;%7XG6;ttqvf)9 zr&aUO8sDb}A3Isxrd#g*g_PIW^zrz1#o4n@p8LhshqgI7q^1`f5BC$kDeH?NT^g!9q(|)FPv~Ltvz@xWWe$J_qtavWPKd%&deQ8S_h_s zEy|8wMdT+wc>`L{JmHy^+o-PKoW%4Ws5F24#5HR(D*iLJOsPBXaTI`UKarcv*3bCV z$CTa_sc`6y!S|5)jpo08KXZ7RJy5rC&yi=BQoQ-{nFNU>2&UM>$1eF;+3!gF)sNpg zb`^v>yY)7D=u&O#_;k(e^v(jGV%XaYqS-l4$ImqZ3i)TMhuietMx#1lf57q3&f9IJ z`yXs488>Mh+by)}Pe;)glzMxv{dn>EHfY=L)e>C0Xq5r6{l=}aw~pT>@GAg{Io(Vn zUFa`+!Jz*!)^l&5P=);Sk?9&=yUXoPfBijr-Iyr$e;#wdgX(Tx+&N3TVg^voWJl;=)u9A%Pb3bh^DXI%a5 z^{^gycYX37g)Wp=X5<`CKLF5myAH^uP`?DzS6Tp6dr^DJfE$s1TY_pUk3ZyqhmKzg zNW{Oq>%t;>IQ=}ds5A&hz|8E&93H@H+PSVT#oCKJxFsd=JGASI@Oatr_loUacYtFHQF}S3DC6id3~f zHuk5%lf$r<={`NyxV8;AAgMv>E6+Q<;??;wf5Y0tu)#yCc8XidgK9)piAzgf)qQ|6 z4!IWBYEZPr$D)Wv75&kVJ^;@W4c<}+6Q8xc1=~JNULDY=hPOI~RqxIzf12TPIoJ7=d59ZZfvtjB(=JojmqCNpW$^UQ4rj^iXSM zMc7h2JWCtivTWR^y+=HjWtRYf<}x-pnD;}@&=Bx~LC32ua!YRMn;Kcsdf199uJ>ii zJ3T+IYk%!+a{SahU4Fph2zuGF@=eJX0(VII>EO-<2Dr=3}hGPe({NI#!GTOZ}k_@~0ln-7o zaQI?*-RE~WU%D}Ks992JIz7CamMtEve>)gS?0RUppimw(Z;(ZwwD%^;DpvkX+W0{8 z>4xGpe|+2;yS-&KrTf&7n-ZGPZJAuNFZTLIPrz2oN&E8war`&F{YOX#6=W~tR90GQ z8e897ot1#w(b4yR0orzVlFi%+PS7lHVk>q#f7(BAaHp2s-9<|Gy%CI;>6IH+S7)8) zE*VYy0k@x2#y2800RfHJ?TlhQHY)EJaLffe&MzkNj7=L($R7Bi0Z(rDbU1Qv!-|FB zuaV8a-I!gQfz?>o-U$gL_tak-mVsqkhg;{<{~v(c?~!FcG2U%lGFsPt_;A27Il7D4UsK`?%PoK5M1cir(Y%w+lX73tB5RA@*9W%z8n3xy? zgc#KMfUvW{XHHvVa7MWQCfO2sGWhg~{}Un3($doS&s)qk*{zZ!w#oj_4bu0J+RU~p zfIyNdkPzw!Vr>x=S%EyFl@w!2@z$*zC1}YY+ovU#3Z;j3939W%bJj z<+w3~FiyTaINg^DV;5XYS1TY@l6moKUu~(|LB+^sTrH4|H_1{iiBl^Molaq1r67r* z{M04cd>b$!Iq_D0%2QO8J6#8s0Ucp+!20X-ugi1f*f@Q{e&)`yO`@GLXW@wA&K?dZ zPNkYqOQ8{|aXDRb`7ToUJZdd92dtLwmPer`$}S|A>m}+S3$9kl({NO6I+a^)^&MS+ zP-=(1rm_}GSlqMPN2EYyqLO48ceHj~v9MW=VC!jlSU6U9|=N~%)K*WxM;T^YME zp24VL(LfF`B~J0JD%l=B?5Zc#lo}@(%g)=W71vOC2<%2edZMV2SLT)IMvdb& zrsi2nk&&ypakt70uKO#aiyKNBQ|M|YcCOmC2pYFWM3;3Z5Tv?ydCuuyKK~NiQKx3c-4oGN8uv2O-o)`2x8uW}$c#h$|Kf^h{SagKTwROxgQ%KB!d6 zY8`$Rc%V|;35wH}QUY?~vMk+j+8}C6U0*f0o~#VskO;d~LWyfkhO4P{DHLBz4gcmi1( z1wqUz6E(|;LKd5Y(PjBTp^Cd6#Zs% zWN1}9`!$s+t9tE!u70bboPL{MCIg9T(SIIikvPL&LlfL4($%PG5nAuGjm z7jsz9>!nm4HALwwLXW`~z(J#gE*^uVQt+DvgJE=-bQTn4PGvN6Wa43sB0k)m zjLmE0fsSCoU7}PlKAlm;r^CY%;+o_t-Em5B(2{W&2|+AR{hbTNf(UUAuw7#FuwYhqGk3idOid?U#)fGVDwQQ%RzthiL0586 z#Jp5I9*!z2MQi7aSTq*>E89W`&QWtCAoAI%2gN|3D29MFJ< zy_rn5g%s-%fvTRNZqIB&H=8h&W;1s@@3HIF+G1oBg+j8E4!~| zSMXZ_AJ?R>6UR~m!w`+9SDS&>Qu145(Nuw&tu~mWZ-)>k;|lJlpg;nio<|;Mhb~w^ zH!UlnVHavq*v^!_2(B8D!G?i3w4d4VvVJ7CSeAk<*27DQ#7OXH4ieIvjFw6U;XRba zti0b_;u zGb2X^d|!rEr3RKF5$qtTtu+VZ?7h-TpVj-`@M8}PY^T)v9Ab38XyPVDC z%g`)zVXhF639YKCR@B4iirF+e!PLW)K*6ISalEExAz#R2vypB@28!Cpc5w-m z!&jq(5w+d1fD}NC9$~AnN66>UQCN3^61X^v=4Yxy)<$DsFfdcxTqEf?u!U?|G8q|2 zb|;hZcuX8rAnFr}L}CGtO#`8c2sfe|kwVbMD#58NvA9Q45;2d1fZxjZ%tsN%@( zcmfs>ySTZzNeC2{ONWvv6e2+fg9TGLKq)245G1SFdXOmuG8T&famU4y^6`0WD8`Ox zhbL%bARtapk4P*Q2)S$!$-|vM)W#y0KGg6hy#!V`3Sjmzy^pw9}f#>G)crLmK2k02V?_K zQw6<1;ekhN7#R=~kZ~NNNx~tZ96H(q5Ge2wlOt*Yq%7vLpd=tEZ7c>%6I53NbV4o* zFoC~hwqP%;()W{8_bC1L?P8Bh@!;G2K}#MCU}3x#YM9L1CfbffX8tghxB zzL1~Ig5ul(`yv6QV^#vL02nC;iYA)^CP%<4F&Y8w0M^N-;fdx13IR_5XNgMr{3Z^E z4n>;+wno4z#j$%O5*M)OFtP`UhzA&j3VKCAzl+PFq21j9BO?H9Pm8!&0N73PpN|Lx z5-5+`0(dk~Kq%S&*NPSh@Gk-eP6K!aoJ+`tns|_jfM_tFtTADAHDH}=HNfV`M4;5L z%I<0rA4m-! z%ta^^SINT3NAT|2SUkprKi(wj0X%|%p=c9K$v8w7qo+hH>}IoMAb5%$0Yk|F^LIIYsQCk}h1IIU)2*jf76ewDUf(0xH4P$VBws4!Wxmj^AQ&SZsK<}`;pF+Un zvRPR&Xj4xp_0KO93Z+u1K)Ch))zAM7FN0F7NiIoviTh7@xe>VePk0Ff{s;dZ zUQ+l#bP0m}2`3@Ia}dbI5e$(9{ol__{qxa(|M}lfQ2mGU|9m{+e-nY6fhhLRVTu1H z`S { + vm.attachStorage(makeTestStorage()); + + // Evaluate playground data and exit + vm.on('playgroundData', e => { + const threads = JSON.parse(e.threads); + t.ok(threads.length === 0); + t.end(); + process.nextTick(process.exit); + }); + + vm.start(); + vm.clear(); + vm.setCompatibilityMode(false); + vm.setTurboMode(false); + t.doesNotThrow(() => { + vm.loadProject(project).then(() => { + + t.equal(vm.runtime.targets.length, 2); // stage and default sprite + + vm.greenFlag(); + + setTimeout(() => { + vm.getPlaygroundData(); + vm.stopAll(); + }, 1000); + }); + }); +});