From 3f85d005bb5f343bb32a86d663f5dcfeef27f38a Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 2 Feb 2023 19:50:14 +0100 Subject: [PATCH] Fix root index placement again --- library/src/math/root.rs | 6 ++---- tests/ref/math/root.png | Bin 9126 -> 9467 bytes tests/typ/math/root.typ | 3 ++- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/library/src/math/root.rs b/library/src/math/root.rs index e1c8d9878..fa41167df 100644 --- a/library/src/math/root.rs +++ b/library/src/math/root.rs @@ -1,7 +1,5 @@ use super::*; -const MIN_INDEX_SHIFT: Em = Em::new(0.35); - /// # Square Root /// A square root. /// @@ -123,12 +121,12 @@ fn layout( let inner_ascent = extra_ascender + thickness + gap + radicand.ascent(); let mut sqrt_offset = Abs::zero(); + let mut shift_up = Abs::zero(); let mut ascent = inner_ascent; - let mut shift_up = raise_factor * sqrt.height() - descent; if let Some(index) = &index { sqrt_offset = kern_before + index.width() + kern_after; - shift_up.set_max(index.descent() + MIN_INDEX_SHIFT.scaled(ctx)); + shift_up = raise_factor * sqrt.height() - descent + index.descent(); ascent.set_max(shift_up + index.ascent()); } diff --git a/tests/ref/math/root.png b/tests/ref/math/root.png index 8d906394976a6057f33ee79fab803afcd0685fc0..1f08de7088e4cd39f7bfeb90c10406c7de9b87cd 100644 GIT binary patch literal 9467 zcmaKyWl$W>*5+qmfWaq7Am~g;u;A`8KnTIz-Q9u&83+tcfB*r4gy8PM-8De);DZKt z4YIlWZtefwdhgxmLwD6V{iUnAPWAIUCqhL@79WQK2LJ%z%e|3S0|0;^004~z{5JsL zd>0M@0A6&-NlR*Y&mUx98Ibf}bzIfxm?1cK#Z`&Ti4sz*cp~v-a#9Mbva5P@(E5zb zBuN}3KeFmbkg$Z~L}u%#0-qF3JP{7UP|b~mUc{^q{RyaBTv~Rmug5iz-1Zl%+}!%H z@9%8=cis0T4+UWpy?7G`l?(!5%YLX=fPg?iNeRe**d~!KKQm(&9mpZsbl#s`-j{OI zVmm@0Lkkt_nq3|H{FOqbU0cUYtMlpnm5OiNxoWo5JL2$IY15m>U0@?bbqBq4k8|R+ z{%##5op1qnnx?w#PmhH>Zt5&(kf$|pMpTM<($pLTR09m!L-vwVKi&T>37H`o0* z*K898#arPe1~_?|j~&&nht^O^eZ({ErVDJZM7uFPM4r6W&4=Az>jP8->nY0p8gSbv z@~DGa8B43cCKs{iC#J9a)=5`xm$j3D`43hG;MiI84!ixjwVo)Jyq4lGVxJwP#$KbR z+Zljt^YmaFO&xF7{^+yiD{F9YjS~H2=rv3R4)huDu_2!Xu<$68P1 zB(tz**yokF7-ve{k?^Oqgwq;hCyYWHw;0wHscZjr{%BwU2<^kFfM<&67+jwvbn*RZ z$(n&O*5-D+8r<`Mo}cK};`svz+EW_Nx-ORyy&?>@PDtCEv+6ZmY%Wl9*sx~*?8lL` ztJJ+&5J`!F*5dPHLU{i!lB0*@Ae)kI{p;zU$C8zggq?@Li$7*j?>3ue_MiOxqN^(V zK-P)%3N1yw53SP)1UNSuNuvI=!|;tf z#o79~QkHwXdT;Ig6lqgB=_7I z3I?ME1^$oC0~z?=9`b2sU?0K1J@-%Wn;bKaUHBXb#=%xmy39>>NvkR~p-33yOS`$* zIPH7r>&c7Uh5lA8>t8JK1yi6Qmz-`#?pL+wc%n(WF&U8y%F~A5WHBec7MG1kWj135 zR+=m4!3CJS9aZ;V(**R&&X^GjGU90ot@=bSZK+Aq-`tytw-Is_edgPK zJu0x%>dbiXb=7i~4nX7mLZa|b*#`QFPlyXbu<;ou2EgF^pKnB?3Rzcc`OIUt{F@e{ zW9@Gj7gvZ7{tr{T$ECR#uGlA&zq@sV0Ubw6%#8P_voZ0<7HL{YeEV>&=WW7~H^V9r zSpz5|=;PAjug~+62Me0JWJ|$!6xP1=i)1RqIIzac-RUY8WHGbJ(O)5*U zKJkX()7RhIR-7gnK+ooQ7%EP-x2MJyLK=jR8HmchlF_bG4jvrIMJLc6SuvU0;|`s^ z+Lw0{B7iNj)LNXp<~X>Ik8rE_>Mjllbhr}|ncW8L5-80*e&YVECyWW8T9A~8*9ytX zgt!aubdwjHay&g^{KGamr34@k^}V9waw={m%nU zV~c_-onNks|0GJXRSv+WGuTszwMfTt(iqk1I*twJl#_EV7M~MWp!ab6o}p+8E_dm1 zEhvMO&wB=H!dv0sUINKAl91ZUIVLTKBbSUkOpos%?|d_u(?O>moE#B%t=PKL?HEPP zhAK@m?~&d_jH4Ambeeawzitzc1O##}hVcT*y}4NMG&n=+EA8Js(tOKiFn4fmkh%9Y zE2RV(JDdrKZ6@;75AF?{u~V86B10L0Idp} zi>!f^Lr%3EnLD9oL(1Ry4lzKTCjYjs9QR3hLkj3C1eobVilTC};0-5d&v_erpDasY zc@)_dLi(19^48iB&I%q4&W8GmQPupIUEirex)JZ0JIJgXZQH28 z`8X(XWyDT$v52lwJn*;|;go8`EHCsT%hx#-2jmvwYisvC#r(EQY$N{#uO0$DuYQd@ z(2e9wFw?($Mu)%$npqwhv$5?ld`*&wBIQ)`;*s;?!%mnJC=&v)cJPkXJj z=hWn8N8{?DOSV+(Cme2+l_OWb>6Pr+i|s*%EH@}gQ7Q5ZfCQXngLrYf>fIW-N0gC` z!Pn%9R(pN!tY@uYzvMgWFO!NGjTnGx>>hjd^dxhPh2g7HT)+^};>>B<{m8}rxx`Kj z>zR?@!PQQD$t#bM`YG)sT@~E3Bt&~(K*ZxzUul%M)n+gG>jfa3qGDo+ zYRD@|z4PWSLS}i~vXy3Ji$SW$Q8@d#_jh`SMq#qMIW%!y1e0bT#mXC&<>rv8vhVL; z1D9GYbnDV{ALVr7%5j_TV*SR_^$vL2BLLsVS+XCX8wApgn+h%*#$BN~`O zR??c{-XM+~H1?=`>6xxq^TRulr#|Fts5tuwGu-UGrrf2XGx=$vn2t4;%FG9U*3lp@oLi=a z(`f?0%S@W7PU!3}f&$-S`~sV(h~KL8yA(>NfhzcEE~hf`Lge%cu&vhWG;q+G={RSg zK5b=U4dF^QM}-qUU}qy>uHqH`W5~&^@hLP;VewlD*M@w>Q1`-RmbDSv6^TYOADz)> zmUj&X;*RhW-yUDwNRt$Kxn}2;L%hK9ZNS%67RmY$M+&AD0-SeC#qL86Hs<+;2;12i zX#)SC-=cPo&iQ6#R}p#kIoS5xC)eOiA3Jg~{vW`PogB^A=psG8^5yxIP}ZhlrKKMY z#hOUp-gRGEQ=dOSL0HJhL|J#yCH({0C@9 zuGZ$BA8-0&KL+$&%87M8w`*6Dw_vzxi23}-;X-5Z;B}KxDyBj#Ci+OLoga8Sf?ULh zGYLJcsX@KF@-`TtWo1M$#_*m7mjj4t61xqEo*;>;qk(}Cy7>7lvz1aR%UI{QKxTzh zV0db5nEIn#wHxN6wUGMZZ4xJIZvt;iy!(n}a*6%T0-CA#(}|3VQA#Y7pi|pgSr{Or zN&sZq+s_4pIWa)NwUGaxjrgw|(kJY{f7+U%HP8OD^8j^@L(U(S-kHKRJzC@>=9=}G zqO}j+E?y}vNgnjEsOFnA2>7`6u7vq?o=?H^_H^^pp4*bNo>AuD^=*??(Hl>E>SANj z&iA%+0So%W6T4hK?CB6>SFp!5``>+LN?fVxc?&v|%cLY-$~GtMIwz^VCA8ZM<{UDC zhbQ+ll72B(%V*>gK<4TB1$=2nyQ>OpnaZOePGn(6C!3%hBw!_wDR=w^Gtnb5&}hN& z@A#E6jj}XmrM18Y3VpgTm5AZnELeA{M$#+C3Mol8d^-?gYocC}ogtt9oK^)bJ)M2f z^%k3AAVw@RXTh=uq7}7Ig1^J_YhH{Xl`Zi1d5D>=j*>G`3U<)+U)n#chpm z#CrPrF6epV0y)ZP8pUEU$t#IF0$!3oK|65e-fQ@}kv+U!|qQDu&{V;r?O2Ch?PHfZlpyJ^e-fAbIue7Pf- z$7pwE`lV#pN=j<(_3beJMR0Xp4NY?@=b!w~#vVJ1%eYQ=N~s`9i{r_o5B#ZLO>-Ok zQQ7S&1d3n10X+u=D}tfoW-kP4tQrf*E5GD2JwY3r|1qX}A~xx&JoEu1OB*Pk`>GyG z7}%CUK|9AdS_wf~kjp+paTngSLvq%T>@a3#=3?@`Po3RlB+Uk_ZhaW<@O_Iw0m%oP&a%@FOxQSS0CVYfQb&9FW>_{nAz?;> z_%-_{Ms^Wmbv((3`qwplA0ZF9W)>`Y8IVBdK4)Z2(TZh0@!E&K|252SW##5|7USmXGAcUX}h8 zbgmO| zQ+o5cE~WZTL_g@oqQ{7T9Y~5(zcj8kdRuY7fS%mds>pX(Mu^K`c`it_vtwpIYY>C{ z7hm;Y;#NC_d(4USB$*JG-%shVO*c7ho6}ehL(9b;x@c@kiW2Vry(W>n-;s*PLsHhy zRBeW+MZNw5y-~nN`@f`z=*2()8inwGFw_6XBD>!~?M81$)|K7S<3%&~c9;aX+WJuhN?_7e zJa3pwC$Wh286VJ}17WV0hcXOoz)HpQaN%YJPv|fev~POOApGEo zPg1gY_iXA?RfA*-*g-OlO5nD?DrUU{vO7VBur*gwTa~XX){nkGkOess`0$e~4G2|x zmjkg~I3HMhup)_0tqwbNqf0p;&%Ttv>)ry|XwC>G!tfzu=LPp4Y3hZ}|>@&W<=2JNt@Wtr^QuvQ-hFTM|4EyC#5cq&W}# zz`o!^5q9|-X6DU91?n3|mt|-OxGcJDmf}wz`A>Bf!Ax$nQ7x3OfBLooHWk@yf&om# z0r=)0Rw?YqmrZGD6jST{ztJNP4#2U&wI5u_#-OQ4v+-pPvGkvhEqvfK>;i`ZJS@~R zB_&Autu{Wq&XVLEHSoBnjSr%BY!@iF1#mFjh{|jA>q&){x{hMaHID>(!Wkx17iq7i zpgo8O?^xOGQ=;TuyCy@};UIz}Np z&7;+f8-B%j?AbuTx(zv^+~-|PX5%GhGnovd8*YPpPd>%(v!wXzq>zkueA9WpkO+rQDCM4)hAi5Q1W4ix?&zT50#L( z-v*jx%ib~1fb|JfCK>LsA5O9tkAQrS1$0Qu^z*K{&Xi!y5O zQ@c1OT89^wrnZ-`IR>TlQ&P=C8^pML(p31t@f&}YCc;fVaz2GFc>`IfghANlXMULB z9nG}MYM_V3(fZgL=w^&qsaF#3f=yR+bv%QtF^50n6tFTjE{;P>wVp|6cID2^^G9=W zzT}dUy3Wsaf@ti60!fx>?lgSEeiu@|E+_aUW{8=|ScZ!5J8CGfR#>LoKj2ovDLzw8WpTKV`ADScv2o;{gbeuUkqd5JNeSy|L3dA9; zC=%zsB8zsq8g7ANS~MKA8q-9>cEr6;v@49N4GXri;ie&SGmL(*EIGqZ$*1e4PB=IN zko4Ia`NF*&jhki6)1jR1_}Vmic-L?v-rA)nD52V6_i*Xbc%O}{HDX4w9>|g*P-OXJ z^lHRD^#|A9*&^j^8%1H2sOvzT!;@l666j^U4it_5>wV4%tfj<&s9=k5; z2I%l{@*KiE(;-PGJKrwJ^9xS=*6uo01Exjns1|0GFc?^bQA8}5ynj3Pdg<5HTB*j|)$hYueKe*@| zb^xvsFAj$HU*_R(PoC{}9MFM}yM+cz%<@+ou=G(>?E12)O#z0p?cc{;e>~7}f3>1L z@h)Eo^r(n~BA%27!iTaci00Fd3dHxHsV2sn<~@~=EY=F*@|w85I(s?(Cf);e*M2 zXS@<`@F+gEPKq_L;l-d?#*@m(1zqJwU#{q^dRMduYZ4VV@Mg zD)3IkMpzB=NW{rV{}shMtHIp_3dm)-UayDRX0j)j2iT1Euat&8(oqFtyb^JkAP~ra zixK1{l1~u3b!Gaqwwxe#y%S%aBV-rQXeGY~fMu2{7DI~vjIP=7S*Nki0wl?IYo#qz zz{isX%n(2Ag!rLazS;_4mR$h-b{A{=H~{4hnaki|K`!Zt5OD!g#9Z@{hKlb-34H#xel&FJv2p&ea3m>Swrl#mO6gkh`G7!`n(C`qz zrik67^)BS=Rww;vtTRj71R%?AEQ{7Lr};M($&B3HcqNi;>(F^vB>Cnl(3KF60ETWYQTYS?nm#eilfLaO z20ZIv&yA+jk_NRmRT3=FIe0t`2y2OAP0DvT?8^O|!dqa?aneK0}udMD->E zj@t!jc8jj*KMVFrg%MB-O{_vCw5@tpftGQzp~@bCN=q76X-CVgzE?)w!7jmqz$e^0 zyM73J!Hi?^>0&9R?h*n!wfIhT6x)m%X;;Dur3mQZlr>*w-YiYv*4rq_x;3wzA(ppQebl32x!N(+9dLrqj&F@KB1|B%v5PTO%RCSy7dAA z?JOTKf%JV&p$9Q7)^L#o%SRDzracEqk_|XGLosF8jobW~czcCWZztw!FoPg|hl`Ew zXbBF)FEH(&KqtmjO@gLjf9RPoT1e?|Zpb{lDLwajB*AiGxgx72WKL-v?Ug|~E|0S> ze8WoZDUGM$j*f6g9O773J~{BHi~ILZsP}QrI6kH+I!S;vBUlonOM;kM=5WOs3bxfk z$4X^HemAUD@ey(5KRQHpVXOUS3R%GUL_rHT;^;Y<9U4QZ4ry;|J!jH*6LmmmH6)|6 z0y(riY5i{eM_*~%)=+amW}rDC@kryca7No>V9C?}er!sD)hDhNKI+oa6N&vclzt7 zjNBgIb0buXH!B5?SeNmJg9k)a3A2`=bEOzMoat00EF0JO#Tb$&?-H?137^R3StCvZ zkR#aZA`Z&Bilnv9!i`Lec?HXz@jMDxqT4>EObabLt)d3a5sTNTb8)y4-iDZ$tFNFf ztDKJ(KqFn}%=Xp2MEIeR4Bo7jOM6=EB&68ag$5N7Hv9Oi)*}h zY0E)CTPV_G9YRI72vMtAh4@G``9r!ff0LuP0_*#VW7RuY@Xca3Z@f5;kO$WtaW+V< zXi;UeS+BSggi6_+{S|#r*j&0Ez7G=mOO<6{1%o3r+9QK>M^Lg7v4HGPhhE3GMhcuS z9?5kM&-l26s5nSsazw_u%&Ty$I95l?$kWHZTc}sbge0K^Vw^uLtcM57?g5_qQT`$K zGM|>q;7*XXk{l6~Cu@; zinRId^Fie$1Pmfdkq)gg(8c4ZVR#c%JQtuDfo!-L6M|rwG62ihl%XG{j}tZJWv0X# zkK{&12g4z)kM++^%WD#AW(jjj>wtnj$W@uN_8q!G{GT&kx;f|z_lR>A*>=Ci(fpXE zw1&6(^KY)l)Qx7$4YWb3w*6u~Te~9Tl%SItTdUXsQGFT4@#oysC%U7~ef;Wl_cBAB zJqk;FYe}?CYQ{!_Ab}~hZHp$X*NaTS+!t7qTAx>41y^TdVfvqfn&Ml}@b4yzc=HC(mR3vwx&zdnh{InkB;!6#lD+Yq!_) z)qx~SitBq@0YSM8qGGMB69;anwR=vXuu%6E>RfP)nyCHhZ_agVaRU z#NP>HMntOTN%i-^DD%A=W>KD+nMbOe-dTbNKlTxft8|qp+eYh;$+{$GGu6!{0pNlv zS_{95k`~RJwAwG}>5Dcmf9u*|NzR{;KW05&r3;0oq6uEcCg@zowexWR#@K;U+=<3jex=gygX&iS7EQA16E5RV2A000mwDavXA06-7`fWZ#_w*c7T zav%f%n4OelWpsQO4l{j>$@{4~FFhhyq+)JVe)gpHd^UR>Enj{4t-9AVkJbF3J(rqu z4nGfify9#2DF6C3f}BL7^Bb5_HlAJ1zx6aQo6D!sXX)@z>)XKlprzz=q1wy#%(TW@ zfg=(S-hZMVtjr1q!k{1&0s_H+ON0N{NtZCp_?(>SQWX=ffyg1{Ca$Go`pyc36;H6s zuy}rY1eb+y@u?~Tg^B`DPVmo}^AH%;dCbIVZ!>-ozJ;<(NCUMDP zsso|zD_)LY@sVcto8iL%vM^do^zbyGD%$s}@Cmotb32wP1uduDc_>1Adk>OSNCD4d zzEgR4P&-Q{Yc7xe6`7j2K^XDrr;YX@^?ZCs8 z@Xuynw9*q#Ygb(`1}gkxIaXig6^FS{x2tXK?CfMii9B}F?Bzh(VwHjV84mCA?@SZq zhA!xT%A+#~$l5WE`BZj>d>ysBFNv_UOGdfghHP*<&&oefKCMmRm!g&TDSkNBexln3 zoRoAuCt3`I67tEl?v4yK#oRqST12nII6ufgcJvsVG=JlLFXL@3vCBLjwWeHv`FeO8 zQRNB+)ERZA9WqWmZ@rILhZZbO7YFrt<>|-A8Yeo801(akyRDB?p>NA>l-72-tk`@F z0SBaRM)8tdct9praY1U7a9PP?Tn9n&>kQF(Eq%~UP(2q*I!8C`Tw|H+dW7)pNQdGIqeVDOCn z2*QvQ`@i|{fA{VjC3kJ*h&eEhM3}U(^9ks zvrYPz6tMB1n%Zayi6wOh2$6Bx=n13HGokQD_E4PQeEj>CGtK7Ndt!Od_a%0fHJjp% zE|lb{3VJV4%Zs3u%0I(f?-?b7#4}QYk}cGIcLHbRw|I-+(GA#Vmzje%X8bTbU-{g`M8jD`Q;c*R`~Nx-K}UxAWMkQ}}ZCM9nQ~DD$PGgy}?k$St0IqNvMa zWQca2@3SlRFM_upt=m~MH*@(MW{cwDSb8_H`LYw`=qLi0Lk9%W&Mjt$ZhKb}+pacW-vb zrGjXj-yt!@^_FMbRaqTyd{qFc3B12pbmJ`tu$b^fLwSl=i(^`mOl0-HnfqgCtehI#6l>#wVM_N+^Y z!iA6>lB0B7m%l~s1ppCL%g9EGYrtPc*@eg8#MC!pm zQf^_&j7f1;lnm3b_?zC~I=e+D)uw=wwOEVP+^iX^SLsG);Sc=+*PfHFGC<=-dx8cm z3cRiqVUWcyiW#(cE2O%9lq;6z{2d!Yh@EnyXeNW@>LXFY#%sb3X|F}pLw18 z;}EA9qk+ZyYGgkdXJBaV9isyvLzaYh(WsYtWuRi>Hx*(@u-qo9yMB0;?A<)HiG)@j z{G6>U*-A@c=G_D5ybqsfwC04|TuX`<+8s*$1au-qcb~+XX0kk)Xl1vM_2cgv)NZMw zs(!Lw|DoGoK=Pl-oTRLQ%!IX6t>cPVt8t{)ER=(7Yho~I|KK2o5Ccrl$FR$-0V{UC z7yl7OeMbA$>pcLrtNLFAy!HIxV@@5_NniG`+mfgr9oW+0OMO*_W7O=jya}Ev1v)~Z zP{(-xWI`vr_?2?myyWe_4YP+@?0u*7Su;{7f~~gx{STA<=T?l@juKzG8=n?q%Hv!7 zCF!kG;LARra;_rEc(GtbP{Y!>b2QCkCr@ zNN5OAHPa?xC(9nI22c%wrCO$t9`UJS?;OFjc$rh$XD!_0fX^ZGN7t77 z8(P?vJU-xGK|Ifgz3fF21(q%ibbg8TzZbb5vbKq$aTh3l6v_JgjsEtTV*x?d%m9ZC zI51ILMLC(fVq@m#=U~4~KmGyx?zWFvu%HT;ppV6+JN6e7`!G^p)izEWaKJldZCauq zm1JCwUR4Q4j&Tb8c6~jL5>N0td6d_hNWHfoR)?BJZHdDMSrPpsLd!PE@ zPeyi~m~JXKwNp0J8;v{sk#qZ)6P4B>`R@cF*+9jCj~}kpv0i5itF7iyjd&y^)cZIM zD@>cS2D_wG#*3J6N%3Jx3q~3X_Bx2p=sH}Ry5mU`AsqWc-2c%3`Gh_2rP@vY%d+I` z_Qw`29HHExnsNyVK9??@VF@9-%+3^8EcwJ#UliBo;m(2euv#SUm}EMXL1Se1 zx?WdQ`o8w=$-tW*wJ_(|ATV#4Jj~JKZ-=N*qc}|VL1v+&s!~wI;-a=)R7=I;%0_4B z=f{S3Q=>NoX{d1Bx3lW%+ZvTfuH$M2s7}KnuhpNX2(s-wjQ#<}Q*s$K92k9@ z4)&{}RZuhk@VuqC^$Eq{(|0if0-oHdI{?K}uI($vAn2_|BSnrQDIjvh$xA5wG_%*! zRZ`tOLFk2<3DEkiEbzPmW=P^a%k0#wKqcOUA?0;rS{nWGdu&GAC1UN1-JW8CQ?UW_ zJB5Xq^&ScnDsR8S597$J!xy#olG3Gy($_MI2ZNSN#l zAH}=WzyIutT&gbXf4LEFIE**OarAJq`P6=q$8&VWZ%$g$=I%t;e=(Ur!>7exrdg(` z_7}eYn?GWG{)-CSQi>$kXjy}L%r(}2EtYxp!<-|BZS!e3;-GKI!_8V(eXrbcIAtDS z85p2}6C!&X%2ZVR#v`&ib%4RD?pwbS5E5z89`VL@5Y&x2*=*APFn!0-n7iYKz{z&| zT&rKFX<;g{i#_Sa(Ok)){4>4&jwg>zQND6Q_enzG?AE%I7%wwV%Hk%K*fcanxoE+d zJ6jNz&)V!PLqgyIw7NW8Cc*r%LD$JaqVVGod87NeETk<{aF33E-)5{~n8#_Ayf0t< zS*g9MJE=Kbs~to8b4LQ7k`u=#sP=kh|vOceDw^!@H%Oo@38n2olB%@8q0bVYjY zkZSjJQY_&6J)smoJqMH1$4d!AUE!wnh}6?i2<*+Y-W29klq6uPl9mDE1q&mCiNREG z0KLz|CyOl{pnqz!tvF-gT2l%MFTg<)qtjfq+IE-(d3o7uKH?rC3=*Nwc?*;NrYV5P zd&9i`^Np&WTJ~t4z^3U0e_gC^Mi`5TI(?&<$d(Qz_!gY42ltW`1-r;ms<2CdY~@i* zC>FCJ2z*yi8e9nZud}uPQDHpu0YCdsmXOv0|3}U7AGXLW7`gGM@?D2Od!M}xy?jKK zO`4X0$|3qv(rh{0RP2ekSsHR{V|V$by1sw#Udg=jY^|e^++_O5n5*8C@*|#y(_bT0 z=YK+bhsZ1c62WpqK4}?nyKIjX~k9|{`3 zfyxL3LA~s2Oi?OB2?=#cSsI(%#&Gn3n_~xC%0= znuj`w^Y)O?kbcEy^Qs0&aZ_f5Y&bIe)HF`=Mf_$Pmj;dHG`sE;G#leyG0@~LKn^le zKU_V`H}=0$o4p9=A)@7v`0cC^vud3U!p6wuLNd(f-Fe~wVk`J8yRULHFY3cTv1)P0 z-niCjQ|%Yn5~>D*slkD7c$mu}IghLW!&c%jRF&Q>|6L=k)iF7API>rpOhQqgym2jV z`^P4aH=Tt2^n)!BkUPz+-);n;{07K+L;_*F3_ib{=WaH?tyZVs>)w26YW(DlK@eF) zitVz9&26Mt{ek<66VqTtsSm}fj#nq9?bu;bKf5X#d0HuV*l%1~7$Y(AvICg8pLqRo2r%S-j{Wxmf!Rr1&-{l2Re z-eE}_>!DFuZ&_dX%>_b)zFh4#?P76srENtKM+B$7P9v2(E?OT!v1HfKUt0e0Fgznz zBi$N0oEJo}k~zQE$DQUuVX#N%N1s2@ao_?uxTA%Tcnp#pnC6PaiUvlLXCV47AKD0V zPQ;tcCLf}n4(PG@;7KR%LVdG;XkZ@>#W)5pM2GCqvfKn$h2lniPjv4zAjg5oef4i` z>#L(s51*u<1AN!I4rY6jqWRkPR3A{n)FAZ*1BolEqT!|_pbfl}D^(MhpvK?o^YnWn z_j2j)G^=HKg+SP!+&3I|gsopeK`DoIwu-Y4CqCqYz^=$Zqq;)iudoOrRW(CQUBhvxQTszU6Xs5-li-^c-tFX|6AWeby>*W2p)Dd0a`Ph@5c)+;r_P^#mZ)7%BDw2^%Nu{B3GJ6AinfYv^Bb?oEfxr$l0ScuYdn3 zGY?tz3SQrAY3F2@UVjBsq!9*)+guWLykwSQ6FA8~QZe@o0#w)6oP8A``J6jgcnJt> z04i#|l~Defhv70chIy6+_x2J(m?t~w-RUyA3q-hWc~j*KKSdlQ-TbC6x3>l~%}?M= z*(;gsGh(IoUt|VFd(u7W7j6?(LiGh&;a1%i@plj*>$GK**IzaG z%yhW4##38FhJI{@rm>JgQ00R{ry=DSfV393wkmt$0w$2MoBtpuJ0+6Qt;&PnCeX0H zpGR^$32MCg;{3TjG7v=(KV;aqSUN-YhuYP$L^rcpl;7BKB}+`^(tjy;@C>)qX*1!Z zK2T_rI{$sWk0}2KeckXacO`w>Qy#F1)e;pJH7W9itW9jAr{C2CMLN`}ag5)2BTnqQ z&;PF3{P*|M-0}aXJpP5$NY$!l62ta({5TYN3k!1rpxe7(L*g`B#RFq?Y@Z%RZfmL;Nbsx~8JejIl zxr-y{Y|Q4GCYd73R+(cab;qL1M&emFAnjlerNgUCqllPv&Sz{MkUi=oihgan+ zIm#Hho@-P-JM4-@u6a{NioobX1?`I|v28RVT2$K}`xxgV?IqipL)|0`zbVl9ZaMhK zY^hF}B$v}uKlp%0oHUvuKfLPZGdI{m6^H0RP;)CCGyF;>j_9{g)#`XPO=L`y`D@6+ z&MsEVef1$x2*;2|~oeuh_37-jYGdRh(BnE8IeE?A># z@vT*9au}aKF8MVv_@};?@Y+++*GGltAYJh0HSpJTi=wxfru5L5#83Gmymet;-Eq)W zBa3ZtTzyI5DG*1#`XnS(qa!zx4a=s}EW!XA4kAXl703BqK_Q$sV!x^UX`} zNv1PADi}~%{?9n;E4BF-EPy`MwX=+oel;t2_%IQ8!8w_q`Qx)Y`Q;ATOE7Hp`%-hO zp<2;9w~_-?(T+!klwl7c5IQ>c)+P`a+<(9$EUoZIuQK#c+4IDv#t@WJ8%Qumt-R`4|~8L+_% zV;KU7d>hm0$o=glsky!FbC_-5=L_B_L|x@8Um4!m;sJ~L-kRhZ_t4|3RdgJ1-5d_N zAPa7^u8IxvWU$^ExnN}TaI-&H%4S62j;#u3gM8P~&o3#Sf}ec4(g za~y@}z#t%$$>7%MIAfiWi7y^4X{(V26Ct*^!$OaLOS9SJ-eCG9RaWbWL#L`Br+7Bb zJSyo>$|~e5T2L_+whP%1whSo=35lDTId;HYmj9YEKPpua{Xk?ndBcstKc|aa>>tF==(xm&dDkWUc%H=LXQ<9&g%W) z!8HFeZk!a{-hZ5k9pdaVS0y9OmS#o@Z>TLB$${|O32lZV&uyMl8Oy()B<7;egBo-!e6NjY-F3LXmN! z)z*CMch5ayfzTJa^rOmU6oV>GXm$k4YNF|#jG2X?*}jNWg;Q5#iLu6JtLj54;N{f%(EtZ2v-Z&0Y+F& z>%fvmNf*r545vx&Mka}DI%T z^9&!q(G0xH$>V<&(ZT*IWY#mNY!$z+PD5DrzUQRWg5j9E`c7xgIEy_5J;w1=Q!y#|Q*fKk z@9a-JgeYn~Y?omWY%!zl+52l+$R!r1MXRk8+;~TmUa)prTX}-j(aI(+r}#HOvj-pH zC?^qvZ-INetRX*bCk_>VXBS@6|6mz=2bHZAh}*@-_`rx!B`V_+d%v&pLMB4IbKhTl zvtEfFzD}9T8ij{KM+K$efR19t^x8Kx8=`i@u)&kx+g1paZwDL_MM0I-a2P?Oz8@Y} z_FzWu-AY!0er7HZy=T=1&1mDPRJDiX<$+#l1iY-=c~Wstqo^Y7>*Ybl2qsn7H8U#( zB88zYj%lSK-(hqRtj`EnYG0WMH2@V_9TRni%lC?36&GH5?dS#Gkva~MCi&i$&@6yXvZSs;L9Ms-^5BFiX7%4*NTI`n zY%Ey!>T1xrS=U|NC0Vfe0jPpM0bC(17Ti&wlcqnZmTEDoecOJWK?-@gsikjv^6bbr zm1`0pLkaoE*V*_&2D2nYRsT%#QI7Ia7{3?zt^Pkur@Rhw_Zw-TitTM}ZQOelXl_l{ zC#IuEEJ$S&deaqbn~hjL9UR3MMjF`QK^-TpP>m%wJhNJn6~}69FxGeOv#4`CU`t>H zMwinQmiP}2+WDjqyvyEG?zSl(8fZon2EO`lDm2lCAT1h`QTgh7!m=Fd-#rO(2D_}s z%E~H%aa}ALve@i;(hXBATGa9kKc?_ZYNRHPXx~@ZmJ|uX?ApE;?|V9zW5^f-;+S&; z1M-R1y-3S>3^#+XUESNCKx+55<%e64JUU~R>NiW3pj$vf`9%CrDNgo60 zIG#?m;vWWKdxH*J>-go{*11rC2NOH~?Y#24+S8Ji0xZ-YLrYa?1OBmo`^OO+kFFDY z$vuTP-|(m%a{R!+^)H94O8Pn+<~ld}QXbL3OfnX>HXoi0$ohTJ^GX-|FlCE7!SgS% zK(^np(cu{tgG*Ee9l=c1@(+K_q``_Qt@9&Bqe*+v0ZuQ$D#f$JA*K{cZUQ2+FP?kUPN<>jeM4{nL zc+SEZW6;w&K|)KJf%4>Mj=7zpOj;G9J?Ok;>@bbU1)UhIt|Jbiqa--5{KuKEaMzQt zcpFthj5;O*$i=i;=#@Mv@b~DKGB^as*c&G?q$-|po&Cw?VInW^cbVJ-V{m^36%!@O zXY*j}5rwDmiM&Gp$vbh+-5W@b!7Jydi12PD@DI5Sw~BU_RG@if-Cz{#X;+nD2-s~*^@W8Fi!o@H8X=J zFma9G+N?G6SaeFVoD?ox(vtkb%G|1rOh@kbI;q|sEVW=h`oC&f|A%~p z@lRM{B?Myq2cbqk9OeJF_V)j5`!6|3B|t6h2R0-zAXiOyGs31}*4z!acDFvm>|&@Z zV`{&OnpXx-00EVH-r(mCR2fyO(qgdjC{nXr|LfpeDTaUD>dz>=X_Y93Gd|t$^7K}r z6!>Ac0+z+i;=?U`U0Lb9zwtu^RB`Dv;a-wmOopcE zv06H*HsJOmfUW95c93P28dm;EiEaRNl6n6L-o%hpIR6iKg*KdijwIoX!0c5vs)eb? zMK|SoX6$fRm(K)Qy2XJBv(f!{eto$KzyAEAmw>;%rBa6!g4H=>QbOtC3a$*|32OvV z9G7sc0@AK$oi_-B|V0rXFjxkjJ}Q^!Few5 zA%+m{?NMrVa39tYNr(R9)TaA&bzE9;*V@x$^T72~z?KOd26fKVX9weR)6jzYQy`4Q zylc&_;BX;nJ80XHt)t22w_lBSlvXl5**_=fD@$bJ@f(HDkWeR;<|jc<>bkzoc`thM znSmRMzy50xgd`jO;h-d! zJ(fgJ2AE~C3U}{atGfEW3hE5^-qi3)_9Ag~tYzz%G0wLoQ}h#$uG!baY=eG)?h^47 z68)r29n?bTB|`T=t2Hw%3E5-B0Kvyba4Z`w4Sa#R?~Y#KW$b(}fKBrGWUl2A+924I zw^j#%EG_m*p|I~=QgC`2O%qLL1#*I4(Rhf`ZA1YhJp}yssP*0~w(uP$wx}fB86$Sv z$7*5?`2Y4=WN$1{wMGNb@2U0E?H3<#wK8r$MxVxw^07m|OZ&!&&02GeRX{7a=;NbS zcLD@6X!0B@nx?YiCM4WD*PPH2Bu|Ep2+xlCvC%60eRU3yl-P15TKB0aA`CNEd5nr; zV4GP{SviF@55S!5Y=~)%(6Iy`FlG7gPs00`q?jXb;qwi4#40o^VRdp#R1Mi+K$FNv zNmoek&3zldyl^ZBG5FFNK;BrCUAP)~5al0)<$Bn(egtY#rVHu$Hqyl)R-Dthmj%>v z&O~E}0B$-8h)wU>_swStGKKua161#yQWy*J;gI<_t1L84N}-=c7jAQP-XJ&B^gp=z zxLe0t{0gq<+0Tj