From d7e8ccd6caed28364903e8b0a6e010430417390c Mon Sep 17 00:00:00 2001 From: James Date: Mon, 2 Oct 2023 10:51:54 +0100 Subject: [PATCH] Prevent beamed stems extending --- src/engraving/dom/chord.cpp | 2 +- .../rendering/dev/beamtremololayout.cpp | 2 +- vtest/scores/notehead-offset.mscz | Bin 16838 -> 17427 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engraving/dom/chord.cpp b/src/engraving/dom/chord.cpp index 5cf6bca35a083..f608761de6147 100644 --- a/src/engraving/dom/chord.cpp +++ b/src/engraving/dom/chord.cpp @@ -1420,7 +1420,7 @@ double Chord::calcDefaultStemLength() // when the chord's magnitude is < 1, the stem length with mag can find itself below the middle line. // in those cases, we have to add the extra amount to it to bring it to a minimum. double upValue = m_up ? -1. : 1.; - double stemStart = startNote->pos().y() - startNote->offset().y(); + double stemStart = startNote->layoutData()->pos().y(); double stemEndMag = stemStart + (finalStemLength * upValue); double topLine = 0.0; lineDistance *= _spatium; diff --git a/src/engraving/rendering/dev/beamtremololayout.cpp b/src/engraving/rendering/dev/beamtremololayout.cpp index 4b480f9358691..1934534e90bf7 100644 --- a/src/engraving/rendering/dev/beamtremololayout.cpp +++ b/src/engraving/rendering/dev/beamtremololayout.cpp @@ -1085,7 +1085,7 @@ double BeamTremoloLayout::chordBeamAnchorY(const ChordRest* cr) const return y + chord->pagePos().y(); } - return position.y() + (chord->defaultStemLength() * upValue) - beamOffset; + return position.y() - note->offset().y() + (chord->defaultStemLength() * upValue) - beamOffset; } PointF BeamTremoloLayout::chordBeamAnchor(const ChordRest* cr, ChordBeamAnchorType anchorType) const diff --git a/vtest/scores/notehead-offset.mscz b/vtest/scores/notehead-offset.mscz index e62360d424dc206736c9dcc3b4418ff4e926ccdc..e5f86dbd6809a1696489a960878e885518d9d850 100644 GIT binary patch delta 6287 zcmY*d1xy@Zlijk&La_oZR$N=4zygaFmo4s2p}4!-BE_w+h2l^ax1y!EyIZlcKyh8% z<$8Z|xw}awFPY3_zT}%s=DohqXYj~pc&Z9ObP@mn1Oj~1l&r?HeM9sQbsRLP*W%Fu z03}iYfCKG~QCMx^nbnqOhqIHK$`y23eN? z0_I`0N|F~#VrEqA8m%PlZ!FSV&1MYT!+X6b0g#*K6^upk7XO%$hH6} zrlpp9R`2Aiq!mc?Ne&bpdIa<6wjkw8*7$$@Q}PvA|L~t#3TksVI@va@Gsc>u_yuH% zQZwnI98j(>cOO17CCqQ|BRy`itEip&>?%BEuH!QvS42_l|)vXb{ zan%=}{Xq=GYU8}&eyy+A*8_h51xumxJ`*wH+F;}Pt`?7VrXIZxdOc1jgT57IGhI5o z<{z4Ogu0T4HCuHkksy19&Kb);2~_|qQ{lN_ZSpf%+c%uK$q>os!V;&780wU|{b}+X z2#f~`CPt)|&?moy+g+i?(r}NrW(5Jk0m;>i9Vyi&3f3kDZ1MN}>|ylpy18WURU}X7 zW$FkABPV{`RizjpZ&TT1JG9Fc4*Nkv*#4^m(z#wKvaz0NdUSMThzLURm$3>U!vVb% zZ4wY{sf5@{S7?C3nW^W7HHJ)Vr{qQPbwO6FIHsotrUbUjpF66Q@+O;Paza1W(Wdz% z#%HnvH`icHu|2uy#vE)d`?2jIN@NAu-_BfcU}h@-Z9&3OR)hXKGdfU9;V)cK+f9?g z%y){BnPH?kk%OLc-+==$V$m~=knfY48S8+#8l#G17xg<$F)P#sutJ+Y_4Eh$xx|^e z*h;&F_76_q23JziAhA`W*95%#hSd1J1y=_|E68A!lX+LOin7`H#pvSC=vc(J6pBCG&Q-Q}d*a?f&GC^Bx%9L&7P5myKnf?i5*Grm;5)`1O+2YN=$Eq7|3p#f+hx>_tMf{AzLV0Q~cng@U zcV-xBLG~g`AI5Mj<8b1ISy!wuob3+l z;(_BOHYrxjp(*SK*mj4x^Vd6FA_}>Er+pi|oMUF3lv))7ocw`N_~V6RHZYi0SW|VT z@vn}~hvW8^zObIbSZ9suTFvCnrVV4RDVc%g4KJ3Bx?I>4PP^$>cT6r5gGDOIA{#^w zq&!ejng)sp&S59IP-vajI^Bu(nV51xYb@jF6AwO<(=8-d#PXSc3!q`DVfrutJ(W=m1E+vf zYQk$!jCVqq3pK4OsJpv|r?&00G`F$sv@?+_x1-Ib%DWzNa%-L`w@E3&9&aVNY4nid z4i1utpx|2M7Zr+Mna97Y&%^~nYHtFXj{0o0yOW#0pV{YheY?SPZ> z-MV^X9o?zv{w_}!PxCCI ztMVr-MMLVM>z>e&5KBVWmW-q)GKksY3I9O;hoqRs;_K`AMHj?7(4+E#l;M%mZq*x12KfFw&+y3aX83gwdqroi!tr1(eT*ms?H^ z_InYmwr?)%<|+jRU%Cs0jd>(!``+M3SER#c%ZKQkHJ@!%x28cLR)>-g<(B*H#BXIk zRaufDq(QsUNmDt!$S#_<+bT@?yU59DDObh|Z)9+vsr3FV)e!sfnos1PAJrqRa>G{n z9h%D01-5wr#vceoZI#zcWvN;r{j`>Hj|SHvggQ{t^Wx&Y--#qYeMVSV@6^<3R~YQM zj(rYBqzbz8lGNzCj~{mrYb`7+@JFNer(jnnuIE4aXVjoLq&THs8WFifZ{HS&zrugG z0@jn^#bH|3hu*s4Q`=tWpMLSf_+9e+68N~nsm_G^;#Lg9Y0O3>7f}lamv2N_Ud6QtRl}@$%8aM%*JN0O$8DZ_D$yk8LRv($~DQF?_*74OI<$wG7(eh(V9!AIGO=5 z@BJD+eZxQ<=`i35JvC0Y`PQ{LOz z_r}KiJvok*m8^C3^&ZQUG$*KN36j9jYL&;&LN*Y*uWXa@2j*^OW)nyEoQ#uuS&6Cf zbC0vf$Ibx{`4ht5!+d-{={)XMZ6)aq#T+di0Avu_GrG=cNeH<^)FI z+_ZiP8LL6vne31YsvU~+bMe3Llv?l^(G)9!v+%JL~F=*{~x_2*IUANEbr z*7nnjO`?ZUVUEhm$~HDOrw*AYi+2w~*)7>o*yF>7>wghLbou&d-?I#UHas|e_VT6T zd=b^t+FId}w%v4NY(_@@1*+6DO38mri|ijvkPj6e>w|a-HK*~40{#!$b zi&eHhb0O!!!NK?YyE!2c$vNnjr6uspD<(Sn4<-`AZfcqq8-=G<^xX_TnV6Uyq{_ll zbnHBfg3Ml>5}OaR!Pq$UzbbD@Q`^u=OG`&?ZZ?#mMzzP=duZ8L@OG>QF>)BXBT{!) z)s?A=5IMT7F{$JD`Bo;@!oNOnmHoWdU*jI~VmeTB+QCmtOl#a&ZtmVp5<>NBqkbw_ zSTi&E7+S-V;Po#ea=+dRv5N^sfu8H6{b4@e$Ep3BmYSOW0j9I&^*M%}@jCx-?Kg2% z_1#SPFGIzHoQD7nW2Md`Z1v)L>7Lt}S%TT^uV2eQ>tW=LQ>^lUdDd0Wp^Q+1lSofp zLQ`I>5W8OqTFC*AnHPDBR!ujVHWJAgd_}mhbJUmaZ>8TUGcq3Ke+vm!&>Ynfv@|>( z%=eY%%a@5u&BKcHvFEW$-2CfMn>aWflRX=|r+d!ExjUiZEF~qWk?9juD#FdioaW2E zzJ3)z+m?@6C01p-mVvXVq0!#WEDn_5W%M{w0dH=1=5bxlXq6(z9yOkmsC07B@+8XG z*d`)S#=y#G{x~MjSYM%uqZwalVrcjWo0<7kq#13L2KF`?^GIqSb^`T|zoLh-lf7CV zD=8sZYU&3Ld4Z$(C+_pwRIvNi8$K#x9LFmcT~*bp`t?=XSTP2I6((`v(9t;n~3gO}zzH!lwcjqZeR4sfFN~y9e3X&SjYnMBH-JvLZRIyH0n;P^5E+)@__G0?*Y5GvzE_|9s z^V~oj?~0fqfg!2RpJl(~=z}d8nSas!ZE4e}FziiBmp%dgQ=x|7+qb3oJ?j^<=p;g* zD1xvoZM+j6$WgY9f`tSy`tazeO>3<(cz$Wgfa+}q=I>JjNf*TqLmt-eB@l6WG&D3$ zo_W=Q=cEq=o&ly=O#|j&>hZH&iGZUDrDe51q08aC#mOUgyXcAA+oo8Je#G@PDUN7} zKWtq=zC)7M2bW8L)>ikc!#cw&m$R#=lM_lTZ4ueej}ZhkXkFgp0a)TSWo7%)6TIu7 zlKxFsXXmQkkEv3_W*<$&b~bMqg1^pB54+2nvW$XkIQ_q2y<<;)9SRm;*mex=6tQ*_ zfgKrk_uslwsV*X}j$Zh6(Po-ANW(qb>P8PZuwjlQF-t zjFs9QIc0;*fC&?}Z!+MN1p;KMVD-0rlP}xG>X4523%RL@^!ZeTgdI5Jheq~+Bh4+R zGHfSx)dib*N9@AF&9+^OstY=f@g);d#kI8>U|I)@5Z=R{St#?q+yUWV4xCPY&7cH?Jus&d@JYl$Cu{q z8AaQAe5atqw&TlD1|OI<&n;JNvAVu;o&cSWIq- z@PqF;k6$na#GXZ`hYi4;*jP zM{-_T6cl`B{lcuIq$G7i673~POfd_kerl=AD!e<6V0t6{>Y=dZ-aJ1V^;%t>ONqaK ziahjtU}afJ3HFXGFq!zLi>aN|lRf7VL}jxvhSWe(=_fTXxEa|ap_Aiw&h!SYXh)cz z{L_an<`{V)LE)zk7+ZP@?yIfsC$P4T_-~d-kSuT`{uA8gk$UTE7IE8XQ~?j`0h5D2 zF_!Iu3mvxx(=|0{q1BJlU^tW!Cd}IT4kM(SLi~ejI1c`mm#e1K=x04EE34pfi_J|u zx60ThdGbkjJOV7>*T|#W(=T*Oz`?FTp9+)9j~5Pu9kKh}Fexe1-NWJGVNa&m7slu% z*N6=GFJKXc%IkA~(1L5+bPGCf*wX4<#@5!{nV)#R=Eqv@dB-u2Y!$cVg8THF+`=ZT znrLr!v|pm=hg-4$@%9}o>Ul=u5~Qp__sk2@@*&c~bfTakd^(x(ctVLMz$Hi=!kUfN zp$3J5pbERN0YsI6lEm*{{r;tfEiGkEn|U*8`w$XzAX_#(A)%#L+`+|^JYK3*6|X{k z8$aOG>+G@+Aa{Ow4!F@U`SM`3nlgv6uM%+N`tJsKeQBrw@_ZMD^~FQnZ)8+(GeZ~IvMctK#V=3A zuSm7e?^T$IAvPKI7~PMz=P>y5tP?X)IwLDtE#1@rl!BR>FU#*9>I6G zPz#5N>rMw2qBddYkF6UeQCr0JRtPiG1A{-Cvc!TGEq1dv4so;2 z*l@M1;ZUYA26lfugBJqj6~Gz=a@}f9;eb7GmVzd0Y)!3ManZJwOB4o$pE$jVy>0j9 z9-{c+;Xz}3&megbavvr&s|6_fTjBuKkA;Qx?j~STPKvw!BUwsyt5iXKL7v=_LXn)&;B>5u2H-6QmykWNeSYVyM)BJO2(81}M=e}f|F?v%g z)Ihm2mK$H80Em?V4fI3Q&st7Ag5@W&eWmgOEb_b!iEt;N;G8}6LOP9Woj!-c=P;PF z@C8Ca>uQ>I>D?boTN35vjWEvqR(U0wBmY~0VcP#t(Q1ly-H7M%p0c&I2s3mb$51nL-Fm7N~96GY}$2uO~@ zp9+957scLfG6u`QJ;d$`CwQ)s!n#dv3He0&fAtV7Nu6942gNn`g9tTDOHHAhi!gBI z2bmA`loH{7hB5|Cp(%|FqumdKDkXVWa(MNVW4ec%0o*Y}9ph|ft8I9Bv-z%O$9a;>Sb7xe=V4*R?tOVd^yUOOkueqO7xMKk}W;!3!9wZLcG)j+b^hT7rR0p7>VPCwf!282Vd@jo@sll(|K>X{Ex|MG0r~2l;rmO<1 zU|=?=F^|5OzLuUR{=K!Vn$cd7D<%ektqL8?DKN1MYFYQ6@}xBTTFn|@%#@YKqBF&< zXu|z{j!p#x1!OTr%+_f9#vdwcj7I(H5EFbez5~;WwHsQ=;2fNI(d+G?l@$C7Y%jjw zF2t?&2ZDXclfPiE1&~ZyZH3*J;z$W@l)5>1#lp)kpnL!O{O9QdFu#tj<%`TrOwWtE zHChnX_S%AufD`xk#iN+e>6HAU+#1`UN6{OOnDcglduo?~X9cVDVjpSsowm7fmuz-s zd6x7%MFIc!?#hXI>y>mKV#6=vvSf`2kY8)TR~eRcez3S&5&t#@1onlA)ndDbu+|`I^@fJA}Vd zd$`^mblOO9C$m_hfu-OD^2e!dvy=woz!9-LQeg}A1Z-&-pMfs*i<%wI9&0%Te&E@3 z6;>6!j9^_OtJa%%cZRw)@9;E};IwzQ%ZY)ae zodSs+ze!*3;pjta%XSBxrJFK{$5c9flzU3fqW9gxzXtHu>|go;Ps5Sqalt3#1JBme z=_G&qe#+t`m!nQsRxA>b+^M&~CRTdJr3LA#$kz&}PTuI6*>s`iV;+4(IiTq4Z+E*d z8BQ@#b)!;GoWMH8yQ^_C%8C>r1)219W8uH&@Kk+fpIi-H@h?A=0+rNNk+JdVGSvs0 z8kI~58jYhh6(>TbaYcQm-Yf$lgx~C9rq8j7AbpOQ=x7CWsA5I!23J70HrE;+fpyOV z6M3Zv7?_~;w~1m;qsa=(c_@6!@>4FN zfhPB8jJ?C5kgt&ps(wAf`%#kBOQJxljj9n_E9abbZ3qUaAp1bS$h(!v%qv@Up?ZdN z-|Lwr`!9NT6AB%8458ZeL1=XL>UY$>*T$BUgnDCr)%h!K-t1|$rM-YLJZ_|8p<7XO zA5#R|tkWtHs)F|FZkl9-TQm(j$Y3E9e{QD41x|j6}^@`SOva`dZPGQ04;WP0|lL z^C;?iOEYLqJ2TAz9XVSd(L0OsojDy)jN@EAw1@g|#Agaa5qnk?zZG=P8${{p;P85Z zEIWNKa>~}Rk<37x5ub{;Fe1!qs15RpV{GY?UotArjh;fO; z&{Y^dV)4zxn3IVr0)#6{(Ts%9II9H05}4%*OkR`~xa=vW-j$aHbh) zN@k|xa#z+E|21dyjolsJ{2~GX%83C0Y5<%`o)(&w>MdllKi}6V%{B;RG3$DwWrkvj z<`r}Vlc0L3S^XIEW8-DPVC5Dy5|CdHN&X9?BrvgJTJ*0WFnVn-VC!Z}V%f+p%QL(F zp!H(j32i5JQCoS}j0W~0Uqz%xW#R$=n+rcO`T(!6%^nGmI3AWfEOFvW3i$0BT|WwH zfsUYauV0wZwOG`*mirE|9qx;Zfgjq)k}L~y!7RYeEm))6l&2y+Mf38$QW&vRuhbBl z7pcdS{9^2-p2A1V)W!&@v%0-2UXSgF92^klh{VT+*&!0QZ7~7-7V4!kw>m7|t5{Ve zs&WKJq4KrkEx_n_|F@MxCi;^VoGH8z+E6l4S(5nTk|2##hjkKThlRvK<=lL2QlVWH zVE4C+K*2#Is-v#6QCU$KKC6NKND0vfZtfb{&3cCB`9`~bbJg{IIwww@=I$I?0om4Ah+t`Zj+WSJ1k&!W?DP+9MmWZHU z$k)#9F&PKmz^}O@*6ag3yc75Fa6VBXAp{~@90CM#wLng%DSd2hZv0Y*#_WBHkE7_* zz{XBasV*wcds&Z(1Ht@NysOaW-cjHuUR08&nmV)R2k~8oa#B?nLQFOb+WwXKAegac zM`q@EJKpEy$-CDGv+SIvEGfDm9+lTuWJB$tuKO#GyCUx4m!lYkbXdclcNo0i>bCW{ zdrJ+A*eMK-%et9i4~g-Iukzj!iP$MAD&7t|z#Ss%Zr$CRpSei}TaQ9(LhqtTT%C*y zOJ&M`u<`D_XGrC9yEs@vX)nO6+5|5IWjiJ&1O)_80u|ePsWo8#%K$b$h&~j$C5DL^ zqN@F5*cl;77ocGVScxtuSo;w$x3qNU;jN;AhY4IBFv(}8Lp;aZ*ttermiOiDKR+2t z<%1SKXLvG8jE5&EunG;5Kzk|DZ6@dId$rzurCQ;iyvBHiK}blb?Db`VtE7Wb zP(=kD^ZDn>)2B}Z-}3A6Km%oEQPiWk7WQ+lKIP4LarX2N=Y&v(_o!zR0q=7GR2y5w z-rjDWE>aP%n7qOrWJn(4;3yYLU{GakJ15=v`Pnp$a*9@o((Ej^I_a#dL$WecMW3CW zKL40qJtUMJCr-0Cud2wn@GvtpNkz%iAfWNL7Vi*gX~>T7*z~3LoRX~C zmLD1G_QuY7f@aXSN|<~+AYpP1#QE0e*=n54@%qS#ohG(2(otXzRimhHHZ4_?goG#+ z{^v+#3*IkXv$+SoQ>ExjpmfrI1qRZjB8#wl!_}{zw5T@agF(UjHzNr_Ig@?CKl?dATH2&`53Z z^XD8YbngIdp4)n?;*9_wi)oy&e5ZHx*C3UQ+~AeJs?9noy!bKFw-&!yurw{R;^%9; zjX?$~(1qFx5%5rk%5dX&NJ>e$X*WP9C@6|5yG{`L4m{V_H-?pIY3X9Ivp(?_mX?-F z$6V}hoFDSx@X5JVtIfT=ZyJ*3UmW~=5WP6-Q^&{Vdji)pbyJ`lxTRSHqN1Xrv$NAw zvzs6}cd}p!i9{|gE~ZiU)qPf@97}nDv5y#ufo?a@iN5>YuTU#zXkb_-0J|!t$?Nw| zo}ShqBC=)_%6w){VlXu))ak3H4mWY1nD~}}{N`IM@YK>$h_+QLJ6&vUvH-pP+z`Ln ztK45UxilPmfJ;wB$Nspja%?5ESj1ieYUqs7$u#20U}FQ===UU!r5;&t^<-#UE*LcK zhjw{-c^las{Ako|q%m>3(oxqg3ZjjKXSJHs^cW%TokXzkXk(GFtSJA^$s zDXF_jV{L62@nsY>l9PTIp_6dxbNRl)9ZH_3g+dW?Uo{m0%mX?q;oYRWjzAA=Hr+Ia z(04ADmb1kr_r3UajRr+Szly#bP2E$|w*;!$SzD7S*S|V#<98zI92iK?$-F7TBb^q% zx-^he*pQ7fytt*z>i4^Q({(q=F_X!ODe)mDCdTS@1u>(v$)0Ki#c{HLzNQ_aIP{IA z^f~g%9im~_be|y>=u(3_4`mtm9a=Noa^4>p`LvKH9Aa&4-PJ4vmUxlNCqE5(`Q5{6 zZFW$(T6Z#vfS&ZBXP#!9LSXpN|I|O|GV$c+^1P$z*wE06b&IR}78UiS<#xwmTfpy$ zyGJ2O-0z!Z>&3;y@xa>1GnBK^Bow8o$t#1jA)!pYZP?k}fuZcrt4c!^AmTfmAmm%b z%Iv|r6577>fID(Kle&hQi5(`$)qSf0YyN;IIND*XbN)M$I3_Twl$x81iwo|4uhv}5 zXBA1NjPed$RjIArUtBUrTn>Bn1b@Jgq4hQil<(dM-09&XcB&B0ozLNfvauBc9~-zS z*x1^R4Ciu-KZ*ka=w9`)yZaUL>w1TkSX;;!=@*SQk^~9KI15} zX&W~eJZ#Q=);c&jm49CHiSoU`c!1IGYo85-8cs}p-G|F`Ao9k?Y@^s&Ejqf9DH#HJ z@iMPWU)b}*+h^k$F0RjRXn5N8Wr%RaC%R4SzGf}U2K_F2*dJ^i!J-y7Jh<=@IhS-%(<8lFV=cRWh0{)66a{_$gH zb8SNVeZ%voojCm^VNU~!yGJ!PUKkY5%xJWk0iSV@>KyF?fqPIjEq-C@V_YuGEV6um z9yAw3AHT4&($(Jn33z7ocsy8x{5Gl_-8WUP%nAbiFwZ;^g$n1GCMO>6oLq8XVi%?- z9|_?W5Lx&|Rhrj!%KkLgZ+aLQ@)u~3iVumA%VBagI$rJG@>p3SUl!sAI?`tFUD6@` z&Os9s6MA}y6=>V%ILW;HM$t!)ARP17d@d>M^4%KJl$1NiwId@VQcgJoNaP=NcwF3P z)jXwql;Gf?q`q`hjEbM{o$fcUVA)!C_xVNkXTu{SosiH_t_yy(D5E7cQ+`2#DCg_K z+;7gt>vy4yq^Pc(LMl2sx?+&BK`F7+`528Plaaq^6qGHns)ZQ@l6oC#G1M{*c#NaG zdS9!3Mzz)TIIFkP^yKWwA^n1BcAxjO2wU{6q=Bgc$=f(tER9J8j*=6`Ai=fU-?iZN zks0-vqzw@Yx-0wTx#XC$i;JA>Y#dJpMlug}aW!LOe;A31qb&|f7y{f#E9f2?+Vvoa z%dL-$hQ3A|ot=e+&%X_p+0+bX<`wgGwJUZC1j@*?7szMwwb4$Gl8eRX(ZXsP8yjj! z`va!W4&!tAT_2a0oL1Gj=wO#J)z#H?b!9MkPPhk;4}o~48^@*>WJT*z#{mb2aWe|E zHt$*UeXt&K8(L~=YQ8yReshEq$}TJ?QYVt>Ky{iFz+l}^7ex#CTZ0FOz1~*%LOSN# z8^Hw2i;GxKGjzu0=mX56=7c3A=>Zb&gxS41%GK~le6Y_2N1O%(f?j^+ixEZAdn}A6 z3=CA=6F?4yWuKgP-tO%Y8qP(i7#tjWHK(6Chh}Pz3=fhr_a08fA4I~ssqf1)g(tZr13f|X1WW`O1e^5xiH-g9#$ z$0=Px%1F}?i;@0H2?r1XEz~zZLv1Xk*h}+*-^{0P3Vy@nI(x-#LZYXprf!F`(5>G8ObYXMrM?PfvI2466XKNcnvlv5Py%oedc$sHH?V&E@u4Ko)wBTWSSAp!jo3( zl^&!v^k0IxXeSP(Mc<)|=Fr0199)?e+4BM3P0foR%_W?KMp%RtMS_*>vs+XWY6y_( z@Y6aN7bR(iw{CS>T}q#ydLT z1@swIG|DgvYe%26acVDlg4xItw&@Qdptg;4!hPTtsbVeG|tAdqPF;f-8Ap zIp^6orZ&wh{&fZ86lD|xlWMg#xhm;zu$6MI!dK$H$S1E>bc)BKPUh3CO=x0qVD%Hb7c5K53h2@US$RxU0RCB7$pn@=vOq%65kR%7g-Z( z9vPuXF~p)u4L05P`ia{$>gjWqm7T+%H~4NDH3=V*zY$uix*QhSjN$t?6_G}5z(D{2 zK=f}s{Tpx_S!K+>I2K+hJMmu)l@llWH=czL%Ly_4bMD1NWb# z|LLqZ@)VDDB;i^z