From 5f5c65927982447133b625edea3f5c9bab4f9e3d Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 2 Feb 2023 14:13:56 +0100 Subject: [PATCH] Math tests --- library/src/math/ctx.rs | 2 +- library/src/math/{lr.rs => delimited.rs} | 0 library/src/math/frac.rs | 4 +- library/src/math/fragment.rs | 4 +- library/src/math/matrix.rs | 2 +- library/src/math/mod.rs | 10 ++--- library/src/math/root.rs | 4 +- library/src/math/row.rs | 10 ++++- library/src/math/spacing.rs | 7 +--- library/src/math/style.rs | 4 -- library/src/math/{stack.rs => underover.rs} | 0 src/model/eval.rs | 34 +++++++--------- src/syntax/ast.rs | 7 +++- src/syntax/lexer.rs | 8 ++-- tests/ref/math/accent.png | Bin 0 -> 5794 bytes tests/ref/math/accents.png | Bin 1493 -> 0 bytes tests/ref/math/attach.png | Bin 0 -> 9990 bytes tests/ref/math/cases.png | Bin 0 -> 2982 bytes tests/ref/math/content.png | Bin 0 -> 5366 bytes tests/ref/math/delimited.png | Bin 0 -> 10723 bytes tests/ref/math/frac.png | Bin 0 -> 5030 bytes tests/ref/math/matrix.png | Bin 5875 -> 4894 bytes tests/ref/math/multiline.png | Bin 0 -> 7956 bytes tests/ref/math/op.png | Bin 0 -> 6019 bytes tests/ref/math/root.png | Bin 0 -> 9126 bytes tests/ref/math/spacing.png | Bin 0 -> 11600 bytes tests/ref/math/style.png | Bin 14424 -> 23053 bytes tests/ref/math/syntax.png | Bin 53995 -> 4633 bytes tests/ref/math/underover.png | Bin 0 -> 4757 bytes tests/ref/math/vec.png | Bin 0 -> 1608 bytes tests/typ/math/accent.typ | 22 +++++++++++ tests/typ/math/accents.typ | 15 ------- tests/typ/math/attach.typ | 34 ++++++++++++++++ tests/typ/math/cases.typ | 9 +++++ tests/typ/math/content.typ | 14 +++++++ tests/typ/math/delimited.typ | 38 ++++++++++++++++++ tests/typ/math/frac.typ | 25 ++++++++++++ tests/typ/math/matrix.typ | 41 ++++++++++---------- tests/typ/math/multiline.typ | 35 +++++++++++++++++ tests/typ/math/op.typ | 21 ++++++++++ tests/typ/math/root.typ | 38 ++++++++++++++++++ tests/typ/math/shorthand.typ | 4 -- tests/typ/math/simple.typ | 24 ------------ tests/typ/math/spacing.typ | 31 +++++++++++++++ tests/typ/math/style.typ | 41 +++++++++++++------- tests/typ/math/syntax.typ | 39 ++++++++----------- tests/typ/math/underover.typ | 21 ++++++++++ tests/typ/math/vec.typ | 14 +++++++ tools/test-helper/extension.js | 6 +++ 49 files changed, 422 insertions(+), 146 deletions(-) rename library/src/math/{lr.rs => delimited.rs} (100%) rename library/src/math/{stack.rs => underover.rs} (100%) create mode 100644 tests/ref/math/accent.png delete mode 100644 tests/ref/math/accents.png create mode 100644 tests/ref/math/attach.png create mode 100644 tests/ref/math/cases.png create mode 100644 tests/ref/math/content.png create mode 100644 tests/ref/math/delimited.png create mode 100644 tests/ref/math/frac.png create mode 100644 tests/ref/math/multiline.png create mode 100644 tests/ref/math/op.png create mode 100644 tests/ref/math/root.png create mode 100644 tests/ref/math/spacing.png create mode 100644 tests/ref/math/underover.png create mode 100644 tests/ref/math/vec.png create mode 100644 tests/typ/math/accent.typ delete mode 100644 tests/typ/math/accents.typ create mode 100644 tests/typ/math/attach.typ create mode 100644 tests/typ/math/cases.typ create mode 100644 tests/typ/math/content.typ create mode 100644 tests/typ/math/delimited.typ create mode 100644 tests/typ/math/frac.typ create mode 100644 tests/typ/math/multiline.typ create mode 100644 tests/typ/math/op.typ create mode 100644 tests/typ/math/root.typ delete mode 100644 tests/typ/math/shorthand.typ delete mode 100644 tests/typ/math/simple.typ create mode 100644 tests/typ/math/spacing.typ create mode 100644 tests/typ/math/underover.typ create mode 100644 tests/typ/math/vec.typ diff --git a/library/src/math/ctx.rs b/library/src/math/ctx.rs index fafb96f22..d682746e2 100644 --- a/library/src/math/ctx.rs +++ b/library/src/math/ctx.rs @@ -23,7 +23,7 @@ macro_rules! percent { } /// The context for math layout. -pub(super) struct MathContext<'a, 'b, 'v> { +pub struct MathContext<'a, 'b, 'v> { pub vt: &'v mut Vt<'b>, pub regions: Regions<'a>, pub font: &'a Font, diff --git a/library/src/math/lr.rs b/library/src/math/delimited.rs similarity index 100% rename from library/src/math/lr.rs rename to library/src/math/delimited.rs diff --git a/library/src/math/frac.rs b/library/src/math/frac.rs index ebdb5c026..9f7fb9d0d 100644 --- a/library/src/math/frac.rs +++ b/library/src/math/frac.rs @@ -1,5 +1,7 @@ use super::*; +const FRAC_AROUND: Em = Em::new(0.1); + /// # Fraction /// A mathematical fraction. /// @@ -130,7 +132,7 @@ fn layout( let denom = ctx.layout_frame(denom)?; ctx.unstyle(); - let around = Em::new(0.1).scaled(ctx); + let around = FRAC_AROUND.scaled(ctx); let num_gap = (shift_up - axis - num.descent()).max(num_min + thickness / 2.0); let denom_gap = (shift_down + axis - denom.ascent()).max(denom_min + thickness / 2.0); diff --git a/library/src/math/fragment.rs b/library/src/math/fragment.rs index fe9642a20..bef3f5780 100644 --- a/library/src/math/fragment.rs +++ b/library/src/math/fragment.rs @@ -1,7 +1,7 @@ use super::*; #[derive(Debug, Clone)] -pub(super) enum MathFragment { +pub enum MathFragment { Glyph(GlyphFragment), Variant(VariantFragment), Frame(FrameFragment), @@ -118,7 +118,7 @@ impl From for MathFragment { } #[derive(Debug, Clone, Copy)] -pub(super) struct GlyphFragment { +pub struct GlyphFragment { pub id: GlyphId, pub c: char, pub lang: Lang, diff --git a/library/src/math/matrix.rs b/library/src/math/matrix.rs index 527cf3159..5f448901b 100644 --- a/library/src/math/matrix.rs +++ b/library/src/math/matrix.rs @@ -1,7 +1,7 @@ use super::*; const ROW_GAP: Em = Em::new(0.5); -const COL_GAP: Em = Em::new(0.75); +const COL_GAP: Em = Em::new(0.5); const VERTICAL_PADDING: Ratio = Ratio::new(0.1); /// # Vector diff --git a/library/src/math/mod.rs b/library/src/math/mod.rs index ab1fab136..4e60faca7 100644 --- a/library/src/math/mod.rs +++ b/library/src/math/mod.rs @@ -5,29 +5,29 @@ mod ctx; mod accent; mod align; mod attach; +mod delimited; mod frac; mod fragment; -mod lr; mod matrix; mod op; mod root; mod row; mod spacing; -mod stack; mod stretch; mod style; mod symbols; +mod underover; pub use self::accent::*; pub use self::align::*; pub use self::attach::*; +pub use self::delimited::*; pub use self::frac::*; -pub use self::lr::*; pub use self::matrix::*; pub use self::op::*; pub use self::root::*; -pub use self::stack::*; pub use self::style::*; +pub use self::underover::*; use ttf_parser::{GlyphId, Rect}; use typst::font::Font; @@ -230,7 +230,7 @@ impl Layout for FormulaNode { impl Inline for FormulaNode {} #[capability] -trait LayoutMath { +pub trait LayoutMath { fn layout_math(&self, ctx: &mut MathContext) -> SourceResult<()>; } diff --git a/library/src/math/root.rs b/library/src/math/root.rs index d348ecc16..2d27bb114 100644 --- a/library/src/math/root.rs +++ b/library/src/math/root.rs @@ -1,5 +1,7 @@ use super::*; +const MIN_INDEX_SHIFT: Em = Em::new(0.35); + /// # Square Root /// A square root. /// @@ -126,7 +128,7 @@ fn layout( if let Some(index) = &index { sqrt_offset = kern_before + index.width() + kern_after; - shift_up.set_max(index.descent() + Em::new(0.35).scaled(ctx)); + shift_up.set_max(index.descent() + MIN_INDEX_SHIFT.scaled(ctx)); ascent.set_max(shift_up + index.ascent()); } diff --git a/library/src/math/row.rs b/library/src/math/row.rs index d971ce221..e66fc18e8 100644 --- a/library/src/math/row.rs +++ b/library/src/math/row.rs @@ -2,8 +2,10 @@ use crate::layout::AlignNode; use super::*; +pub const TIGHT_LEADING: Em = Em::new(0.25); + #[derive(Debug, Default, Clone)] -pub(super) struct MathRow(pub Vec); +pub struct MathRow(pub Vec); impl MathRow { pub fn new() -> Self { @@ -85,8 +87,12 @@ impl MathRow { ) -> Frame { if self.0.iter().any(|frag| matches!(frag, MathFragment::Linebreak)) { let fragments = std::mem::take(&mut self.0); + let leading = if ctx.style.size >= MathSize::Text { + ctx.styles().get(ParNode::LEADING) + } else { + TIGHT_LEADING.scaled(ctx) + }; - let leading = ctx.styles().get(ParNode::LEADING) * ctx.style.size.factor(ctx); let rows: Vec<_> = fragments .split(|frag| matches!(frag, MathFragment::Linebreak)) .map(|slice| Self(slice.to_vec())) diff --git a/library/src/math/spacing.rs b/library/src/math/spacing.rs index 7083c5e10..fad1c863a 100644 --- a/library/src/math/spacing.rs +++ b/library/src/math/spacing.rs @@ -24,11 +24,8 @@ pub(super) fn spacing( ) -> Em { use MathClass::*; let script = style.size <= MathSize::Script; - let (Some(l), Some(r)) = (left.class(), right.class()) else { - return ZERO; - }; - - match (l, r) { + let class = |frag: &MathFragment| frag.class().unwrap_or(Special); + match (class(left), class(right)) { // No spacing before punctuation; thin spacing after punctuation, unless // in script size. (_, Punctuation) => ZERO, diff --git a/library/src/math/style.rs b/library/src/math/style.rs index b3f3d8df7..da2e2313e 100644 --- a/library/src/math/style.rs +++ b/library/src/math/style.rs @@ -443,10 +443,6 @@ pub(super) fn styled_char(style: MathStyle, c: char) -> char { '∂' | 'ϵ' | 'ϑ' | 'ϰ' | 'ϕ' | 'ϱ' | 'ϖ' )); - if c == '-' { - return '−'; - } - if let Some(c) = latin_exception(c, variant, bold, italic) { return c; } diff --git a/library/src/math/stack.rs b/library/src/math/underover.rs similarity index 100% rename from library/src/math/stack.rs rename to library/src/math/underover.rs diff --git a/src/model/eval.rs b/src/model/eval.rs index 6e03d4405..1fbf41254 100644 --- a/src/model/eval.rs +++ b/src/model/eval.rs @@ -919,32 +919,26 @@ impl Eval for ast::FuncCall { // field access and does not evaluate to a module. let (callee, mut args) = if let ast::Expr::FieldAccess(access) = callee { let target = access.target(); - let method = access.field(); - let method_span = method.span(); - let method = method.take(); - let point = || Tracepoint::Call(Some(method.clone())); - if methods::is_mutating(&method) { + let field = access.field(); + let field_span = field.span(); + let field = field.take(); + let point = || Tracepoint::Call(Some(field.clone())); + if methods::is_mutating(&field) { let args = args.eval(vm)?; - let value = target.access(vm)?; - - let value = if let Value::Module(module) = &value { - module.get(&method).cloned().at(method_span)? - } else { - return methods::call_mut(value, &method, args, span) + let target = target.access(vm)?; + if !matches!(target, Value::Symbol(_) | Value::Module(_)) { + return methods::call_mut(target, &field, args, span) .trace(vm.world, point, span); - }; - - (value, args) + } + (target.field(&field).at(field_span)?, args) } else { let target = target.eval(vm)?; let args = args.eval(vm)?; - let value = if let Value::Module(module) = &target { - module.get(&method).cloned().at(method_span)? - } else { - return methods::call(vm, target, &method, args, span) + if !matches!(target, Value::Symbol(_) | Value::Module(_)) { + return methods::call(vm, target, &field, args, span) .trace(vm.world, point, span); - }; - (value, args) + } + (target.field(&field).at(field_span)?, args) } } else { (callee.eval(vm)?, args.eval(vm)?) diff --git a/src/syntax/ast.rs b/src/syntax/ast.rs index 1cc29b04b..e844f6222 100644 --- a/src/syntax/ast.rs +++ b/src/syntax/ast.rs @@ -426,11 +426,14 @@ node! { impl Shorthand { /// A list of all shorthands. pub const LIST: &[(&'static str, char)] = &[ + // Text only. ("~", '\u{00A0}'), ("--", '\u{2013}'), ("---", '\u{2014}'), ("-?", '\u{00AD}'), - ("...", '…'), + // Math only. + ("-", '\u{2212}'), + ("'", '′'), ("*", '∗'), ("!=", '≠'), ("<<", '≪'), @@ -450,6 +453,8 @@ impl Shorthand { ("[|", '⟦'), ("|]", '⟧'), ("||", '‖'), + // Both. + ("...", '…'), ]; /// Get the shorthanded character. diff --git a/src/syntax/lexer.rs b/src/syntax/lexer.rs index 471e437a5..0bf7966fd 100644 --- a/src/syntax/lexer.rs +++ b/src/syntax/lexer.rs @@ -380,17 +380,16 @@ impl Lexer<'_> { '\\' => self.backslash(), '"' => self.string(), - '*' => SyntaxKind::Shorthand, '.' if self.s.eat_if("..") => SyntaxKind::Shorthand, '|' if self.s.eat_if("->") => SyntaxKind::Shorthand, '|' if self.s.eat_if("=>") => SyntaxKind::Shorthand, - '!' if self.s.eat_if('=') => SyntaxKind::Shorthand, '<' if self.s.eat_if("<<") => SyntaxKind::Shorthand, - '<' if self.s.eat_if('<') => SyntaxKind::Shorthand, '>' if self.s.eat_if(">>") => SyntaxKind::Shorthand, - '>' if self.s.eat_if('>') => SyntaxKind::Shorthand, '<' if self.s.eat_if("=>") => SyntaxKind::Shorthand, '<' if self.s.eat_if("->") => SyntaxKind::Shorthand, + '!' if self.s.eat_if('=') => SyntaxKind::Shorthand, + '<' if self.s.eat_if('<') => SyntaxKind::Shorthand, + '>' if self.s.eat_if('>') => SyntaxKind::Shorthand, '<' if self.s.eat_if('=') => SyntaxKind::Shorthand, '>' if self.s.eat_if('=') => SyntaxKind::Shorthand, '<' if self.s.eat_if('-') => SyntaxKind::Shorthand, @@ -400,6 +399,7 @@ impl Lexer<'_> { '[' if self.s.eat_if('|') => SyntaxKind::Shorthand, '|' if self.s.eat_if(']') => SyntaxKind::Shorthand, '|' if self.s.eat_if('|') => SyntaxKind::Shorthand, + '*' | '\'' | '-' => SyntaxKind::Shorthand, '#' => SyntaxKind::Hashtag, '_' => SyntaxKind::Underscore, diff --git a/tests/ref/math/accent.png b/tests/ref/math/accent.png new file mode 100644 index 0000000000000000000000000000000000000000..c67e0912df55978d42750f6f201b1c8beb533a27 GIT binary patch literal 5794 zcmZ{o2QZv%*T?Tw7r{pFEqaT-MD*TC1VONii0HkuVnc|Y=smjVE&A#NQJ!e4i)hhe zMHfDKpLyT!d1t=wH*?)H_qoqC*UWvLbLM|eq`s~iF(Dlx006`q>dKD*0EBb9vcb0o zz&M-b2mq+;HIx+$edqSFd`u{2E(SJfl?mu#3=FIzm)QHwYdC50Q6^-&nqurxvkFi1 zBZ*tNdlld0=Dvz*hhZyFh)*Nl$k0KQ?WrETQLk!UUS@735}j{97hNAU^HZr%4`Yh>|~$i^I{`eAULn&Az&;87BEgI3k@z#nlCFu%wIM!=O=pm zdnf==_~Er{(GrMwxp@<{*m7lh^d*J##a}NqR~DYYU&l|LAX{pN+$_b*PNfZb6`I+m ztp}ss6BOfv=<|PXSCtajO*va`u*`@WOd`u3%s%i%iB(S$CLJ`fsfj^&rH`vN%)Ecq zs!zrX2N)|{6#%fsigvLx~kg;CAuePDIXd@(Q2Jggv zZ}s9_zF*8ayk7NVbqkF5pul=0IPh9a*Rp%pa zV*C^nm*2sEt|vVqk{|YSVKHd+ZNB+%cE4R<^1R0a?%URbMBFl) z(cf(ke=0Hzuq-w?t@Vob& zHA`FUQ)7KLe&XES(h?E^LaR=`@f9-Y-kD{~Z8?;6KCHVa0M$hkbZebpA>vYC0)R@8PY#yV0u8b;rMVy8nEm`itqA{e;HOg+7be@T zcuJv_2ro7UFSx$Nkv*$$^*hD-pCUmBk#PXSXuZz$+W19 zA9xKQR`}Ol>!0)cpJq>ZW#laAH{cBBtl7~E54ZN0Y-zPff!2vJpaSI*$|wHj?Pozh zio$NgbEWKpE6JCep+&`eW=1^g$0p_`EDlSpA3$UnR&b9gia$-NMt?t1LAg zE##XEJsuTTDl1Em+*%BF$kYO{|E@GLw5aw!RGZ3pC5rBsj-rVCcX{|ntym2qfvNBS znH?7!Db3V`Kpg2?pnL5;lwnc&@dxhGvDGHZ@&{cOS=QxT^QrWiivl&(Te5elE8wVQ zD7(lX^7kcGL%bBFTBDELN}3W2y3+j>`t+I7D_PC#@uHu&)Vn&k7JLlfzUdlazVeq_ z{jqS#>sRLOycp!Zxq;L0ZY|uzY+h1QGP-)B3TPFco%1gb3+oy0lDf^+P8zGU7C(qb z#sSvMw+>Rd;df6kX6UL$z&2kmG{h>+Q>QZ*vy6i}U_^E&d~;8|Yz z@i1cfMX~_CEA$uT3U!sH5EI}mR&QJra>xLTrjLp?4s?0r=`I*UZ+c4v+e!_kmf}P4 zv0pt7ZV&sBbH>BN2V&`HZW!YEB!S(zr@Cg-j|U5mBQqx6Xdpf|SK5e*mVg5Mv`L>b zEGgOk0@-+OmCn5-^lUCCZE2V2n9iH^#0Ctt8E-NjNUk&EhA8ZREC`t>krP-AD z8MTH(#h;bGRIgK0oz-{bIa|a7RiGKd6&*K%k zZ4aD3eW{ah?gh}|_T#dS6Pi5FM#8C+kc!Ysa>o{M=LuCCAqo$Da6@7x@s8z5=t|!{ z79cm3jw-Ma0-C7lsgXuU2>0Qtg5gQL(S-`;i4g-}&9RxNx|)^9&5}9F@-BMV;aSYmH_?#?$k;7>@p9$?s_+Ajs)xCm-N$4dOQD(eN+`pcqibrW6RQri$lD$$u}9 zgcTQDCI5LH?rQA$%z1_Vln%3wFMdMK$p->Xt|``S?1H1%NvhR2>VU#Tn(S z-h}o9)U%vUh6Y*Mwru@e2hQGn?@}VY`9ZRxucz{9sddaDx7x+!92+9u9daxh*Zi0W zw5<30<<9Tt%WGzVRL!c`gVl8G(BS973)9m@0a`>3e)#z*6$=rbwbeBZj8672n4M<@ zc4GG<5X)h7TL#N~m)4?%s1BC={+MQS!_(v^^SDbz>xA<-(0PX8<(*tu!&C!>K=FQn zQtP3j$rtIU3mwZ?)2#Libg+=d3kcJpkH&$~m>bk|xYU$$v><@BDV>Gs?mtDvKdMIP z-*V&n6XaHZ{4GNkKRAp2Ek6F+4~e4eR(+ZkUR|2E-aYvEo{AYcCv7z&7wV=Cyjgh@ zdzTOA=|JP7cHHYiP;yKj=ll2Z){`v9fPA5*h6({I7ulO{2lm0aR9oH7k`BT)S0&!w z*n27jFv5)E#PvnfOtj>m^IgAXUs9Xj|-A?_Iw7LJ@W~A z<;Vdl`(p~YCAymH>aN{ zVf+Y*$oe{pE+lrR%7#&eTBm>nsMFoK;|J?`6}~Zc2`@D>^0zhxfD{EW?Ezxw3^zL6=kC3s4b*}-TPf!G8eOT?m z0Z>Mb%`Khh`)sb)cRT(eFr}4I{1&1(f^Q&i6Jf#3P(@ArY8fj3_QJ79AxwsH|5X-Gn~`gkV)Yj zL$9cqs~jL#Yg5{Mnm_1p8d5&weT#eWu$`0S{|k^+RD}G$#Odwj7+m4dN&i<+(6Hi^ z(y%Jup&y&_mO;mv`3?2r=Z$5tSJrxMF5QjF*na{KgR~$5u`WDjF!UI@UHG9w6aVsj zX#G!-mBNf`@-_)U2qUuVGk{R5@RwlNpAt29xh}|?A&DaHj)}zF7%!;xcciKP%Bl89 zI}7Z7(dUc?W8e4uO}{A(5Bs?}3vJVXd8)My4->i;1Pou}&1}8jC&?=>)OL*Pc?ZMj zT7C4|9A&bRB_<%EUCuS#q>V#Cp2@*l+Qd_tNLPHG69M*e&i)_fR8y_%RIpZ?L{bNj zLIH##Dd1`g2dreFo3(spn}Ulxgy1LpoN|1!qf$hGWFi>APR9nOx5I_L=W(;(Y}|1W zSQg1C^zGmSaz}Q}Zev~$ELA(!E8;C#JS)(_9&g}rKEl{& zVcJ=oJf9j%7eCUDqWN_*ai^1#D;gnZLlt=vipIL>RMS4-YPaza+;#jOjFHj;lOby(44a=3Y%wbfWgT z1*XEL+~$fsGN#u^q<;cd-fINEm-d2-_TIS>W>IVr&572Kty!gd##D5spN<(*X1!2* zsrW6fpVD@dIW&G~@yzuHGAb&D>D8y$`oH)793!!|&h~DSJ)}AwWxi*uDha; z8t_<2IN8BB0$q__=pJ_?_|GSjonx&q@l9dR?>AXCxTuIXHNST()Y8q0E9|;h7}8v0pCc-E(y|qan=-k z_JkMEhMl~WRl$9Qvb|fdhhMr;Rxi@dNdYD)l)odIW=3uU6EFr$I?w2^R?%iDAd~Cz zWPwt*OXF^Y{zBg^g|Ib|Y&|f1F_fjhxv|u^o@n|Hdllssw@|hd6(>JpnNe1%Z&BKf z>qbCa*+oS~zrH5;rZ8wHhgYi|&h7D=HrJH}_Ya9$f1X2o7-ns3$XRlDR=)}(90`J% zQUV3ljSsmahMO5r^fasec&;{3auM$K5eG8Jk01ZtNbeCY5E)eb z9829SxuQo{_ng+2ujRtd8R$;S%X~hd$_WM=JhpqFjTBFRpY$ot zoIY7A+^l-{;sK5V50^BhOhp(ZTK>P%^gl1%Aq1g+4>Tf`Kb#SWdH-vY@xS@}A4jY| zGDG1#Wb_o3J7M81%-$k#-CvaPt&$+wo-W$YnTm>e3d-zJ0sx6wSG~{3ErJWWQkTc} z^l~pwKE%2l=SY1t3kXS&BjI8^kkfB?qFs)rJdQZHl2R)}9+2C#?B`*MC-i(i?#on- zQbt<0?bS;b&;iw^K>=fa14-2DIUAlDioZ75oERTI;Lo{q!(SFLJQFn3$~=nvSdg`z z_mZOd3Il>jnp)aRiDu$}R}bqo<*8oSF14-~C{Fbb58KGESB}P9ikU&gLGfFszs-yZ zAl=?76cq(4^FJapC=LyoaAkVyc+}}X+^BqCwxsgfS)r^SMpz-8ER+qwREnjQa_uE^ z@oa=ZuW9BGoggJQlKdWYcRYQ|8ujD-5?Nxo_vpJWpS$B+rl}Az)8e2-<#}qFYuE&; zWs6T??zjM-9=G+a{E-+;F;$orzabp=%%Ae%u>{e8*;+@B!!Pd6-_G5?2&zVOU+6{K z9?7BvrZhjpd7O8lfQPu}UgQq-UeT z9%*##m@0-WpGM~$f!RD}*$Z}VtiyTb1R1T%6vwZ1{^EC3IG=h*r+et!o1w}J75_{v zi9_lw>l3_gE&_FUQ5myY(ZM8?>A+~ zLm$PrJ6V)&XX>=^e8$~n3RU73cN&)YUM26_9e8W*wQlPP-Mts8)bu5|O6HKJt~b7B zpcNvCWNhh|)k=f>=3uYuc}=3w{W5MZF0UN4$HNVUW62|oJb z<#{^&T6uKMoC5$UOxV8qR4awLa2SOo~u8drWUI>hY05m>ylQKm!-W% zTLX6LYHl$S9_P8xI7lIaY<4ssikRE)EV7vRQpv&F|Ar+;X<_Lx&DygiW8s`cSDVcm zv+gigm)&z=)Ao?r`p$!QhK?yAhS7vrxXkv~&Y{?7pS|0sLiHxR79 fTP?E40)-n=CYSu2s7|+b;1&%PUFAwet5^R6Q7f$6 literal 0 HcmV?d00001 diff --git a/tests/ref/math/accents.png b/tests/ref/math/accents.png deleted file mode 100644 index cb167533d833a80ed39d4b3e261498249da01b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1493 zcmV;`1uFW9P)Q}jlNOCyrlXB!juU2@k!hLZV_-#z+(Ho{5K$H#G<=(>rKva& zN+>4dC?Y<>7pV9eA1I=wP~rnoUh-V_(;t@^&)v(6t1B~B=lkb}?=I(a_jk@ciXtN; zBO@atBO~)vhyQ$}w$zr|Qd??EZK*A_rMA?T+EQC;OKqtwwWYSyZc=Tl`BEeFT!1|( z3qEd-Y60dxWG(6U0BoBc-J<@NI-q`Iwf!Gzik;WCd3G){z~YWxcI03ezs}M1x>b#G z=`lTXe&|CMUo`Y!S=D*(OuK(D>#|+%LL9{B=un2|y6S}Y(+po(>U-b$A+Mb{!tf|Q z3bN`+OmHFA_1-tdpE00(chFm2rDE+XKR-V|Kffy?yEeRy+k1A_#490o#H8LTQoZf` zd|G^QN4M6=X0zFB?*Cf#6WH6Uf3*X#@%EKUZ9~)vXmh!v(`u_Tpvu^rcI5V9IDFf_ zcc#&OIsVfB@kqOSo+qGfb&NGut9PhovpH0&fBbbkx^~vIMdOal(V?n2b3!*nU(_Ej z;S0wfUZg`6v%Z_Ub>>waOABA%zkh`el|;^)loobF$5JBZ2kcp^Kl)}Yn7A+au8t+m zh?$z2phMTEFPd;LsM1;Ogsvr&J^z7-?(|s$v(%%y?cd`*MXf&*QDKiH2v#nLZ1KA_ z6u6soCtBAX;IIBAvRMPHTyUEtqDvkbFxusw$U=s~F}LZuz1}Gsyxgjt)XsO`2YBdy z?Joxbv2Da*%5^;sv|A?DMvVZLwHMLJX1P$`YQ4yYj0d7UM0CLAZ>Va%MP&T~fv{d8 z+U`~i#cH~^U3$y}%%08;x&KQxxUL=+P@cK0(cSh4nTFCbgF zCMqiFz=vj?;s9V@Gx625LpcKU(Om+%4Fgi15#P~?N)FH^+F9)mW?*AW@eT8%S`56h zSbWIOg#xQy5I;HJwGwP?*9fSlMKrLWqgb2K+6p!9N#bUA`5uVuF4iWu14^5xin~~i z1*Y^DYrd}oH`GH;YUisz0sey!p1gMl;EH-&VCR($+Efd*Pu~PiE0=h1Q_NDfX;UrK zJo^F%)WZ4)yEa|P0QyZ4Ydr@8+g(a)AKVy|m6JfXnPSajB#`J{Q(5VhcDc)5sChXW z3zTPTENCFGq?I*u7o5;maZ^186>XPcfs#{NZNlfk>~^GO!BK4x^OTElw`D9AC~mlD zj2s7qc(D0AWN9bS3FSHzx+Y_RTMe(^!IJ_1o~+A$zI3Zv-&f zlOOIlH{=6XQy1AG>GnbhP?G`J(+LiI(w&*L6sQenOz%XhBVJ6+UkN647XVw|hV;Sx z3Ad4>G@LPAc2E)a?4g`E7~V{~kH+_dZ3DargQLnY0P0>nKuNIsnIpf!02l4?tQZ1G z{l*XmyA>bp{n-9AMS-q=?%o6Mxc&h^%qWQKJ<&GJ$-RBcWSMykQGu) zE4A9(DN%b%Od-ERneT87o%N1dShX(bTN@<$HXII-!InceO;e9TkVnm9{P1$aZEJkTt?s+jPQ!sx8J^Y_9Q4ZR8cayudg* z^JpsV%XvnYYD78L9IBlzbf}iy$V}`sqRf&e)Bg8IYD;aYEw!b#)Rx*(TWU*fsV%jo vw$zr|Qd??E?I)uxBO@atBO@at^VH-YvI}&CX=#Wi00000NkvXXu0mjfJ4n~I diff --git a/tests/ref/math/attach.png b/tests/ref/math/attach.png new file mode 100644 index 0000000000000000000000000000000000000000..27843eb43682ed3c067a0ef0b738efd0a24ff35e GIT binary patch literal 9990 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 CBxXSX literal 0 HcmV?d00001 diff --git a/tests/ref/math/cases.png b/tests/ref/math/cases.png new file mode 100644 index 0000000000000000000000000000000000000000..87c358da631735edebec1fe463a0268a4f6d1a1a GIT binary patch literal 2982 zcmZ{mSvVAo9>&K$##+f9GbKyecgi*@Oc)|t$k@p;vTs?kln4otWyFw%!N@w+!Do$Z z88en9*|SRsb2{hZ`=0YW=lm}I|M%*>dEbloxrwnJ8;BnS007tw^l#k*0BGp{XbkYr z0if+$tpNZQZ-ZMp<{_kw{7_r-`vSdN%gu`iq<5~?7FjlJ7KgbExutw)=awZ}PuC;~ z3m=6Q$QRodS`O*=)vKp<^wH2D9&0f=CPf9UPRwCRl^4-$wSaS`#IdX}IQFk2)`!I~;6sCjPq60uQN%h!GGhnIAUy>HlXh|Et7q(pyfkGTLKy5{ zyoq)1iM3YAV~3)+JWpEOuw@@fSabsyo!6sb?o_YwNlPr?R#^uTZR_iZafDK(5>ltD zwysQG8O?!oiBBys{CA+Ukk{A?+*F4>rJN0Siv~dY&1Q3s6}p zJXjGYxY=AtX2-1@3!qh_ZLUm$5Ky|Nw2<~YGDi%g7Gbs6iwi?CTvc9|(i}Y$?!#z9 zzG;X(-ELAeM!<>UJhXO9zFGBr*Xt_Y2|wk76>_YFPilvs~;$#uNOS0A08;n=O-|Gl-do7 zAIX0%#sAEYC)d}{AgJdOoB6wzlzeP>m1lCgmhRJq{oI_?A`Zha4Zf-QZl@6u$CcLu zmk(7Be;T-?K2Sz>HJ>?SNMD+v;TsEKY?@t%tkb8?MIf>=qTHVwou{kW6Z z+(ccya&lxt(Wtv3=}+}G&HlT(So)%5qf2ylG|)SId}jN1O9JVhYSp)&m*XgP8k?Xk zYIlZ(m$LqLb*!BWJ^1pr?tIK)!t~y?hn4`uCY3u}Ndwi)U|wJ;U83~Eq4%+8hO7G1w;4`r z?pve`>@f`nM0pe%bx8<^aQXd3&9OW+k`cvm7}~+V&&UdBP`3TRI-6%G@awk}_|$AK z*K}jf2J<`jEL$Ldl}_nNe|*k1A#Fa$Lc{e@5MZf)^kqEK!=QhuaI$7mDa@PHs%vF2 zJ145S9-LnIz3Y)?Hv6n*$@;xA3iHj?m?7OL_M*sC$o+A&zFe?7J9-8wp#s|XT zK+wGU$#vfxM7e#0vo>6L3ka(KsDZO33dcDT1dT^UIQ@>YpUb1B=F>W|X}) z2xK9l9(O^~J6$1WxYP)zSmdIlYCjKrjV*>XeX zhu`qYJ9W ztE;(c{OYg>I{>W708j-xgIBLUm7aWWYnFLGFw9w9`ONDSyvOV&a;kQLrW%}Q%Iq^o~4Zj zSdo3=fbOSFL|}oK^%c!%-Ww}{Z4{hp9<;~|FF+UJki#g#!@3RDCyqg3d3VuJV^f&COf-wP@U<9kJ z3*D{g`FjO&R(?btaU)Z@xF7MgQge>Uc$d)mG%~C}VJrMpQ{CHSxV3C5FF2@L|KQTK zs!@e0WFU}3k}L@p&z_F)%Z@`LJXSz>=12jizXqp<6R8`sO0>k;7SGwM!=R!v=On4A zPkrC;dco5*A0r)FZrX)>yB7J9?&I9rM-573f8)xiQaYSyTHzRkD%ZpYeWRt!p3I}yr_$$@13ebVWpLqz8%L6X^Wj{8$&Nm*yy9J*`&$Jd7rg$>as$$RB~s|*^B1y0@6bt zL0Yvp`?g*irm9YAi@*7@xAEXWQU!*dzu{%YAvNn8B_<%Rk+Z2Tz^VVEqG`t%8x}^W zbNCf0nAh{qu#ebTZ0;`+y=kn-9|^2@hXncW;$CTJ*0aPE?+RYx%v z;j5YIvYLxU`*j<7rYGpt+uQM3erV6ghZqq)O_I?iO~|O0a}d=p=w+>qFfW|Fpj|@C z{fuI}hmKwDO;2=kbYv|PaSII%U8M>=@WcBXvvfw#Fp!de`)tqPOuG^}8fu=Kt+(9u zV9I-89;Ml7$$uIAY(Mv(RV4lt+1A28&zR~L2yEA~vrk!=6=+nYH^S^jbpb6CIh9c- z^T?V(ofXNWH<`oIg;wVvR+6XyCkZ;}2|PoEhaWt1;;~5lbUiwGMeW=wR#EWstAS|F zgL>(x61Q|AXs)mH?F`0_RX6D!|6+eE9mM0@0p!Pr0O0l;bYgXV3Oi7=fx_#Mkhrc5 z9Lu8VY%kyjZcpkytDNv(@Rlb+wiwvId~OECEi%8RDO$Zt`2)ls7C{)(Ll4YJ&=2|( zy1Lxh`U5WlH%|UwUrFI{7~f857;;ObO>z`f@fu`3DrFgB*BNtuftyu@yf0w<`bvoK z>Pp8PEJtovDB3yY1LOpJbnR){4p9^=3b-tk*i%TOI7&H{OZ$y&4u{@Biw(hg2?ZGC z{$al9D?Zn&dJ?#+o1GS?cV0Xg!sn{1fqYJaCz|#RmM7U_HgVIg)VsaZXE%=Umj(&C z7#~2daZkR!Ms`lUqRkfjFgDo|4+o=-GrZ2M)jFf-$@j(^stLMZ-A}n|E(*~$JYDy~ uZgYY+{$wOr{7+8*W6OS3=ZyOsuNA5(S^&7YX{+_`0d8>H_!buG5c@CiF{ow$ literal 0 HcmV?d00001 diff --git a/tests/ref/math/content.png b/tests/ref/math/content.png new file mode 100644 index 0000000000000000000000000000000000000000..5d222f92938b2f425bc28de2014f3f72dd7adec5 GIT binary patch literal 5366 zcmb7IcT`hf)(wIbjSw3I1VNC1G%3=1ml~=dMS8EI^lCr|h;&4{Nbl0C6p2&;l^P&) z5JezV>C9zj{+RWf@~tl`$;y4X@7?px*=O&4U$}<4;+0D@mmm?vk8$3 z$efF|RI5$Jod`6g_J_(4fOY@n1;0qtMudVxV1y8Jh!hlpCV=oj7>FSlNYMX2cs;80 zd*|LV;tL6eVOLL$1HmVCt7hUDe|NE9g<1{oy z>FxP@=|q;|GNGuK(_2ZjG>7XMN8yyuyPeej#TkBVxsP*F`3X{`o3P{wTG~jb_-v|b zuXQ_GuY1-4zj$iC6;j{n-tuT1)$T zzM3mncBefK|In(7)i2Y^Nz(b_urqTH`jq-Qu#_7VXfsSIt%L4ibQY7ip&X*7qN085 z*NV7ke;OVV+GOFNP9w_6wLI!RQ+3val=Mh-9>?Kc!(koxiYo(q+A;?QH@_thA5Tp^ zJnDE+o&GqhPCv33Q{B*J2YjFxnQX(_~4|MZ`YIksec>$j% zWxA68Ny_SiIgMTMRlkAAqX)rWZ#wP=xE;M$DOd^!G)&(iqCEI8Fff2$jS5iD4;FJ& zzWnSep*bAYTY4lPcq@Duhx5mdAOv{}?sC0njNQGY+ZU?9&Js= z$;s*6ApH5Wd_abCl2gD_fzb+)%7yP{2M_sl-{krf3^Ge(($me)RCU0-Ms~AyZ|9|6 z1hHK2?^r3=UguiW95!|F9Fx5TZc;&aBblca#HST-W7v?c zgR?q?fcU2fXQz~0374KTzTZwmZM+CA&2)Ol5>+3KYw zeiA*L(WQ9kBd7m+Ptue4d@W)3UpEfoS`U_QaV3ckcL)&>5ESc`=V`Fo3`AlZb&b+Y z-tH^GErMsP8sj$y$tQZbBscI9g@==cf*a5}HIH0GD^|sR2~G*?U_=RJ3c68KaoK&XM>qQp?4`;nk%U_a~lRyYXz~igk*H zh4DO7{J2EeruE35XH^gL9JuLrR##U6s=SWQNagvuHauPE z412pZI{FC35P&qrJ(%#Gky&fU2A-}P7Vt!R9;9KZtUOu2D)*hece1j23Fk7xa4+iG z|NNf2*azxOwcc&g>{a11(^6Sk*)CS!*w|QG>w#x-ad9aw|B-NZwXCqSEdO-)U83v&ma`jLn6wU|RN43^5u%8RNRj~-DD5M)L|k;uX2 zWot|jyptNtaG4f!lc;ZMigtCJo}PAca#B!Gu(q}aED|YMQBe^W7kA^5)z)H9a&mIV zZKSQOtt;MS=FRD57kxCnWE8+iy`{aq@<2qcN>XjjmF+`sGBPqhiOha$WXgk|?ZKWV z#(7y;ceZC#RaHw$N)DlZyT3+`YTK`cz7j*c0;fY7o0`T-9?NEFNSy93%+JrqM)rRG zY}Jms=qGWOenvw{nYZn-I$AneZKs|2f`f839VzL#KJ|01sIX8PiZ;{G=XetmLe!AX zca8l~$-8g1LMb8e&Q0f?`OmL@K0hSwicd;X%+<=2I9WA%C!Nt80*3{Y&bc)>jFpM| z?5uPvE-f$bt<}xMZSd8(%qV~>reT{r%TXwl2A3ig6;&Nba6&>tdnN^lHn`x!hY$O| zipx_{LiR+(8yXreUc5MNBL!W62DiTz_w}%|`#HW|&w_|r;cyU0b+We3%g<-Ie?M>^ zKNst#gMwoogkmrlyP>??oE+%J&%sPds+W4w8Fy3y1Q=nYk*{A%9xTT5h;6_?_L-TP ztE~IC{`{ez9x`e1yO%(>9$QsYv%9yq-oOqcl{h=z=64unAjWXBzJC20fNOMgw8Pg& zPcJDVLiyoCG;1@Zm6a7+VhU&mUvy56rK~I=U^c?pO|M&m&SI{!Z6E5Q7MGTCb93bv zyI}9Lvnl8$rjBHk+}zv%A<^t9F{7m;LB&f9>(+Ny$7FpTd3t*K`5kA;hUKXy%VcRl zuUwJe9(gK6OGXy1mMUPzN5%tf8yJXE&b=+{wwUxHP0V|%JC+Gh-y;nT{T4rAEF@ex zcX>Ht#eJHNmNri<^^ukq3J#MET%Z2Pe&>!fb%k#6qwwX+UwV5}c&&Q7k>xVb>oc#Y z?pKCLKR}*2+S*|h_lyGc0tElv8ct*eo&EJyl`?W+xshgRZ zZHSZ58puQGN3W0iUrl2Z7Z*1%nW=6CX~i{px=hwOjjPH)Ki$}0soM>`99{4HTA6~8 z^gTB}cDGej&WX|3*tpOITmO{lJZA-kh1B0!x>~2Jj9ltnKhAwJ*?2t7{k@b8*1%NM z)6;XurKh`F3V;Xl?b|omMjsCa-Dbn;*zmIenuV{)YiCp$p4;{jBO^D8Ba6J6pD_|Y zoly0eH@lWMx^3h4%y*;d1yYRr6|BSSvvn0o;3p4~^3p#=X9KOBdm<&?XtQG_H8sF( z6BQODsr?92Mp4nD312avoiP`wM7J%H$gG6;XnqQS84k)yynfN|-Z5-#5_SfS zkn=>UfDEX-;kZNksjJH-2Dz!^xt>py`P`<&18vq^SzD{Fu73NN+VNyVV6k1jbG?S|wO#FulrqqQmjBPLsQ6gSWO1W35bvIwHxr6V2nmNvY zbB|KcAUKQ=AR8D<9tg<)Uxxqio1}uo|6)ncf6ld$><10;{NJbkXR8`Y#wa0i+vG(4 z@9Q<+>5P8Ijv8#4(63@jc8-`d*pSf3L1TsN|_vtwdna(fpW8(Uqy6LFIr6&wtN z6xQGws#pG`)TlvAS2wX4sB3Xe@oQMd-!-5}f@X5)``|o^Hq@kfHEiL_o zv)P{uqbH{olA5lqs{?W`3q?y0d%ml4#8v`Fke7#;>zrL!;Pc+HBoEs@++98WBMUME z3x~f|wbs!Y9xXKl)XFsluQyr;5&V4Kn3-uJElmJ&$4Dn@ZM}T3{euiuP+o3Q@0#`T z<42eU0|g`Kr?0lvcS=RhmB=1SM@OeuW|Yipb;;W(kpX>~itC}WGA|q|k$Jxa4)pEr z-MbeqTsU792Ye!)EO7>Eh~PV9M&=J>gu}Euo#k& zG2NTU-ZKdVW5f4SQXeN9+pmU6;2Mqt*4EbaCt)4?+b4f!{untty|MV?hYNL>Pgzw6 z9N`EBo);*}B?=1qFTqD=5~mFA?(R=Jv%>4Z--qCEQbNLStYvS1zyA!Anwpx;m$#e0 zv3zcs(n?BpBS-h{-80JsC?Le)aLdcfz;__-%UAdvxVZ^Mcdgo3v~_k`52OhbK6yt4 z7&ITg*cBhZ5t78radFf3dqEnh5o5Bvgb zZ3}>~W-CS?Hr)NjiUx9uM#Hy-EgT%!5#kKQR}gtN$Xg!l~|1~Tfm6MZ$>Fayd z3`{BiTYAAcS0P?r-o<;XfX{&J{@M-#TAP@dcn8Gbv$u}B1&8ksB)a2y_V@QW464!1 z=@}VZ%*_0=$tVE0AA^}J(KO#|t3i@lK2Cl;i=Ja7hE-biy|J>ijN}dl-XkaH?v_A& zPa2O!=PZ)Au(XMX1NX?3hZc5-Se)A=&i{V5|yU+{CEzote+TsklFndxJ(m|4JVrKRG-HjfPrK|}6Q+gey;=jVr=Ptw%T zFs;y+3BSY7pQxTsv8A&e5fK3#S_YGW4qMG2Rcduj4dA=;-K=rXYAe5DrJvlxG6m@)jY;IveLaU^y`R(-+MkXeb?aXCYAyq_tyXoTM;?6-naB`Ue zhj!+J-WZ06=g*&mF#waQnwo{V`8k+CJ*^nsr}CPb4CUpmJ`H+c7~VTNImz3&=;k1Z zdC*LJd{s&JO`;Ag<>cf-LPF3TP(|qb;^N{}(B&2q)WOa62*k@rYnT3SlDwi=2h}G2k3kq1b_CPCP9R$T_Oan%7*T9OLe9H)LGl-`ONM^^szFFd=;E>gggNBp%b%;O@g1NOz#e5{auV#^ z9UL4g3QSR5v&+i}7M3wARtZKF-IWSFIS{;_z-y#L($dnvkaaDX3AYnP&kahRCB(%k ztEj9}SK5AK6iJWDy&)q3t_cJ8? zMKTAwv}*+OWi|vNw0UxLRKR!7 zk%ff?#o#01KnP3f&q){c%nZE`UyQ zeXv0w<_bj_xYnDw{Y7shqCQH{(LI})YC!BEy!E0{_cckwA2pbqzYQdY!PFd!Jov?(C|y7{Cx?Z8xGHPI~zRM2VRM zOCQFrm@3!357kY(1g38wFMI|4N{yZk+t%Dn3xnsMget|$Td@XwuRO@sWF8lQyxf;h zua2@m&|GA!qk2UK*!PE7v2uT7ZO)^p0314G%*o#&svk3H6d=vEN= z6kcfJ6zv{4He{Ty7lg!#qzexJHi2BEB8Qn)&!zb4nIgv@hy(g;LSg4f$1eFQ|6kto zGyYz{u6DZjMh*d-k5$c4d^@-E92`Y#H(TDEpA^tcv|5}fl zP4vkZMMVbbOiE*?iIt3<-TgtT^RNKxUgwV~I4rH~E~TA-hWq67{U)Xu-CG-{GY?Ie zWh;Bv{)U4wfSwjO>c;UsS<{1-e2OXf@YAl;m4y67L$gH32gjCZ2nW6{Tl?v;$IrL# zLYVhGV0$p{*Ml9)fKt@Rw3h9a%&ue~ z-9#%^Dg1Kxw^|kNw+(>!_J^sYlMiuW&H#t);B*#XK0`UHq#96>TzviN`g{6i6Ae<3 z%&7PtKkCk3IXxQsYb2#ZjG7kZML%}KscU95MC4s^2V0FX>e13ciht25R_{{JgBD-% z{eosinQojDq{1NTmUSIzr@`C#@Osk|-r{}+%nk=PmcK5bq==t(L~E`%>qgSwsb}LF8~Sf(bXoQ)&7erA0oX zgRCEb+@E-=OGFCd<%*4A?Pkgh-Q`^YSZ~}r%sfP%sE?arXEvE>8PRl!Jy|hiZ?b(l z&6&(AfO2VjWkkFB=}PpmxPEbM*4A8lLAF>%^KgIxl7Vz$ zP~Rz1&{ZF^ex7u~Vqq7jUe9 zV?%>D9ekK$vghMJ@4E#p%f96Pd610)ob1qljG_XZCG>G3XwF{i4&Wn~!oEe&IJ`~= zw@c|sNI$`#F}giwKSDJxWdtn<0;^+G*PukYUx_ZEJE2UT{9u^Xld1h<&Rt2un#-f} zb7Rrjc@VhZl)-daMF~TXG4w@Wb^E6iQ`hXJ9~JBAY#1pGnU;9~i}BTq)J?eQ?-|e4 zRN3siQSx0G^~0fZ$~_VHY(ci=YF%+XuiZ_wP&-WLX8-P%FhNd8-2To_LNEs=4K?b2 zA9_@XA6~I{*~Zu8a!Ja{Toa;_LX~sz7sJ~G?l8-;+LGNzjZ*pTjQsoQ6Wt2d2Zv~f zv(@TkYsAs7?f$Kc7p7rKJ9+r0cY?}M?@1u@#KmaKK8%5Y^J^(VGrL4FZYr`u)ct*ZjxeyS=uajuV($8yuw@#2h| zXWmV(_wxUU{5YaEB^dWAI_bS@!=V8N*HI>Ecj$EqBD3(y^mky%-As77DJqf`doT;9 zkM42m0X{ot;Jepb`;g5nTf_W*305wygf!Hgnx4MHKgr&zfRXQ-u^{ncVh!FlzLH+n zH1w55o;-Tr_qoZ7Jzw{KX?5;DyAol|LLYT!*U61dorH^k=i?z~w8#GlO5wsTXeX%O z#Mkc%b07`oD)v^Wf=(9K8_%Y0RaD|>*Dx+W7J6ylltNWb< zHy+uMd&6sS+8sb^Y9}3BS?VT50ZUUB9L_p=tDZYUsKd=zc7dqQ+!fzQzj^4PJX@nh z2or3q5nmP*&x--Y-y1uoqmPPzXoGZlv{_Lp_(EqS#`yra_EYh#JhUvrCiQFid>6_~ zE%%^|hKE=UWTDqP?PYwa(cc0Sx7;v~90gpzt0!kN!8?q~VRh=l+q;;(n|EUnA2v;g zN8Q=>Xz@U0W^eyMG^WJ5I$w^STGDIYr_Gj*HA`j@zLXB8TIj=x zn&%iB(7|X+O+^2LwnGeYSLS5Hm)JG>4rTQ=M7gViD>9~KcJim#6tB4}E|!!c|EJ1S zw#BsL2I9?*LaB#xx8YEA=bTsO{k~gZs>=MyT5Auns=(gUN0kplbQ`j|<%=gVwQ@MK z1@iJ03$znT%iCELERk7YSbST7o`HCERj7MS71vO?R+ZP6d3s0h3MU`^^1YE$ab~J< zeA6FJ#7pGn(OlW2e?*GV$pfo!3pU2laKR{9W&}uHyn)!&EQzz{osU17B-7C14qC>= z==yg3oYUBri(IJ}i5v3^xy}26$^^;Nz7wntc@qe6ZQJ}IcSK+BsQxMTd8-U2R>mfP z)ou4_JPkoS5;l&K&BXht5z!J$vn(*U?V6Qk+;1m+$W+5M(Ag>99!h)AFoIX-d=b<3 zYWn)oR+{7yypn-y2bez!s93%3H}I`Lx9>&t0l^9R1L=ifar+pUlofn<)s8yGOL1KG z^#^1H2@aLR6O+@%s35s`9cewuZZI%ks+9AV-+5p2PgrPK0)=_z6WW(EhLNhreBkhwZNJ2c1 zJlXoj@0idTVyPvWrtOlzpz-;ZSBY(|8{O&e)!!&L*JTrru~Z=<6>1 z80g7ey0*SK>Ag~*u+B0$NE!PX(g-BgEzopX?;Edhp+! z(3@(%g8P;IxI9&NK6%rLMfb*ybxo?n``<~N{OJrLGc>@-EbWRy+4lrN(bB`zcwLpN z#_nap;!JWH^Q`X)YmJTV7M4o9Bp6O#YH&%(-b%B?Fbv*g91d|--#gUrp=8hZu!lp| zxtkikTg;4b`XAeQ4J)xh8U$4z*DTKW^$B}ULw8h5<&=S}@4wGR#RfCj&r{-C-Z2Id z%(^SQ#~i)OvVb8seygidz~1?aFyhptRFf4Psg8-^BAF-K4pWg1>+p}d*@IgkjE{aqQc`~)VMx~MhPY6Bj<_9t2B}fepxV+<& zt%}knaI1t0+3+GMLTs<~3|~hU;)fqK@$frbaDDs^0beDP9x_yLP}NL-TDV@&36M%= z6hD-4zg91fI#4vOA!4Fp6us<^M1W@dvZQ24k<P{)89}s@?7{0%LCs)c-|D0&(lo7^!Y*eRq>TvGcP#c1M;WRLVl&vD9vzoX3~zc9b#?>31e-rnOL7+pLYm}%yN6yQ`!@Y#b_`GZ{G zZGWxb+042{Ls8|AWtr>D5k=NP^&6+a@&(3_vHvtU3LXb zag*00PMvCGua;X=)lZ^*fK=99``I!Qy- z0B5>h)bPqkmSMs;sjZwUR!qIQIGL^cL{~{MVO%tjJ5hGe+$-Hw9G`ZsUHiGTQ%7~R zabTGT(ET2t$7eo-qzMM=Ub}Sa5&OK|mSf82vhFUfUoRue>oVSG4YSz5G)-BQFMBu4 zIVjG3>4jZ*pmoi>QFzsZ=7r|)r)K6+Gp4rzjUsT<>4T?DWDGvWOtC~y(QUzr;sIM3 zt7P~Ai}m!ZD44o9!CyF#T#p=fT)_?C^c3G#3hD}RtM+>j!UO5AiX0XWae8H~4m1a8 z+d`oLrgNGkbaEc;RUc2g3LD*>yawO6U}9}&N(RMan|`48!_zInhd(QmY2ov zM#L)RUW9SJuCn=av%T8znfcFv$F&SrGR?fBqlq`;^`94H&Tf(lDsNXpmqqo?{4oEC zaQ?UE#rX$vB~cD3{uSl?U2hA66e-)49?u*UW)Fzxi!7~y%awod`F-OY$m`I%g9>XQ zY=)~Ro(#p0DpNzw7U>{wcaz>RLcRsiK>)d3L@-;3S+7EflzJpqfgUx)KTw=&ec22bExd8AP-wQ-jhlCI0%P~hp4 z!Uhu)`V63R#CEbX@?FDL)qrM=Hqs>|Ffz<&7*FY;V}x#YRnr;I8nXqxsIj!&h_}Hk zR}AqWprgw*P%*Tus60Nm@Q5}4%R0fBrd;Ub7dn-LP>%P+p_?p9(|wPZRUF7=svVjB zOr9A{;?P4KM_^o*gH}STS>Hb*YAhsaF{}3y??>~mZG_9nq%Q;T>GIZ0P#u$8Rs@17 z&>*D%EA*rmJFHzF%;5YLP-plDtHUD=OPoiKnp~^dQbx~JMifDCoH)m!Bv8S3IU0T> zX%@n@N^Fe29!;d3-)Y?C$s!0I`P~XtFh_kkO$-0>9c3{ZkQy?pNPIx7u5rpEM2HkO+R_b zSLvZo)a`o6(X=`bw+R+HWdM}J`cW1~DOUZez5}Igl zSxbLDN;7&ozOQb5*llw$l3Pq8w2+l*8UjQG|6f7}c~qD6&GK++EkBJ0N!VNB%ZdfH zZUn}41rn2jI)`gp5?m|>3NAXhMWwv|i9pMQKAo?jBm6&a&3k-Mx-ZV-?AgjVjnFL@ zuv@a1$i>1WY78c7A6GT5r zc4|qmTw}^Hmx`OEKxdSb&ihYVxT{udiO{m8-5ucA(OIJ>=!cRWP_QHr4uQX%rHwOk z8U$Q2NyT>I2d%HcK8|I9CBw8vb&~ik3DmZ2X*G;=dmmoisLu{kfXv_XB%F{I6sy_l zTm7l$d`gJXZ{masw6d;qy@MA2tx!HpJMxH*7PafDKP~!g=`7!L-1bdT8lm%esxAaAJ!wpQp2~* z$Pe)x(T$t7AL#x}_sE`Jwte*bb zk7~Yu^FY+q-rNj%gh@zrIeq}h@&D;||BEHe#g6(9%Q)iViyiNO@1gv=x1z`1Jy?6D z(7q7+4sgBjrK1!iggTI{%3VHgeR;?bh=)v@uW!6FYMsBxg5+Q()u9X`-{7;6)H;3( zJr?87k%@Ms&Ba0qwpFv2N{X2+VVlB-mE6W?n;VK28=xUZIa-+gcEZ)UG+FZ0Uwc$& zzs2$km@RRrUCxqHL8#l(qZiFWs>r%b zX33;%oCqQ-t2Fy_-i}d@z$Yv_TNr+>995EHeA~))9?;v;H0ZIRkKcXQ0!pep-GN+j zgQ}dr^;AlK)nIPQ#yYYNS4GN>fJVLP@S!^M9m3OY&@U-}O|Y-~C{9A)6Uge=w&UmJ z#N&?ag3k?FJ3NjfdOXP)Y4ptZY?u^4FLi`$hhy0sd9S*Dh5nP!xiMux<4(p*i2J)! zNXplT77y0p;H0+kzFUmPIl>y#S2=FzL1fxEc#A-CWqNM=#ZU`W2QR66XHL|SbXC2> zA(&(>nw>U^RP!g{>Ge>_ATkH6y@p5PGyyDa_<>$iNczZ5%0YhxGKf;-Z#XuaBT3}B zEiY@IL{iS4Oqrjzb>x3s^xvBE5-*6_X*f?`MlW(Hpo~s@x6as&3H;Y5c;x~-FHgU^ zDu13U=aOfMg;cD`mCFZS4Z1*iMJl_5*=+K z9qbf-$mVbon*Bs)Bbk<;zng;Zz|U3M?B{{OGQ6+$cUR#qnik@6eka4RznXKdQe!hs z0n$a%4;0NM95a|M4aG+Mp1ga!gHpp{vCCYVXOe~?c?>l$C| ze2s}`6dgYv@`d0D#mpE{I3?ABM&>)FJsA{aJ@m%1xVDJxkVUFU6_s+BtK*wD(Q#DC zntIO6Qj-jMz#wy_K#iEpkweNZzm=G!Z8Vkg~Cy8{@v& zL8aLt@E1weTImUZxmCBA}?Gn)iJD-ijdtaY-k~qEXozxH>j- zCsQ!ro0y5Z*FPSs3Y0U&p==OB8+TF|{SN{_kvUhcuH?Tk*MFXJ!Tx_(OuSnllv*Ju zKK>mPtg)O9!N3Be4#!`k!kbiJI2KC}-#$TQ3QSl}x^boY@s1W!2z#)>@YbHAc6-nA zB_PpYIV|?^U;rC=Fo9y$&*}RP%jewzdN61D5y~p~7y`=n`x9T+lezUTrB6#Oy`*_mkeMP7m?rdx(7n@180dEIcq}}QCIQdJOc}Njw+R%&7pE( zW2rMj0uW~~6i20?_?yQwxqSkj&k>5viw`EZS0PEeqpOrx7ZX&l6p~CV3!P)s)!fB^ zV0oFCCBO;S4RqoE_sr3?k|C-_zsL$iwdty0?pMJp$|~ZWX+x95aD#hlP@LUBEbnS6 zHE8>>ddaF=X$}2cdrQxRT4)KazuZ^B87ZGuzFQ?N#tHdk3?i8)K9ftD^v9=HWxaNd zj=NodI6)`4hf=$^?rnfNwbI>ciFT3=K46>rz8xRg`gD{`_xdzXn4RQ*D!$AN!2i&m zIJtuq|D*VnfgI-*d`BF@GDDWTNWej^-3NA5#Pj&PAgLOcUjx ztWGpsYrn{L#0WktaV3O(m{SFjoaP7*Abm|IVs|SyKt$TOn+&0~i=uXv59ii$w(=?} z1Wp-0RKOY5S`qYXL$OJ}>#_%Yz7u0@!MEqBKwiJzF2wRNc8i_}fjqKnayRlU0Fy3I zalrgjou^s+qW+%1N|3gHg1>mlEvv4Qc_NDzAB zkP#Q+&pBIg201&)u)d>?Y~Ac%DGv%x?2<)lxrrr0*Tm8zdOJq595`J=F#&WIUZO~& zB0=YETGUpx78c!~WppAnCph(Sa`zv^q~4VB=$?!C-qwqt1`DlqzS90=Oh2~u>Sl#F zFR&kNS1PL5#uVQ&i-K;r59LdO@0_OMZ^4-YH%jnm7eh=eaJIMmS&wFcrcD1J@}Y(b z_1?bbm`2orrp)iqcRpBh7XBDImNNi&M`4D~I~18&#^p@)s&myfob@}-x5@DIohTMK z=~LX>oK!S4+35w{vnUBqvfHHOPi++|hPAkmz=i4>>7Cx2%-p&PiwdzffxFSxm?NPL z`#<$j&F#@R{&FRS8+!=X8>S5CR!djs?0VWPRAQ;!ueu9a38Tf{c*jQ!LpF*5Np=BYe;it*JYqd41}hB0J+y+!6B> zaH?yZU>%7vNjNnv3=9RoKbdMzDi)FQ=M63bI?6tO#nT*i^;G{;oGiD6CT9IO zyf1MUWSOw{hF;VEk20l1_RD|Z&ASPi2QV|f-$V{EHNQsgS>!y>hC`$uQFwZ^7ZdoMe2xxcFWLYrz>%j*R0`k0JICyyzL|I_Y zz$3(~_glu$$%N{e`C^@U&mDh@713YysPg_Pm%|K~b9xtb32iL%bl~zW99np>_ncc} zIm~H)mbaSfbMcyvnqD!>70W%EO=LA8t`O5(`tFP5s+4Qx6>h|V%}>1#taewygn)e{ zxBPoRiuyH`x`I+nr7!uu^MLkIHpQ~zRS)!=r-goCRA|M|kHOUY@RUvK zuP+Q=X3W?NA>J7OI#qvYPbakM&hZ69)jJ8q8>&|U-iW#fB6|_nA~P{*f~obv!$;l$ zGo;*JDOtN?#`pNjFjjaI2TPFd$5C~p5KZ!VX;NT&7#Z+E70f+_%usmTu^LSIVoh`2 z@sn6>M?f^(WM3ef_8j?}A2=!d19`@$%keZJ_l&F{FhxAq2q*l}QQ4Hp$k*jVLsKI4 zPP+icYROK(@%x$zeiU5fv6cpHQxRir-b5xZ|Mz6@anXz!5?lOHJs?KOo|qkAXVLK1 z8J5(nscmIldx9{*4lUbG7F!!71QB0ivq~jJJaBQt9hJ_74Ip>r*DZ9-e;yyr*SK{d zD>_!=5}_ZfB$-V*=gzxXh~<#ui~C!4MjH))8ar^ZAU)o7N8=hIDyUATc;a4CdQz-{ z-X=$h_InctK+l

