From 377e1adbba760aae482612ee895d1784dda29ee5 Mon Sep 17 00:00:00 2001 From: kurkle Date: Tue, 13 Jul 2021 11:23:03 +0300 Subject: [PATCH] Fix bar direction when minBarLength is applied --- src/controllers/controller.bar.js | 31 +++++++++--------- .../minBarLength/horizontal-neg.js | 3 +- .../minBarLength/horizontal-neg.png | Bin 10242 -> 10442 bytes .../minBarLength/horizontal-pos.js | 3 +- .../minBarLength/horizontal-pos.png | Bin 9935 -> 10255 bytes .../controller.bar/minBarLength/horizontal.js | 4 ++- .../minBarLength/horizontal.png | Bin 10976 -> 11336 bytes .../minBarLength/vertical-neg.js | 3 +- .../minBarLength/vertical-neg.png | Bin 9031 -> 9029 bytes .../minBarLength/vertical-pos.js | 3 +- .../minBarLength/vertical-pos.png | Bin 8979 -> 9005 bytes .../controller.bar/minBarLength/vertical.js | 4 ++- .../controller.bar/minBarLength/vertical.png | Bin 9015 -> 9228 bytes 13 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/controllers/controller.bar.js b/src/controllers/controller.bar.js index 9a568cdeb99..1ab4f2217fb 100644 --- a/src/controllers/controller.bar.js +++ b/src/controllers/controller.bar.js @@ -170,6 +170,13 @@ function isFloatBar(custom) { return custom && custom.barStart !== undefined && custom.barEnd !== undefined; } +function barSign(size, vScale, actualBase) { + if (size !== 0) { + return sign(size); + } + return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1); +} + export default class BarController extends DatasetController { /** @@ -426,8 +433,8 @@ export default class BarController extends DatasetController { */ _calculateBarValuePixels(index) { const me = this; - const {vScale, _stacked} = me._cachedMeta; - const {base: baseValue, minBarLength} = me.options; + const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = me; + const actualBase = baseValue || 0; const parsed = me.getParsed(index); const custom = parsed._custom; const floating = isFloatBar(custom); @@ -454,7 +461,7 @@ export default class BarController extends DatasetController { const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start; let base = vScale.getPixelForValue(startValue); - if (this.chart.getDataVisibility(index)) { + if (me.chart.getDataVisibility(index)) { head = vScale.getPixelForValue(start + length); } else { // When not visible, no height @@ -463,24 +470,18 @@ export default class BarController extends DatasetController { size = head - base; - if (minBarLength !== undefined && Math.abs(size) < minBarLength) { - size = size < 0 ? -minBarLength : minBarLength; - if (value === 0) { + if (Math.abs(size) < minBarLength) { + size = barSign(size, vScale, actualBase) * minBarLength; + if (value === actualBase) { base -= size / 2; } head = base + size; } - const actualBase = baseValue || 0; if (base === vScale.getPixelForValue(actualBase)) { - const halfGrid = vScale.getLineWidthForValue(actualBase) / 2; - if (size > 0) { - base += halfGrid; - size -= halfGrid; - } else if (size < 0) { - base -= halfGrid; - size += halfGrid; - } + const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2; + base += halfGrid; + size -= halfGrid; } return { diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-neg.js b/test/fixtures/controller.bar/minBarLength/horizontal-neg.js index 85e6dba68e5..c625aa64e4f 100644 --- a/test/fixtures/controller.bar/minBarLength/horizontal-neg.js +++ b/test/fixtures/controller.bar/minBarLength/horizontal-neg.js @@ -7,7 +7,8 @@ module.exports = { { data: [0, -0.01, -30], backgroundColor: '#00ff00', - borderWidth: 0, + borderColor: '#000', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/horizontal-neg.png b/test/fixtures/controller.bar/minBarLength/horizontal-neg.png index 4b8335a436d370750d94727724b65d41332995fc..f012c82b6fb47245553eacbac130dde0164c41df 100644 GIT binary patch literal 10442 zcmeHNeNa`9ilZX-TN9rr0syST4unPnfWk`@SX#gzP0pwe09Oze8p6n7&B{Ks zO(KZi{`<#NyVJ>jHbp8M+xSw%mV7oD-Kli2P6`vB@4dSmJNDj_8V)CS^`Aix9;Nr@ zh*>Dmj z*;Jw9F`XDB{tT4#Z>HrHguG9ZfH7uLVQOPUoPKP8Ki0C?K+B^$@(UVC5{ofZ*=;*T zAM}*6*rih_nVN-E)E#cJi*e*5&GECps$3Lq1!hp%x``mkdU?3MiYXLJTt^6O{xnJs z5i#6a;Cf7l?ArF(LkYkFN`H%b0^6h>uD2wM_9w}zyTLkI0@%^85lp;86{N;gE}})D zP-PQIVm=mqwH>a<4W^b1bW*b5Gj)TLQ9hv6sUT>qW&13_q8O@VIP$HUZtOe)*W0Vc zoXb-(pgrU)9}bNR2h{3UTwHM{ni+PElG{ZV+h62MG`1ol!}~wXsKyTE>GD;K5!PtxPC{vBzU47lb!L(=9Jm-onz)gl!BXTuE?M#7J5Aq>bQ;gTA?ICG zt;Ae$>tc1v^De9MBCga|usT_7P&TpaId?!A%@*uvQHP7M7oTTpuw2CxXCNMb(wuqGt$+l0h%7tX)_`qz*L#@{2^x$Zw|y z8OWX78_@c9>Bv-o0}$>l2$DsJp;wH1^jBqig1~xIa@Ku#|AR&fouK@pJm^#$J%Ug- z$p96q1ezKmkiJKCIaM$J5Bul{d#C->wb{|?M)dSTICO(Y zJvw~G6VNW8+|H|<*O;bj6h9Gv&e-EAOytdT#1c7M zkz1wO6@L48g}g`3t(v(Ttq#7Y;WlRr-qf{@Mh@x!2v!FK5DPV^AUg0#AffgsXCxY=AD)MiVUg819m0$7YYz0GL)zgpvIftP>oqPPRV)hMs5HWN z1vaSpINNzC7O34H3Vd6#J0kT~Lcs=I4^J>N*`*&B95n%aPe>ZDjI1>#67w|^>9vQf z!^mX7t1ZNDz`T(lsF@U;pWuY=|48_72K~KC5{5T*Ne5Q0qBg09$ajy-Ccqj+E0bpA z{A$ci>as`HX3vkJBlp>cnpEUuPS;{94b~Tkk^#RV5y*_LpRU#HeLsHoNG0UY_Wbgc z+BD?z>xK(WZcI>d(Oeg|OM8r|q9SpXUvzDxMohN>PIOYa>OftIi0;78Z+gA>yyyZf zf9Sk`&{)k_Y6BX&f4E;uptrGl^VQZwYB2L!Xuqr;HmIqrvd~(ik@Em$!T?BqKW(E-%_?2LWHpAbO@rW1S7f%iUIiw-asr-qBdI< z1)oARt;W{Ve~W3bOR6iIXR{4N*U?phd%x`NzX2mfwTZ#;+A|AN5n7ynujK1)lmqN= zVX>m0dY12LCu}L=gQGJW#YYNTUYo`K^Y$<7djj?t<`$Zm7#NkGY{PQ=3PE} zXjstA%xr7pVVmXJk}v;2qx9KNn21?jkzuk@BUMgeEcE;j^9+PDsr+<~|;)O0X#@PGAL4%8d${*tmjBQ!#>41m6h`N+gL4bITiDR@rB@7-+KGuo7G}7lzb!XR zBz4a}g6I(rooI>`eZ7Xyv>g4g+rg(tOc_a1q!?d2Vi2^LkCu{&Yli~QyI?&*>C!ea zlgMjX%3pn8cqhf+vA)K+v0h9*8f-=;ix}V1QsP;xO~>h9d!~bQT)oSV-TQ9lUfw+iXB0u$zKGD) IJ?z4N0gcQ>lK=n! literal 10242 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 oWn(s?E(Z1e+LUVSZE9K|X97wpN~ZvX%Q literal 9935 zcmeHNeN0nV6u<9LK3W4-fw{N<%^*(EL}vVmeAqg1sA(1S6@(ykSrCRJ5J6RA+$Azg360hA~!Jv zs7`1qh<#bzOZ=8a0)!w=E20UulG5+cz)xG?ryPNV0Bc(Uz~ILcKB-z`SilMl#(@~w zmKZ{QB}V-Aj+;ZPM~5-QPZ*5*kce@}@5zNBadTOv1;a`uH0v6T4Sh- zgma^}711Ewv&gGGMXR|&44{}dZ}TB6Fxi_YxvVV1;4Zv*QDU$Z^TiK@x65-=YAxPX z$2bC<01+)Gb8ixW)mnT=)>D)ZTX2;}%%C8THM3_tQh!Ylm4x^u2IDL;NwhZ@$4QkX zsn#M2#x)p{GkeqMDSFc=w|$6=gMYt>a%&=iKjEdhyy)((%SxdQy%F!t6NtfLEMeUz zVt^)J?M}$*-T+&BycL@dfv)xF^NYpRqZz!K7QkxZ2&&92%UU^tS8<3B9+t;s>U!;N z^AoMzX_imc6k;OEdEO*n0;|^}|mu)Lh>> zX6N@#f1%8#BJ|nk8>vE}{7R`~S1E`UO*iv%Qb%r0_lNCw1nKK2?%;+q*BqG=N93J4 z3g}_SojD0g41bL{*}abZem5mOIy(Gp;#j&(C8V_x3N5DTEPZ&sFZb#W!8QGS@jAw2 zUYp4<_l|L1^TT;DmdIElV~KAK7GbXQTwUizt-bhq{r6TEc~54wll+GZo#B#Hn+N3) z$sc-vt;;o1*LYN#=8wsw1P2Sj0XagkAhb<|&^8VtQ3@kxqiPDPrtw)?@Vo@Kj6uzn zK`~+0>yA}r*6H%-u)d@BVB8j4H$4_`5X_9693AfewE8m`(V8cy;b*bBE7nIp*Yo#x zgz=R(%P3ivAs@g9)EDSI;r0jxn*xcsW&NyZid3^|=$kENM==pIlXiI3X$QtLGoG12 z?hJBgQn5@v`<3Ri-++f@lWx#DS{@q)QJKm5`M{-^-;le~7+8{!iJLw35;aw(x1LgZ zk>N@oB0zwfC!|&IwP^jn%8HcOK^IKgI84E0ZVM)FfPr~RZS%Y8^cEfBEv>zDQ-jR3 zCF;5Bq;t$!oT0PX7I2-bvzICw3%e})YGF|`A~4MKhy7rNF6{TBEo?4NfP>1F-myUC zTvZW-pe#Rb4(z36>gh2}H5v+1D&FBA2cEG`*lW8q3P0irj60Bp_)7k_VOw#}SQ_jN z3>J9=@Cwf3zM5+Jud?@{bOdd~eFb9&qG{n>yER_Mp1ubOi|Cn?HC~G8bq%!e^c6;= z;8FHelSeu(SZPFVJI?N;g{y)lLD$oczmw>h6~U7r=S$HCwD1&82}rl6I+xQk--f-; z>&=18w&t<6qE7q70pN4o!v$b8$J{fkBLRCTFcss@_s-QOD`8jgAEV^x}JGz<^Lr*&v{L4cvzyiTr?LydC3TYnl ctx.raw === 0 ? false : 'start', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/horizontal.png b/test/fixtures/controller.bar/minBarLength/horizontal.png index 39b1d3f12523224887251a8c77749777fc977fcd..11aefdb1d8d32b405dac41e42da214c86568947d 100644 GIT binary patch literal 11336 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 FKLEj9xX}Or diff --git a/test/fixtures/controller.bar/minBarLength/vertical-neg.js b/test/fixtures/controller.bar/minBarLength/vertical-neg.js index 92f853f426f..7cee3a8a1e2 100644 --- a/test/fixtures/controller.bar/minBarLength/vertical-neg.js +++ b/test/fixtures/controller.bar/minBarLength/vertical-neg.js @@ -7,7 +7,8 @@ module.exports = { { data: [0, -0.01, -30], backgroundColor: '#00ff00', - borderWidth: 0, + borderColor: '#000', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/vertical-neg.png b/test/fixtures/controller.bar/minBarLength/vertical-neg.png index ec9636feb5f709b3ff09e4fb777de4f8a3cc2e39..4d75f1cb238c9d2679a0e8bb59392c67a4a01b19 100644 GIT binary patch literal 9029 zcmeHNe^3)=8h&?8G{Oafh_ooM!d0qLDO12-NPK|$0OXvL+qXFZW49l(ncvWs;P z?i9ItCx{|W?F^K&z?B1X5t7tUu``19ph5|fU^zI5kS)2ygoJP(+|2c+|J>co-Q3*F z{9_kH`k`|k5>>Heg6zMG#L0Pqv`hz|hZ=oAOuQgrx>v~L!GfCO>uA?cAR zov`c(d7x_~YwgY`LuC23@a5YXTyX!hfmNTCr_mK6dd=L<#|D0R8E2ASnzeiK#2t0p zaJ_kNNluM0+211T^Bd0Sx40%956>HwsvSA=mRWhBD#q&H)uVoeiO_}#yP4kn49aO$ z?r?W@qccalMMzRg*Tk&x#;pO%K90*W+iMByC+E~HF0-;>{>PGJCpo7E{0QFg3r?-F|hMm$Yg`=!($RzDQB!y&cvUhR3tM z2$(A{nZF9jv)X?qufYw^#;w*iwH;H>apiBOz`3Fva@f&cJyhH%P}mFI=+p=IYPm(% z0wp72wYd~*{vGkobd%Yu_UYdFjS{nCCEOU+xeYmKy_KO_tAMveuWEmOdix*v$Jy?)YY*;clsX+#6%IpSfgf9v%-)`r@jSt6814!9Z~oc}>BMFTw7zsmeILGbYd& z23>pYb-#3@Z{3?SRCL&VPo`?o=k^R zGh@%!LxB0kEngqy*|?4ua;0|;4msVeQywng)R`FV_qR4s`~k;#)<5F*A5(H%+_$#% zHd3R7F6EP>uF-DOL5LoEO;X<_VBD?YW6Y^qh28g=&VPu6yH_s#&bbJQJnc38qy+rj7pBCwN&Ye z;hZ2GC+-d^>fm^1TO^9dcszP*bA9z8=({f4MMIGmO{jGl0j>M`3egw>F9CQxzPF1j z3RZo(TtK`UFM@iDT0&N>Kp<>L|#b3Og*qz!N)NfjibH6!Q_bxQ=GTQ?bl`j?;; z;bndM5q{H4{}{!U!32yws6TZ8+n+n*gO<$07hwZv7>G)FzE(tw#3B%XQmh36WImaVW!GWy%b&9V*^ zS<`sQGcP9o^rxEMAE})Y+GO-1`fl(i^?LP2nQbLc=%%-yL+s#8do#YYw+aeC4TWw)Fz}N|kvz%EG*%5JMO| zPuDje)RJ&SSqajF`)X9~7~~ixQJ+2)kCj_mwjtydRIa@AflO7*)+205$X4Yn3s@HX zGZqXAz(gvhDYDLitB@%3_w>BE-s$T&NI3WS zYm|%lMBIfli6=dsaeNAsCZJ5umdUJ!z-kDrjKi|v-(&$>CbP;ZtDLgpHOqqkDGTUg zkgB^MEtozMTC?bd>di*W+^noH+Av(uX#3s@{dkkJp@~7|@XNAsZzNU-6v-MArkhpo z)fTIvJue(%J}jp~kQXwC;|96;Ss6|kv+@x#6uCQzOYJf~>ld+p(SN|QEA2g04X|YK zUjWv=V;$808xxz!1#xTB@n%i$1$Au?gVL$PsQd@@mq6)sdN2XG`ML^Zwt0pU5Fp)> vlNW(8yUVX2+gY;?`RG5bqU@W#0$ZSB)!CdVMa5S1dkiG(N)k8h%sl&7rKx~! literal 9031 zcmeHNYgAKL7C!e%GzQTqL9A9D>Oc?$td97Yz%35}hevn{iacr^#z%#zA`b((T2L&u z;Mi71ghY!XsNidaL4njqTV)`kNE`(c%3zS7#D+i;LNfcZ>YDjs*P1o_8drWLxp$wF z@9w?7@9eYBJ*sU#h?=*DnFzWSk zd4br-8)VkhF!a4zSFxbf__)q{kEU82B6b(2wf3}FSZjKMdH$TJMj)eCJ%(_RB#0XJS}lzLWobUqX~E6e4NRL8|*J)!)O zXDSH{aNF+K#0%Qb&+y?6wDiMGKBjIccRd())H^bDaUuyzZ}+ouXOGw&v-NRl8kKM}0HS}eryl?T8526a5!nJ`PooddwqSc<| zQb!@WDQ<5z(>o&LWE+~u^FRg6*!J;&8Z+Zz8f5PbaQ=A);CwSV>7_Z`%Vil`=fN#M zFT==YoIxDF`8P8OgrW*F7n!$ zKivuC-@39G!_E4^c#WbofI$@8sGw$Y5u#}`*!87&p~D^w3|t_f*5O%M$M6(R;^0Dp zB>V}CetGGdGPH!zR0%`QS#nYTg?$cAi1X^~EIT5h7UJ+b;ZP=nIPri62DNMG)v*ZT_bOY9}*0ktrgz|LKL^_MaXQD9Kj_&-#rGii`u3#t)#ZS7GXVzq@K|>v#wN=$E4wJr*GP!;``PDydB7NaOC4R=+P)qct~l34kJ`Xf2J0 zrI)|Txgj;sWV>xE5U=X1MoJTMNt}DCW3@Nd*XCXfIkE+E(T%v}~)ZT4a=_`3s? zXIHPbraBbdK0wI;9q3_y-S-fS^i7QU8V0385KB_Ui-1L)5in#Lgy`Uuui`>5f6F=& z46I?+{ECK#07?wTIS9F#^JMn?Ff==NYa|S5gE>>%ImaM{)551R?c8DsY>o{#lS8u$ z>cgq9v$)9RY`;5_gsUk6mBExNx|QZUFe_Ap)I3-y1O<=;MS`XUQKVgf(Go(VPeodh z%wlhVT?+~s8xlQH2s)huB?jXhEF^(joA&r)(X4MG0W}xag|?WHz%WSRpx*$76u^*9 zyifzyQ|6Q&hJqdzRZ0QKV@lQwVZD8rbK6x(nYB{^DIh@s;@l%a(^eh^*X0ANeG_w| zB0>JA10Q5{pk|!Ji9+aC6jNfbkK&*ggfH)tR(r}_QGl8#fuu<4Tpj@0?oP$`Hu$<5 zJ0l4PtS(eK`GOvPRGB>~g%dfxvTP(E($gD7)?gMxi8KeMEZEl>0h;!75kzYVB+=|# ztBsMc0&0F5UP{ICYqHx3z0fvd}Y}ND@)KSJsuCq`!NSl4?%Ijd6gP& zMXuR#45D=jR?uix)E^^Z1$xc|&sBj)ODv-%3c*B-cZ(Qj8ZnKbPDlxztW5MvG4CjS z9x7Hfsd`i|Rkv@jJ+i*L+i0CDXp{|(IYBDXZ-xVX()xpIpYidc!UOXm-`t?InPYu# zL!3XRxi72&c@S9u^VWUIH(HsBk@0%SRE(IabW@f7mW_gm82>#nbi=rEEUBTlMxNo3 z^<1i34sy&)uX&@~gEl<|hksYsW4|}d&<*-_%hQ(r6h~QVys&uGz}(p>XdE*a$vp;QCq-KGq~%N-N0#!RJ< zX^&vqBfMpsVj{*nMU3q)l2JpWOCQyVSmmTts2-`BRh{>0GTK!7pYCr7t7bK@}p&E zWb+!bvePAsUvGYlzKlm6BS#q``FibI5a|eL!CBoeSs>uK e=+e<-Mtntgg4Hyi5;?peg93bmeX6_?4*UziT$5w~ diff --git a/test/fixtures/controller.bar/minBarLength/vertical-pos.js b/test/fixtures/controller.bar/minBarLength/vertical-pos.js index cf0afa2b14b..96e2756c33a 100644 --- a/test/fixtures/controller.bar/minBarLength/vertical-pos.js +++ b/test/fixtures/controller.bar/minBarLength/vertical-pos.js @@ -7,7 +7,8 @@ module.exports = { { data: [0, 0.01, 30], backgroundColor: '#00ff00', - borderWidth: 0, + borderColor: '#000', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/vertical-pos.png b/test/fixtures/controller.bar/minBarLength/vertical-pos.png index b5d4f8a2e12ee711beb6589babc643a9d0cb6a1e..5561b4f3b3de56ec49cae89a65934241c294d661 100644 GIT binary patch literal 9005 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 V$=+w=cpAZ ctx.raw === 0 ? false : 'start', + borderWidth: 4, minBarLength: 20 } ] diff --git a/test/fixtures/controller.bar/minBarLength/vertical.png b/test/fixtures/controller.bar/minBarLength/vertical.png index a78cb133d00a3d09701b6bdf6aba54d808c5b718..c79c4f3f3c90fa3675a166bcae2708f5d4618a9f 100644 GIT binary patch literal 9228 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 literal 9015 zcmeHNZE#an8h-EX4JOT&rl~c8g@mSsvRzvlbqfkj_zW#ls;gUAY{Kq#w$AL%q=K4M z^Ko&J4vGydWf8%qg;5+AiEP)!A)&e5;=rJCi$yD9n+q5(p|%Ol=grsM(?2^7yMOi% zIOF|ub5C;4d(U~#`#yP}=bjx6^}4*=nYjRvSG#(}69726#X&p`eMHO`lK?8HU9t2@ zvwr-W1sxOI{=Z(~pKUHx^*_#T+JFDTnZIOy)-P9W-#IwrbWE;2|A!peagkbO+E(~M zbIHsPx9>jKof?~XFMe^$`G*7H=dIo?r^-HiKQ|p{>oU&fbtGW8T^(Xs6TQx9xSHU_ z>6_emxR)Ka#6&e#hy7oso=|)6W}C81OHy6b3EFPyVqLM>w%ApB-11^Jdg%mr$W$nU z;Ht5^3RMrxSHX=x;oaL-y?{NixtuQ5GOM+4_dlS#XLl3qEI#+3M7B^a1JV6Z_e`?_ z)a{dx;Y0^PXqQS!`OHfq>TJ*AJ+M`cVGVO^B( zOI48j8|WN7TM4VC`}Y&#Vu_f1`5q{H=^zd@+v1(qXFH-XmPcFO;0)sxI+R#`)beSL%Wk&T(&?1gZE z3mT&XldPC5k^iUa{7&(673dco1@p?l#Dh3GevK^X)*ce zm?<+C3mx;=7GhXvnl}e$@?^e{PE1yxP9N0Nfu-K+TZ@oS&&`s7t9-<|3clIk9jlg* zCVzB5l8{pOrKh9bTFZcP4vfmeTe9U?Xi?N!joC4?-=qc4q37Z=u-2B$F<&W+?j6pb zhe~Q==us7n!p%JUHZU*$l;#c-6nil~g5Z|f>qAp{_4APyf_f|Jw(S9Pqh526^n#~9 zNP;=%balD_O>=>Ub-c(!BE~uCaQYO@Ins$c;fPqf^2LSQ5AJ2X91YL z3?|p&OjDa7c?D<6-l>W#$CQj z)KeOD7@FkQeWBIvi`8c>8(k%^A6Uxm}fXe zi|<5iC7^3N&i5%(`KcH;6yC$Kns3iooP2w>sXTq< zCHoG3K2ze(NRhhcwRW+FFAn!z&1jZ5yX=!id@3^}vHW7I(P@t@roH@nN3y}i8R#Qy zkl&?{kjg``fAX(`c_Xb%4H1;1DB>$LuR-eBn@ByY2~|SPm(LQ^nUn3qmT|HWW3-EbpEpH$Wi3G#frgC&;xl-L)qJmd9pwV}*<6B5iC8i;d&RUBmBD4fg z2vKln@?l(u2u*ZooIp~QmgyCzv)mWq*Vt;O->vA2TxQqN>$;r$t|PYOZ2rOzUUHxW z*3_f__j5sAM$~Of_$F}XsrgQ|mV~V*3S{6fhq|-%Q}0dwj4-HUuFw)ZAw+?Y54Qyi zVux|&Kr-+G5^0bCzk#sv=^Na~;RE#Kh}4iA4SuQXN%f8E`X7>Fl44y5QK z>{3p#41fGElIt~TBP!|M>!b_NFVtnRnB08#RHZf5Z7C`pb%jFfN9T!0{<5$E9SoS9 oItw7|kPxdsg*;95V<9_sHTPtZe`G&88Us+fvVO&}Wt(39HzF3Z0ssI2