From fe442046969f0fe5ec9c37d4e9935fdcd4d956e8 Mon Sep 17 00:00:00 2001 From: Mikko Pulkki Date: Tue, 18 Feb 2020 16:45:04 +0200 Subject: [PATCH] Add new render tests --- .../expected.png | Bin 0 -> 11014 bytes .../style.json | 78 +++++++++++ .../collision-lines-pitched-2/expected.png | Bin 0 -> 22202 bytes .../collision-lines-pitched-2/style.json | 76 +++++++++++ .../expected.png | Bin 0 -> 18144 bytes .../style.json | 128 ++++++++++++++++++ .../collision-lines-simple-words/expected.png | Bin 0 -> 15390 bytes .../collision-lines-simple-words/style.json | 126 +++++++++++++++++ 8 files changed, 408 insertions(+) create mode 100644 test/integration/render-tests/debug/collision-lines-non-center-alignment/expected.png create mode 100644 test/integration/render-tests/debug/collision-lines-non-center-alignment/style.json create mode 100644 test/integration/render-tests/debug/collision-lines-pitched-2/expected.png create mode 100644 test/integration/render-tests/debug/collision-lines-pitched-2/style.json create mode 100644 test/integration/render-tests/debug/collision-lines-simple-words-pitched/expected.png create mode 100644 test/integration/render-tests/debug/collision-lines-simple-words-pitched/style.json create mode 100644 test/integration/render-tests/debug/collision-lines-simple-words/expected.png create mode 100644 test/integration/render-tests/debug/collision-lines-simple-words/style.json diff --git a/test/integration/render-tests/debug/collision-lines-non-center-alignment/expected.png b/test/integration/render-tests/debug/collision-lines-non-center-alignment/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..990142b59bff683cac622bb155ef3fc95025a555 GIT binary patch literal 11014 zcmeI2bx_sqoBv6XR%s;V(9$3sg2Vx&L{LCNN~A+t0jWnoq(MSD1e7j8Qc?i{rMr=o zZuUBUcXoGncK46n-#@?kJ~Ph984jQOb6@$sUibY(T%)wTiYFdz3I8b&xQ2mlTG^%mdv4u2s97BJ2!YFetsxU}8trJ_>L9Ti?(Q_=TQH$Tm+94i^(u+hMk zb-#L5TM3;E^BN{XW^z!^Etra?FavAm+%a`?i3INg7a2tw>x)2!sL4bjnI9mCRBuL3_ z-zEGpB*)TXCF*{~b^RqKPMU@PA`-}sDOAjyPwcnV3AHJrVN`!1?AE_a6-3S=f zOOT>1eJGWcivyqTCZ)Z{%`XsT_V+KgBH7)8zy98j@t%}EqPL}Xv-#7rh|b193R#vG zc8`Nc!=K0$-UM|3d>#gmPtp$A!;lr zlJ$``a6pfVWkh0Ssn6^U&3ryctDy=B6@7mtt)32Sk%@UeCvDtALn#yzO-&OZWSy3C ziJWWJG&Z*B+glB`#>MWf#iZ}!-`YKwXx--stG8s?c$TuX*z?}|B~pvHT-GTHV!xO6 zG5k%%3(2g3Vq^3ytz>OSKEYeErc7(Y=)Ka!@dg-g30R*kUnw*qzL(p)yOOLO)wtZp z>&6Y64I>QTzUH#^=wAJ%t2?TRI|> zOA&tf+`gZ^W{#Fj&b^hcNo9Se{q)IrMmEU&2it?{D}zPBnTqM@es6Z0@p(P?!{~d9 zRo`OFwKd`Mz=O@oygSa%ifykOc(P{=B$v)Ueq!Y}WE4zz-FV*yA%Bx0B}msOuwUzm z&3yTv%@pckGbzYCq}t>pO{*Z&(_=_lDF5+8MvU;o2VQ$R`mG-E??17-yOS$LosG{t z-A`=u3g$2e3;lL_{PQ`~RIJ#)CE*n4wloJuDF3c+2{u{Pc~FcN6)@m5=~4V#yzZDo zH8ng-2|LTgb5l~p32U)u!E}A3ELeETJKDKNH2BjeF)3vg{JO&%2Ch__*4F-S1sIbS zm=<%zs zp?OeqEx&*PaD zmqoWqF!aD)>|G*}-1#Qpz3DYI7cRar{myG+Cew@`A`Sd|FQ>7|KSH@_xFq=pK2Kd^ ze8Z_ZIk!Ov{rMJ-R8I_h@l!I@M68SBBI((wb1t+C;?`E$(`7~J**JZ>nSlf${9Cp! zYn&NVgR7>30`Wze+QR%E)ut8TLzM5k<`o5J-01mhqzvWl8Cirp8v~)7C9AfMtXMZ| z*MgIat7}y6(vis0JA6)^Mp*0_=eKv=?Hr_dE-o$(`8jv}SyOLrbucyLX3cYN)NT?T zA0JnrZht*0S9tx>51o?I*XI;7M{OZ2kq>ip)Ob>2`15s${V-&9T0Y+XW^k7>LY@Vd z^b&_0qSs&}?O1RMxN^vbjN(P4_6i_km4El<7obwAh&Ut!Po`P=>w;6(fK?P?#%%jY zB2d=PMXcNL{{3Qe6{B3#7oMj;4>;JvLW>UM~d-RLZ} zHLpUIne@`Q-%2Iy!4Ks`TjvHlKe`nq5q;3?^&o<_GgXXG+Gh2l)%BE8DukNS6+eKZLuTU7eGj?}(2V4>9dnf7TzT2mWS{EMo zEm0`6==r*}YKmCw{Q{l7QP01a6fH_$oN3kXS5z2y|8DhO)t{RE-A=#M>vJw}vcH~L zULK>Fslb<&l@)+P?;X+KuO)@NPi8ZAY2>D5YqcZFWeH7Gx&{Qn#7q!!E2IlM5#8JM zxv4J_+v&W*U|~&N-S+K;uO7!MxyWoS1GkB11XQrgnx%J{xw*l==h}Bht&2*$kDOfB zM_YMb{Kg0KPkL=G#5Z_j9X8Z#H9sn^s)|<2W#`~{ywaaN?y;0IzvH2&r}v=bG4|@< zhs>g)H*@>(V{zwX&T&0` z+E(gw@q*4{{_2av7J7cm9-5E!$4?DCSD5L%*7(S|^uAOK8LC)WvFF}EPJd^FYEnok zPCod--(yFFv-Dxd0z-;|)*Xy~c4|uB*~gOyDVyHGV|KN#M@RMG-BH$4F*?4cF1bfK z^vI1?4zl{uqenOOE5ob?a!O3wiO6{jzmcd*G}%^7D5Psl_bJk6r<>duGP)2wUoetV zO#j|JJcr3m$VP4w5Xp+Y&iV^0Yd~8^r!A66@jF0f2z84Z% zS{hpXQH=VPHYQ`0wgwJO*xu(msjRWenudlwuZ1T&?0ru3gTSwGJVt6_DLFYgK@AsY zn*^N}Wu#WsCN!mkM85S(#y#KEnMP$CX)Emzvvame8(z60gKYjWn;O zEhIEllslqo+VqacgNSHd?a63I+l3wcKESiT@FmDdP zwVAAY8_TKdl;JJa3yu)!OP32)iVCo~r6PqgW8cqM^ELwaO-V|DAX6v@w=ermP8vew zL9Ig-4g>CXRK2>DWWKxHceK$0f;)o{Bl782L^cNX?ajeK61(5! zB=&yXBgMn6KmJ+dbTHv2Kof`&MveXGQ8HOdiiR%E#Ds=n57p2Z{)%AK4U&kU^m5YU z-Ke#BW0EXWj(m6T-ldWB zj8SE25$L6vc-} zH$i*trmQVj-PtWmc|{ySp(cI%+a98p+CI`C1W{d+lI8A8XtT3lUV%<}=RS*DI&xFo zZDXFt=LnzPyd{VbRf4{yh{wkpdcFdmpb7|-BWNyy!op>q&xFB$-P*brZs%uH^qHA+ zgfI3Aj2yd#hPJ-T5j(cix;d;@4E6W*HBFuG3#;wM7I_D0vX>7e04lBfRg#(V7$D9POQhmY$ITX~{7 z%|yu7*Lf|8=ADY&cz*nFXd@tyiE2#X+uHt`>?rQqINzxhq9H>a)TQjccfa~*QU5`e z9j&dctJoWql zm9`PJ8^@d%t3GETgM&JkF4e0>8FZS*FLapkdmq$JWtWvjLy!60h)Jvg9bmRKRJ2c? z;?b8PpEGMZ@2%S?!^UyxD_r)27T^q3qQv%k7=6P#=iU$L<$~=^{u+ivsFsy18a-s> zlk(Z?K#PrZd2MZeCYXK^#K0m-$3(lh$%zrl%YPrf3`$icva#HX=AIF;xLfm= zSIJk8B-X}o?%w^g>zua&>7PFbNuU3IQ@1~AJ?|v?Yju@Mz=A+{(w*tZ`yHdM(Q~2H zvo*{2g@yC0Mi*jZRraj$U;BoKl^}6C8qvb2@AnAwddKhYuZlWMqt&{0o1;W*UO|B= zbf&f8691N9;(JC$y-+QxS8|e+vbAX37GiasTFG?3Pfn_-s}qmd#2p`d?yqw)#ryYq zFXG>P;J_y@zhEJ;bgrE6|hpNmQcLB=dMppujHmKeyrWd$jkfd zO_?K;ffH^!)Kp!Zu_`$^%v3#Hirs^jgMpskww!A!c``uKj6rV~9LKr(ZVlzN`gLEi%V%FA{xrGnW z)z+qKtV&ZoqLqbiOFdmd$YJ2U^eours5TkAz55}XH*vUV- zg@@2CVy7<78;UKuwL(H}MRb}yv9g-+!=anb2<4v5ba8{4!fTHAfLI5ciB}_@FpgT?Py6U zT3~$j6r_g%AHtt0^*f~gOF>#Yo!Myh~ zBop4wB*GI|wzl#8LpVz*I6^`&_n<=xO%aQ`%CKPWEZ$~mVSQ>B^!&v5CkJRE7PSEI zN>&l^q&LZ=C;qQhu!2-yo+hlg^{Zg(con9MAA_=&y_Iw+%B$q;c|eGV(Y!)jjgZQY zWSS93^r9^xJ@#lD0CoiM?hP9e+}=4)wsE%qSuenf&GE)W1+L%(-);mB-;)L?|) zwiApMZw090R4?i285^UyZUznNEN=#DhnQ}AuyMTn^%P=?pDHN(6E$f2M)W84!GBnQ zHr}>JI6GG$E{Sp9jUZ;EaT@^}>GX%Hv=4;gbb){VS}8ZZ^jczKS{4@4(?~{4PFXqa z{j0JZ)PqDh`Kc24v2#>s3iI-OL-2Y+5PtBaW-P=?4EEnV?r%W(PmE$&fqVdQ>rtbm z3HXyolzbRakdvJmkRn_s`%Ovqvg*X`2wYOU2!w_v`re*~W|I{arSC+o$)@3d$lOF~ z$ZXZ10jFuSwMjx8B4A)hj6jU`nAoNOT#ZNFR_v&JHSVPo@g&t^5AR%J#DWskBT1pG z9MSWaFXAkB!)~|^;F!s_S;8&Cr~qPkA*i2!DwV~z>6o)QdKlGz{6vv4gKxpRyNx|5 z!0ZHtZa)*sH8Vy7mf?q&16EX!)&@4AJ9t-lx6*@=HU|HQZccA zsFs&7ARr)!s)=9N$4arGj?UhBVi$Df&{r0nh{pGWetHpck2JkP_?=^IjHrx*QER|W z&P%eIS6Rt0fL1=2ba816Ap^Y@M%{`eB$Bn}45KFwCI4Ll&~j0gjnsI@!hPrN6T3yg zN|<9+ErkzxpOS*yN5Re?jp=eIt|lmB%SB)CfsmgH_*qmyGzWK3o5B;D09x_sqowq0 zY}x57BHEXGt5D+;`23@luTe@;Cnlvg&;x7h%QX3=oi#unL0Un0J*|*HPmeOraSrGS z^jNEbw9+WzmGwYqc;XaYT_Wa43=m6#7$U7`Vx#rq#UoN&FEHB?e2RPg0 z58ueO1wht7x4-5$swZXKO%2ZH;1uODHwO@FJ=h5J4pFzcWdiV({H8Brrd;q=^Zt6V zIsUf=4EA*iZi#@GhSL;NALIdOjWp=aF{l z!vs+hc;bcuirqn5joNw-j?};I;tBz#)N(C?G@DD`7}ZP#dL>#8>JKD0s^^F{YL@7v zlvyzM_P$RNMYFc}Vg66(&WTwy`SQP_yAPM$LuO~6{}<>k-XBtAMz-g#5>t~QZV?AG z4vw_Xw7*s%;=>XouY(jK=e|Q7=bN<*D&YQo5CpGaW`-FUhIOf)FRzLpW2?R+7^`eb z7WFQaO_xzr#L0a+DtP$SXj@{tgPx83i0EMAz^8v`s2zsGo?M})qyz+wjc5QL2XY)0 zx|4BNhvZc7A>%{I9osAz^!v>hX6p* zX<0tU@~@ZYFFMTrJ978)=T;XdyQk;k)=}?L^-R!pHV%&2JO2Lue;A)hHH&)CpBj{K z>$O0B-eo6IcwRn7Pc{2J<2i-A!aHK-=*T`%CoB+qFmei=?iKkgpa$I9+N5898>?iqzJQR0YwY;5d{8XY7~*2;Dd4xC5K;~h~dUQ@Fv;{5!DPSH8>`EIU6FmaXE z{fc)g+%*9}JjTK(`CgiTjr)B#_r`hoJ0o}9mTY2D5-y`d226rm%b9OVExM_XPfp$n zS(6)`j1DD;J>w|Q`S5t}mt8o`+n(dShB<2^>$%xbo<;qsWAZoB=ORA9RYt1p>9e!5 z!>ENq7-8O)IGpy6iHqAt=I2lE4Viqo+!NwBXS}MDAeAEUG4FCX&25x_^X8rYpOL#$ zF66c%cbx<4`uaK;8%D_opIq48COudod*b5AbqXIeeR{SE3}>zyCOZ^Abw`o|KrVyuUfs%k)N~nb_x0Zt>gOmY=#t z-6}kvznH#}Y|D@jt%kvlor`NhJ4?%9i$OJ|>mi>70i0ZLaiM?~Y*CFVB?>kRXzSM3 zllq;MO@}etDouTTl_-S7`Qe=Rii*+f``mZ4pH@GbDy3_r6%>Smhxlwq1zp#Mn_!If zn0>`sy^(LiV-!OF7Su~K6)d$Pl;j_6B85O z7bjDets!JIRW2)9Iv?~}iC=7CZq%RH0W$;yxX>fMX@=sPJ{M=I3E$fuxvf9`J===< z2*{&;E0Blx@t4bSHy<`1Ev5DX*M0EWQwU;t9E?Yx=pzjX_+eys^Gr*GvZIb!8Ju0M z2==q%Duw6)_D~F`FHKefN$I5EU>lns@}Ru7M-=K(4x_lBp?^uAv7r4EgCF zKD>s2C8Cq)xUc)D_3(FuS_?2kD&WiHm9}GT*c1khOVSq}z|s~L7RKG@UZ3t)HJB^G zta`M)0M35;^y%Tr)J0DOuqogO*KgS{0OkXz5QTu>0!yhe2(Pb~;(trPq!@0dghb*( zh|);7UqP}`M3BZ_Nvn!C1pso`ss5rF7G>k%$<5CX(dLi`v$87Z4usK)$C13gE*x&a ztq24XEQYg;@FXo3Ng;MZX z%y&c*C~97%k?eZdH-?{`9nlLXk0}1d$dFPB0hKlIee5e=!^yhC=!7SB*0rrog;Sk^ML}d>7}{@x-hzKJ|=}Qh5#9R zdmcD_fFptasVQ~tcvGc6)RW(H_sNUnfm8skN>K=!c(q)p6o(Fk$ZeKD*~B@!&wDy3 z56KZrez~VEDGzA5!03#_ZR)vjOJuK{hp5XlM;%xO1W>vhXt004yMNSKBrfoSuRIN^ zMn?1~8d7H2YtixXQSI{j`U2{`_g06T=R2+{D=S0JW&+%toqe2`n1~{zZ&iaV->obb z7zF|}>muz~+DV49FKu1jGOGcW(XlbBCr^w!+FoB@Szk9-Vu>~xEPPmAS-HJGW)Dbv z2!-wb6;l=!g(0lwmiu}g#}~VkMyef|8jiZ{Q3pQk?Cj}WGfT~5Uw!^L{TgzB?BpQWjbGd?k~$!Xn&V=`0< z6HD%1aT|BU88Yy088*VcnXRCvKgM)2@AM~k&?P!E2Tu6YC z12E^y0#1~Z!%`0h+#YxCEdf|fL@%Z4>?{B%mmU(A;Aq1wb=Fea>#slX&W;5s)&75m zcYXlxGRn(An1W1&E-2uUNFSD?qq5m})=;yx; z82akOh59&uj=yEB*a7F`^EB3ZM5qba*w>*;N&=tjw}LJ>x;C-};}JR|iKd%Q)p8WCt`vl?Y;B7}fC}3n{!0Q^P8P-Nn0B^XY z_{r5&HY|Af`ETL}B^bYc!QGFL(4&ZVbi*|yV&Xt7^9znpwMg)M)h9(ke=Hl=qsJ0V ziCJ3SGE&5w_4w=Sa1RCS(z*32G09{~3N941g$KSO`S+VB>s6?mDF5Jhu%OKdMo|M1 z2`e0x1T=yI2i^??&xk(RM+yku?t36#(ywW7Q;!H}L^0t0P8=6Vj{k6fCp%s?iuYzT zOH&rI*q$DRLw6liqyEhFWMmpf!~&N5H{TLKv4Bxv67FMspCbPA*BaVbLPBu4#EhRn z<(ZJSE(|#^?EEJhfC{Yc1az1)_sGjDn))(9^r%V^Gd4o5{J>&nRm<8 zve3_;01qBUcESwKPMMKJ~-T5eM{PJG_Qf(`O literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/debug/collision-lines-non-center-alignment/style.json b/test/integration/render-tests/debug/collision-lines-non-center-alignment/style.json new file mode 100644 index 00000000000..0f842866be0 --- /dev/null +++ b/test/integration/render-tests/debug/collision-lines-non-center-alignment/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 512, + "height": 512 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 4, + "pitch": 0, + "bearing": 0, + "sources": { + "geojson": { + "type": "geojson", + "maxzoom": 1, + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": { + "name": "abcdefg" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, 4 ], [ 5, 4 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcdefg" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 5, -4 ], [ -5, -4 ] + ] + } + + }] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "{name}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line", + "symbol-spacing": 100, + "text-pitch-alignment": "map", + "text-anchor": "right" + } + } + ] +} diff --git a/test/integration/render-tests/debug/collision-lines-pitched-2/expected.png b/test/integration/render-tests/debug/collision-lines-pitched-2/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0856e2c713303dd763ed867563348dafb5c1b7 GIT binary patch literal 22202 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 literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/debug/collision-lines-simple-words-pitched/style.json b/test/integration/render-tests/debug/collision-lines-simple-words-pitched/style.json new file mode 100644 index 00000000000..8fd8b7a4f3f --- /dev/null +++ b/test/integration/render-tests/debug/collision-lines-simple-words-pitched/style.json @@ -0,0 +1,128 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 512, + "height": 512 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 4, + "pitch": 60, + "sources": { + "geojson": { + "type": "geojson", + "maxzoom": 1, + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": { + "name": "a" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, 4 ], [ -1, 4 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "ab" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, 0 ], [ -1, 0 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abc" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, -4 ], [ -1, -4 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 1, 4 ], [ 5, 4 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcde" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 1, 0 ], [ 5, 0 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcdef" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 1, -4 ], [ 5, -4 ] + ] + } + + }] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "{name}", + "symbol-spacing": 30, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line", + "text-pitch-alignment": "viewport" + } + } + ] +} diff --git a/test/integration/render-tests/debug/collision-lines-simple-words/expected.png b/test/integration/render-tests/debug/collision-lines-simple-words/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..590ebd449cf696dadb3f0dfa2b9c72dd49a9ccfa GIT binary patch literal 15390 zcmd732{hI3`|oYsHg@J=n=!p0&<*E#F=GjQ4%r*L}TT*L%kp>T8{#Vy7Y^B07QB zR=-F@L;`;#3PvK}|MxDBP!kcITg0p5jQxn$+o-)C{Rr7R+K?LB>Hpep!Qhl6*V~Dg z3=c;~qFd?I4A)0Kzi}5PH)Wc>C*?+5?ZO>SWe%_cYpnX{7xIc z=oJ<5xs%@;9)^eOsFL*R_Bd`UO6`3An(cwaScqZPvu2hH!;dLKd61zz_l2nb^(puN z{E5{K#kpJ$`{_F@ZD@kcYI7nrUy7teLj`;T9cL$Ow{!+Ux}n9woww$fZ3DTv;U!Bi4*3$vSaglWeZI zfCs6zzUNu`g4~3>kxPul&}3NJ8vFV?$1;Ewuy#n7Z;vdxazgj_G|lWA!giC)+%X>B|XEii}WJWnO4ui_>) z{>`Q`SWJzFC_dg}lcz`0!Kr;^B>VOf%GgvDi}XD=?q(yShD9z9;_jXI_EzzdbZ`j9 z@FF|(adeT?Nz4%p2)k+IR1G1fpSPPk1Wtt7_X?z$>*KT5%QNis2qU_4{O$u|9XI3qLJ$Lr~vtSTnxB8Oub z4J}XDzioZxiV_lzvC2d&E*csUFLZbOIkJ)I=#0rLvuJmxsLQevG-xl@o85wk3&lQX zBC|z)_=vOThwF;n(num>W1IEu7|cmbN4mONRKHemaSJctOLQ#PPU7JwopK*Tv*7t$W0{S#;b&Sv)tbR)VTI zn{IkA4~m)`S08d$3En7_hK;1;~q$w#TG7M$a5NLdw2E_8h2!?v@O2;1YpbOmMg+%6Gr%O}H+>CS`tuOem|4vsfWf>KTNLNVdqaq{e&sEM{S#b&c zvy;on%-r?(Jl2*3joOt&+q9F7S5pY+&6hR*{Cxex$B&*v=Qom*NMb{IP{QzrIQ{J4 zuMRL{)aH?om|R?l(&BJAa>Tv8Jbf0dRVZQM;b9_i)-VN6lB8r@YJ<1~+r^7{`NS6D z;cF|yy!GE?%C*OQYH!Zy>*!DqDg73c$x22(O9^~#8sOurs*Aepxbda=xpm9qhFjLN z!};D#R%Eu?!pQa$7cY@&XjoicU9Iq!s<%Lu6(eF}>&xGd+U_`cG@y<3PB1ZhS{9Xb zEDg+h@mgppad&ok4v2{IipCK;I^rBp>87`yJ(G2HbN@Ykcz!Vtj5ZcoMwQg*=;Q5e zXk>)DckjGFa?Ba~x3gP*==+$Eve5Fd0*@FQI%8%`Oy55%D|rP4p$7*6x&n;$Z|}D) zY+=!O5)*Pu3XM62Hl9)uZHBauBO^Es4e}p9ex&OPyuHsB*1cehO(H9!dQB4>>cItZ ziN|M;{qG0OsaA>c_enP1R|1Sl{lMto$ZU{cJOx@QyhiWo2&j)R@xp z@?v<5(o!KwDJdf+a(q&>_JvR>XPaFYGTR;@7^dM*2;XyQK8JgrOM^K&*RPAl77R~J z#LR3s&$UMoCcRCL^IylfTqkYJ=~DBYC@(59l4YPvm0(LzyJI>wm`_+*LVKcZ}WN&-ks$kXDkf`;g|;=T+*@~r|X8- z_O=%KbIzrG`ee$akzZZS*fKNJ9zmU<9Hhh=urp9}clTkAhaaUx=K#sUB zRUW$8l*?9gV=X5&j6Yn!2&>$_EgQ!wvGh>ucApWgio4GVQzN@8L#4E(|F>esJd4J|DPLdmK97UE^oTNMd6pkZ|L-sj}%F5mU;^N7BdwzTmxX!)( z`7PyemLlO{PEK3WDIK#ncj3zNibuPnO~-$JA093%JHLN2wy%8bOlf5FV*PVXTxcjs zt^4%5p}?O~{Z3Lt=YMf#WMmw!8U)$(CY^%7ySOyqr4X;xJL=sGSs! z!Pif_Q&Cf!H~OAFapFY1g*c)>D9;t84I5>HSm8)dm1AEbh7zCT(KyY-!cyh??Fu_P zyGMfsO5I3h6rETcQs!l@S@_VgFO?V1kc64@Z4?$0bNKeTMp{~W)~f*>T@YN%Ya#fW z20_|^ym?Ua_`~(j{kPAU`)@@kn_&c zz@xM@Mq6xfIV8mkkQ9kvNiJ8tZfrEKb~;g1R0Ii(9!chM?OH)&BZuV}+x_yeGD)8Q zuMXm~5UfJw)1gtr)6)Z)XRiyLK3!B^{y>FC<FMc}*ZR35g<8ouIg!O9*Qe?| zpA;8+t&g91aPs_x8#hj`uC6{QidRitEvc$v&@ifBcyMmTzIpJ^~=PiBYlBpR!;__7$5f-Av#f81b6pDSqL^g-0n8+)mQap(;HaG8m zmm=z^kOOl(>#aZ;)!{Z?L5xqT&t7uU)^k*m;V?D{>Fx*?5fwFW@H(YmlAM&pkgYE` z=aCL^!-Ho?8=XQueTwRF3M&)Y^g|muI-U}}T;93reevSO(9u;4Cr!0&2Lgki_sY!T zJGBC^hX}1cVrxyk@4^7#GF2H z?HUh%n2w*~$zp@t!GAtJ%Q$~W#;KYucc{CAR#_L1rwn`gBI1>_xaj{Mhla29+YvY3 z6B{itaQ^Yn$NtCXIjSe_4=pduMR6BDc@j?DFzrsrnVDyA6V1$zS03y5`pV24|M?ZO z7ZtQe@#kPnEb#Yai}Pr)845uvXz=*!i@Gm%Uz+@?*O&gPagCklpI*<-}R2 zaB8HwS#KSSp0vJ=pY;tB8%+@F6Em+OdpV{9*?=W3LjKm0P4z^@l^2~|U7nSONT_Z< z!L>?geuftqmX}{<>jIH z)JYXeaX|J6o9UaW|RgrlOvnp0G*0*&nz$zvU++B$Nl^^Zxyo;@)h_b`Sq; z*oXAguU!+r*_@)|Q`6ZNMnM^&`lP66>&4A`apU7=gwQG0&w2NdUn@E$#`gPEgSU^* zoL7U3yM9SM8i)3x3iTlMZ?3o{$i(D9Su)yNpb=MZrms&!I?=%RHetEU@BirEwCahC znJ->!UA|T2GQuaGnw+ebs}aXCvfRaLtv+Vk$I|nz;IbUb(a~e(-sX>&L(V*fS_w<5 zCAmv>c>HZfX7aLF9+W(xKzEaYs-a3U9UCI?;yH?whET?jyMZ2Ybc7Pv`ieQ5948%X zw@Kv$&l&o6@1Puh^QubHLykwBW)6YZ32VLsqU!xn+@Ls&0Gb3UOE-{;x15O1l3HKjg5mR zP&5?x*~t;4ySpk^IizL7FgPcHDPN9eD(d_qa^Lk}4>Vk3qSYnb5IL9=w&Vl_UI}At z94-kSx&$7&e~~1O+MDaj)wT@^DDR1@*)Cqf8P$Kc5cg9Kb!w5P4T=b3gCJ2?sW)*lH(R z9aQPuMW{ltx=iGpG_coSj3uF=kmE!NYY<0~a?*rnW%rWd@fK2H#PjnIjkx+%VPGZ5 zQ0%dF;3>+|I5DLfrb7$&5PWWoG0Do&c7{_u3P z_{c}{?gwpcVQ?jJ)=-a8L%Q&+p5A1@BUTb-FHrAnf;-i~3E&fxNl%~N>|!-ECPR=O zg{wk>xX(f1dv45O-3-VY@P~67WEw!2QlO|I)6WV0WZE;dtkZbp3!vaH4Jd#2^b&;l z{{CIpx*3`~KU-rM6SMDQ`+<`{wIP!#(d8bswP3quDkM^n`{JtYpIk(Sbl#~P^Qw~dw$W`}_MA>pv%LN1^N@GSNT_{Qe26uJf&z`R`vFf^Es{{MjPqQi=Z7N@2ph zZ{z*~_i=Qu!@QlpKOCo<-Q)OelEO;j^5Tc5mlO|H3PD=^+3Qxelgy|$vpTsxNx>+{ zhYB0iN0RXf$A|_jrd%Gcxz75`^o8B_*IpFnEOV_}$m5d%HMQ;ao)(`#d70I^vE6Jr zk^w#Lh{fX#t!Z;|=orKPk|ng}Ynl)uvlkXAhC=Gj&Vrzw+tLT}T!%+VHTg;3`#>hV zwpbRf%Byhh+}8eG)LS=%UfAQ4Sa$lz@rV40$sHz8R7;;d>v;-l11tTP*_`F2B_&a* zsVwE1`ZS#KB>VgD-Vn;R#@4i}t0;gpPzpi8PK_tX#+BC(dL8)CD84>P)^|O@2LXg4 z``-B{B~m<=V`tDPGzuY(At=K9H3h&ZHrQyfJ_{j!(tp<47I0`gE-pF_9pyHgM5K8t zTQml*P8No9Fkgac0q7`)l9$J+EZOB7MkB-8p!!A$piy>MbRs4udfaSf1g1}|I4p8QPb{%sss^Iu(w`4wAaD?rxglVw3HLd zKyi!A>SY=-inOe(b-`9ePtT*9D|>8es(&Ns_|63#9eJOBm_|lM2!(L-#y#4`X?=KQ zbq$TJ3Fq9cDCNTt2!b=9Qy=@yQ#M&i(9=*5HAU$@*j+ZCqFTRKuQ2s;`+){Qmh(P~jjA zgTY|!-=dcKGdeP)oc9(bf_jVfvasy&Q@4iB!=%Dguzr5+Bg%bulQ<^}*j0|pT_5b+sW7CgM zSE2rUn3?%5UoC2{*C0^U(vqtMt`j}%lk@rW6|0~lA6SW?cEzmUWWRrZ(e$O2-jyrt zNo1Lk*v>0gZFgM)K+SFqp4%Ay^eJ*|t*E&<=hv4z3Gp1VRe?tV3=9m>0G=FH-xuxO zRf4|}LEe$;xrkh_O&-7H@Sj z8f+3I*y*dan*%oklcQnvo0_r!7kg`0xjCZ6edgvD#lZbOYsu@M!~&1jtgBr|1)K%~ zVgz%WvfA7C;RWpLCWTL*b_6`}b!mwphr1W@o0_sg)-qB>M1y7x+D{A0uc=8nd;OE4 zg@x{&JLd?}h`>)06t|HL4H~a%`H&r|09Pd4>$3Q@9t?l@pl)D53$g~ZuY!U?v>{W( z?ymQnpEWP@%S6h`2+sm)6X)tGJm-N16>s`~b{<`%HN+9b&ZCr+5gF;Ou-0*fK=-c$2>r$SC-wyPZAGh{?TSk%bTT5)Caa3hU#8 zF*e8s^b->kQ$fc^obq1b(V!Bl?)-8m97hnu06n4seeE3u(s0VDxVzJbVl9}+Y|#;_ zyVYKc7ryu}bA6ti#Ovz|2na+%QUJ)Y3gi|>0`kzo_%~n3J}%do18*B80OO* zJ-28`y8XpJ>gP}2q~zq7n3y@(E+G9K^i%e1OhSBIqN{yrsQw zhkc}SbaXu2Em0;gaR_kxnk(|RzjHzwrG8p=;qG0kAq#;g2KX> zxCI6XSh$6SI4i4{9A|0S1$6+ymX?+TVhQpIvI#vXcy4Y3K&;c#bX@WO-eLq8!&Pmt zDgaLiSg}g1+I#h)fWc#3IE?oEE?sv5cZq=+FFZl~Huo=3rb+p?;(Z|ce zO3|GV)|m^>ukQ zlsw;GuZi=Ch=|DD-NW|w_Cm=~RaG_q=H9tR-e}X1J))I_ISf>O*|bdsNn9eZC6|!PfeZix$9IktCgu+1UA$!5 zO{0B*1OPg$S%9LBu))AHmE;D(Zc7d8RtebguiySq6V=1%TfdK*-~+Zb$y-ahd=E}W z9NrDLg_^fYG4tzJ2Ux&ezc*TjpsO%ZX-{#r&Rru3BmNUYWBAJ#{fieFxC8fixwyCp z+~?WHcK~blJGgzfxsSI*lxD_+PoLMgcO(FV=?^5QcW}@NGCiRa0`Yija~21^s0Xmy z106XTbm(d2zsMZ88OFW&E9m%FXLtALhYy{w@0rza-mtU3fo%66l!i})Y$QX5DE$5X z6?gijAYZrGZq0YW6~4C|2eO>L(phHm3^2Ne5zw`}zZz#wp;6n0?EIE8 zoa@)h8$oxPkQYA02~(x(&hFr>tWFLo?x0$L%$PO#oq<7ucP2oN%4;7*FnCoXCIFr@ zN8fK#BEk;;x!h9l;zfLVI{LBy5*r~ZpxbTI=Aw>9OiV!QSn=1?t){*CxWn(aTli&U zQYYOT<1bs^OX-SZEfk`nhZ2nd_ihLMx=p}aP!~eomY{SX1l=6L`7d`i7N3@UpG`J+ z)8?Feul;jP0t0K^!;;4Vv4BATtmgiS$vs+kK7=x5Zf8hYP(mUBW;T-$2TBI#e=q?Q z1w5N7Zh1kDQ$R!{mT>bztsA;okvu34SaMEQ5^mE}pi&?gEe&L8UA@Y&wY3GY40}ns z?9G#SJYM~9e<%o&EFx>*ZKZv;8~|8hVPV)7`F?(n5WZB;_mcImaxi=4LJv)VLKq8Z zs7$%b62c%$HsQ$=4BsDUo-i^ph7C9^j91!cpTCp(=n)eq4F&z3U+s^CksTNTgswnO zUt{j^pAGznu`%d_MszRWQXRj)`Rxw#6z#X1b2}RH>uhEB$-*~pPQt1Q2vA7E&>LCP z(w=u%++RL!Cp_F;KTcucV~I<}!)q|hB9QF`Vbg;A4vngLh|*4{YI@ih4U~_h6VCrc zL*oUK3UK?f%(od*e+&G-qY_I3?e*`|iMddJuUZJftih@}062Xx6|nY#@UuHnO(7`> ztr|X!kTdo+zubF*!3f%AAO*8z)vj`kyMeYIfO^4;7Z6?- zFigT;`+#P=nIkri{x92+4Y}$bQZ5d^+1}Z|_;Z~&jyx&3;ac4kiKS)59oetTJ4NsW zEYui5{wXplYCv?G0c}nTnKiFk=Q<3HJ5RyycAU_%H0!?Q=2tmDF5UhT!-F~pj1K># zq@y>v!j;jl*`~(J5}BeDG~$!^#ROt0`}O}M}*clhm6Wa2H+d&TDM{b^-G@tUqVYEyu9kg@S(lQ zb6@e}uK;0rH1Y~W>UjIKRoV}aBiY!nzGD9d3HQrX1C?CZKa6#Z6oR&cHkv9gmYtWE zSU{i5Wbw73NzV|4Uf4kZu!?|yR-3%bLS&l!7)&d{fPs{iPouUFcX18j*UD?ou}UH% za1t}I#7wG%x1M_0`W^~%>*l4;0Zp{qCSs6LtBx|j5*-|Qk+NKbaepe};Gm+3P`h9P z5KmH)?oSX{IvR60_>@l0FVKe{`!JE==*Vzr&;NTr=L8sN01zp0laW9rql@b78hKX3 ztZR+Ile7qtwB^_8m}#>OfJ zwBz6CSSg&ORunkph|Zn`i;gDZ>r!Ze3J($ZYQSnE-9BDvQ_VXS4oK}aJBAYcMu0NO zETe8M&yJs2Stm=Q2E?qcM*86+SQt8pS*S}zT-f*S0-ef4xXadCSQHc^*x7jm5dQ+H zz~z9oHF3g__yO?7)z1;?UGgwk!lfd*=|lpI%O5|fs*!$OYTsSmz2+Xtuf=nU{QW2| zcz{BPpmaEY9_z_R;MnN!=|-H1Z95q@L+&L3EAz;*78{gYz9j{8L0CBPF%2HSOGP%j zX*(=tDs*OYs}S?Siu6NxG0csz_Xz?=(I;2gquQbs{M z{?Cr2yh{3aeGsL^diE-ml!+OXZ9L$SGGYF@tmZ8p>d^sS2(0VPsOd&t3EJnT2NN~a z{Z2yS#oPpvT3Q-x*=RGb9+07%m`0(*eRqre>vGscKXXl82jt&03RBUe_0Qx^QcSF) z2_3|s_KjQ1E#Wnr3Ht?UE-m2f?VUC^O|+(-o}oEqvS3(mr-^4n>tbm09dPbcnB|os z9Wq3dFg-m$xq9n=Tx1}-k66=x{2^drAIAkO-VWy=wt z^KJdwo9$eqYDDigLBc4g>L%8XmAl7&?Yiwh#&4LiPCVcW`|I3^5eu6@#m9p+X+T#1 z^56v>ToMm2F|PhQVeZ$bC?g{Bgm!OzMUH<<%ccLR%b zS=JX4Bh$#w<=1L;kNWCRE+o$u5HQiu`%efx zJ*+(fvOW0Syd*Dw>!cj^Nk2n+L5EkI#!aT&97hbW&r~#B7uoJZ=pd{^)8ie9Nm1^g zKEU$4;2o=bKTN=r;J3e+2K{0SvC}6m=;RlY+S$t+nDB~HLpx+^p`kN`6k@3Cf-)Bu zR8~0R<>rHbo`FSSbGuJs!CRrh>uH}s9^5>&MS?!g0f`_2^$=O^fD6_&gZOd7UE^|PxhJ`!TROL)&MIknDs{Y zpm4lh>oyTuzUJU;&}EZuU_>A4VF}v|-Fu(S-@LMEIQ`cMvCR$|_A(<1O6Z z>%#&W81rAVdvh_7+ae+9K+5a%Fo8}bpru!@UTp%GVn8Y2@x^Irv>qC3`4i;of{y6xVm=LuE$Fa22y^xXdS^!kIYva%X{d|se^j*dkqF*}=6+yRRQAW>EZGD)Q3$_w30=@<}!2lW=f zf23uPLGez5Qs3U*_K+)(_ab}yV6o|~W>5cDMZHlW2?^(+lZ zW93b2sVG`evamZn{r&1jOdtS~+Dk=N6pq!Lp*;^XO9w@ttt~G^sXFiqP^3_zJ$`)h z-Me?`(yk0iWH~wiUP9VQaxX!$-wgUa$*Jg4OTC-1k((>7a(Msd&YoW+88Ws$JD-)6(Z$4RpTCGh6{a_%S~9H36ZLP9ps!-jI7 zPwCJ@exvCYgCB5GBpJ!!W|Z>RqBN^^8x=Ik^t4UQ`ytS11UU`57^VTRH^|KhYF5dh zKX=7<57wUT?T&g$f3t^|CkSo=J7w2Wo^9qE&lS& zYi5%hyuA733Ec#60M-1Q2RJ~#iCG<5{@j=`fI2!SCkI@36@FWGcJ}uEfB`3JZ*Tx% zSblux0dO8d3tT`yJNhFPuoLD89t&1z+Nn#Qu(OksfL!tXxfnq}IPBx6zEgq*qizBe z*q?qTti4^8@Ad1~d$8aM7sX$=U5D5}V6MUI={W*oB{0e~tIVO(bxi}ehML2t-IrTKNOd18W<;;J5G>T;9HoV% z{Z0q?|J)e&KfG&$Io;stV-XhqRRytK3dUI|6h!2 zy2ai8fA)`~va_%5jpqL81m_!&Aob49*2Ddc${Ul2$3cJm2{wbdj=$EVA?0JmmfzDG zdm{;f>bGu50RtDasHX!^4=|M8NeaBs#!Qf92|0=q0SRe&G0hq%Q~$7;fYM;ilmy?&V?RFbLi+8Uoe5x~i;Iiu#+PL`$68XomUH$AkPDPNq$IG8Eer+y zks^3r-u(W)@MFwc%fuu$Hg?lbao5OX*oSQHH4qP8zP`M*Y*wlWf`KduF!My^f_p(> zn#YnZb(;;H-slQ65_$&)iW2%3`GCaVn5;FrdQ}IIny2U1eGX?kp1+Pj2R84V9o2j~ z!d+hm9f_XvoznB(Wf;tMo&=jY%1>xd=;02#Sk8_FT|K zsgL1O>D{p!A-9%SN+6{Xi1n2#7oZ;zq7qzOEC6eL#3x4ypss+F6tQ067|eyXp57wJ zf6ns(k3N4+e)5DVF*&)T3yfqy#vr>epx*a6Ri6nw^aFexEqAy6!Qh}2q{(n@aAoew z17?Hmg3vdU&qP#KLPjOHEYwZ%tCM%W+}+V5{DA7V+L(EmbuPK8N^kv3a~7dx28h}Y zIEbMT^jfr&z%GvX@R3}Tzu6eHi2TNY?95mA0e{;3kHE00sf| zY~1{PHrr)V(%0J?y5y$MEZwv)`&#zcEg+HPS`d-R@3r4#3`hp)<&$0Kw{`+N zf3BMsCu1mc^t*L4iyvMn(#9}oUsPbBu72%9jY5QL_1lG9A4`W>x!JUZfNXjOT4>;Z zmXwqPt|U?Ky~;2O@A;9PpW%#Moz$t63-k%ycubYHK}(3$OXp%g#X&g@Hhb?6?+*8M zhgZFIV>P9MiQ#O5Z}TE-atnZ`e@RJ_$jc+!)%f|5x3ovo>1d)R8gENLdl$B0w^~Q- z_oJv2mQKZHVwya3HW#JYPthT5D$Ob;zd>?@jETwMB&o^}PMH_ad>if|*AEL4i0Sz| zKW(bPczO-Z{<>ec((JwpPwNvG=?gq`t#*|*b(58o-z;7~!b{4NIY?a+iNI1U4TO25 z3$sdCJpmhZ$tWIxlzs`L-l&}KIywn+#uCH8`>?)q(}Rti++$}+&;3gixP9B_JZvhB z8Bu?7pxX&cQvr-v#jeocd)(G0unu2GiHBZ|;z{T1whFT5KO#D*hp~kGGSRu<`TZ1U zr2h_Gc$B6l-O_L$JV->sw;2K zC;@l{Mh%67(dEnCY1TB=LC3jfwd+H`R$E(%;OxUguqk}6vLQyD2nh0w2m1<7%7rsI#jdYvYv+FiR8F`NnvyLu2KM&+P{Dvxc55-MV}0gWF!l6rDQM$h zu_`d)$}J>Oq_z*z2Rweu^k;Q5K?j$Ega2g0t*<@wZ}yis=C|ZV;~zZO9&7oYU;DF# zGJ=n=1~_EhE1(qxYs1lTZU1oR_8!z1en&sX9%5o3m>xo(4A%BObk@gPf><@}8U6kF z2^|?&y9^24Bhr+09I&7C1GDUceM}SVw2%r7g*sP9OUxk${qp)PlRf}}a|!~d=UXHg zG>SFzpFWMTZ1k=4-*E!Wr+irP;NU>B+^YGVH#BH$usuL!4VlPWW)h~|ogoFS{0NY7 zKP3J3EodRxAh2(wkPB)I9=bf(2!5=IZtmB|O`Z@mP}Pf9g}XQUezOD62m~^4&z9@Q zk9dpbfRt76(?MNe^2{_}h$^s!yK#E((~GMkYd_qk_9#A29={dLJxndsItS$_KzJbE zYh#xU&10}yv9YZi6fapJZTkZZcDZ?T8R{cJXx2gu>qs=KLjaC0E-#NlA0vdcrOl@2 z$;*u(NXbpx??h22+BO2~La&ddZb1p)1+Fj%98ywJ0zr5C{3-@|a)f^G(@QOYFI82* zNHy@Pu5NT@Bfo&;OW^Mtz`F;bV$g=30AS#@HXP7B_{suoLrx37)Ih9k8ulXFIg=c< z4Wim`;|;e2p?e3G1Y4P`i8sxm4qj*DSc)zg8n)I)Mj{|-y12N^Zq9Y=?(SBAT|6@@ z>*@374pXhcDPa_{!y{X)kdz@{?BVMN&nl9HOzoSah8>b72i z-nEL9rVt#u;b)w-Sm%g%3;rUZ{zAl}pS%(rjfEZ*GBQ0HqS z^r*oaUSTG7{|;0Ts~a2L?sZb)?C^-j%s9VN2Qu3Sr!A?v6V!Zs*e7dm*uVZ_Ra!b8 zGC2?qU0>`|XcA`}9HV1D^fl)4H;c^ z02$G5Y-;-U3D-Ga>?*-6z!VzvXQyS;Z?!(rDS4yUBN;Gi3W($~mu!0q3{kKsI*e5{$xmyTLt^6n9=KDujNfIUQ+muoHjU1-sWN{I{ zC9`b1r~t$)_Th}u=XcsNq_7H9r%v_1+lYEd54k``4mCYp;dRPP44HuUm2qJ|T;QJF zfgDRp83E?}hxFP4xR=Yysk-ew$n*g^s;$=VQ(zm(t4CK=(}!!RYSNudekEP{BBI*4 z%_g`juFb(t)n9)1N86ZnSU0KfImXDS{5n>zTlr1d!neP-Mo`nmfqQi2$D!8y_j$D} zgOAC>h*=~M$uX3Ri^F3S)bNp)0qhD5Sq|LB)hVP;+T0sw6kE4JYSGf}yOc0{@;%xH^fZmaQMUz{sP) zW`Mo8ROGqUiLr8=vmhE}Q>PZ7fJV_Js9{JtI^ZKv>ABUwBXVl^Zce=y`2%i>YBr#x zSKv-8VTMS!lU`W6>ZTuExR$;qT_D1kSws|s6+?&zT2oV{gfxMo>{$jKN)kwfwG=Z%JRlYacDi$w4;gcwtSw^bqk6%&SX&bfb%D2nu= zFf!ur1$P4~u7K~a@ZlXV0v%K*QRPLmg{YG_urZNuZ>yv>2-a~-xkq=w5NVSo;jw72 z_EAyeO4R6Z;$T7gTnol#2@&^=wa;Dh^wuh=3DvX9Bn^Mr+O U&&YfxeEk=%p|4)9Y7_e305NY8lmGw# literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/debug/collision-lines-simple-words/style.json b/test/integration/render-tests/debug/collision-lines-simple-words/style.json new file mode 100644 index 00000000000..e2e84a8ac01 --- /dev/null +++ b/test/integration/render-tests/debug/collision-lines-simple-words/style.json @@ -0,0 +1,126 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 512, + "height": 128 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 4, + "sources": { + "geojson": { + "type": "geojson", + "maxzoom": 1, + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": { + "name": "a" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, 2 ], [ -1, 2 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "ab" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, 0 ], [ -1, 0 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abc" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ -5, -2 ], [ -1, -2 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 1, 2 ], [ 5, 2 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcde" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 1, 0 ], [ 5, 0 ] + ] + } + + }, + { + "type": "Feature", + "properties": { + "name": "abcdef" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ 1, -2 ], [ 5, -2 ] + ] + } + + }] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "{name}", + "symbol-spacing": 30, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + } + } + ] +}