zEd!Nj(}5=c?fjn53tP69tZ_QY^Ed?Y?*-WfuRkga^L8WUUFm zruCrBt@0ski%z z_nG{gOGAR-q#U3-ot0JLI;9;2a+zIjrkp!2tXD{dc*w-Di?CFsiSp$VM8@UeJ5Bm$ zhtUsZ^q--tqU@M1ZYEcfK&-D>0)O^ndmk)_@hg9PBzFxL1=a&C{dek%uM2{7L`*{$ zIa#XMuokWn7aK~K_&4VX9|s4L!{1B=uP(n8o=`_hW_@ovXX9+vP)7EpPAeYv*#7`f7DcHG?S@?PXdPh^` z3uAX;{h6USvC7VL3Z3G~$5r4s?Q}LU z<`-sLu*+P&WgHc*vjzAndp~S4wc^RgUK-<9Wn!!CXD*7(Inl`3ZOy0F7E&BM1}!=FE4Pyi@Ey!3V@yGQV#+Vqr3eN+>b^Y_G0}@qxY5k z$1OGmDY3O)h>3{v1>;F;3X95Kq6zf}j!}=%($iFDV4-!^!OgTY;*;1}=N%F}H zj_mQeZz(rFmyIDF$`x*u!=i%V4Vy3A`4uyuo;H$@zNRj=Wl$J1no!oDMrs{Uw@VOv z_?VVCA+G|sBU_iP<@)dS*SX?xjbpJt+ZPM9q033EKk2@X9Hqb7HWh*1oyd6Rvn}eP zAkI@w>-zD#lnvPDw z>yciuhH*kqB!7^uGM`WTFc|IM?DQRlc8H81TVI0A3k1M+nP;NV=@H}+c3~aK;w;=v z?9hS47%q=z6<6sQmEKQyfQh z+O)zD{L3fb*?R9F!Xl6*rtzot>?E-j5j$-nVzdXY4f$pjdr~T*@J@7v(TKW^1T7u- zIw|7ij2|vo!3G2zx#ZqNBA%VslPGPIOBVhZ3M!P2tEDLg<7~ zmq@qpD|KO{|KE;LSAwRz9{f!POpFG<6xRW@Zatjc6$wW}p5X&ob=H1nilYOSf2^)8_RB1_k>hFep8~2Emg1Q(IE?%?nZ}{z53B4;AU^WmFU}n_8Zb_ad-9qJsIG zyo`)TC5id{{zfS)tDSB0$gizkj=#t$m+WXMDzYH7n{cyB-LeqpWMxc~+}qyXR*>Z6 tgj@xGng7qS@!!W>B>&N&4ud`55A3;9_T(dl{_XdsqO7V+4Z*_fB*XE!yZM(IR?{P8cPaA!M`(g5Xu76G27`hC~UI3_?W7 zt3(?;YLro;j`(uU`p&=aJ?q=+-hcLb_Wtp#_1ybf_j5B7eL65Z7ytm!85-!A0{~>e zKl=pq=Kv7qfpP%=7~qCFnigR*J97~ZjH|z?h)?N~5KZNni7(E5QaA~f@UQpg%?C=> zD#|_ca+}QMIudi1D6TQxzYmp9F|vB`p&&LU@g|1X2?De*`w;Vr@-c&^&2C4@f^Uu^ zqJa?J;E42EyEt>pE1E=lEe#Fd9#OqE^2UM@{7kFN>?R}Ft+W9`&i9Xs<>KEUFTs_E zpwmRsELKN%8)6`!B{E3JeX={2cE<-BEz^Fhwp-mdGby$1mIx?zZ8yfYkRnUo6gVFr zK&8h`O71rxmNPRnT1lt(d99ef*c5+PWlyx$O|(wsxxQHUUNA(x4xyy^s8(@*Ir##@go|u!XLNwm#xza{|*8}~Wh8{NqWfH`n z)4Pb#2VDOc*HHkGusW+|KP}&M7;GF8Sz0`PZ|VO@)UTJR6PZ&F_AgeeD8zhd8abB5 zEv~(<%zAFQyXE|Hado*dsvHjC?-rovnu^G2Yjg&g zxc{V2YIv&B&=92Q^!{dd(nK7^bA@0N6)Q8v!hNI7_`ntC0uHBB12d)CsR0mKbf!o8sAnT7vM8mg!h-$C#gEg2AL3J1-x!Z(ZhP6ucnkGSj`C zI;N}o(Y?LvUZ`RHrFZwfpT#p=%Vn{PET72He`xY)8FSfXShwKos_yL|C4wf=2jBm# zdpLF8xmD1W&VX-{BwfJ9s!(sYe(;H-T?lM|E4YnW3CkSf)X@r5ws)`+rN+@97ow=( zsZq6;sgfi3HqA34Zp?mfN-b6$$$tEhRhskil1Hkfb41!C0^a)^f1=9vF0v)6|Jlfb zXM2ckr5IK;b^+FN(Kj)-M$VMB)z_oa+h|rOL&{ooD&^xCXJ5kdK;NCyca*G; z_N0Pueq$ozR-myP zWD+A#jB@RA)EZ(}3DmqEK}}PlU*BH}W>&T$L$ad}rEi?coo_Kb6ac02n0UY9m&k^{<{f;W@?@LyfmjXUU@#tzUlV?m{L2OmG#7Iy55TyrZ}=KAa9vakh%Lv{N}T7 zkC;*e;cAeaIzM!5y>|T3UMX>I={!f${@r#({NI%;)MyRR|E*G0;D0QuH}cJ_(La>^ z`#L>MnQO*Wk}@XW=HzT=lXma#=9-93)SFO8``2m~z@Y+H@vYa}#d%r&U42CEIa=qj zo=OZR@k^~OtM~&n{>NL+lf1X~a$a*EbC z(e%jVUGOb;%=0m_;4hl6T ztp-$$^x0wBPl`++?lP!FlKwB#x1PEH^H%r8QtjeisAt=BGd9F2H0N?-@sJ*q^xs`7R&A48H&SurJD=+skmwDk z`T6Yua<3|D{r^fdzd;$2AQW&!{rZ6xVWpeES`qw86yS(V_A~ z&aIC07X%ao*-9%F=SN?1d5Lnl^qtZfdl}I1`R2O$so!%6opGx4#_ zHZd|M>?ThIKPU!SQS%vG=W{DnFG;rcug4H1w9(b7Pg#XaCdMruc_Y)|1%a|R6Y9(u z*e!)k(cryt^dtgnQS4mQ($=X;|Ch_|$KrJxu`14M>K=u8)z4~PLtasm^>Nu$-YnXo zGUCCTg+2N5nzBwU$J(&Q#bG?RrD^O@{3{h}+25_K6{qE5`IutAnSy$$ZJs7gq%NN_bOU^gh zq40Ci`twUM-8IGQGL~!i5Xd*dCmCVE+57kbKid}S%^KizK>cG}gY2I_HD@Ev-}&7u zjZIK;Qp3uGxeuRAR0q?9pMcp_0a%qwm=A5ga8}QHbnV`%=7?o+fb3A`&paylp|cSB z+n#bD+Fr=%r40DvxLyj~!$GX>sHW18F=ex{a-wy64S$SGHp^`4*iST?{c{rAEsZvT z?l-mrN2(7Kl6FvZ*c*b#L|R1R!&=S@&atupWA^G3LvY!FcY<+B6?@H-VmHiTN&Dk7 zmRsgpt*dIg+V9T3m$T5m9C=(+>AHNnztYEI@W+y8h$5fwPKrnkAj~R|akTI767?Ol z&{R|(J@wPUOMbgH<@6|${__(XBnDd1+z4Zl2UfH4d0e-Nv4me387Z`WDQC> zGBk;KX4fs`!tF@4rP5J~JCKQ7Sprv*I>8bA{ySzldtYE=Q;uuiqeIDAP!zaGjRx(b(nQ2K+A*N%l~vzq+&EVBr`NWGSqzjw($bc82*fqFs&9_-)2W!MpRo- zOGmH;B%ggzIhV%3&yO~hKaw~|2*2hz0YQvOb#9StLf{jtxI6K^#h=5!+Dp?MPh+}Q zzx`QZhg^fbGW-som;SJ*Ih9dub|b@Yf{KAhn?MqvZj6+YMCdMRKX)0rk~ zL(SuX-u{8i8eRY1|WcWhA+aVJ-9r*uCjkI##u7`X*zLYH~U zg;`6|E~KM6XeL&b?WLIg&#Z>pJBnp^36WU|oQLYs6={s*`ECjXu5oATj1)#D*sl%o z_}{qqs2wcBk#m!gG}w%bOoo`Te@62a&?=8nd3Lup@N2ve;sf{vs4JE9!SCvTin#2p z;>(IuSYPJ}J^e)DYid3-;6-Ka`{Z52!H_(>sF}IR>FMdS>8he!7bTeGakvyk|01gC zHt-h*02Q`XZvb=g?B)nNF@m4yhjO$I?|4O~ag#)rel?OfT6*$=S=zMa*UJ%c=|mph z^*p$1QAG-+zo@pcX-OM-3TyH?Z)?gmuoE}=2$+=2lRs*t>;ltIXuMc~O^MIDasK_d zCuj^?SI>qeu#S{!uU#Gnjdb>JGd^{7vKfg}*C-s@OzNk=9Ai~9kfesxvRTgFPNB&B zu7YsAnHr3b4~9*{X9KlpuCy>$Pr3}OxJ(sMLarV@X8GM{KX>sA@%*#)b;lTfpw=H4 zGZa5wYz>IcfXdOxZ)|M_w^_bvBx5=H!O%RQae6F9)TDZyDqDOY&45@95W5z$H-!5k z+P?bK!U@KSEExp{lx%-~^2imN&1+cxm9_J4!>#|wTi7TM_(%StPy&r z?L$i1m&pFpZ7k<1FXOKcJ8b%`u)8`gEwlxnM zP>?w}e%Iu4h30!>-vD}9snBy{G7#K%FH~M|q*-BP>L%|7)0u#vJO+NnlJL?hK|(>w zQsItd1iGyS_n5QD+fHrYduKU4yh-01H`=WF;aCKwOlU@UM6?MwECEl%2e$oMp}I!v zMq@LKyGeskl0CS@Om+aJ=0q@ zWt%k+TsV2s$X_4;{YZbGI%;XtM$#7@Vj}7Ex_)HthhSoQKb%Q=ruwenzhTUbR_g|b zRz@w#INZxB<)i zsqz<>qep5(8D^9FjvM~LBL?+KM9aI)CwT(ycM9eBK*O1%#vl={Cim3n;^ZC(^RHL} zG_tS~Xzp>ud$A@v%R24f6ddK#2Es zOI;UCD|9wQm-pfClna4D8-NGz;@FE5?Wqmg3SNt}Z_Z&H3=uU7jZe^1e}UWSvp&Cw zqU97e;KhCJq#e*~NdCw4>QAs0>jC`_c4p!FudW$3l literal 0 HcmV?d00001 diff --git a/tests/ref/math/matrix.png b/tests/ref/math/matrix.png index 56a4db9c333bbd165174edad82dbbde62c35cd06..4a60b3ff14cd57d9357581323febfdc957fda83d 100644 GIT binary patch literal 4894 zcmai2XH=8jvVH?m6G92SL!uOw-UI~%5=0OMlqQ5Oy(+!e03uSPNrzBE6{Ly;Bw(cp z7!ADyr6auvQjXtu?z!il^XJZ5d+jyPthImaJ+tSTCr(f2CLIkI4FCXiTAJ$j000F3 zvu;5C0Dy!;A3p#v&1tEt8TgO=%nJyL)}WwZc2kK@j8C_n?`tvHs4+vs zP}H!gs?<5IwEXh0YPVWj246ulm3CNDLO3;!lYHgI4Tq`Ad{6fu%48qIIip< zUF0>{ox85G-?tz1IZtN&^?voV7yU;m>n<#mS?G4Aq_s^ku^X#q1?K>tjriC0QV}dy z7z(Pg6$(Q6Gtq+WN!2E5#IZ8j6;jjA@3VG8qN5Qz2A#SVXR+s#JXM$OqMF%)%7N04 zGWEMzu_>Vs(r-$Q>e+}HzP>r69lqgn7AVmX#0ZyBtB$eM``pTIQY_OIS}DVuYNu~D z?ZBDrm%TF7>!-462!R4A)p2~}b>(AvtsL2Jft6X%6f{SOwqN^|XST=E7Jdoby7h@k z4WaA5B(%ojhO5h3Cn)@0E_>h~%(Ist(Y(%KKnlFiAm5k$GR4MO9#Mr}UvwswacTfXU zBJV4x*cPc1`VkYZDY56TgMi@YTC~=VneZ`Nf7W<9*4dYCD92vSsBe0k2@@!6q3JoL znH0ckToP^PtSJ}B%!oR;hREuG0oG{2n2i%gB+HOK|KODn%;0N2HqTpnTuGgsn`)?YBz6ucMTA@LS_cFi{`w^bu3CQSqy0!JU9Kw{O71uCR(}Uy^v# z^FPK9IF4m79vZrR1s;C+gJ1b4KFkCRHjAXUj;?x{`6)N1*&bgv^-I{gU~*hkJ*{{c zl;XRDT&YO>tvTiQX-J+SMnscr7P4)ne!V+erR%W$=6p)y6AJ5&y=Te#t=dFTxW1aL z3y~90xWlPv5;QiJHvrbt!04E0vo;*sJrxz}0q%u38LfX*y|xS5)he6buaobeb+J=L zJ{Z#Gv>>g5yBf*WigM&?SzOtd7(*deZa4e?sJy@Huu}_BZZN=1Xt{+Ne0uafps04l zk`;M-ayxjlL*W7=_&amuJtH1M`8}a_(R_~w`JVJkXAPgUP9}pR?ak`pw>dEsJ&h5K zRyTuNXX1)~JG&h}$X~+GCQr0#(m?bRIo}Fj-gd_Z|H#j>oq2RCV4-rOPo|~9gT|EBylQLjg3KQ z>%jBC`*Ce2+yF5q!KeSLiAzLX15kLxD?8= zF7v=MH^=F@Yb2hoh^t=nJKR?tKIb+7Yl)KE!k_6G7#P@-i-!UUD8~*%TI-t_)6PAp zBm4{9^`R$R`=2V(zwMI>uutD}3EcBK7+u)ICVx<2LTfHuqU-n!l7$?I$SPELocG4v zE)nvq(}1M*BUwZTxc%qG;-3tXjATH+%m$9dMJYvw~%okp`ir0 z>R7}icft~t2yOER*^#ZQ6bc2YB(!}g(N9gO)7(zwg_G}{h#H1y2E~Khim1$~gp!{+ zzA7rcr%t{6Oh-aj?>s;zc%|uOVlS zc5x)i7)|HXx%Hd`tl^Ql*`_8C?%(_CwP{eSfV)9>ByV zuFe{6bvZp;??74&1>ud;&KB}TXjnMur=AgRvE3rxh-DAoDCR{z^}gWr`&ql_g##4E zvu)SV^Uk$OlTxJFe9{PGWNqD=j`WqDDM3ZPsrhK3()r+DXzi-bXG80}J$~P+WwDwk ziM+_wlN?Fa=EJAYb2e^vX!+g}eIc~trrbbt?by~mm~2))h^I${4U3DH)x*h#A`KU? zB5iLtB~KZw9#2^|Jv~j}AuNgGm^V2>+0f6d<<3B;=Tr18i)4#j;k99-4b-K9=BEpZ z7C>;B1mg3z(mr$oBl%qk6>~;rR?Sq6n1HipKv;pNun5dLSb{)b`IKz@!xWg@)$KZ; zJ#dK2h@qcbJ7Z7%!!8J+`nXm*$otgY&aQpyiT}k93fo@;n$3~wTq5h!V@s9^I*e(b zO2xY#tM=d|`akIVRnWqX?(+UB3%=F=fgeMP48+`CN#oMEw^j9VgcYS_ZhgspN;Tvl ze+89ygUdNLme$3lz84+LLkp*kpHSawfcfk>?^v5T`*iIx@@IyoSeKvZU|l^uAu1mYe-xNR4%3 zwz7m=^m)@?9gm(Kh?4v~V-V zE__gW>@)nOy%f;5ppdwI4hVB0DQm5RRJ&8kL)OG=s5N>l{3tQ(CYl&2GwYw54sRhf(g%?>Jlg@Ix?e;8P*X6@??_jbU&?qVk zs1`V!WNsY>dCYI;-`-R#;+c4f_vo?vL|swjSD8@6$|*OU?5oU<-a!@Uq=Xg-v_MOj z{@X$1X)eFoE4RvvkETvTg_nz)OV-y6t?)fl7C#M;;iU}-C>SbODiRQ%d_>w8lXYSb zRV<)WryDl93i&m8{5tol2ZKS;vKsOA!kEHh8Oq=WWRLmZeDFWn;s1IkrjWlFs`sJGug$F-^g67H^9m1nj z?>kRO>JnmG=kbExlFD+WoIj$K>r8a4ns0X#V{BQ$}p*p%FppE5CrKxwQz@FXMHnH9V%V;W`io=GODx`XLA7dahYZKSB`Y7-UKli#7Ecl)TPpQ(R*U-R?u4GO{VhZtnk}!!^7Qjqrf)<7lDE zd~%AUX3?D~sMU#1nm3bs7SlxBE}bCTHxsIZ!n6s1(=sO@2=F$beX?0H)^K z)*Q^5-cLQn_0D&lZuYLp_>FAWyoCun7&0ogoOp{e*29KU8vX;$ zc_rAvDC{-0yjz9b?egQ?+L)iLqo|Qylhq_&kKS1)T?nI7V4bZ7fe&1`6=&i;#uk#- zn<|2Ze?H>5FlS>WPYGto&PQ~2uQ3An0_-7mDlZ}Xk(Oul%WN5ywguC?V3y6<5D&*d zXXDnke6C;4guA0Dgr67Tjn7o6B(68d;>%Di7-r(?5l$(-Ub4;$FRJ%qW^>0ZM;qa`C7lw!|6 zxDpVil%2nI&35bZj7uuIbNS&%-gzIr>LEnFWFLw|LKKE@4W2$lXFz+BViP#NXeha9 zkeCJJn|J$ixN?u^2>;qrU0f`>Ws_^;W@mcg25 zSidOvTdHU9&jZBHbJyzPv+S3QAtXWWU1wt613M}a4o>hnY+;o*u4I3o7daRGsQuhz#6owf^wWhu%M<80fep>wKm3B)qjZzdahU8B;!V)g0wUx@= zD0r2{p?Jgl(?^vOZ<7DeFy)c<7H*H_IGy}1q-lTO#;|0&iMc34K>@ovAppA*rwf%5 zy2Fr*5M9xP^MX%wPjF^PtQT5LR<|{^jK?Xko`;neG}p!6!-}FEzM1V>agd!Xf(6$U z%Z~O?PA_2~Cb{Z0c!rkKZZ@jr;WYcX*-P%3!N}mg$!7wX2($2Dr08syU^f}ORuqg> z_qv{9TSXEP+=@2@2u-noxG^2ys`ArNuPlA&5E0Yyrkqtxuv0~ZhW#yr2@MiUZ~Wxy?* zI^V=~%vBhPCufLCqzBWEfjy4;H9_F;O$XdhaZ#zDzS?wota97t4r!Me)WT0qpG}Y+ z+Od6<1fM3~g=s(E zz>hhVhL5Y#s+H&lE5q2iEW5pJ zg$i7slm%npmdwP7+8vrWer!*5_Vm;}r^5%+@l^D_OlZX7Qtexk^DV2C8o9tK-^wFo z;q%(1q+N4{>fOJi@WBJ*j4udiG&k-7Axh+Lfx}ZQW4skkSVp7rS?Q#BVZ}?`DUV9t zV`b)ABw@ooQ7yO{)0^Sp$~De_-K#aBsn6%O=y_x@IjVp1O%b`dCMK865qcX2INjmz zL?UK#7`YVZ7P`Zdh-wI{HGjnfF<%9m*a)DOgJA2>4OM_+FALIAMG+B_kbiG_(EqO` z{9m2n?@ppN5BGh@^U?6-gp1h6M-z#av^WnP9i21RkH>OzbKe+pMN-O%Wf=7j?}*Ay zhcke1xZXn|;gJkX|6uiwAJvMOCm-bXUCvZ7q`x@;?>=6Xg#(WfjoehK=2c1h=tXh~ zkLq^~9XcF>pQv2Zp^pXt@bbR9w>@OZLo}iRJ-Cy5t}Iqk4y?mqy>uN=%;WA#)C4kD zZ^L8c>J`o}XnyBY4)hLniQL}d6{7z=;HIF+f-ZRH+N7Q|~r zmf|*PeFfElAagt(*bIf1`A9>&j)6k@T1nHr#NGY<{e_9+T16=MMpGacBI@*cT&bks zAIrd`-1{M_i|Qx__BQe}=4BlMdHI5UcbsN1GNMW?jl<{`%Jc0!yp=&dra}K}fkTOfodf89z59P=!CzjO82E2}>7VQXvUNJEG{9IsT72m*;Y;g=j(QEs GD)Jx7KHMq* literal 5875 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 literal 0 HcmV?d00001 diff --git a/tests/ref/math/root.png b/tests/ref/math/root.png new file mode 100644 index 0000000000000000000000000000000000000000..8d906394976a6057f33ee79fab803afcd0685fc0 GIT binary patch literal 9126 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 oGRQ3rKLiIfRR910 literal 0 HcmV?d00001 diff --git a/tests/ref/math/style.png b/tests/ref/math/style.png index d9a71807fb967ba844340f40cb7c0821076aa6fd..04a2820884a6e654c93d906958659c03242dff1a 100644 GIT binary patch literal 23053 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 W3ZlR)AoSmsK_vw>`AS)n&;J*$eu7y5 diff --git a/tests/ref/math/syntax.png b/tests/ref/math/syntax.png index 5a58df56db9b3076e8578324122fd64aa00a6c1f..442e8bfecc8168b86fbc0687d7f5ee92ba83af6b 100644 GIT binary patch literal 4633 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 literal 53995 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≪6c=bG0mdj&wLniV(_x7uPQqzea9+1VCwK3u1;vVcQBV%Jb=I+WQ4-e0h z6zs)}z%}LX-~&cDrpeSQAIv)f5MJj;N~`4|qN(guz>5Y+m&DxM+>Hk>AKNY9-MArr z^)0jZKCSuVcqGzC^pTn=QqmwSnQUW_r$<4sM)wO4E2|9eOf5BW!^s)!WXwj(?gOa_ zT%>3hIiDkYnI3e}@^EuOK>_rFy`|+u%**|aX}GGos_J@Ddqndk$K(uh^n$!k&+Gj2 zw~|~B=95J|AalUDauXJm%=*H;&XU1mNR-aqe(zT`ap%sRz(R-MYXC!ld&+WPLLXz; z2G9YSj1VvMq{9^}j!xZ(Ds~L@%e%L^w1zP(std~d-xD7q~Qo+4>B=PMAmKnXH5i~!TDwt zdHIf9gSM2EJM7e*#zQ+4vMhFL{%nak=$o6HFs}B?gFWbHkp&(jcIp=z!mB1M?0}|D zPaobY>G!Apb2aFWwitoRDkMx07Q3bXt*tGA)1yte6_iW>_&O&iXK86kEgJZM?Erz3 zhfm<{Os^=&Ye%YnrpfSAQBf%}>Y_0)n3XNR+uc52nmK|cB@^x}58@PnsNnAgA>xI< zyKQ1ItCAm>d}NKvJ%qY|KLcLLm#nUt9c zv9YzKMaF`~-rinMZyF#*{Y+_*!=^q2qzGvm5_}^9zKdum`G#(Nef_-P1E-zz#Ivwx z4;7fQad83oiyJlJWn|2B!PSNC^bnGekr8?G_Y#cLKti4uy!i5fD>Wxa!8fl2P<3^6 zwcSf12?+`O%Qba%7qGqaylFhu@fBh5xgj4r;ubMKx>>O%<8CMG62IzOYh%mMmM3Iyio zMTUlo#6H&0&}jeiw?$G8Cr9@MuV!hL8~b=fMMPYx|ISbhR5dK*zI4_2)Kmw^C;)CO z+?$w~z`sn*!$b1#zJ)CDH3e`|x(WO=G&C@&rdEOAy?psHWWv%kPu4VcSI1~C#>K^* z{nw`=1>az37F&rB8vl683`)RhXjs@rl18bWpHS@H!NKLv9mB)UdutPhl7B}SJwvP9 z5md6A$02~XAK&=^gUTKmheY0eSetPi+Avdi3cDcEi4#A zMEC~~E=RI+aQON8=`o82TxSsiddVUi(m`PPZ}`3cJEQMGP7TyplUhb^mUdQJnwqvY zQ&E4OQP&MJvX1wEFWjWVd>!JW%f^(~lHxq%EKOky$czjEjb=zTMMOMmbYias{Uf;= zE6>c#Z~`4ooazhc1g5M*8~PnOI-}GC$TpLcAvyfJXk8$VxgKm8c`8rtZ_d{FlTDWE zW~%^U))Kb0x!Kj;{;-PjPdG56eDFX6Hg?%$`=?~MczA9n`?K%e9=INTluQI}h=V~@ zS$VhWiU2I%FB5^R=(cpxbHV_f7%I(f|5nzB<60OPH8dcHh4D?|0IB zHVrHk*p$sv@U4DLqM{gs=tlY2caQINX%Far z>k-Fe3|}NMsNC6kz!FMy3=Y%Ar0C-L-y!Z!tTgHb)T7Okb#emqA)F`qC*?$vuHgj zbnt$LsE7#l?c40ppFe)QPC(Fe@(X&$j^N|tL#h{8DfZ~m)$*rkAkb+U<;Rbi+1P{^DKZM4C9YC)r+vh7 zj+~%+W-K8tKG&Bu2Kmih!bcBN-yhIp z?DzS;7fK`X^KCMrsneaPk|JRjCEGmq4aG|1VW5ip8r`)p(-L(7n?&)+lPZDi*w|-t z?Xf6`eOQP}Zr|E%E)C?Sr>6%9d&NJ8_U#J?p`Ex0cCy?JQ#W}mU z+`W4@LV5=FUK3N(2CrWU2{jGIm;(rCO_D@?gtGaH?L}!Dw?~@jYGs4Fbqox|Vjs80 z2*_2GIc(B+2xaHy;u%qfqTAL+-mDPKqQ_jQXWt)xR85Vo=DJZy%Ry=!0dK-r+j2;% zah^e6NTxaV#nSDW?f6f90oHRI(v(dW#lwegZ`HFlB(5-xe=WYj$;DUp4g4<00zVom z5oO54v@RRaCBf2o*bS)1Ov@di>uh#R^=nu$e=mE=sGz(!qbS3PS)Z~)X;KM4iawj;%s*kb^L15lODs}(~Aad>JMbke`xSwf;+)=&fTY_+0%d0 zW8|<-&S*4lAw$IHyX&A$(aYAgEk1XQcdf&|t60O#>gi{g6dKt$a+k8y!F90#3vDmC z85TM4NM!xLxQW4m!ZFtuhK6^f8z8ZOUAwfXNL;TR@V82l1?6c`rEw2E`-M(pC&dzP zt%;zioB`YQ+ncd?EuIj#y6t-Jq!R2$y@7oGd95!oeCpGE>x%uEDA?p1NZ&}HTm-K; zFELPeY%vQG{e&FA^$>gY&50YAh&-Q?A0hm;-|0FO0)twlu|gHn5Ap*Hb2(#~v)lK; zF499&xoRgd+$1F+87_O^l99<&NJ~rKzWAfIHtF0ij#tR3v89Fj;w@(8KLNac6aI%Y%HvoOrVd~`>38V%8z!ux^YmWChDh|kPWcxc|~cpiuj{P zZ+~+VFeKDk9BDp_F+;Qh+}A8$n18MEf9Of}>UEc~guX2jB}l;}O)+NYTnxcWFd_6z z6W!!EP;nTX7tgY08rAOqN_%HsVkIij`A~bzQ&C{@`rv#$js%i}gX0Yb_F(?v^F=_7 z79gns^NjBaCx7XZswVOnVg+( zow}fr((y4@ikbwH;e&%Nu9Q-I_Vt(tRbDkuVU7hz^WSu$?87x*#njK`hR72(-K{v) zr`5Ukv{NURF?JL?&;{ z-4VVH=Zj+1m~0SbK$5cttuOSh^3HshnD41M`anfeS_l2c$?=ZDUFEalfrxmGE|QGJ zV=m-|F)B!EUer3&Q_tFAkVLX;FNnxyYfMCkKh`gtSbtHu0WQ|Xt8x2aLs$>+|;zR1_lOFTG(7%g}^j74GlRB!;M%SeECtSSQxF_+Csf1!XUzp19==+woi$bpGYS6F^`E7beu3PH1bp) z(%w>tnGVr|=*=4M4PQ4SY885nEJszRnwnE?iSkM9vFdVzlt?@si3n0w4^k$bj?^#c z?+QOyB`Dk?p;3yqv$k)?L%y_<{37$CWke8V#o|-cAzld7f$lc+UBtE=Sfn##Pt_pKH88XfHG%;W8`!c!=QbWNZG6^RQvuigI+kU(5U)kV1L8$R3s`jv4VQZk% zeYI5IzU!lIo0 zhC-tjz6THL5ugPaZY6`veI$2x{M2i^89%<~I#w-ERMXSb=)(kAWWUH)q21W{_z<83 zf`hHbzr7Nr;)ls4mS}yKt?j~s(aEu<=m05;K3J~qFfy942es&fc3-%qh;_zTa)C`7 z-=OZp8snv>Ed90wWHc(eH z_=Pc{OVch`dS_R0_(Xd|L=X#J_44uxX1WX+6W{^xTvBD|hb9X&ZHa9*<$z`@M(%vL zTzDjh_fPhWQ=1us5Zoy)DN(qC|C)kECi3=P1NATQ5TydfmIL>KPejz$-Tm~*ueALC zXpjAGy5S#D@;5H|mwEPILTKQ>?6m(mKAJwG^#U52AsZNObr+s4efXuaqLp0wqz)kC zTd@+_C-oXz6xdlrocR)^QRrQJ?w9`g|1$*Ayqn=jUAny6?>=(@?V%f>Gmsp8jCvrK zYO>T@ls34(vY@o_s`*5=liP;)#&(v z!xpmoK^umZm6a0mM~@z{tB-?q3D}7YoV9JN+S8Hky~@&?+gR`JnUo{O!qfAOKrQt5 zZ-w9lQokLf96x{RNFa0<59|g;A4i`$(P_CrfQlcwf#XTlgu+KUg@&+rsut|mU^kEb>zp7 zpg@L&hZl~}rzp}3UWJ=-1W)X^qOz7&W=e{oj!vh-tGG1dX{uz#_OgIcyC?isX(?$X z=eVNRR;5G-A!koMFL<;!8L;KXFXsRL{oF`tVOpB8*z$9*Ms$FQ*7t%e68c~7k}Z}X8TClLP65Q1oG<>nrS(2PEkr@RfrPV2MOau^ zR8&-0_|0`Bx9tMH;MK#OWvbJV5#uyAcJ>?ht#qZx&y(913(S9f2Fi<|$aIk~Z9wU; zdDk*k%`P?8=9SwT@7+1e9X4k^vOMqX>e{ExRLK?sYhOvp{;;-IgW=P!Ln-_kjP_uQ z1?Pu?2~nzvFy*ep_rtU`y|>jf7Ovb5D{-Cy*Ec1pGbGCes?i3NfEqh!2%()?1@%fs zN@@{dUYU^as5kBQ1cA0VGUqeGyu2jNgq5OVTqJ%}6-%0@Y3x?3i5HQQpQuv2YSu<< zw0}B%+AP7Hrc}s1$b_Am1eELZA2kt-Hopt7oLHbaO%BI1Te%dM){%}lP$cRry@?HG zN@+rVXHvRWTFWzM&VUcE5uoxx^1*?lgTp=^t*nZwD(q_RLa|#5JyM|5Ko0Su+YGX+ zg>JeH`)3N8;1vhb@$A{Nktg#qt`o{7bxSe)wAxx5TZfXn{ZU75V@1s1PhB1+T$Q@M z$scGzd3G>Q6*R?L7jLn#Z9adHp_49fV}2%_=%#wX=2nxQld$p%Ca-CzifYwV%wnOy z^ImfQspFUV&eZPX2cRj3cxkKM9(WhGvUzq#DX8&cg8-#bx9f4UjwQyAB%^IG;()#a z<{h$5avk@j!FSlCq9+%M%F3L(Q{-2jR=Lbe8k`Ehetmhklabzo!lF!CWx#6abs6hC z^Yw0c7=4IDlG0NzMf08davpcEHF7Wrq&|SJQQpPc)@05XM{}od-8+|z(?}Q&R%mC- z&zj;wQa+k0xTwTmFc=X0c`AvojZ15MeRsw^{0ghpq?D=ahHV!nUOWPJwmq;KMIArU z)Fkr|ih!i4G4w7NbY>?evOz4k>|wPwE~rHeWPTJOScbWBuf3JB1#iUit8*73Wly)g zk2Qp;W(1Va^m4LGA5Si2DK9yoza8NJVPX(OsvOpt=FVx_3$gKVceSmwASXRI+eU7V z&Zinv`H7I$hqrZMn#Cd6M}_S!Zne(ApMH4XA$s_QP=LH|9cKa_}VR>lx3as-?W!TC(9C@goK|I)~T(EMZxcFKq*7@{!7x?U@ltQ3>3&G8I!&j3NB|g*6Yk8Ixqz(Eia1wtp zVSSpG7-!p$j-#B1*^#ciKYV}dQ?k|txB6o+g>K3{09(C>(6z(!9|Kcm#l#Fc6D0gRovD0!XgK{&Nxw}P9vPK&*9+|} zQ@t?i>FU}X6sXvD--W38q{MVkTup5dGE$JVTiikkA`s?|x^6ja?E_6a@6_%m`UD}= zN9v#;2Nvn|{qGPSLDS$f8|E&#vx^tn%ZdLy#@tSuAYK}oxhD{9vBe(!{lo1HPImTm zt@0A6)d?QnM$jKqV$?I5fE-)qgW&amy?0%^Wp!x@oary^$8krqDo-MVf;#SGtPJKu zh?@o6{_NSaTfkDzcP0XGnXl*q9uWkMpHG)^j6$b?h&-ybspMLzEILVnscD>GIJW6m z79y&YJdnN~f2^%oKPDk@rr59I1=yQy`Hsvblt}4u%^+Vc$z*10Z(xb}m5vb9fwIccCmCC5f6vZ8WvE z-UP}6zy{QJY&RIayJFPSfVAX3+!voRLOudhg!=&)F2HCgN|YDP=M+Zq9+q?A>AyN` zCMNO3a`sh!E=v8-)O6{H6T!bc?ZZ@oQgFZWwKO)+fk*Qs&RYsM@mZapW zP>lQVVbsR$+qWTu^1E?AXP!WfA+ZNrjB48#uUZ`WquX-~?(Nd+tA|2z4O!=}(q&xE z&GIf6I6ZV5*(wBc?#~=+Y6&E`QA9*)s;c6lXa=+k+);GI#>v%ly5ZGNnL)?pQI1ZA zssqqR)+#;tT@JwhBcI@LorHw*Sir6{u?OW14<{fXU?3X@j$ve$)O>^wwUqE&ooGMe zgiTdtMFu-+FWiM)fp%xo^Q+!{4yZRvkTP~k>d|&PwuO98Ct%prW@G`VFwhG7Ab$QZ znU#%3py$!i-M;-uOUo4!)fU&15fim(iz1{=RchbZdzk+ja#Rr!5$6Tx78dNh^XMUf z?3^@P?}aS}xJ5|hyuAk5Dk)cH-qvwwT{x3=(&IbeJ`aqBTf1%Z1;*f{F6cZ42B4kM zZ7DElK+KMZ#n$^aE>1^lv`+2_k*?CQ6{U-VgL86n0>cR*n~RHUcEnMn#HgpEV;weB zFmN%@({HS;6@f1a{5&&YQeIjb&RYYd4o(6{-}CcGK9lL*&}q-J@3re~FXGfn5K)@q zsJMjV5WE_CSl6U+efwS-&vMW@?O54P#afO`S6X@bF(`CV<*B-2nwP*~%WN_Ja6Pk; z2r8R$qj_!B2-=f07@qIe^!ulTth`OOdOD)*XBf(Bi^Ed$Dbp--7yNz=*Yf z5iDDE1kwam(*e3UFBl|1tA_H90-#C_$kznWEr1JJ9pzZTfTE&o@C|S1^a8kCpRBup zfg#D2!5YyF>Yrt?hOO;32;^Wx3F-n*AK2!*^2)rt8lXDM64gnL2ichb6W)A|3i19~ zKU(as`U2NVZ9vyuqTXmCJmkhldx1He!4+CsTBx$o)2oT<%sT=F9V{k83Sq$y zU`<31{dCD!M|CSBBO}yBw0CxbxO(Rp-~3I8k?kUR2TKFFxk`|>^w_RJv+>B<2K~G1 zu;sbj6mSKT30OQ=k(WR`1|tUvpQDYG+}*&`KfPRX{6J^vy8!*dLc&J`u!ble7V3cX z4Gaq1U^m0nMS#Bx{A>;e5{S0_OaU|Az3*v;Y=X2 zE{8OG%Cd(*LE+1KYoC-|Q!g6{j^3@J1i?cmDfgz;wshq~tX536o^60S2DCx4g9IDV#f zScO=*qF%sdQ)B*Ys;Q+e-XrUZ!wkxuZ)IgADJfa?4x8$t4p<iqtzPb~vI<6G}=Ppj&k&tMeb=Kd%YyEYaWDxkr5+U<6FICcsqK0g{!K-ZB$ z-(R}nQZh37Q@nrs)~!&%;^yBoW^F|2x*acUVqf>Y7VOm8MbS=rTAopW&`yf41x z`DT2zx~!hyh>sJoT>8&rhM%`I6`HJ!Bkx~RQY4=bKIp%5zc)_j!HvFchCMbOM-qm_L#{ar7w|h*P_eH8qRaKRG8uMxaP1zzMLR$8b#=!Pr zgqf=Yaj{?4^Ggo$8{By*^KD)AIunakybRBbj2wXW0<6Q$%WFSg=p`~Z>oK5AJsdL@ z@Ot&K=yIQ1STOyBy0xVxrQEkQ%*&T^3JZzm)p+PoJ0vd?K**oA%-f7KSkRf(Pz2Ok0_nnr3O1iq8Bw(8PWWet>gocXB^EBtHtKS%P5kx>|k!CrM} z=06U{GJC~1Ob+IyG!Wx9rW&Sr3AP&=1_lPe24X$aOlkg+iT4Ulf2lpwDeWpJXUy=Z zQ{xA^DLz$L%0RF5ZV8mY3NW`h#`P10>Srj7oRpz#%K#c%?Bl_E8##B7cCyq9{dYU- z>XIP=pE?b(widYm#2OsPmnyfs^5_?hIN0yDZw;I_xNcrA>fjtY8d(Z>MVgUV48k68 zm2cj>;Y}L^-#r**ieI+%ouMl*B283M?XMfO)(&kvX?~hbL&lc3h8_6buU+*(7>H&t z=deEghPFW`(=wX%RS7y2^xvol4mtPAqQT|Cbx_HE$|eK;!Ixtyux-dIDw>qM1#@go zjmt(+qpz8`F$fF{GfuONp6Z(e>u!Av>et7J$A9BS0!d+$T;otQ`siOwek zFD74dsX&C5*^XG-e5O0GHUC_SvHj9uDLqSp@law9V^`ykGR)MnCm24Vsv5U;HjzMP z$P5e(g(#P!j8SFf(Xz=ejE(K~PM^w1OTWV*OFIex?{W@=hbf|E3FyX?<-)Q0F@R-I z3WtkFDnPFX5~<9SQt%D0vL58*u!09nUm!Z1Iit3&j;q|Tr@cM!`_oUn_L&_u=YWWS z-K`4cvuH2oVD1kP_F=U$&Za|S?!8!GIVsBewH54`WwSD6;4tpX)Fj&@1m6urLImgf zTnCj_1QZNy+)NNk27N2$^M?=JhWCM$1*mDx9@L<#1-1Dg-9niO2o$z9Hux1fKazXK z$De|k@q`X4COmP-pvcQ?3;Qym&-U@|SW|2M50s}0RX#FU09#qDKbaH;;$(={>#hB{ z(xf??60n;nD$efF#6(7_NonH}Ooln5$l-$!W%36v*ZQ>GCVo3H5_-(odjq-dP+yFL z+y-D|r`i(i-~r?U6&4fVY~pFk4F|%Hs&nAUcPne_{g|)R1hDz!-rjW;{p}UO3XFzC zC%nE32~k)_fHW}(&?~s2HtsjaCG|k11QyIJ3IUfz(ZqoWy>6&F zfMx?pU@9YnjVe(8hgv57q00(NU&A-l2qq}~t-Z;a24l~g3s-2)Ey79|qRapXlKo2Z zJ1k<9N#0OLUthn=0i<c^Bay4@?0Ac$mSPD>==$RfKxz#IJ&&#CgE2uR@d z0bjJt!-wDC*#J~jREat4gg(>YPrv#$HkR_ucQE1ndW1!S(mFLYH8wHp6tr1Eb#QyJ z&mJ~Qz=Y5UsOdF;-~-w3oQ_d`db)H1J`QSjfhwRw&&YTa%K0G?r^XCbEw<8wJ?5Ty zCK#h-BiX%#VqZEs{tOiSY)`fS64e+o7DA4nrME^T07|xwLr>Ccv-F6KX5ce<@N`s-~^9YRM+*<$W z0l;XElsQ;~Q*M5K{%4CTY$4#ROH4|#D~wKn@;fM9fsz0UZ7c3ikcHjg{j+H3WgsMi zwClLD6mfkM%9rQo=B}P+0dtF4Q3#L%D!@l3B)n~!u7I>1Fg85rAWk8b+xgFBm3S1M zJb_hdtgE|~$pIJxOg>WfmZG_$Sad;(AOvn zRe}=Tmkz_I#P8kRd88|pU>gTG8wq{^*ikIYP@c_S=BRqY4Ot|x|3F=Xv8<$jO#a-j z`QXbz;R2PSsJsLUcyb3|_k;>Nn&e5z{}iT?nM2V&*!C&i#$cs@QMZ2Ds_Ms&HGEhT zTNJ3^Lyrd}*YeU5s1kkHV@?pSAiaVNq&^&meWci$)*&2?(8t5&+@C?UD}xF|F7r{; zlL$yFc44=G&e>Rb3wwBSMurPug)d(ymahM?&M6^2gofI-sLO$Plbo7X*C;^9! zYH%&}^lU>S2k2BB`L~pfbpn)PoJ*JF5s22Nrb(+}U^F>7IW-sy;ZY=yF|n|)U@`q^ zPk|>)5lx7{urp0b!NU;T-O(lt#88U{)lFcBQTHKY!okFZ^MIREULI^WuReY5c?}<< zgy(hqe zj2cB(@$rGIztda>i31qD<^l3NefreZm4Ao$uN{x>F4VtEO5Soa$W{T~7z&z&T1jzn zH(+JKym;Wa1(EggA=ckv|9|~#n*WGtzqXSzxW9aO|A)fAGyn7HH{Z~_mj72T9}2zi zLkKa&c#iEZP39ZTikgsU54m1hqaq7;;bnJgWRV#}Vv7-aG@Fn`M8`|il=}Ztf%xZU zemM{S59N*7FA|kvJ{$sx7q@=~t%Sbe&;dp|p~qkPA8R1>m@@>zj{sp8E&u>nT$=%H zAizepMe5F?PU(Em72Q~xEKKbYDT~`~Zfge!=kGpYk~7M)T0X2U+l)8LeZ@z^%8SFt z>kl1*SEwD-ZQlRr_I|l~PyZaLDSZOuwm~lQu-nUh;-=g`OT9V^Djs+cX)x82J5SDa$48P=#6&KrYy!xH^=Gi zN`ZnbFjeF{mwd!Pl}12b|KrT_lOx}p2DFV`uNh%R^cdsRsr`q11R<|LCA0~v7&kk@ z_9O~peT-cPo`QxL(6V|*KhvUGJIfUeR;EY=p2E$|ogMxIK^q&JTy)s`q53Cn|2xc1 zsM4)bX##^seZ>|mzw?4+uE%Oim!*&~;gV|Dn3$!``&MARHZVDW9EPX-?ow5|JaCo_ z3=A>+F2KXQMh4M9QDa*kae4Q%g)0auQ1_KMiNB6YWTeY}x;H&P4`s;`5?)J7g!fsf zGsT3ohno!Jr->32ANLsQOO*i<4Hl@yd;lES?vrab3NGrE2&?%uIuwAZCMt{3K8#;v z_QW{Vd7MJzg;|@3+Oh>asbUUlYvST=c?elrSQyff(9nQSetTuasrCY_LWF{Xq_i}? zlOODn=LKO)^X4kWKXka{nFgU4Y9`6KEx=BZd`!v+mY^c9_wV25<*{SDp_~#z>4-Be zq>mWa+vm4n!2?U_=;UNSyZrd^V+%++An}6-Gu+C!Y&jQpTb7xutj{B;JG` z*$YPbP02lwu*yFV0YC#Lc*s&##wy1Y)Q+KSB=p0Fml2@Na6vW(n|6NxHb?~&7lq0~ zSUQ(ysc)o#7YpTYk#AXEU9E%)G}u$GlafN|kpTc-2qs6{ecDjsn3$RA3Kcj0GDw(p zENpCxgH-y!EM#YALlG{ps-?BOaUF(0=*cAK4lF^C1i!mNYBwlwJv}`f47rd!^6~M( zvl~XdN;6GZ-OGynmTKzf=M(9$IEBl|vZ4MQw%d6PCsNPjlPbq`S!+(2xK;ZngedEy zQ{4{_rZ;(#^jS<93E@&&cR4*ZRgV2ftm0V*nqMzGz(B?(p1p_j!ei3cP70aPn;hLm zA61jem}$V$k9(8XgfO|noAQlOXp277;$V~UC??>A0T`jar~_%v4ID5DgZ*sKR1?Kivu0qNKd-B=-}uzz4g&)uDVsplxb01N0zt~o z@D&s*Ekd9L;Za6sd}@ppXMoQGY84*ZRl2{B14LJ!M;6JpPVm>99AGQtK>E49SyEbh zm!2M4y(X8Joek-Inf>Z#LvvI6z!tD&#;CN_mh!@rEx^@ceK@7kChapl3f@vM69Q=* z=Zc;%aQmR*uEzA_SE|Q*tnlEG#G+^q3Go-^ZBfs8!*(YL$C`^%FbJbboE3WXKS1b! zV6mVax?N_E--rKR5sxR=)qh!~somOa9fvJF^n(nBvpLHW_zrCJ`P{ObH}c9?7Ax5f zHNbX!zUw9UVp^qaMGyl$4=>^7n;oF!W0%e3rl}Gqm^!k z{4)Csir3tQlHG8S?#kum$?%cv$_fao&f~JA1r1VxhqkLEK z+g=lp5_-q((kMkzP*6OLCFXfM8ns2}c=3|N=!L$q5{!$Kmo6S0KiH=lXkKYuS!#B+ zv(vZBA0RL0h#0O;UNy}xC~BBQC^{L0+G-7wmT9NFRo3lW542D5%Tuo1+3Kc}*L2H$Q5 zC@U&XQ5Hbi9H3vI=%<#SqN}&=3ajg}M!<`ZE^-}`1G>I(7V2mz-+31(5#i(C;O!l4 zcHWxn=uV)5z1><|m7B9<|OPo?YYO@6Y4|VSykM-aG4Qr_+4N;UzR+*V)r-TMVC`TwH zTQbTnDkLjOc4a#{jBpSknUSo>2xV{C+1K;vd;ZSfd0*H4yC2uT_j!7huW)>h&v?II zujhJ=L|0o8zlo9T_59Dj9#7e2YV9i|^ZZ_iUo-yEqB+xsHY(g?zu%-q?1=%gCi%GQ z4>EVs^wX@z{lS^5Tzai6&Y#|M$maMo;p0190h_|k48Ie@xw|yiGPljR3HvoXIkviw zaM2~mDd^4V*uBcd~XSchL6A)59Jis44jSR z7T$OMO}@)}x}z=fJ5O80f1XL{7l`so39kxjX)7JJPLIqfcM)4`Oo9KF8Z|MTFj17Iv!B(>z(|SJT zCcejaR$nM~oz3svQ?AXiz!*NhO{A@_>te#3$V5xjw))PW48NZ~pM1?Onp8RM@U40z zNGgj&^IOMK6_hzJkYAI3utnav&1^MTr3JhFDy(V_ZFk77OAZGe9!h=a7mxPf8(0b< z3GJf==!IP-M%=a>ywj9Bd?quMl&b|)AxI=UBV$32yvPEYGE(T~d3VT5?^B`XMWzcD zq(Z6vkk^B-Llv75987Ob&I9N{aj-;4sAy`QKE2)|WL~Muop?lHXOK{IUbWk!tiEM$ z)nYs9q5xLtm=Uz|u{{rV9_XPdc`Klt>rFtGMGD`dBk-K94Ihyey_2rFx$F|-^vG$& z_)8sp()%mw>gALDvQC|T)9jS??cz=&9am&2Tc^y!Kp8<8O0MjI&}@qEtPqF zhwA5c5jrNaqJ7SN+aM6PcmMLLXa|#Bk9T5=R(qu?YxhRAQ1%i3{ZhYA=Mkf+ezb5u zvHTFUPpn!d; zQ*$NH?${1V*wQw{WUix0kDQPu#H%L*MNn$w^eo;&OUoXl6d7^(gk>9^l%~mbJOkMh zZ3sD&y8V-?;g~oZ+nK}UDkGr{>(|!>${!Jwl8XFn!CN_sn7|IZRVdf|m_T31B z10;u7IdPGEgYS3+^mS-LS-AM`t*sV3c<=xlQM=M0cqnk})6jQcSfZWk1*`?Sc*&i5 zD@v5z%*?|>L+E~djg5Z)1hL@zsw*oIrS&|ff(ar9#2EyI zh8BVQfwkaIWZ%O~QsIf^go@L-%6ZKaY2_)5<2m|4nu*z+BdrS7Q8j5n0nJVVq*=XU z&STOvjTL0>-_u_LNbj!j9_vX?)Eh6=;oNbUyx8l>?eJPgP50?x_0B5|@wC~^zVz~< zXRKyZNKfeHb%QN(pJk@@G;Suh1vPU@v}ac-cW(V=TEt{-xtj2TCiDCNsf&BSnW+i$e^OG?hYwQ6jwS#3^9NwiZl6*V^#$&0g+yhbU5GYRl=eH7NHzoLV_`A+ z^XF{{Q>?=C^0S*Ls2Z>@h`-<=1+q=4>WhljAc@#cn-{rj0wg`KR-{KVO~J@9ik=iL zVdbMNr&%-d>hTupest^gBH6u$WSled2Ys}>X##1Y{* zRF#xY@xSJ{@B(3ecUtpYz!Cs(iY*9x9~VnfKlhgEiF`!|i$4W`wX9B~hV}GMo&6}*U zt#9`84(LuxTJBEX^?XdXUA-iNB(uG+K0{YHU|D(WnP$jv)VKu;@fLIZ%~LMyDm!ly zh$q^#8hP?RR1XNrxEd2R9k(aTovr5=-$i%zkfl&ovwN^c?q^AXG)3l7qnOu^W7M=< z^oW(-Nl20lSn_#tkF1IN1uD-so*pO#_C1|DSOCQ3`Lphubq61vMtL1^{Kh9J{@`W$ z!*sFcmUykZuCR6I2mf+79{UFey`8>5(ujONCH4j^YZ;b)7Q9!|?^idcrCQA53qYD6 zZ($KJsY}r$S|OjXrmvnv;$&z4QRIGT!OF-;S*WB)$QB;y4=?a zdW<0~@fJNR5#`^;%{%~)rL(hh=9Ra2Y*@$MBI^m{`l;~i*u>DDv{-G(%>bgRnPr^^ z&rMrt`!W3VZ5tc8LbQa7$d)p-vhw%wVL~cK{@so*WRx?YXXjWX9d`Q2ALJkMC+lcw zJ+9~hy!1rZ#M08QqNjDd5Jfl~{$9^_TqjB&Eeq5M{QAl|`)XG4orBix$9Q=o;fuv1 zu;4@cESq{ebEyMcgS91tYt@8}u=?HVk;gRWRZCp<5*U6`Zj2zVpJsAZ&QZza02HHWOTJ1b>)>7ExJ-)S71(7V2HS>iGL-vHS8QLa-Fm+EUQF z;i^hLhD4LS`(G{f>@8Nqxm_oQ z&CG##QV1hf<|_nL2v-rY>LZU`k8|F0E-zaXDD=!eoN#Ev@}&U1_TVGBMg!HU_gaR#T?W~BO@bhUEs`Mx~Ws4LzLRBZC~QS&tDWHoOSx1-XT_6 zRu(1eUKrn39sB}*t4wLl!DdAJQ6x6?G6zjfO(U0F3A3o40>(#7ZM%z1>ANpF}Q_7CmKC`1NS?p=zY5 zLf{lW@KQuf>}$BFdD#;N$|@jg&KMJQ%(-2wbusRltmtkdmk;A*Ga?te+EcFA3a^o$ z#OD^CYFc}{Pi`Yi6Z=s@wolVuF7L&gg{7%wo}_+v8AjqhT^Y-4#mS)!1V5XadYy@o z$=AIRkqx#4SJFXZ=7K0;*QZQM6#+C8@w{wwUW9xHzJa`$LxcjmA@z#TxWkQ0`gwLf zUM%M>T$q+hx%jhB%GzG}+O;3Jez1&t+WqSL2w?8Lsf;@UArL+gYPZg7^SFidIy}92 z#0WY%T4{R9oVK$b;|KlT=@d9+U0$IZjzTk`AS!-tIg*Gw!dzPx9>dghEF zp!yb$o{E6)b#>P@Tu?4z^#C_T7f@js;Bkm>*8adY)GB~p9H$e|pQHarC;x+u09g3u zNPh;}{0|?-6S-~)g|R96XQ8PSi$f;V+Dg~jWY?nt6kR~LKk)+rF7KISsaO--M+*@v z(oJs<&a5X_J>l^=6_J)6-@-cJx1YDv(HBr;6?S+;csk0wK->fJQv3V*cKMV-b25GP z;(P{)+(l;2E*i-`UYMeIW3f|flXLV!R@1xkZj}v^L0>kR6Hjz5^Qi2!G<0Kmp>`&@ zyI3p2RJnU&{gQRjd*{N*{;udYvw&`F>BI9PdgcXtgD11~EK)7|inV;mVLBrps)UP} zKJSl0_11gWqRpU~v27f%b2&gWte~_^-TnQjG>^!iJ!@)amWpB@LKx6+k(MFKC$LAa%?xQ|`KX;cX9@%bMPB7k zK02}vf#53>(O<6B+Wl0Dh9W+LGBt2MCz(i`|E8r)($Tzn^|OQfr#XuP4HP73B~?`D zPH;&f8xOPw_Cb{O46jfdy+w!v7@N)c@?fn3Dl!Wmgq@G)*Zc4XUXQN$userahe=dt z1wFh|*1~>-gUdk*EAv^YU2NVak2?GLIJYtK{!An=2ziM)8P5DH-T;A`rKR+Ji;y-Y z;pfvi;*$qSQ}4I_yBJ%%<+Pl<%W|cLyBr&s| z;FzhfGxHjdTK)Cgfy!|yT>kBSYJ%Rtsk*N~PF zzUGymFL^NFgsAA*&{xGMWEK6GAIZ#u$?8Z_i^YFC`lmmA`UMe-_XyhQeNr)+P2FX_ zt<1~mJGX3nd&g$n<|r#`@fm?$fAaZw^_xaUs9*4yybsIpb|%1fSlTn0WdG>l!`sn? zROW6FeF1F0!V!M_#`;?FB6hx-NO5{;T~=0BZxWJU58HYeXj6_we{&V;0!_^yEh!Hl zZgh}e1~s^g63EnBu7x06WYK;hr;|vQ#U7hXCf3sp+Z!M+OS! zGL)0Pa-i_TZJzUe1MZM7UoOJbXYrk%+H-Qg%N;t!H;HL2WbsKo)n;vc+$9PKIg3v< zE?>H2-EOwzcrV0D)5z-6OgtJ`Dccf<_V{Oy={dG@@r&&X_|g)v{5)fEYP|xduj%gO z$;5F1_n}qvk!4H)x+8q0rCZ-flg_`-Xreaj;2haBZLh#`r}JKeYsLBCAw5$8tIgbB z8<`gHQ={Acn8w|QS3OD@7hcMnU5|MCVxP*N3-jMu9IDA}ylqxIjwc4!lP#NMiZ@=p zaN7OpJ~^X|;(KoBb zOFEmU?yfQd*afbnQ+bv6tI z33AxT5vUCIFE3?WM5_Zbw*!% z)KXwP-;hi?R78A5i?Baq?SJDgip}n&pyw@uE+VuYc4t8%z(zJhZRBlw>J(Mm3L=YH zW_5rxjq<*RbOlIMi?@B2rcl_^ik__-*XJ2QtLq*7dcvXGf{4ruU+=-VC`eQb8n+6f z^@Hsw@F4-eS;(GWh)6{kP@@B-h`sEby809>9s5Gr-KQ_62<1fghNxN&7l)irHs^5c(>8Jy_HkV*ccp3QWVAh$ zAYiF^e;{oChsG#o($iN3FU)7oSoJ9lv>%ArA8k6q_Yz-%K=u!QvQ=yI+^&RF7D?>D0@QU!zG$oFbLoI2f2 zD2V&veaGnBV!pvMZ8z0vm8%M4itSJDQlATBji1p{a5U!o%oC$xIg<0;EN2fRW4PUR za&lTmMty1N#xU!q($a^uZoi<%xhGYqXwY$?@54t+L^EXn@&v;E zN2eW^{|L@$o{FMa3LzV|+fN&h(Dn-#5L2%E`t@t9bCNdQr4<4CUnxO4Q24~ebU_(g zSKlYqVg`dhbT8c#6NeZW?6E6i4?jGA92uJ}YRW7uSg7ogXbGfHA>lm5g9D}BC3~== z{l{ZYK~4^B0Icx485y;v!{C8L=)Of)Aq!K8$&DL=$Urxec?;bSWUjSg!WDIOJDaXj zdm;wiZvBJ0=4OYU^6&dsp$CQ*h?R$N?_MbP{SSy!C`yD*nMC3-*mvN-Q zh9G;uR#ypxE<{=(xvEk)5PR;t-Hf`uz381?2!Xqs4m=X?c)P%lGT+hVU(&WKMNYi;$BV2Qd*4jFo+Nm9qi+wx4egDpO z6U~WL#gKL31@W%^(7AD^;@hA_m0wuh)_9=%CS1XyDRt94qM zzNRMb6ipo+Jcw@~3pX(EkU2B)%?|qzv`xTlut^!n7=k0lVHp@80?60y^z7`crj{1u z`|>)^A)cXJNS19e(a0+OW3&Fj$L5UOl$5HkUsbfVzZVxjfUpTr1!OyTFG`U?D`?jY zxHL`7&4q=8@^1g~h>Btfe+w>};szv<$_|=>jc)(-(94T$`iA`zD7eVg+p8df!S)td zvUU6Rrsn4UTl+W~_>8c7@1_nAH_VFrlOKP4t0jo z)$r(O{v_?&ljqj5nhG~sFi;UzcHvJdsy}MKGE)UbMWcXrwjfHTaq>-?^ahH3l$J^({OKzE1pj|M6!dM2J9!QiOHB#j%QV$W&B6m)f~cTUn)|vjfg_ zN@@dc@kp!@yFVhWNC>-YZh_=f>6%7n6@(Ajw7-&c9%fdDWIhVzKprTk5GSooiB zqxvRFMMb6|BiM)PKII4henxfaI~7$6H;xqlV_-*S5Al)*<@4(x)x-XIOH{8?*HNWw zrsGxq{ziOG`RslkHPuJ0;=c!*gs31Y!lT`IY5cv3s`4r2=c%YJ2mbT>-JNx}QU1Gt z8b?u=Ce(93>+kQt+vHl;_V-s%QT}SvdfoN+P*(6Cf6gtEPIptz#eW>keVW}=IDn&a zlwU_Vkblk=)i5*Vh5w#`zhC+L8RZ-9f7$Z)ou1mXmGVxXAEx{u<^BG1gjDw1aXS7v zMU=1nJvD#7;gs=mhDDQXV~=cCPvA1u?}GbMTmCt5Ra?29y^oCg77(5UEg0;!wsv;Q zdb@7h*E+rll-g#DwdN8ptIn9NO0&>3w2JX%Z zgKLeV-g!BkuI`@$VfkEL4U;ACXkJF*hYvq6kpQ6EZJm!=3s17nirhfs4A`_iTHu99 zWNzE&4ndDfnM8Y|^Y*f;T%si+9QNut#V;@RLtcj*zp~mw+6`T`m){F&UTr%5+qJ?S zz!cg}NO^LQOaQnFN-D&uf$`2ZR1z0|4|N?vw^wbM1x(pH8ZL~Igtm?KKllB8!` zTt9z3yZl5)*^qv&>-X>5D924rhx+@Cjn2VElb-$?yNE>VW#t+ekg>BY)|yJiGIpg| zgsjc%-h!GQg%cWv+26l^S`b|lhVFm;d%X84@Fys_%6Xs`%F$9`pN$|MqFgtCEw|l1 zYB@g5y6`M}pB(#pDgQD9R#A?3QaPN#<*z0ggBLlS3~l#&QCZR&8wy9&${QTN@?^)k zA1%Yrk7+>1_^0)|<#%m&y?kxO*Uy`qYx3+y$Rj6IMWB-kHi=PZ=8;2GZaGAlHQAGB6($n)u1UH4*%?p)wg@Xxq1#G$CTS`xp&$s^ z-WCjh_>m9wstXZuE<+6*C%LW@*L!EVdida&vyVI=CG@Uijxz02OP{ziBev6}e+_Cf0lbj0#+VlG?z_p3Wx5v5*vu0=N5 zD<&;cbJCt`Jl*V~8WYEW2L06c@e6A0d%Pt>j->zUSpTHefZ+fVQ-1$Mf#Sc*4Rr`+ zK(&@uwzS-X$N^}{VX>AccszTwh( z-)chYNL;19_YZv8p0(klVCeY~d7TASfd|+!-NxEPdzYX;o4hA=i_piVyy+$7%*_tS z5eQ4@?=*XTK;w7%>uG2-LQ@Gj+u`_+TAOwb^-i6%@kjz!Sd+ymV_tQuHWN?nwPjz8 zcOx2im|f0PGaO_;P;jtaexdEF)8x5shqG@U7+PJqHoKIR;+4QO|FnU8Y^Pds4Y$e6 zJwo>+x%a`jMX^l=CWw5ypjH*I`_RicS&^Egx38a#m?}{PMe$Hw+Z_Ch#|@NF!NU*%AKV)6+d}lE+$S2hT~~7G3<(ac^cI;x`R{sER9lQmP=!N)7K>pZE~BM)4g=fty_ISSl!vO z6Ei=IDt7|3!;QUTzZkFJ(GXO}{aFJvLM-ijI zB{4?$6$$)k0qOmq;YR}}Q7Oym>TgZKi1yHydyIE7C1QqVS%6=QFeo9ZG`%V20j?vq zg833}WbD+2iz2^259VZ`8Q>umUeNoL z?$E_1CVE9mYiMZ9nUt~z(#Y6f>oYX|I`SvZzZw%&fP*g~s$5=C(YB=r3kW6+i2~2E z)!Fl0q$nW8iRp58xBlqQ>2q2^Ccjp*e~A-csc8ib?yU+Lo%(x?Ha$yl>Hm9;m=MZO z28|y2;Iq-YM~}(?KS5FTE;G|v)Bv2Dfq?-uS7^a(9USz~NQYen6((}xgxBQ_1co@$ z5!e1f+C{C1vmlse?Y8-Z%~Jcn4~^y=Taem#UPb&<@c?mH*ZIYr-)6NI81nHckz&_$ z0|6LWQd(Y4vvn(i%8(V~A4C5VanzP=Sy+#xSy><0!Y@3J7^G+~-7P6y+yKW+b?Sz` zI4cajds3P?-*)28_v2&!a?BB=^2Dak+`H??(^t3(HkuQq5|gh_A4Zk5+Ja67+3F9A z9nBbMQQFHHd#++p#{P(g$ywA13^e+{?c2u;l@JdCWOv)PZLGLCoy#af1QJylcIlVA zom^4^X$dmU(FMv6y!~Aovc5hm+WEOz^Hq-JEPfl7`vdF$55T@Q>M)e)u=KHUayAc1 zQCTRRKYvj6YxT&_BEzC4mBvp!mOgI{mZ*5`wuY2n&un^D#d!5>clE2?R!16d4RPEi z^oc7w3t;?3%WyyiMiPL0%%!~sVir+Uy;17CjOL#nZe1TEw~2}{=Brc@BEN6vA^W$- zc8FX5xX#)ctE?GBXnnCKL<7sO{^rmdWzQ|+{Of%`=uub_B5b-1L%RM~#a;fSgP7IR zI~b&dt?Rh;hA*zJu8L3hW#Dd7(a)`-j#2?n69?Cj?E4=J8JZrJ1SGq;n zr)}3lOzbnQIWL;V3wAdSJBb#cSN>2?uwd=pSFW{iPGj9acUT6Dmavq)sdqX~p9$VQ z!Dk_&mU6mOZG;Ln+Oz-IECLEqX3G10_dEj3rJo;_$e%fENx-RW^&7%C-K z<^k}WJU|!n6gBA2+b0379*io1+yFtz5Fmj7?6;Py+9DPi6$N2?+h%(2nFl0^B?jD0 zJ?iFbT$UFv%zNnWJpz)#?aBJ~i0d1C^d&abwZCM35r%D_Tk^-RE!+i3ms8TykMBtK z`FQP*)y(>R|zQNLmb?2amh;g2>Cr6A*cmA=bI{X5*cnWX_;) z!Lmb+?JDQa`Z{0td99K9z%VsaUro-GD~y}?s{V6M4?p-&fkHp@0V^a%Roa)D$XzegOe5+bv->*W0;0=s#cks*(~=D;hzX z+uhvUj6!L`^S!uuaA4qZFxZ{Z%4?T@$LImV+Pi!A@Ys;f#^{7D4$9JEw&qoQ9f1~c zJ)Thr@B0gBX<>ZH-EpwYx`u{50Fr<_9nPtP6H!Bho++;D+qd5S{^llr05|9JHay>J zF}u`mcEv5wxRP|J0juVV!opRg$1yT7Efl1tKs1c*0xatp>JiTwoeYCAN}A`jaJSIE z*Lh_l9rsXguic0i*P{}2R1x8YPj#ckESZIVf9vdYL)U5+LY%i2sAtQ9qURY7nZ@@jHv$f$CxvkR@qGiN7JF}Q#f(Y28-qgZ#X)j;C1ly>j zfr^A>Cz?@=%s@8*_w!xm>kyV$th{Qwb(uK@&+~gEWjY`JcdP%q8fZAA37z#PDN?p;*S3o1y4J8-}$Zyriqy+JyZ z&8xy!PyQQ0nSn0gZ5U4NhUv$raO0*fRzN1~$0GUS^y@$+cJz|;^z=px*!q8kNg65q z1D|j!o%(%PpmzHA?^AAov4TpL;t`e$zu!0_S5eTlw6-Grk%%c1*q)9b-}#mOKYtSA z5%306k;}etjE5%z6s_iUiKy{4rrujBD*nE{7tGChD69W}!7!(+C&3{~9gM+y4-8BP z^t;Y!4+gqoX;#mV$a(fornoziVQgh=>~Q?eT= zz|z0b918{^w*UH$4HQ`B-@pvM`VV0B_jmmFsX&WL`TxJ+F2bXK-2@b5OPbt-cUtWD zAJEj|E|7m{8bIPAHURYnnnzr31EH|n#vip_Z=}FYAGID#r~*2Th=@o`9KdY@JRJ^O zh_v_7Qb#iV$MOCLxbzoCI=vOZ+CLc5|24e!e}QQIPng~%xxY9b2gVBggXjJG++m@2 zH6+GTzW(Yv1*u!qG(Hgc&oNO^Ewj@q5t=A(^}gN)AZLTxVY?Rpf{A}o!j*radjA2h z{RfcvzrSc8(?1yC{|v$X7clofy^a49nr!1Zcx;aAhY>3*HGeW5yrcX3`gE5G_D901 zThC2qJ{o*;yzwYsZ@%M9CKR75>}StRbzYIDzZjc^j|00eN>W#nKD$iGiJq)o^AdL$ z?nr9t^P}_gucZnW6WTEDd6%kcSP)69OS1NP1CbfLJ+~ z(3dW0E9(Q9HoqjvY%Szh+1X*im(gXqLKAG7KdS9bFQ3!G%bhClN6@U#{eV`CUDsFf zi#j*EXHN|1CFVOY{Cw*rHBkQYfw@x0K}mqQ!vR4F>v{1O4-6{W03QMA2O$+U8|3n$ zgH^yBQGovYIgy5!6MF+I1;lrwqqN@{sK`}5&!_GIl}K4@6*G=7e^zs_LKI~|2Cs4a zXFCY3Wfe#tT6NwK2xBh}wP+Pv9OiR-EW%(xd3X0^Hgbmm4q&FIFEPldG!lwZnV*~t zld$J*sC@F~)vLO8LCm3!!ayHPp1r1xm4NF2{TKA7rXfDOjNAB%ukvbXYB*YdKPoQD z)KnAV!l@}|se+Fja@BzM6DPAV2se=WaD#NC$%9y ze45RNqb2&azR;4x6ky&|fl9Vpf>*yB;^jMeNIPIq%-tq4&8o2=Ih&QpEt)S;;MZDS zTbS2Dw`R)S@{W$Xa-HiIa7!l-K#TuGXJiM|dX^m|ZW_|0MtD4Cz zfgr+zuHz4qfnCN@16_e<2i;sI6lTm8o_$iI`s7K47Qeu%H~DSesL&^RJl9z&MFtcU zoM4E8;M$SdrQ~GykiJuF&`jQ-ZSDh|3dU!bnX{XWgHFm_2JoS>Q}bSS&UmJc!LLX? z9_55CkeqW1yMf#qcuvL)Pt8e^_Of|@X=Gx0KIXT5DB6PSrW8Z#*WD#sjn&#%SWFJL zaS!x3h4w&7Q?TD|UH%iBQVkoAqfTzQpY?x?`c~UnTab!|?+y!e=m(7{4F-shllcN7 zn_^vUida?~FQ?yRxg01=>*hmAkNYSU2#7aD&apW{#OeZZqw)4Yx8BK2<09L{O`ypa(*q;+LN z-#u?6d9K7~K^Jy1P zlcyy*?BUjEw+wwF+tv5SfP?C)2_S^}mSG*Ux@yY&*{3`@~0dXNoDV@Um~(Z`CMk64INMO(lt6gwL!hA$I@Unbf3z} zKVz53R*mL(W`IE*+SXYXBEKAeLZ|J{>WJO<(cu~Ue%p+KlV4(EY9M7`|Kp^fc}GUP zTIBo)ju$fb;h~Iq!H#mTh#sfqUv0Ne%*t8EuQsgA;w7c4{<#ja6WP{2zcvQ!S^CuW z10Ol!X#u%bdX{sWwang&^IMVG0{?j~jSh_t!YTxPg1Wjo>}W^@fbkBW!!30Ec;U6$ zyu3U(>5;N|*4{olF)pDka9-+yH3>>@j6d?4cIl7d1%V((!O zz|TS*MPXX!Z^fjS6&K5`2*X$Rdva1PG$%WoY2Q9dV>dVmbow|(fnV*ksjf`kwqpkz ztB|I^1cx#Nu=LyHg@o5gNcsBZ%a^*k-|!D2-LAl9H>h5)iI^!4xCJkby&MHJ!tQ|C z@#`0&##)~0yTIrRb>c%_HFb4-d*ion^3P;=c&bZFp|Rt_dB7o(NL|lqQNiIPY+U~f z3TjHDz=$wTikceD8){^5=*TkK3+F8cRypLhW4T452#7=wjFeoF!#nGW(6?ivFYFL^ zFczHs*G?Q)RAeOW_U(9m4BUeCwqZ@Uhid=Ln|mhZBM&czb`EZTG2I+qJE?MayyZCO z&cL>rnG52hpZ5B^!0q2fdxHECO9h}kdaHLVn@{a&?q7{R(RQ?ZYr7imw7hh&oF2FL zLpk9vt9)y@ME4Gt+wkXi=cTdXmR;s}e7EQSj$88IUV0cj-24;}7tKyfvW249pROUwlngLQV7Te3rHHXa}pQy(gBsIXg^g+twF!9dyr~ zQ?}g`{9vrVxTY|-)t_o86Z^d8@f=5y@Z{uU2LoW8bH|BvPJFw#h^VV*345BYrxF|C z0-U_};qhYyEv*+wNCZk0RD>?Z7PA;Qr>hxIG5f!GbCFY6P;i%53FKIZyQ{As$E-rA z@enxLM$Q8>kJxcR8BZ&(?d1O}L&E7rv2f8Yk_w?pg2wDw&@uIoDUaph} zVau3|0MWX>?~f9%`1qpdfw;7=#N4`bM@T5=BPeKH-J++V@t2OmW(6bGKzbjnl1+WW zgD(PDBp;6tLK=ir8(w~X1qZYPH=rJ9VMjM~1uT}I-}XCV$YjFIyVGkI!DfL)hdK=) zTKl0-B4Yl`qQlVhLo!$ycGuPx6SD9m!=O_+Ilf5iB-}GJ1O)%0(JX*iWJMM^&C=K` z!p;K?p0V-cKN7xWP=YZC4TD|Uw0W~WjOj$bmNw+iPG8t+d>up3eJ;8v90@ANjAsny zk;(oVt2k(ixi(OPLd~(gCFLg@3oKQ?#~UQ3-&blB$=bU+F8^XS+wTFb_Zx|b-B`eq z8RLE=lbqrU26I{3@3CRKAh>E>ieOXOId=KP<|iaKfs^gSz+xk6$|T1t zL>^9=pJeqKvkj)~Q?bgViVpJYq1j%~Vd%Un@8jQEwga=l#HRFAeuVBG%smia9A+>-0#RP7z5YbXn3gdLU%V$JHw!4E;Ft^22Q z^E&*m4@FRJuuB^^Z-yBKeu1<;O})-na-NixBL*D`PN4TSC(cv#j)z8kOhqobpJV$8bpT86K$TW^Zv2*^01#UMciT03E0BGdNf|KqAzOvsY!DLuj;{ntuaBVF@XLcy_fpMx%9Jx zgX@{&YEG2$d#O~boW=`xw-o3!KOoW6X<<>2D?XtLky$C(s^dwvrhtHe#eFDIz(n|3 zYQXJsW-K$7^z5_IL5mP~iEK)MAOp`MY<&o>JynR!z!}$Cr0u&GcV(2CtG`KJs?e zkgR|Os~p16EdZn~tE}*Etic~x_@fatz_x8rBL2j(kDKjOwk8Z<7(W9vVo(fw5Tbs3 zv)*In12>P!cf44hUj0P_mGt>JeUDieQJj>88BHOajRAR9L*KNfC5Smz)JM^kw1%G< zq|F1Qiap_Dwr24hVQfEvgVAj#t|tc;L078=-~9y5ZR!eb%Oa<(-nmLxdhS&^d%FA* zR73lnhw5$4y3vFs3g3zTTAB3b(m&U(K`ZF7dWm-hWT=+eS7)H}#Qh`r;Jk_Ty72(t zX$PmzTF%*THxR}&2_2cYcC=M`wQxrq;?*y_cKWo3r3QjxmS8yF{E+lU`F@hdn{sjU zX5P~BmQ&2zf{c}TVJJgR)X5VB1&i6W)rqyh3Dh8X^s&Ug*oUGZke|t-+2qrv7BSt2 zxZMxXZu~+Hk(C7{!%9gh>GkVhaKD1y)7L+ge-lmz`I%jWGMTq< zDdb^#(4z41E0A@IOK;_ysDbZ}#hx52$z-xVFB*5Kb#DK6w&`Y>g@Io+s!9J1R zq?gk)S1s|^wot6KFRD3#mecS-r*+Eet=t^VU?pWi52c$LOb$10YJ}~RD`i)={n=)= zHkwn_s`F%I8^p6{K@X5?m7Q!1iIpblhpY=(ao#Q_>lw-{z4cnA!;yZum8r~Iro7s1 ztpB5(`-QPiBPwS+XfSau$7xrL&7_d#)UU$*MkMDUuNNE4^>!^lSQ+a82w@4jMpj1f zExo1GNHWPlQRoIV>!%-!*ibKxzEmZEYn@@n709z7bBv3N zYqY#WZu;;+AnNVWJx?&p_vOnLT!0{Y%;)OE0s3i zTuRz>jLr6d!G+)GovW{`H0`$}Lak}Iw|vhd-(B(&!*rYf-n4Aqf8gripMi^4Whd_9 zeYxbtf}a&yOc%?Ur&}%9oQIRM)6`j_!(VYawjN|kR9_}8k?r0mv z$e_Sh*22p-$v8_es5F1+Ge&Kuc`#(Xm+b7v&j+$ z_mC@j3fpo@teEn4(G)OA9&kR~FqUC!%Ey1M8Fe!SGAeD(4pc>Q+$DF5tA>K}LuGyx zf9TB#PxW#Q&*{QFD`?YEuB(XpBLy5<4a!jCnxy?Njm#8SZr)ot>R9<;XAYzlI@gp>*ka zdCYL<*lTHO+GEO6%W*7aa$)y??AFB`r-B&+p~Mk>O!LydRrCe&zxN0&CsJVN4ahbNlx3XWmG-I+afZ%Z81^ zP_m4boRX06m>-)L6O#WERrRSo_3|AoF#&xrQVU?J$z5bn8Au&m!{B1O4s3p}T%#sX zE=={F8;yGU{97nF<)28f0dv9zAG_YlU5vijXc{fH(UKvItb5v>R!GVL znll*Vq@sf6yHakuiEpnZo9&yt(zG@Th@x7ymZ`Ai=iSkn35drl4?pui^p;gqazDu5?mY8CCeMaMe^y|ES84octc8=t1MI6@sA!DEa=0rYI%Z-t^*Z*gTq zu{}jUzfH)r#G$_S&h0??) ziYE&bAStdd0euHs+kCijfgE1)!39}>W)zGvD+h-?)(aqe`}aq{B#s^io8fv(^SH(# zFcYnL_RtI;Badm^m%^+|${OIcLqGlc1B6UMlLSEv;+BsbIfB6ZVq{H$FM%$Q(gz`K zCP@}VF8U*A?XY1{9(Mxa9D4(53E-B<8N~2`WC&YWQ_F8uB^4xM6-Me8%j+^is~!y;$dRoH<+;36X5ur4wg zAXN_Qp)h8i!ZZv*15evwu3N};L%1spRAAU3AHSrb;k>e#4cZuC3H62R(6U1k4=Z9! zY^>q!+vzxILev)kSYVfdo*rNzjFIm_EJ`eHx6lj>;?zhfXpF+u*R_;rly3F6Y+%Au zuU1M=9lT3__l;f3w=cNqT@DS{?s;)X=TKr;^Gr>LaPY2$W2F*WwGvtaQyNq|?IZKP6vL7QkMQLq|eU#r6xoboBf-*&>L`!E;__0--ZW|YbMnymkp z019N$u(6#2L3*rr9Jo{=F0<~ij7(wAORmbNvX4loEonfDP}QjpheNV}slzDBC{IJn z>k+C`hj${H6^>N2))^&36wx%z{bsRYoOMT|+zZrHmHPiF8U~T_U$n>nE`6qGt|_d` z|Ep&D|EZ0pFh&2Lj1gYuW3BQ3pJ^OGy*nhVANFp(zxt&%Qgw58#@fB1O?Y3|iCv9a zQA+)2AZ0C6PJGxwe3zak;;Lu5_@TUbY)OIh*fC0~88%24E3fci{kh9&zs~IIHKW_< zQwk5tNePKLyR#VKgU{jUejpDDeLBY)-0+{mg)E^QnV(F@gyXVe;x21f=&7j{I}8H@ zTyl*3OH~oZnATlQdtR_3RV-=&NSmw5h~1}&rb{VqPqQqZJmD#v3_KSP*BiHa1^0y| z6;I8p;>PEz2Uu43F1X~~n_f~_f<^h{0js&uRu`+pYZdISWiNiXCbDYZJ$w1`H#o5I z2(-S~8@{ppv+T&98-g!eu0sk15*vNPaz!tC4a$JxM-LVk^2YpJbarYioaYNyu{000 zZ~qb?#uP>Ed@C?6`)f4}W)smDBLkw&#~akPw`3T?MBP=}LrZR3L*P#aY+`VCef>Hf zA&q$NZNuZC!XnIkhYx>5PBSL1TKiX{gn)4Zq9g&0x|Wt)GMUk0c5_CPv$X)oin}d* zlHGZZAwy4*p)xS^^f@^)M)m9Bx`ub3>Vz)L{S19`tM;=HUx|um-yv=854U62T zcU((dWhW2+{CQYFpbJusZ{O??e1Xofvt8T9CIe$kuybPWG;r6tcCUUY+~M8%`0*6p zE|f{uE$P5zUx&`YO5(7xXpdV3WG|2&xQXC8k1oDGBS(Y1mX28@>D4R9brsV!)vsoO zMd4El`)q*zwW}xhahbu*%N%Q#Vj~W(4A#y)17-v#UuhhUShc?3dYtsp|ijeQrjZXDytPv6>VoQNbnoHZ#7&2Dt}skRQHW4i5l5K>h! z<1hQ78;Jx0!)2MXg01wwi*uy~o+kulH#;(Lxn{CRWcxKw&6b!L(!^cw~+;o^&rhfKZW9j!aL}0I_WqShbR|^&q&<&XOS$wVEV-<@BMpRK$}>T z<#znk7^)&L1xlR3lG|UANCg(HLZd7_Xqn-ZfK%VGMfc8~Dg1Q$V)f&M1Wr0HTiYd} zJ?v6a2fRvj3thr;gonn*3k}L>tQ72EuY!(d%8&>n7bqQ_+}k%`SZf)c&uRM064d8D z+d@{)P6XJi0Kf-8dCMb2rS3t@=j?2s+WVIm;itk&(;bpohQCWXg>Tr?W2EZ?an>!k z@Q!)M$j3RU(Y}~MgKe!H`KvYg{SV{jcCnW?5Al%g7C#47JU>sXKpFYk7FDUwWPVrc zs`$I(dU`#B{<=BY=}CeQU*7%GHPh7Ipl$KGf9_S28Rl->qXirEAu8{{g5eNP&YMH; zd~Yd6DeGs%pYHmw!tUaKYw-zR41bp?aiVqlRp57&vcLAUQHLc>Y5rr=?aFpy;$nBJyOQ^0 ztVr49AF;_f-&-_KFHv5#bf(oRM9GNlPSq~5-lHg)yHk^sOi)Z}-*l=x5b|xC*tO`* zLSa(SKOZ_2qxVizuCHoT7{nQCvb6A|`;qFk5)1@4V?T?GDpF85EN-pl?|7TRwgAP>8i>xTvVO z*{g)YL0y3G7nm+ON2e^wBSE>?VUX?d=#dR`*@eVL`rU;u8i1o9QLJIe4qXDO;$;}Q zk>=6y7~wkUAjY8HuhBw`KRo9cZEa*_)!EiYV@X{3q%~c66)xqkJf*9=g)^f8@eBZ7zi*vP$LY*eFY z_;}_#*7JxkO|$=uPbHUg#p@5TPX=ofl5*4brjpfgH#ODjU$UJ}e!qZEjNW!!O|_iK zR^sMA+sy6yHn`B>0x8kDKS8=I=b+|bg!Ukzj`;b9q9hbjOq>QLCY1psv9o2YYDe;& z@0t>Ma{3QSXeZokc@|#(EUYn=#FO(v=E#hRVtfeSuDI|m>VB!NU*Q7KH(4mGu2U1Hj}R@e7oef}knmsO*`-{Iq4t<)-{ z_8-2KWK3HSDLLi`{7FTB;0R9*+n~WX6y2^tsHv{jxOC}Cq09TsOyLtz<`C{9|1AAnGYmk8GC9bx zxR!Ib%SJhJ`+<*Xi3a8jS#4UDmP>7Bp=ldP_6EfdwiM=`Ez8?{MKQ#TfvaSb(8kTV zx4-+y(Ox*UaoxJseV63tIwhA@KDLTHr25Q3J2J8K`A~0e7@^2{{QUru-R;GG%qbGG zS;^9(k<_Lqx92fAvlaZYX@gyr85P9TtV5z+6o)5i-y3>-uj12%6IbYGTTGdr1?T^& zVonSuPpVoycyoddNg@pAh}-*%hO)v7%PxN~Tx^#130~!j(_CALwkD^l{pQbq_(}bk z_M3oDG-jp4A%#k$I$=78>DnMAVtxRZ_m1rElkZo{cTVbTcr5v8N2HO@eCEQXFa2lM zq*$Npe~HdKHgkkc`9sY9gJHscp87X0i}5R&_va41es{99+p6-9^p|-?^_cq;ZUWmc zSf#ilueL!sLCW^ml?odtHAm9J2_GX;+p>a`2#ho{(ApzO>>ZbB zn`uZ&!z+NmzkbP0YB_HGor&-TW_z?`vi>79vK|`U$uP+G}Qh3 zc28;3rlcN9^w^3}wvb4rEZNQ2DWS$1Wl5IOs?uU#LSbxU%f3rlvZXL&i6UW;tl7QS z==b}b|9k%LdC&Wv^S;kqbN z$ty3l_Pwc-vRSVAs@kh6d~Mf{C>ddU1Hl5%U~#qk{%v1*xAKXGi>t*C%o!(=vg`Vv z_gw9gAc;40DHUBTo24X=iAqXc<4@NjiE|pot#h-o8p;@K>qy)|qRtX;8!)%-Gaq1G z-@j;lE3j&Jo!C~{AB``wsLit9TIINwd_r#J7n~{UA?KWYb(kyHp!LAa6BlA{<432V z7Nt_@v}B8t+>g1-bIFuj*=-g0A;o(X5rXGE?8*iGJ$K*0C#Vl-=8q%>=0&-&Ka!oN z2v6n4l$^aeG0~z(sreGzXW*<5nIR3)Fq|}O4GC#bq61lMM;Y1oDV!&eiAT3{A{*+v6cryp8zVB(WFqhsTMX@ZccDufLSFRSX7C6= z^PRSBW9{y7(XY>!k(K7N8M@sk_c>wTrr3$c6WAvcq=PY6FSZUk9ehgTaLOR-_J(V* zuo(Ur#Lv7{bwQnRQ1k86$qv$O>urY$R8;&`$<)09XImuM<=?TNdGjs3a!|}}^CM-7 zBSFWuKg(cwLI3tFhg^(9=<8t;K}VC2@m`s8vyV^#E%KY|NZ<%LxMjBqjkT4k6{tw* zF-~xx-@eP@)OLP*v7J{y!ZS)iQ0dIm!xK%*Su8a7q3l%6^tOXRceSGju72fKX+7|{ zMAPEtXvutPVwQo+O`)W(J0&E&8E}H5Y`#yimCZKw+|5F0P=;k2%ILD?Wt!WFl+EhgY?BYZ1*+Z$u_69~d>FFAp zny*~$5qlh_*wraOp`%ObR`1YT+O>XcVq%Zj`~Hy7*3#PG{W(9gjP=6u(qetU zic1D)$VjbrY}o0>tr?VM0Af8luc$$@^vJIiKqCUtTw`J_8F?|AjB9!kfi0{DGT?r( zzP_rW_sfuBg9G7TDSVJ=L%9G)P6!dP4Hr0g@9fOXr!MLz#HR%v(iZ`>LbD2Rq>_yk zq?G-L3R9FH#?+93$t}LmU0q$TCH3Q=7q0-;x3^#Zbe3akxNQQ>uStH%OCxg1RCNpA zroOudo z5M(Z9CbWg0{2k@`({+S8xaS~WYWznPie|FbqVIlQqC;+Rrk$%LTliVw&vRk|qfvf3 z_bF-De7%K58ifkUD(61MGhic%h<+w*#N`wK;5`iaYE;rxU;LOX9tV~6?| z!AQ+1?G!Oqb)go8h1PGg#IViB*j)-)x1Fv};}=Nbw=j*%9cIiqZ*l(oM{sdy`V=Tk zDa-8X5~`xQ$fP_(pnk?p7uFch)<08;(Ho$wmjl8f0mIC&e=LC7l47{g`!cPd4?j+5qn`X@IlX`wuj#Sz-DE;Zt6I)6sIIxWrT=DWuF`EF3IZC$(3N zK8=UqQD;#ZtK?6&IWi+Zszkd3))C6f&J#aWy*U9lE32r4*OdGj(U8L+m%cu$Zw0+{ z{S;HxS8LxT4UP@`B>C*^?PIAqDwH^r%2PHs81IZ5cS6R-eQq!wQhDIQFHbh9_Z7_k z<4|p8Zcg7)=%$p@9cQKVrErDnyqi&I{n<=?Z&R?tR-2UltH%`gb}p=&7d={f6T36+ zfJ1OBfp*XHq~mqbHl4~W#K=+EI)f4cvx!$B5jkVg>+??=akSLmYc9z2O#vQ3hoxhw z-;H=lZ`z%eXkKU#cb&T}nG!%G4abw)2>4!-%9hjjR7*7doXA(*ntHyNU@=lVE>!4^ z&7Sin=L4Lp*_jz8hF4$n&yMx-H`3&SW43OMav%3`ZPS}r1gp;;)fZ%-p?(6TybSe$ z4*Sx;%V|~^Y+SQ$^JUKiUS7)}k~Bmd3w9Q?ZL?mDK@JeEp!@u#xjCS61civnA(J9K zoy=(rYt{z~Tbi5O;1a?iq2%c|6#N2ulTfy(D4hKHC7iqZ$EYs2CyKBj1E<+tN zVWjX7I$XydqAHG$kb-dnXw)UYw|$Q0JGA!vxUn43 zJNV9C)Z?IN9N6@@p#5Rnt}3m~;WtbQv9n1oh{_b@PIXh+>er3t0p=|cKSJ+w2`5il z$6cyuO6r*x@wL!h7+EE^G!qjU*#)67h)bTnc!i!I5rl$oEH8P`Sm>TPA>!6Sm*YD! zEFK-Y2)jVELfFwJ0#(t%X88sZCG?MbjN?EeamzlJmJWyS5SX-pnh0UvAu{#oS^j;a z=wx6ttP3)PQ2-%n@ji$w; zEZ|nE(IfGTh=9X53t7(_GtWNMMkOBI{(dHaC90tmiB*H#auGZk+rqbBadey;&TKes zioTB+=38Y__gsdpI>&4Q6ieBaB!Rxx>BFd)AgZV#^FJ1jMu0Tc|;m3W@ zE%GPOUv4Eh%L(L(*majIBD0Q%k}OJxaTZ#hk$Q8Og7}AJw~ESSkF(s&d+xszI7pVQ zo*>4uE$*M=XDYM~EvcC7TMp7uC?X}r@c%Q1+YjVag%eW9_xP{noBUqw{h8sD>vxZm z5(x0V?7|$VqF+{e`pc4<4(TIl$uGig(LOV@%&^`SYVEGmB856OSqa`ZC6)g|FW^K|PB4)T^`d(pB=lOei~;OSw0x&==P!A-=Z3JZyFCX9U!KSm<4CR1hf}$WI zagdYW0VLvzI~$qJOK*MX9g|&}x#*UAxwEqq%01@!w*bQ*ar~}`9Ytzta%zh2T*${X zQ@OT1zX009mH-ZVGaw!qF7P0FALufn>sKrJ0p89KHqg>)g#HFSSNr|bIKQS8?AeXp zu45-lT-XZ>3o(68f?t|ga{{f6 zy4*e`y(9gR@G~wF7?F?)PBw+XZ7)Ew0{Bk5HsI z&(nCS9n&1Ut5l2GU(S4xt1p^(sM6%sU5`Rd%*n2?Io~N|V7Vk**Jw_?+-AmkmCw<& z@5LK-*so{WUOLOO$tQQs16ko~TLQv~JY8Ek$Kr05K03p2%%*4R@$D@xchWi+&v{)` z+)0`AwoZz4NXL&6N&HZ%YuxMacY=mDY^SDGbcl&Df2x)P%@&^#I6!%(l{J;SO z0=~nC55rUea5$!~#CU@vBTK+Ajq;pJoZT~ks~W_CW>5?W_Lxlt$Q9>sDzxAh2x-F@ zE|Z`>y?y&#uJ6Z$tEPsAH|8cuaCfD<#)a+~0MivLJ+RQ}3hfBj2qp^IGJSr}pT7p9 z3JHIHUS8JU$&dvuuxZNx+zCdl6Z*ffWp3Wn6+Y`H*;nzZFb> z9TG(jWjF{d7WMemq$?(J*hQLGOoX`-tBrsA75)?-^UGC{l)A3!8(;QF&w>f9Z!YMk zjb}e3u(Jz0c_#g{oLbDuq;pRpqlrys-G}=6V3){=hgLE8lI41Y%~Gs;MPGe?;?i=w zdwBB2(LL3Vni(}8?A$<$d|6Xxt056;TDOZs-BU9q(c|rwhPviqE1JKbKFcm$GxJ^I zE-IG=p0K-au})UN{OU~o9Y5^b?xQAyPe~KjQu(PD4ifE1@kNi;=&Kf= zc0ojd*`rjk@?1tdfjk`V6j-azGh6MHS<}y`#WgNKF8(GVnsY$>pVBeD;{{*3P8?{> z5QrqU**N2zBZ+Rbgoi`BS$?nFG2W=Ona}jKVs=E2K%ipF#Yp?k>mfb`x1eKg=O(-@ z{u|0K5LxZR*U=L93<%1uZRm3ZJjHAE_mdoSAn@hXOeJkqfRtql^xHyJh)MU>fQPh! z0g1-!bca1lx8!r81^?y{CsH!g%Tv-*x-|>k@?5_PqweuwH+7Eq>6<)b$)d_?U(~R;@GTrIP4A-X*v6oueB*HTyqr9;5sS( zQIY9RQW6b3^)X71(VC9|;FIHA!*IA0@u6$z89dIGvi(eSUDr_wip70_gNxk4OBSIg zZknzQ;1U*YsH)<_WjhC692+2^vCh*7*``? zxV|!Mge{;XU33h8I-gl_lY3zeheCYZmB+1k6<$gG>tE(&FQ7F>VmS+aGuU#y`2Y(| z^wFp0o1ARi9Z`-VmQ6UbkX9l+NhyYvr@_v%%x;kGr2xMc1q|QRxax3>SFB_VgVheZP_QI*S<~gD}g$mWVKet^Q@kb znx=x%6|L(=(oyxc3*89C+O>^X0wApF>go!J2wK?Ezu7sv9UHEEFaI!;L#8H=Px{(D zy7zf{p(}3vRH&o#gVskk#Lj@Z8Taaye7z6Gkmpk?CMT~!_`;7nadxmJB^;wgQQaTf zK6G`JfG?z@xY!qL3VFu1JPs6Q-khMEg|ltUO_n}=kz=CxE`UeN0vW4ro+KsV#~*Xe z{MI!uxH=n#*<9CsAM6R<=OJ#T#*U8guB?DO`WJ6?AB6ylK@pqJ=|mZ$*5VleJoz{$zsI2C;D<- zF+(Eb29u#{TRmq#5l6JXE9IXdXlNXE{Qe%{Z~>bQw^9xeI$>c%#!;MVbXE~b&~^og zy}?@&`T+BGhIFggpM|3dr8w`!K#eLF4~L%f=7a(a`N=I~jeTO{>S_CGcX%Fa;NH@H zG{v!&vZkb)mQo;7G3Ti?P`f%U;35GsK(=S`eoC z`fY5rjjgoslt$JCqr5M_C61f0@c8hpVzX?B{8H+*j7#U0 zMnZCybRs_2#KZ*Xwmd)Qaf)AX!l5n8xiiOYa^QlcWs8|z_#erHJ*|r#5*_WpM#u9e z3oLZB3{*wCA}xy|y3&UiGOqRC-|>6#Vo;QMNp3oC%8BSp5Sqpzphwvl{;!YWvA&50 zfP{z90qUlRGvVQe)`wKk21d#YhMl~}maSWPH<$tX(yLXZz-6bQV60emTjhi`BkxVb zPw@3LyeP@UDtDKvV!+F1TosIlHKT%T-fobRFCSClA-x`vNu~e7C zDd;1n!V;>e$PyV7gM5~1rYK+~9gyi}$9Y;r=u3$r8OW@*Eta;rUG9js^6G&QQa1Rc zC?v;;=Ygy)1*^Wa8>qdEoE5;Yj)AJ0+AhYsrAu?x_>{ghFdL5UGe=5~ZL9uq=EXRI z=a#D6?t(WLw9cS9%7dnk8r$%lF7r*il>P(G|8!!zbVop%euLwF#MyHH1Uvz~z z)ufnzR3;=e)M>OU!b;j4<2NXVRHs-W9S89~XcHGXk;J-(lxPZ!`~11lukX^?hCDWue@)W5^V;AYpe}*I_iJnh3k&YaX0Zf?OJRW= z)^CkwCw%^DYS^}1c7`xi_giOenS>ez(mr!P?7z@_N`wru9!xi4hVmKb1Gt~$j^4{Y zU*?V14J~L{_ifU)_uNFIe_}PFS zYO#eon2nU3AI@B}err}+w7#C+1Teo77wE~&Ad-5A5Z#H`WEqyHkumv#p1jw(d zBmC^%9ZaAQJ!boYwZhkGC>sb`$R5hO;ycIPpdTc2DRjX4;Kcs=1gq=8N^IqafITIsOo6Y=#GWu|CmLMxc%=71g(>v;FIO2%7M?v@ zm186(6x@N{0KiT&Y!&>1DU5gDBG8?cp0u6M;#V6BTebSuO{)c`dFL>ff-Yn*CX^Hj-mjVJ9v>itH6(zjy_>8rowVtv-tQ|kBj zwp?MGG%YlFuD?Iy>HP|`#j#velsgz+#l&#YPL2lZ+!*>aFOESmWu|gq$;+3^tE&@@ zbNHE={n4Y;^xC#plFqYBl!ewADpF-C>obk&8uLYmyK^$(Hy+P+y}c4~Dq3j4Ksqg! zU-D}H*Uk003Ub|UKKPe-ZNbwMoO7|qloFS%?CrZT@fv3*lU@JkV=ANI#XUg1p&k4g zT_t=Zx;*@BBO@D$+R%`OWNOFr7*Mh6wvNqV!M`u}TCZbNwfGJ&UDU&gQ2VZ=T){$9t*E5pa*W2hk{sW18@n(exN4Pi zrI(>W@vae>p+>#rCFfv2zmtC7VHlLt9Ao?`v-dOBPWB;aA8{#(fXi66-OLc@1y#h1 zP#m=}tS8G)7rA&Dq;-%uC13zM)p$Nf_yY(pi55o=AJ&NVS@$P<|D_gB&-4F#owAar z|NpHk*m>w>%c?iWR`csqqzkaW_;arMm28X_i zc_n+!xV)L(O!r!j80!uqrYRh2C=lC4;aFl%KfY$A3|!D9Q#0EAV*ZM2`mn`A|9#J< znTHGR3Q@OKu~}XULBu776lz{^W$%z z03>m;_rwy00d z`N*x%hWbaz5i9}d2pq+KqN0X*SH5AS4VhiX??`?u@v8lkE1(qc3ZuFBq=AeVGF z{CQJ#jg1)q!02{uua`f5r1$=PLG-v*jJ*x@V#wS)($tK{-&QP|0l@gUY~HqwPstJ6 zg&r5$qascHZ$~`SH9ZIc+@8+yg8cjsIUj(~CVA`_GsE^>yUy6l5Gt}S9Q7-ULL#_KT(-XcSj?vs*EiU?=#rFL?0c?mgFT1uhopb&)h@ zWd5oZp7@kFbHD0h@9`!ql(8}{W9@&8wNC>4u6Mm+RkC|3a85D8Y$7Z)NO5|i=jEnD z9EEy8ro6d9!SDF-D&Jbh&7&UP6n=mgd@PWZ@>QmI`fab`cjn;o#$^73yPL9$T+^<} zRY}TK<>AIy;sJ*?avTBU-`}Y)`i4E>$$&832c>CCOF!;> zpkUI4rmiI^(;jC%o*H(Xva{VLRs6BTEu(`go?%~qeHS6XyShB_~Q-kFz=sV3B`@;l6M_|NSP?{T(y7(PIGw;Zxx*W`WnaJ~9aJx^J2YgJrc+quHgjP~VD zk?xLTCs#MTPR{x}P$4@*{efX^W}}%a=pLn=zZV$gf~iYYaRvAyo^97Y&}FD;P%+Em znbZDTIBi>Ak?b4d{1X0FAh9T$Iwz8-b#;$9A3!^9x;+wESvHqpsiz0J40JXXPztk# zty{NZ6p?Av@5PHl_O=4AG$hZzxe0Jk&hTg%IRY&bi@=@!4d~M){$oF*B zuYe4HqOZI#7$22TidL#Dn!#*b4kkTUDH0??C1*kMcCPF zWMaCTL4eW9Jc{_`xSjubzBQw7OKXj4C#*jRP86p%s_Q%vaGc7mVr*f!>|nsMR$QWq zmJxILV8)Jz>cYRGgNf?(ziT{APC6ZQHMUFpeZp)>IAxP$X=kq3ylSX5$(cIaR}$Q^ zR&3uZ?^-o70i_wu8f;*6SLS|?mReDhoI6)e!#k+5;KIz%H~@te2_-)piNerGn0(U3 zCbr(^>T*DV#%s#T9XN0qT^>}1 zAfs2h0imA?_0)gg{_VA8U9~W>1blAk>g&I1-}XEDegh=JATQ%F7cj@Rb7%7m@G!Njxwzy$c;;bnq1DuYbVNCW-&!C)TK$66-9VzT z_?nfE+-JA_!m%&LpRcGTZcyP$nTvXCe|U{oaaN=G&iK;&Ps`;zpOpPI35{Rfij(db z|9)4%opZ*(IK#ZU!VQ$~&(MuV)ImvY2qJ>epQxh;e^eH#pUBapd`cqR+_9lc7}Hfp z?LH=iDYfygq8*HPu_Ytx&4hSAh0a}Tke$ayy~9^;e@f05sJb?cj#-bsnl5hbj1X-7 z3X}^9TkSxDIHu@%s$VRGYl<>8BTcVf?O-0N-YlS6`TC$;fAIXAba_x8u{MI39h_1cY{%lAvt1aR$0X}BZo1;1Z27=z^b=1loug4eH#koPa7r>@VZ0mO8HB4_;B5IJ zVXx&yx(MS^V#qeR1q}rSOrhPWtkVfhhnPRtXq>Bo0(-CxdVhmP zTm00(HSfS(F$Yqj#R`>sxHJb6T+RF~3|y8rJAJ&AqiQha^niI;sbc-4(*x_n&l)ibfy4;!2KmHd30tiXjrebnLk=ZhIc zFvnTmIXaHo-J27$OigtfHWKskQJ(a<@RF`VmxktMoi3%QV=ih|#{{wd8061|OKh=T zPs+}=bfe5?Y>Z#e`(42&>dS<{)yfwOjlb^gHH^eiDH4KBoAzXR1%!upAe9Cwyhb)M zqtogs*YlpIBdy1$_vxCGtIy9`J}me=m}mOs*G!Zw!&`yMzkHi$RNq@Y1esH*Md^)Z zMU2&f9tKnkoBPX0IQH6HX^QF#zV7tyqUJ2+JyxqAFTEp_J;m)Qz#2cr&)us0=+jGw z1Gj$BDo+Tg9wcRllB)fP0-LOduXQf&-Lo@hPO1_;a@}1mAN8ECH^FjwrW4Ea`Vi9B~?X z%C=TfXCOARUQVh(V0cdD6Q3w?eB*wofLN(YNlQzZxa-F`UH7;-We(EbfgpR!BHaSY zU{hh?Npc+3GLA=uehI3lQTyiCua7EreX-c%Fn#-W0~Vorno{Bm?%Isp5F(#ySQfbp zEh##d59|c(16?99XY9`|?+*pg0Zq#>?JHn^nvgt;P>^L|NaFyzpaX>T{$Mh=H$-Xq@4Nl8z1f9l3((==Xa~V%||2%e9vq& zmmCo74I!xu@kW|_<*|~=PP*gac1yQBMK|%=?Cw^XjL5q5CWlMIoBZ?c3*jOQ-e6=j z|K76QLqPCeao25RpyU#>q@+9bpE-UOeeR!JElgu}UL>EE!^{~+^QJ9Z0t;pY)gBpF zTMTc?Y;wqrtjo*$p=ssnXs zZRvDlR8x7g`+*-=p@d3OwYT;=f3}auGM?ldUxU`(Bv^MK@>F5y4J2*s|2>~Rf(V8{ zh>HjsZrEp^lWi1Fo#K*{Go4Q4qQKRN39lA-5Aa+cV-fK^BK0>fl-v!4`9RBhlj$6un@Bw>Z=L6zrRd#w@*lmjARM z4K&@|7XSi`9s5st{pz+>&DC6VI_Zr?6s9PC|7#oaf7R7|vvJ2tr*N-4s&|y`{|9|d zNeH|)@;~9kp>ceALvfX4E6UaX4lta*H2j`4wHps4-oCo!#Qk>G?wUV6&(R0Dhf?N% z4rGaRxXrMylBWMn2M}^5>4*ONk^gzZpQrrm&;Q&@Kjwd) q@V`0CwP%0c*~;VpFMchXEw5)At>3$y&wG~sG$jSK)2S!Vd;bqahVp~} diff --git a/tests/ref/math/underover.png b/tests/ref/math/underover.png new file mode 100644 index 0000000000000000000000000000000000000000..a585f59dd582e1df0280bb3db48de21d1783f635 GIT binary patch literal 4757 zcmZ{oWmFUH`^E>1ZS-IW5)%eWiL{e$1f)ZxO9iBc!f0fS5fW0OAl=ek55(Vi= zcXulM`M&u5-}yP$^X7SVpYvSjdaiT7(bZO^B4;KC0030#YRdWm01@!|xI(Tk0E(0n z>i__qxw^7~q4(t0Z!$xeeG}M?x&>Wm;d=4H&rGhiw$!xnchp7!T7}}TIgjZER;8w{ zlhlx)%NPH-n~ISh>P8gIqk%J2=Cf7ii@;(a0ph9zNFdL^lO zr(a5Rxx2YflS>o?qW^!GL6gQ%V#Gg%t>aX?+_VZLVj6TUnRxSlVw|T~rtFw=+lfi> zydPW8vI^9X%7+}xFg^MnFd4|J*d)xiqhWKI^*(@Y&?XeaH}sh zSN8PQpBtHF@mDV9?rW9Fu82|~S-MoqQ(agUv1G80CcYWgU&pou-0Cb#&0gI+Ga?%% zrPWnmyGh=mXxH7lj;vvbOp8L_4*^f^F^_PS>;e`;?&-oAVr(t7Bn>OWE8K(tueDr9 zbabBjKAi;G%K?7AzK0QVh$U{r>^X0djYZSl*%<(Hcp?plJ`(}iE>>6j5bw#*ob=jc zK&W^gRM&W`5Nty-91(6M^OXS`h~JcJ4t;0GT7oyun{}Ic+e9q7@$j^u23iL>ww7tUJUfcdxbS!IT6n=e!<7skT zftZnrG`>|pf4+JMq0dd7R}E+8w>>cKKyO9o9gunGhd?0;_0ab#_$VDCySu|&IH{RU zUh9^G2FH1e-_`JWN58fmOaY6Z%f+C zQKv~O$W@zdHxbgygw))JBN7rDqeZ-uNsFMrkTAz~O3 zN)ae@CAj5$(?EO2RJ@ZwAT;}pm02`>6fTTuD$15h5Z&pz9cZm@H^UOMI`zd(mj@~{ zT47O+>i(#0#BdhND-x%ERAh2I)5|22lv~x0YQ`x4U4zrFU4R?NTNm@bnfhs%POF$E z8CF%?xTpGwFXszg^i8t4HL|>N^WgM3ySl~Rc6cVM#)`xTBo?`qt_ zeof7J@&W=|XAk4_*?R^T*vtA4=>-I}$fbK^$^-qd1Bc`{t%yQZiLSmYFX6R03$G+_ zTBN7Jy>Vhjaeo_uDb#H)&*qBEVN6y2M>IC2GS*ChsAyu@KH#)BW?nl{jg@?Ng?RPl z^Li7{V+qmS0zi`8x`keT7(|LlL+(CMB0>&82mS=@^5g%=!pQi+^0%T|Dz~Rp`3%G& zT_LH%{~%y2kPqWG0=d9czxNH(l|Y4*w0o2j_r0Bebt1G_ix0y+prD=9Aingng&1Wz zuHRRN$DuO#h|crpCtX{V!ri=Ls3jIXVf)rsxxZ6hQTwv?+g&#LvMM?Dbjs6`+}O+r z^{!V+m;d_WH4j|s2N6AD^)7ZXhATjjwpz9P825*4;emG=xs27_`H|N6?@jtnqce&# zN}g9HMW~Uv<@u}Tr>D*y!ZJqWgc;=S(TW|KrJh$ua0&;0Q_FF=u7V1C`9_w@j6}ey z$;8QMXrXRIXcDZyBX4mV0mYi$u6qtl*39~I6mj=Je*{VEnpd)XWf~ld9w73JuM3NP z%e18L-PAPb>2<};*-mOO`7A|<^tnz^u#4+kEf(c*Xzk+5MHo=(>^%k<4)qeOJbx0m z-QV~38(ZYmE5;u4y!csWuT+r6Ua3DR`?V{AppbvalpzTFKe8_~ZAAZ_uf&K|h~kT= z&f`ggeT%w5@}JLs3NHjch#aE8`F&t?(Z8c(C?{{8*gx$R$TUsKB6+T(7RKmn~~Y}oynZUkm3rxc+%`fF(fQo9RyquC<4IRR>jzMekf z*|14r;yMIR$$I9JQN0d1?!qLJT7Nc&Bl;c-q_7q;LK=y)gjVAu6)|``KJbmC;%mNG zG+RT;lVY3xV-KCtCL8y5cQ2~Kg|&<^Gv7XsO?e1T9%336yZGaDJPQT6ypk%e6h7x{ zQ4(@IUn?+-IU+w&>z?E0^YDX}HBD)(Sgc?Zh{}uwgASGrDnzhEvp3Z%Y zO2K1x^7~3-6 zxPOja_joab@L-}952!yBF;$tX4P4n+Z32B0ZqB?5;qC9Z0y$Zx`#f?yxuzgz9ZRRc#*>ZJsq0J_~NUu|rGCRW#sG7W5=zmoBf}2&AWOu{CVjWI?xgsd9 zmk>E$r1CYg*RK^}aQ7;E+NRAB(30i>LL4Cct$2x89oN0{S%PC`=ztLOf-lja4c*$TCk!dF9l~rfN7fhj2VeP1UVT? zyYK`WY~woOo~*<9Lnsf=w<3il#f*Dxj==+04kF9hUzp02=<+fyyb>VXWyxcXkxwSGE;15^7m>H@Z~;T*XF6dQE` zIBYnw<7}7ZtsaVcg_C;4fO;jTTq5IS-p%)wcz{Hz-i;b=T{JsT@n8Dk3MBs@5$D07 z1J{oGmwY31_cKi*3%(MaeJJt(&sA+43|HmTpsaaK0(?HCiGJ@g`^-NA$1PA;3hfyw zK?IJLqI13O;M49lmoJRWc`89*PWHntzfK}_05=QPbyM6>M?}h#X_4av#`PRi8_bWe z0e^~UbH8x6(DO=pJ;dTS=&}{-pAlIi3u*m2^hAb#m>h{G{mC@AC{sRWT4#Nm7P-H) z!SLiz* zM}`@8oGnhNPiOZ~^gVJ()g}sCX|tF0PlP;%d(h2A@m8Qo4f1Aqz>6@~*(_LD09C(4 zu)f_nu{)rzj98mDoEqi7nsIF)~LS;f!KuJgsu)q)3;DrJG`Stwe!}!3oVS_1zQwTNzY+X+Lwv+FCy;o&0a9+h+#+Mv@yZ?)&tO$z zdAWKAcaGj z2tzEm7g`oossCjYlv)CbRzJh|uXDUey*AsAkB~glYnTbAk-SDf$gfuD>{=dwbh*-V zLKurY553>uD7W-E!t|ES?doY0Du$^pdcUR-sB@?7%in(Oi5o>tToIk~UyT%I-*nD% z`zcO0N=ER0wcSe|RWi1inF;K%*(jTGd_`kQI+yADy}vF!`==l&!kNk)y#K_rBGhdk zy`@xP+Ln5L@hkiua4&y)GE8VGJXWIAT7xq(LGpUb9c$_4)(7?3mxU=H zmDQysB_)$gCh##Nt_j(X){k5&iM}c2Fq0m8k~lDw7nvVpiy9|PKiq)6b}WcWc1Dc9 z-60HctS)h+3YOz}DE!(fvi0e2+fg7)#3zLwQ_xbI&EQ-9u)T+Rp8DO)cVNS6=t%TR znpGRYwUI1{W=|v5F=yP6KnlP(Y=av6V?Fu%^YGk8h!iE=gv-s8$XMa3Lz5eQ%N&~i zO7l&E551t8LKJO!(f0xYx zx9jmVW@P#G(~>`O%*$&J(WmyiRf&V$Q6_f=9AW(LtSC%8`0ZJ;%!hJAD^I7M2g4CgefTRhuaCD`XTlsefmnq0nJ55iW_WMc?k zipGk@_IsV(O8mb8{TqUglh$kNxXH5`+I=n#9!4cdL7G@`GLHKM^xQT$V4W(Ja48ISaW(Vu@PzdcE{ricfiro#f%Qq4-NGA z=2^T>5xwk-0TECHkyQuhCOhT!#0!G#WA}H*RkXxk?-xD=nFVPEvyCh0%KecvD!X4W z_DE(ws1NjZlha{%!j6jp-S?DC;r0CzeHPkBIdHCNo3;L-K=_|B)6F48oL>RFKiEXk zEs-P-b^hWxTHJoMeO{tVn6rkCXa~(>Pm*QqQzKEEW7r2pUVinb=oSvQC9$#PUTz!s zgLY9`J$}TM>0PWu#sXpJOCGySs411?|2>$>Bb4<0QHt9;314IO2GkzSyd8#I0HvBltIm@-#lEQ~jDveh$Sr%C_o zhhkI;(~AS&jzB@Ep~V4zPZKMsIp~3p=+z11b-PVR)cDmG?nO+q6KGs~!>^+v_|Ek& z_E&klL*1dPj_-r3S%}Q{gkleWotrO9gO1Y5(n`_Hhe-y@KbvhLN=4wRr)5OACO^lO zC&gA0l{_~gCYcE%bJG(SjeGJFGs1kpHI+Exo_d(B{{{nnCAWJ}dwB6<#`&OAg<{uF z4}pzYSr2Yl!gEmU+|svB+Vx{)T?Pk;S2A4HJfMh|CDE%gFWL=Lt8_UCSC+mu`p?I~ zDX~)HRD{F!%CWfmUz>(|{RRyZ!$=X;M#Ifpxr6T?w%%YU{8mw;GN0t4CT7N#*fb%w zUnzi$(jMjM*p;__L>Ig}Y}vNVj~pin!&tetO@N>+G^{3ol9EDd)xdsL{vXMO)UI`y z1*G*CGWPLD+{GlRbtFq$%^~e_FecoI7e&aF;GDuq(ZL$#+104Z0U%DeEu%P8S2!o9 zhcrNOoFdcDSF1x@8NIjuE8!OA+3NGt{<~NQ>9%@(4#OGV69zuu&ZD1=&El4CtjiZ5 z8%a|g8cax(OX%<4ssM#21*8R+l7x-(%{?L> zrhwe@cvLwR__S5Nf{E>uX&}K%>q;o7hhG6Z(f}88&VLI2XMbVGAu;j_|6>n(8rYaV Vtkx#3D)ryKNnJ%-xlGX-`+v?fxU&EN literal 0 HcmV?d00001 diff --git a/tests/ref/math/vec.png b/tests/ref/math/vec.png new file mode 100644 index 0000000000000000000000000000000000000000..20db151221d51b7dff2f9dc7068885d409e5f0fb GIT binary patch literal 1608 zcmZ|QYc!Mz7zgmz^kQPwybZaF!K9_=sL{9^gEY;!rrgIG7Nd@eHX}rDMQ*!g-HK_P zVl)Z0Y=)^!$R*dtC5JL(cihI1OY6FIP9L^&w&(oMbN=6+Z@(wimExozrzQsgfP(W; zqB{UcfuH*@^78_o#9r100GXZ6L_5!mL$f3C$GuKy$V$eg>3RLfKqKp>H%x?*nqIL=hnqQ;!p_G1AnkdoI$Hm5wQ^IggU3OwhsU==;|_7VoKdl{ zMS*o)M=K_+BvDLqXYKnro38WtzqOjLpP$38oX$N6+M&K=GNgqjg+N^fKy5$@X$yQ? zwU6-UOba=I+!t6)enoJ5p`R|k8LP@qJs3i%xMdP}0M1MeoK~7;dX=A4++=wo_c68v z1LOScaR$9`X_JhBH;OX2Ar?!J!J3c~j+zNBp&A=Zu-eI>V$NR}G zL97u&(k>XYQt%Ap`hdgbmpkU69OE6?FgV1Rz?*Rzhb3QV#n;i`h zn)vEV5%!Txlc_5St_WDstIgu+uyW}=%}-Z6g0(o%o*-^-Dwy6e`v9QRO`b-Fl#+ zAblC%yrv7OnW)!0)FO4RorW|UvTSr_9NxJ;COSP0#D`a2)eEVnA(c3|Q=be4XA&yz zQbOTJjq5|namowL8^&*pyL0M(A*ENYT3}Y)yvxeF>&I5TlU9|pB)Rg!WhtAmYd1!B zVAQPbd|B3nI>F?U3Pi4(eH?mU3ffR&t&cEMje@oo2hn*Ydx<;f`o&dR7yLo4z)oNqmYBXxCu zF!cwWaNJp;PBe{ZlTbvoWlu$_)@P*T)R`Won;vzC_z<({lhy3GDr2?jBWGSv)d-s=>8rQ}pX}NkCaEEe*E4xV9fd!r^Q2iuel!^Q&v{ z;caQD1~=k$L4Ll|f_2+$2Q4)mORBTn_Ic`cmmsxJGxUa4G^1{rTK}Gs!~SP*B7l6m z+Dh1$pZVdO<8_buIok6)!GUH`_jIsq|4Y`Qf<5iz$kvYg&jMM!n;#|^v1iy}o$R`OLf`rT_} zY!4K9#p!c}_2sf`-(;s*3BpF24Lhh!W4cBmvJ7^WC_Eti5NG$EAY*no#fyM+1p_?#U}|>u7WkNm}*rD0Vl;|N5)>C`DOT%Lz?k zzwY3AG^La2tD>&1ZV^p;*jetqtbH;DPLM>2Rss^w9(y&t4By#4yP)klMyl_zpW7{w znLBn9DQvUnW*wptGnWhFK6XshR_mb=nu&LZCu4FPhb9Qx?MHrg;Z>wh>9wLnxvHIg zHmDJYUY+5w{}JS?D^dFq$=b*-kz5Hk{T?>}7=&8rd(Vyq4w3vj&D04geGz?@L!p2A zlO>szk@(t?N6TR+%8RX&inpf#K3k1ZI`7dAb@F%xWr?7-rab+DLcxOIu zub=!kC!=%;4(EmiFyp*#_I`13P3a{LIm5&yzAA!ulNtds?WWq{_~tw{oxK?;LzV~= z^BJ!kAgCrWZ4#2R++V^pI+1A;w5l3B`%nhMsf7+0g}Da;;Sq2R+bSev%{s9`fc&WB z^xBFj9u^+`-5H9K-*e`#8RPFeJL&^|^|;n~Q`)854EKjyq{5dM;p{*mJ|a+){{;&y Bzls0= literal 0 HcmV?d00001 diff --git a/tests/typ/math/accent.typ b/tests/typ/math/accent.typ new file mode 100644 index 000000000..65ef9d1b5 --- /dev/null +++ b/tests/typ/math/accent.typ @@ -0,0 +1,22 @@ +// Test math accents. + +--- +// Test function call. +$grave(a), acute(b), hat(f), tilde(§), macron(ä), diaer(a), ä, \ + breve(\&), dot(!), circle(a), caron(@), arrow(Z), arrow.l(Z)$ + +--- +// Test `accent` function. +$accent(ö, .), accent(v, <-), accent(ZZ, \u{0303})$ + +--- +// Test accent bounds. +$sqrt(tilde(T)) + hat(f)/hat(g)$ + +--- +// Test wide base. +$arrow("ABC" + d), tilde(sum)$ + +--- +// Test high base. +$ tilde(integral), tilde(integral)_a^b, tilde(integral_a^b) $ diff --git a/tests/typ/math/accents.typ b/tests/typ/math/accents.typ deleted file mode 100644 index 284e86f3d..000000000 --- a/tests/typ/math/accents.typ +++ /dev/null @@ -1,15 +0,0 @@ -// Test math accents. - ---- -#set page(width: auto) - -$ grave(a), - acute(a), - hat(a), - tilde(a), - macron(a), - breve(a), - dot(a), - diaer(a), - caron(a), - arrow(a) $ diff --git a/tests/typ/math/attach.typ b/tests/typ/math/attach.typ new file mode 100644 index 000000000..cf3e9521b --- /dev/null +++ b/tests/typ/math/attach.typ @@ -0,0 +1,34 @@ +// Test top and bottom attachments. + +--- +// Test basics. +$f_x + t^b + V_1^2 + + attach(A, top: alpha, bottom: beta)$ + +--- +// Test text vs ident parsing. +$pi_1(Y), a_f(x) != a_zeta(x)$ + +--- +// Test associativity and scaling. +$ 1/(V^2^3^4^5) $ + +--- +// Test high subscript and superscript. +$sqrt(a_(1/2)^zeta)$ +$sqrt(a_alpha^(1/2))$ +$sqrt(a_(1/2)^(3/4))$ + +--- +// Test frame base. +$ (-1)^n + (1/2 + 3)^(-1/2) $ + +--- +// Test limit. +$ lim_(n->infty \ n "grows") sum_(k=0 \ k in NN)^n k $ + +--- +// Test forcing scripts and limits. +$ limits(A)_1^2 != A_1^2 $ +$ scripts(sum)_1^2 != sum_1^2 $ +$ limits(integral)_a^b != integral_a^b $ diff --git a/tests/typ/math/cases.typ b/tests/typ/math/cases.typ new file mode 100644 index 000000000..d591ae50e --- /dev/null +++ b/tests/typ/math/cases.typ @@ -0,0 +1,9 @@ +// Test case distinction. + +--- +$ f(x, y) := cases( + 1 quad &"if" (x dot y)/2 <= 0, + 2 &"if" x divides 2, + 3 &"if" x in NN, + 4 &"else", +) $ diff --git a/tests/typ/math/content.typ b/tests/typ/math/content.typ new file mode 100644 index 000000000..271e00a52 --- /dev/null +++ b/tests/typ/math/content.typ @@ -0,0 +1,14 @@ +// Test arbitrary content in math. + +--- +// Test images and font fallback. +#let monkey = move(dy: 0.2em, image("/res/monkey.svg", height: 1em)) +$ sum_(i=#emoji.apple)^#emoji.apple.red i + monkey/2 $ + +--- +// Test table above fraction. +$ x := #table(columns: 2)[x][y]/mat(1, 2, 3) $ + +--- +// Test non-formula math directly in content. +#math.attach($a$, top: [b]) diff --git a/tests/typ/math/delimited.typ b/tests/typ/math/delimited.typ new file mode 100644 index 000000000..d22b76c0c --- /dev/null +++ b/tests/typ/math/delimited.typ @@ -0,0 +1,38 @@ +// Test delimiter matching and scaling. + +--- +// Test automatic matching. +$ (a) + {b/2} + |a|/2 + (b) $ +$f(x/2) < zeta(c^2 + |a + b/2|)$ + +--- +// Test unmatched. +$[1,2[ = [1,2) != zeta\(x/2\) $ + +--- +// Test manual matching. +$ [|a/b|] != lr(|]a/b|]) != [a/b) $ +$ lr(| ]1,2\[ + 1/2|) $ + +--- +// Test fence confusion. +$ |x + |y| + z/a| \ + |x + lr(|y|) + z/a| $ + +--- +// Test that symbols aren't matched automatically. +$ bracket.l a/b bracket.r + = lr(bracket.l a/b bracket.r) $ + +--- +// Test half LRs. +$ lr(a/b\]) = a = lr(\{a/b) $ + +--- +// Test manual scaling. +$ lr(]sum_(x=1)^n x], size: #70%) + < lr((1, 2), size: #200%) $ + +--- +// Test predefined delimiter pairings. +$floor(x/2), ceil(x/2), abs(x), norm(x)$ diff --git a/tests/typ/math/frac.typ b/tests/typ/math/frac.typ new file mode 100644 index 000000000..27c2ae45b --- /dev/null +++ b/tests/typ/math/frac.typ @@ -0,0 +1,25 @@ +// Test fractions. + +--- +// Test that denominator baseline matches in the common case. +$ x = 1/2 = a/(a h) = a/a = a/(1/2) $ + +--- +// Test parenthesis removal. +$ (|x| + |y|)/2 < [1+2]/3 $ + +--- +// Test associativity. +$ 1/2/3 = (1/2)/3 = 1/(2/3) $ + +--- +// Test large fraction. +$ x = (-b plus.minus sqrt(b^2 - 4a c))/(2a) $ + +--- +// Test binomial. +$ binom(circle, square) $ + +--- +// Error: 8-13 missing argument: lower index +$ binom(x^2) $ diff --git a/tests/typ/math/matrix.typ b/tests/typ/math/matrix.typ index 3f65a6838..99e8fa19d 100644 --- a/tests/typ/math/matrix.typ +++ b/tests/typ/math/matrix.typ @@ -1,27 +1,26 @@ -// Test vectors, matrices, and cases. +// Test matrices. --- -$ v = vec(1, 2+3, 4) $ +// Test semicolon syntax. +#set align(center) +$mat() dot + mat(;) dot + mat(1, 2) dot + mat(1, 2;) \ + mat(1; 2) dot + mat(1, 2; 3, 4) dot + mat(1 + &2, 1/2; &3, 4)$ --- -$ binom(n, 1) = 1/2 n (n-1) $ +// Test sparse matrix. +$mat( + 1, 2, ..., 10; + 2, 2, ..., 10; + dots.v, dots.v, dots.down, dots.v; + 10, 10, ..., 10; +)$ --- -#set math.vec(delim: "|") -$ vec(1, 2) $ - ---- -$ f(x, y) := cases( - 1 "if" (x dot y)/2 <= 0, - 2 "if" x in NN, - 3 "if" x "is even", - 4 "else", -) $ - ---- -// Error: 22-25 expected "(", "[", "{", "|", or "||" -#set math.vec(delim: "%") - ---- -// Error: 8-13 missing argument: lower index -$ binom(x^2) $ +// Test alternative delimiter. +#set math.mat(delim: "[") +$ mat(1, 2; 3, 4) $ diff --git a/tests/typ/math/multiline.typ b/tests/typ/math/multiline.typ new file mode 100644 index 000000000..b57d91666 --- /dev/null +++ b/tests/typ/math/multiline.typ @@ -0,0 +1,35 @@ +// Test multiline math. + +--- +// Test basic alignment. +$ x &= x + y \ + &= x + 2z \ + &= sum x dot 2z $ + +--- +// Test text before first alignment point. +$ x + 1 &= a^2 + b^2 \ + y &= a + b^2 \ + z &= alpha dot beta $ + +--- +// Test space between inner alignment points. +$ a + b &= 2 + 3 &= 5 \ + b &= c &= 3 $ + +--- +// Test in case distinction. +$ f := cases( + 1 + 2 &"iff" &x, + 3 &"if" &y, +) $ + +--- +// Test mixing lines with and some without alignment points. +$ "abc" &= c \ + &= d + 1 \ + = x $ + +--- +// Test multiline subscript. +$ sum_(n in NN \ n <= 5) n = (5(5+1))/2 = 15 $ diff --git a/tests/typ/math/op.typ b/tests/typ/math/op.typ new file mode 100644 index 000000000..c7b34c54a --- /dev/null +++ b/tests/typ/math/op.typ @@ -0,0 +1,21 @@ +// Test text operators. + +--- +// Test predefined. +$ max_(1<=n<=m) n $ + +--- +// With or without parens. +$ &sin x + log_2 x \ + = &sin(x) + log_2(x) $ + +--- +// Test scripts vs limits. +#set text("Latin Modern Roman") +Discuss $lim_(n->infty) 1/n$ now. +$ lim_(n->infty) 1/n = 0 $ + +--- +// Test custom operator. +$ op("myop", limits: #false)_(x:=1) x \ + op("myop", limits: #true)_(x:=1) x $ diff --git a/tests/typ/math/root.typ b/tests/typ/math/root.typ new file mode 100644 index 000000000..8d3e2de02 --- /dev/null +++ b/tests/typ/math/root.typ @@ -0,0 +1,38 @@ +// Test roots. + +--- +// Test root with more than one character. +$A = sqrt(x + y) = c$ + +--- +// Test root size with radicals containing attachments. +$ sqrt(a) quad + sqrt(f) quad + sqrt(q) quad + sqrt(a^2) \ + sqrt(n_0) quad + sqrt(b^()) quad + sqrt(b^2) quad + sqrt(q_1^2) $ + +--- +// Test precomposed vs constructed roots. +// 3 and 4 are precomposed. +$sqrt(x)$ +$root(2, x)$ +$root(3, x)$ +$root(4, x)$ +$root(5, x)$ + +--- +// Test large bodies +$ sqrt([|x|]^2 + [|y|]^2) < [|z|] $ +$ v = sqrt((1/2) / (4/5)) + = root(3, (1/2/3) / (4/5/6)) + = root(4, ((1/2) / (3/4)) / ((1/2) / (3/4))) $ + +--- +// Test large index. +$ root(2, x) quad + root(3/(2/1), x) quad + root(1/11, x) $ diff --git a/tests/typ/math/shorthand.typ b/tests/typ/math/shorthand.typ deleted file mode 100644 index d37c938f0..000000000 --- a/tests/typ/math/shorthand.typ +++ /dev/null @@ -1,4 +0,0 @@ -// Test math shorthands. - ---- -$ f : NN <=> RR, n |-> sqrt(n) $ diff --git a/tests/typ/math/simple.typ b/tests/typ/math/simple.typ deleted file mode 100644 index 1b63cbfc9..000000000 --- a/tests/typ/math/simple.typ +++ /dev/null @@ -1,24 +0,0 @@ -// Test math formulas. - ---- -The sum of $a$ and $b$ is $a + b$. - ---- -We will show that: -$ a^2 + b^2 = c^2 $ - ---- -Prove by induction: -$ sum_(k=0)^n k = (n(n+1))/2 $ - ---- -We know that: -$ floor(x/2) <= ceil(x/2) $ - ---- -// Test that blackboard style looks nice. -$ f: NN -> RR $ - ---- -// Error: 1:3 expected dollar sign -$a diff --git a/tests/typ/math/spacing.typ b/tests/typ/math/spacing.typ new file mode 100644 index 000000000..6f2d6b443 --- /dev/null +++ b/tests/typ/math/spacing.typ @@ -0,0 +1,31 @@ +// Test spacing in math formulas. + +--- +// Test spacing cases. +$ä, +, c, (, )$ \ +$=), (+), {times}$ +$⟧<⟦, |-|, [=$ \ +$a=b, a==b$ \ +$-a, +a$ \ +$a not b$ \ +$a+b, a*b$ \ +$sum x, sum(x)$ \ +$sum prod x$ \ +$f(x), zeta(x), "frac"(x)$ + +--- +// Test ignored vs non-ignored spaces. +$f (x), f(x)$ \ +$[a|b], [a | b]$ \ +$a"is"b, a "is" b$ + +--- +// Test predefined spacings. +$a thin b, a med b, a thick b, a quad b$ \ +$a = thin b$ \ +$a - b ident c quad (mod 2)$ + +--- +// Test spacing for set comprehension. +#set page(width: auto) +$ { x in RR | x "is natural" and x < 10 } $ diff --git a/tests/typ/math/style.typ b/tests/typ/math/style.typ index 38d6e2d5d..228519001 100644 --- a/tests/typ/math/style.typ +++ b/tests/typ/math/style.typ @@ -1,15 +1,30 @@ -#let part = $ a B pi Delta $ -#let kinds = (math.serif, math.sans, math.cal, math.frak, math.mono, math.bb) -#let modifiers = (v => v, math.italic, math.bold, v => math.italic(math.bold(v))) +// Test text styling in math. -#let cells = (sym.triangle.nested, [--], [`italic`], [`bold`], [both]) -#for kk in kinds { - cells.push(raw(repr(kk).trim(""))) - for mm in modifiers { - cells.push($ mm(kk(part)) $) - } -} +--- +// Test italic defaults. +$a, A, delta, ϵ, diff, Delta, ϴ$ -#set page(width: auto) -#set align(center) -#table(columns: 1 + modifiers.len(), ..cells) +--- +// Test forcing a specific style. +$A, italic(A), upright(A), bold(A), bold(upright(A)), \ + serif(A), sans(A), cal(A), frak(A), mono(A), bb(A), \ + italic(diff), upright(diff), \ + bb("hello") + bold(cal("world")), \ + mono("SQRT")(x) wreath mono(123 + 456)$ + +--- +// Test a few style exceptions. +$h, bb(N), frak(R), Theta, italic(Theta), sans(Theta), sans(italic(Theta))$ + +--- +// Test font fallback. +$ よ and 🏳️‍🌈 $ + +--- +// Test text properties. +$text(#red, "time"^2) + sqrt("place")$ + +--- +// Test different font. +#show math.formula: set text(family: "Fira Math") +$ v := vec(1 + 2, 2 - 4, sqrt(3), arrow(x)) + 1 $ diff --git a/tests/typ/math/syntax.typ b/tests/typ/math/syntax.typ index 8ffded298..26d3e4449 100644 --- a/tests/typ/math/syntax.typ +++ b/tests/typ/math/syntax.typ @@ -1,23 +1,18 @@ -#set page(width: auto) -#show : it => table( - columns: 2, - inset: 8pt, - ..it.text - .split("\n") - .map(line => (raw(line, lang: "typ"), text("Latin Modern Roman", eval(line)))) - .flatten() -) +// Test math syntax. -``` -Let $x in NN$ be ... -$ (1 + x/2)^2 $ -$ x arrow.l y $ -$ sum_(n=1)^mu 1 + (2pi(5 + n)) / k $ -$ { x in RR | x "is natural" and x < 10 } $ -$ sqrt(x^2) = frac(x, 1) $ -$ "profit" = "income" - "expenses" $ -$ x < #for i in range(5) [$ #i < $] y $ -$ 1 + 2 = #{1 + 2} $ -$ A subset.eq.not B $ -``` -
+--- +// Test Unicode math. +$ ∑_(i=0)^ℕ a ∘ b = \u{2211}_(i=0)^NN a compose b $ + +--- +// Test a few shorthands. +$ underline(f' : NN -> RR) \ + n |-> cases( + [|1|] &"if" n >>> 10, + 2 * 3 &"if" n != 5, + 1 - 0 thick &..., + ) $ + +--- +// Error: 1:3 expected dollar sign +$a diff --git a/tests/typ/math/underover.typ b/tests/typ/math/underover.typ new file mode 100644 index 000000000..f0f673083 --- /dev/null +++ b/tests/typ/math/underover.typ @@ -0,0 +1,21 @@ +// Test under/over things. + +--- +// Test braces. +$ x = underbrace( + 1 + 2 + ... + 5, + underbrace("numbers", x + y) +) $ + +--- +// Test lines and brackets. +$ x = overbracket( + overline(underline(x + y)), + 1 + 2 + ... + 5, +) $ + +--- +// Test brackets. +$ underbracket([1, 2/3], "relevant stuff") + arrow.l.r.double.long + overbracket([4/5,6], "irrelevant stuff") $ diff --git a/tests/typ/math/vec.typ b/tests/typ/math/vec.typ new file mode 100644 index 000000000..198a1d154 --- /dev/null +++ b/tests/typ/math/vec.typ @@ -0,0 +1,14 @@ +// Test vectors. + +--- +// Test wide cell. +$ v = vec(1, 2+3, 4) $ + +--- +// Test alternative delimiter. +#set math.vec(delim: "[") +$ vec(1, 2) $ + +--- +// Error: 22-25 expected "(", "[", "{", "|", or "||" +#set math.vec(delim: "%") diff --git a/tools/test-helper/extension.js b/tools/test-helper/extension.js index 335fcc150..a745916a5 100644 --- a/tools/test-helper/extension.js +++ b/tools/test-helper/extension.js @@ -108,6 +108,12 @@ function getWebviewContent(pngSrc, refSrc, stdout, stderr) { } .flex { display: flex; + flex-wrap: wrap; + } + .flex > * { + flex-grow: 1; + flex-shrink: 0; + max-width: 100%; }