From 44efaf2f6cc1f5a84ac95623f6e383faa45410c7 Mon Sep 17 00:00:00 2001
From: Millian Poquet <millian.poquet@irit.fr>
Date: Tue, 29 Apr 2025 20:29:39 +0200
Subject: [PATCH] ring buffer

---
 ring-buffer/mpoquet.tmTheme | 374 ++++++++++++++++++++++++++++++++++++
 ring-buffer/ring-buffer.pdf | Bin 0 -> 45864 bytes
 ring-buffer/ring-buffer.typ | 109 +++++++++++
 3 files changed, 483 insertions(+)
 create mode 100644 ring-buffer/mpoquet.tmTheme
 create mode 100644 ring-buffer/ring-buffer.pdf
 create mode 100644 ring-buffer/ring-buffer.typ

diff --git a/ring-buffer/mpoquet.tmTheme b/ring-buffer/mpoquet.tmTheme
new file mode 100644
index 0000000..9b3a803
--- /dev/null
+++ b/ring-buffer/mpoquet.tmTheme
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>author</key>
+	<string>Ankur Gupta</string>
+	<key>name</key>
+	<string>GitHub Clean White</string>
+	<key>settings</key>
+	<array>
+		<dict>
+			<key>settings</key>
+			<dict>
+				<key>background</key>
+				<string>#FFFFFF</string>
+				<key>caret</key>
+				<string>#000000</string>
+				<key>foreground</key>
+				<string>#000000</string>
+				<key>invisibles</key>
+				<string>#B3B3B3F4</string>
+				<key>lineHighlight</key>
+				<string>#0000001A</string>
+				<key>selection</key>
+				<string>#BAD6FD</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>String</string>
+			<key>scope</key>
+			<string>string</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#C41A16</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Number</string>
+			<key>scope</key>
+			<string>constant.numeric</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#0086B3</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Keyword</string>
+			<key>scope</key>
+			<string>keyword</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#A71D5D</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Operator</string>
+			<key>scope</key>
+			<string>keyword.operator</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#000000</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Built-in constant</string>
+			<key>scope</key>
+			<string>constant.language</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#0086B3</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Exception</string>
+			<key>scope</key>
+			<string>support.class.exception</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#990000</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Function name</string>
+			<key>scope</key>
+			<string>entity.name.function</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#000000</string>
+			<!-- 	<key>fontStyle</key>
+				<string>italic</string> -->
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Type name</string>
+			<key>scope</key>
+			<string>entity.name.type</string>
+			<key>settings</key>
+			<dict>
+				<key>fontStyle</key>
+				<string>bold underline</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Arguments</string>
+			<key>scope</key>
+			<string>variable.parameter</string>
+			<key>settings</key>
+			<dict>
+				<key>fontStyle</key>
+				<string>italic</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Comment</string>
+			<key>scope</key>
+			<string>comment</string>
+			<key>settings</key>
+			<dict>
+				<!-- <key>fontStyle</key>
+				<string>italic</string> -->
+				<key>foreground</key>
+				<string>#707070</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Invalid</string>
+			<key>scope</key>
+			<string>invalid</string>
+			<key>settings</key>
+			<dict>
+				<!-- <key>background</key>
+				<string>#E71A114D</string> -->
+				<key>foreground</key>
+				<string>#FF0000</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Trailing whitespace</string>
+			<key>scope</key>
+			<string>invalid.deprecated.trailing-whitespace</string>
+			<key>settings</key>
+			<dict>
+				<key>background</key>
+				<string>#E71A1100</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Embedded source</string>
+			<key>scope</key>
+			<string>text source</string>
+			<key>settings</key>
+			<dict>
+				<key>background</key>
+				<string>#FAFAFAFC</string>
+				<key>foreground</key>
+				<string>#000000</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Tag</string>
+			<key>scope</key>
+			<string>meta.tag, declaration.tag</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#AA0D91</string>
+			</dict>
+		</dict>
+		<!-- <dict>
+			<key>name</key>
+			<string>Constant</string>
+			<key>scope</key>
+			<string>constant, support.constant</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#000000</string>
+			</dict>
+		</dict> -->
+		<dict>
+			<key>name</key>
+			<string>Support</string>
+			<key>scope</key>
+			<string>support</string>
+			<key>settings</key>
+			<dict>
+				<key>fontStyle</key>
+				<string>bold</string>
+				<key>foreground</key>
+				<string>#000000</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Storage</string>
+			<key>scope</key>
+			<string>storage</string>
+			<key>settings</key>
+			<dict>
+				<!-- <key>fontStyle</key>
+				<string>bold</string> -->
+				<key>foreground</key>
+				<string>#AA0D91</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Section name</string>
+			<key>scope</key>
+			<string>entity.name.section</string>
+			<key>settings</key>
+			<dict>
+				<key>fontStyle</key>
+				<string>bold underline</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>Frame title</string>
+			<key>scope</key>
+			<string>entity.name.function.frame</string>
+			<key>settings</key>
+			<dict>
+				<key>fontStyle</key>
+				<string>bold</string>
+				<key>foreground</key>
+				<string>#000000</string>
+				<!-- <string>#881280</string> -->
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>XML Declaration</string>
+			<key>scope</key>
+			<string>meta.tag.preprocessor.xml</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#333333</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>html attribute</string>
+			<key>scope</key>
+			<string>entity.other.attribute-name</string>
+			<key>settings</key>
+			<dict>
+				<key>fontStyle</key>
+				<string>italic</string>
+				<key>foreground</key>
+				<!-- <string>#3366CC</string> -->
+				<string>#0A8585</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>name</key>
+			<string>html tag punctuation</string>
+			<key>scope</key>
+			<string>entity.name.tag</string>
+			<key>settings</key>
+			<dict>
+				<key>foreground</key>
+				<string>#121289</string>
+				<!-- <key>fontStyle</key>
+				<string>bold</string> -->
+			</dict>
+		</dict>
+		<!-- Adding stuff for diff. This works in ST3 -->
+		<dict>
+            <key>name</key>
+            <string>diff header from</string>
+            <key>scope</key>
+            <string>meta.diff.header.from-file</string>
+            <key>settings</key>
+            <dict>
+                <key>background</key>
+                <string>#FFDDDD</string>
+                <key>fontStyle</key>
+                <string></string>
+                <key>foreground</key>
+                <string>#000000</string>
+            </dict>
+        </dict>
+        <dict>
+            <key>name</key>
+            <string>diff header to</string>
+            <key>scope</key>
+            <string>meta.diff.header.to-file</string>
+            <key>settings</key>
+            <dict>
+                <key>background</key>
+                <string>#DDFFDD</string>
+                <key>fontStyle</key>
+                <string></string>
+                <key>foreground</key>
+                <string>#000000</string>
+            </dict>
+        </dict>
+        <dict>
+            <key>name</key>
+            <string>diff inserted</string>
+            <key>scope</key>
+            <string>markup.inserted.diff</string>
+            <key>settings</key>
+            <dict>
+                <key>background</key>
+                <string>#DDFFDD</string>
+                <key>fontStyle</key>
+                <string></string>
+            </dict>
+        </dict>
+        <dict>
+            <key>name</key>
+            <string>diff deleted</string>
+            <key>scope</key>
+            <string>markup.deleted.diff</string>
+            <key>settings</key>
+            <dict>
+                <key>background</key>
+                <string>#FFDDDD</string>
+                <key>fontStyle</key>
+                <string></string>
+                <key>foreground</key>
+                <string>#000000</string>
+            </dict>
+        </dict>
+		<!-- BracketHighlighter colors -->
+		<dict>
+		    <key>name</key>
+		    <string>BH Color</string>
+		    <key>scope</key>
+		    <string>brackethighlighter.default</string>
+		    <key>settings</key>
+		    <dict>
+		       <key>foreground</key>
+		       <string>#FF992244</string>
+		       <key>fontStyle</key>
+		       <string>italic</string>
+		    </dict>
+		</dict>
+	</array>
+	<key>uuid</key>
+	<string>26786979-843B-4FE2-BCB6-4FCEC6F8FB58</string>
+	<key>colorSpaceName</key>
+	<string>sRGB</string>
+	<key>semanticClass</key>
+	<string>theme.light.git_hub_clean_white</string>
+	<key>comment</key>
+	<string>v1.0 Feb 1, 2015
+Made to look as close to GitHub as possible.</string>
+</dict>
+</plist>
diff --git a/ring-buffer/ring-buffer.pdf b/ring-buffer/ring-buffer.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3b676ce0c5117a667f03e7d440372c89c6bb703a
GIT binary patch
literal 45864
zcmY!laB<T$)HCN&ZD?p{;NmhgQ!r4-Ps-x5vEfos&=09BNLA2x%g-wT@q$Z}O27gj
zVFQqeQ(|!{NLE4LD>O1JDpcDiGby#GBr~tHI5@Q^Gfg)rHN7+^u}If5B{i=kv!qhj
z1EkG0FF8LYGcR31A648XwKzF7FC{Ur1Y~HjLbRc|f`LL%EJ#mCerR51a(+sxf}tfy
zkju`FD>W|#<W?@QG7t-|tDQYvK*o~nc#!SRo-V<a#U-h^o_T5c3Ses#6!e2q(=&@p
ziYgT}98>a>QZ>006ciNn{fkmki$K29fcXw85nNhOkdvC5npdI#3OzeJkjWq?f&5*R
zSx}N+q+n<P_MC!(zDqb*m43KFw1I+wf~kRlf}w(;f~keMf)NOs8!8wp7%P~X7%7-2
zn1JO?6-*V3Obryw6wDM%ER7Y+70eY(jSUqn6f6`>EsPW_6)Y7@Ow1Jw4M51)+(^OD
z5QHp@EfoxnK*-3<M8VJ)giK7$6%0*4$kfD8!O&E}&`iP9%vizD9E42G%|K2yv`{cH
zHwVRtp{0VUk)?u>fr62df{B@_f{`%@85>(D7?~&-nL@<O6pYLi%nghbjLgBv%tFBk
zjEpS}6hPW76^sqd6pRf($i&D(!PpRlKyEQMQZP1BFf}mMv$V9dG*>V-1|d@eV?6@{
z0|R3PV-pZEF*a3zAaesl1!FT10{Ph3T*25}!PLM+!Po+X%q<NRj4eUP)X-AF!~l#;
z%oR)wLCDnDLID)4MhZs8W(p?8AY^7~s$gOQLFNi3rXXZ&YN%jh20}*WMhYP9<_e~!
z<_abj5M-)gVhKW~W}x^}Ff~vxwXjeyH3T6uGeZSaBM>sNG*B=#1|g7-O-&R`O%#j`
z4HQgGLCD0yRKXM!^a@6n77C{3U}R{jU<!&-h?u2<sU<jk%?uRG3>1uwj1|lbK?oEN
zW=0BTMqpQ&87r6>L)4iln3*UTSy(8TnSzjsrMZHc83-8}87P>UgOIt2Q7lRx1LZnI
z9`i}fOE1Y#Ff%a%C1OyXQqXtyO)LQM!hJ#66qLmE-7<4ZQi~My-EtC3Qe9F(`4?np
zaY<2XVlG$3oZOI;eUA(T_I?(f=j{EZv2*&7h0(f8)L1&5^|PXk(>r*DJ9SPKJ$Qfo
zo3>c5n$YRusjv5jm%Vy;{CU~8tXX^KuAD!o_U1mx-G|O?+8%3NSrK7+G~#Ae#rA6v
z#hu^IuX#Ib(RSw3W~+T;`SePI#g|{a;eGCZ(6nz6*S52qKe%b5{H#-~`%gc7BDOpt
z!BP0OgnJxc`Z4*~Q~I~RrUu&^KXizjy=LW}9d$y2?A>;<FRx9MJ9Vq%$dPaJ%9T`%
zQw;^U?z=vX`E~YovHgv#V0o!!6H<>&Gn!ewNdNnG`CZ1d*%JHD++bFcpSv+OQvT)_
zrEhvWWN&{<+3Rua@T#@GKYI84{2rSc>C(1-^^-}Rw=aF)xiv)L*WYV1xCJIe?3lXm
zuIRSgSKX~EAHIv+Fnw#a*u0PPcld40t=IVXX4iyyJ4()}##e|GD+o@Q#eB9gu5lid
zkmd!h-zoupXLvGteGD`VR;UU{xbUb5Ml)(2Ij}BCfp>~RG4B+mZ!9dSLRNF{G%WCO
z>}IL<`6tkQP)}6gM+l!wO@Z|528+<f^1d@H|8_7axxYwfa_8dV%qrS(^}?Zt{>k$l
ze0yt!LQSR=?zp<7=i5Z1FTsoTCm9vi$>f=qc1m1O?GwH%nG`blkK@*3H@)U8TUNJ7
zUvrOlh5t#xbBe0&2_7$V9@?t9hp_e~tzvTL>I>S{Trg!4`<<qqJe2^y?>tt;uUKvr
zhfG{CGg$P_W|_Gid!t|Kr>)q@vgk~xgHYd(Iac*=_X%wmz0@M7QgZw0-;*D|)~dJe
zdfy@NT~_eVt?=(&mv_I8&$B<g?(!0e-RFE~8yq_H;zRMGHE&DBw)ws;Z}pd0G`;f8
z#pA#9BLnKIK~)GeF{VN*6C+S*i;>XH4b03yX&YODR#4D~SB=P(j5A77zgt;ZA`<$m
zEa`>ofij;+sZ|@e0zzU00z^tu#8cv#8#kz=w7>B#|5j37wRYXT?QiB@xOw?*<Vm+C
z0f#VF7r~}YT1KyS@ZCFhdd|<h&8&Y6AAkRA{M>r~oH<_0cfa48f4A!X^V)gOfBoi_
ze)jzRd-*LYdD$UZRWV6!w_dHdvg1W~xa-lBBkjw7+0A~hx_7auvgUhZ<-aQ))@^Ys
z{%tkM{MT%o3`tp+e|62Dd*;uN|Nr>KEBim3C4aB)ckBDS_v`5s&ui-U$y(miKX8A(
zc7%<!QD*j)Lnl@o`Lg57nw_2}BUct0ZhV>C7Uw(Dr1I42U^U;$<TJBwtT1#=?2Vi_
zYm2UyQtg>HJzs7txw56RuCD*b&);V?H&myKPrZF`a+rT$^HlDoW^$%B2fnSJ*q`Or
zmmz0ok#xc2li~Y38-`lRzh^$*y*PP|+u>h%2gGl8?>p_V;J(fM67Ro%|ETusaLf??
z5O=`*@EIB9=WN%{+&=aC@%qQ{6<=E2%lYP8{dq2UQ~9r3o?K<tlJ6VO9N#Ar!FpVd
zzy8nW{XKtAPgS4O$jxkjd|HC|yg42IN7vgQwcGnJGxoxb1=AKxUfk5Vz0=RA_)GF)
z-SaavXRTW5{Nj-z_puenW29f(huP%4+p((f!Ob=4x#z#JXaCw;fBS9!y7OPzGukRc
z&8OWBDLntT*n}^QL3jqE@0{5&`S$OsS!@3{<|OR;D*1d_BfEJMe}M(FgyjRN@CTDj
zR<$lT-diWS=s>)F(~tZOej9{13O?w)cXG|EGW;t&=kU#l`;v7NbTltZt=V$#NW_%1
zf6qe7)46z=9Zi;R{_&dspW~PG@*_J|zPqq=m#XyPR6~_%61yj+nqMl~>6S6&v;V47
zB9}X6Kd!vIN%Z~771r;|Ht)^J&ep$d`pI%}V6dk7r;X>nm)vaoe57(ck9~<2Ghe&^
z8Sko2KGw)PRlA=Hdoj$`Zn@X0*2`h@aj~1okFWjf`ICAR7V19<kSkjfUmxQ9QgoM-
zmZyy3T>a3~TP>q3>m3rOu2*_sb<bpD*33umKIv`i&CSnGjd4D0u6Mcn>vPUE$&<`k
z{R@{_yq>dls$XKPQR~i2lP+D#aAb_Czrt=6_@I3Lc^Q_(<{QfsIDg0<w|Zi<^Olpr
z)>me&Q~P)FWNlqH!AEF0kL$+p#NahwTn%Fv#nkC{v2Bxey?DUnPPft#g^Tr`4VgA?
zB9<P_+ZLd^_HJnIlEp^$cm1MWZ#`jQ+V^O7%G{=)1)e<nJZD`{IlIr3Cqt-p;{IC-
z-+YZ4%@^F6de0*?_4w^%&o`HOSAP~?vw-zrz%8aQxh`?0U4km}`SM(<Z<Zvzp1%2e
z1Ml-w>>G@y-V?pI{A1UrBKOp^%p$LhvKX%3+Neyu8_yyf{bug_vo#^TCf2C8v_*C4
z)0U%xhJ8zB)o}gJ3HtDDiErW&>3FsIj4BoXBtB%HTI*L5<U8^G#)~T7JR`zZMNM@x
z-YMkfsCG=O+^T2lHzTX_k?PsX>uU@@e80En))BT_Sw$k^6V)brWi1IbX#J(s+3T|T
zaI*RFM_SP<cdgjy7w+@zeM-@*m)m%%<G2jVbFMs@vHey5?yXn9%5fd#n$|q`$C2Kd
z7xO*sEvq)|s(jE<ec5D+<8Ri}DtS{cc$YVx<xLGMd7jShct>>&-=4=y3wFk=+$xa3
z$)9btEdP3d+EPES#LShGA}a;8N*9{3+ZxUFTdcf0#O!Q*=j@$(Jk-3Wx+j*lvNd1w
zlj;rYzL~UD+SE+bzSzC_j`Kerw;1O2%m<%b&Tnx|RX=)pSw)SzZ}ZZ5HdpL_tDd-P
z@^xxOV(8WmHmkU$_o7l3v%H)X7rC~4hsK9f3LKJ0b~!e&<i9T6^8F&)Uf0v7e(VY<
zp3`QqnrBVm>ElMLPuZ%r`)JgA1^m-7^U(gqv7znyg8w1TFGH-RsQKtk-fi2~EB*7%
z+%2zzMMZT~Hsnd1IUOSYOf=y3;>ATlCtJQAjlY<1v0i4Eccf07%K_6pKY8E(ci?;#
z;M$YNyplI^-huV(jxQ9xwU%#Pub{pEVPyALv0Dc(uinDN_3Q0Js~dTXXaCx=<5-ZZ
zmG);Bv8ar#Y1bz8O%ifHu6F&+i%`kz#~E*`)BmM?w@xYQTI1kxzW;_9KUW9u9UWIk
z#kuE$H}uT=B@tG%ymRWoQwx*w(q_-T<8yhh(XA!t-IwxcIcltNX<dJ(=>6`mE28fB
z&h>d7@UVX4gRqC^zv~@dYUs11qoZM=nB2F&g`1B@IL=-DX4}*W^FD0}k=ET5;bN-t
ztu^fUCLLV~<(JHYxd|<&_djLg*emj&_LY>J=-e5bC-rcyza#749m8tN&JnQi*$rQ}
z+pR6@75}n5@o8SaMvt$|^`hXrds~8^Jg>Hu-*Q=N^__qNpAtDEI+^{BdUj9Fc`LS0
zHB{@!76!dl0!{D#?fYWTG*4deOM+{H+#%Ug>)^+SrBBx%nw`mdYU%g9d&S&et0d0v
zon3!EV1cu=>*o!xq<-^NTZU%cez<9}Sa(#;vW<U*Cfn}sDS5YI-Lj3py4L*q&>Owo
zWm#~<#F#Y((j1H#TRC61-jjV$c!E(T#BXVW#qCGB43jr5HIHMfx$|M$q{t<^HrH@B
z?QUzEr+6WDLGa6`&xQ9~Zk|%jd-V9%?e|;#S2riT@wIhd6ry=`NmQ!A>Wmyip6^l*
zD&D@`={7e&>guM*nw-odXFWeXWnH;iWbwPkEaBHB+xQz_IW;f3xS_w_GJ5Z0%P75$
z9g(LdzU*mryR^c5=2sIj9-}>`FN7K2tP!|3<9%~$KKsUL`GHFQ!rIeTwryMgl;1ab
zreBZMH1j#_b0wU5*grgKxU^!HD@WX<lAOCwWuI~7*zNzpGowoEHG}Q$4;71bch1kr
z)hiCU6tU;lx-A{OH9K{pC;6)x<=UE5G_oJt8*QEbYs-Vs%x_JyU!P8ORXeuiT5wOF
z;jNBibGL<+=bJq_5#lB4>?>Ndp>O)-XX|4feC|&#x^y|AtURzUs83AiXrh3Ayq@-y
z;6qb(d{HT?b*oM;Pd%S5x<w)WEmM`b#E!$vM(Yyq|9@5b;Q!{t?;Fp~<DdDj+Wh}I
zyR+db#ub~imY;HNa%E09a+F`WzS;Zb3eim*A?g=jN0>d*<3F%(|5+A2vqxW5=LM_#
zEpg`gwf6R>psbcK^<^w#ou{o?r(Q}ecvRGIos+A;fUju%!Q~3J&nkZ~$^1Qidc|6w
z-Aok^G`XY>ru|uMd|8oEKHe<*l=tWL4aXTPfBndeN@!fa`<AWs>^3##!r+hk=gu*n
zpYVXwK|UjY>1W+JQ#3R<=KAz)zP9~vcxJ8NBD3ist4w&Dw}+HZy%P1qA)xq;yFpKd
z0oR||oewxQw^}9EMr8RU=LL9YF23p~=Oq2@L&ho<*?T*c{>QU7E;K)|n<3_?;<4GQ
zDn;4$YS>iwGA*urp1aGL?bW$?ZbpJ<w$1P`dnWftF6h>j%N!On+2eneXn$Z|UmC-B
zKDgocgB>htZJr(-slxvZ{0y8gb6hiPl+@d+A;2SjWF4be$^-e0GcQKnTA*=Vf~O{p
z{jr{ESK!T%U@qrrZVMmehpj%^eIhhLX8W2GVUBN~*F|p04YkZo)rs0XuYYdfF79)y
zd~0+MuhM)oOUwUI%4CD4**iK@lV7ki_t#IT*myQJN0?Ks=(c@Oc1Cr3?tv}ASsGWm
zLjQ<bcD`OdG4W18=ULb0=@m^OS7Ot4uGRR^<7lu}%$oVz@2c*`>q)wqi?VjOcexbH
zZVAo3ID@xlP4va%TUJ!pUOcKdZNKZksn&^04^HsOPf>a*t=WC*P(;K(&Gxf}Jtalb
zZ&@drnAk}~bKgF=%Qn~NbU^L>S3FIcvy$T`tAA+zyxIT!E}myG2m53{9eZ@BYt5-m
zZJ)F@-&$d&cx|ECN!_$XyO#aD{Os;ZeSN?9?MarV)qL!~vkq}vF4X2Yo0luh`mAVn
z)rDU1w;SiBNk3_;S?h9k{`9$XrJN7_yc4V5C(U!k|9<f|{*tm<KZgC+ci&sKA=x0|
z-<PLb61t8&e*5*u_E@$+jpfFwKO{fAhz$7PeCwz#dxpPPg|orWN2@!`@+BTuB_{CB
z4S9YpTlwof{g0c1cHZzaUv}kO3(Ln@S)Oqmrnbq=Cf##17>)Irp9T1v&x(D+sQ&xl
zj(*>a{r<JBLQh3rxvpPRpI;eLw^ez%*6H(lf|F*>yt!zt_~UQQ`(u8xvDE$lmujJ-
z6Qy-}k?aH6zD-L#H+JU~WPg?I*f~{h`b*0jraxCD9E~!va$DWK^l<|F@r}zv@B7Hz
zmSy`JnBL8v$^Q3tqb`Gmqf}f-O!{`MwL(&Ah1{PmZ&q<z$?Dq1kd?E3y2wxF=g%4M
zSt@YOXWO;&?<}*mGlQ}%Z|^i}jaj&4`k96ri@&BnbnL^^eex6>Z)D%`4V<;1TA;1M
z==SAnRr3Bf7KpE^?#%c5(B-Xl;gp*pZ#=uK#hZrJmAm)<Vd1g<XudC@%aucd|Hp;L
z_v_`3%;9Hv-oWZVZ_AHLi!9sy4*I6rE9Oh_y}wi5Q~x96@l{8roW?!hBtN`N=<uC;
z%b2-mU8b?PdBC(Zo8;SOAsWI)`(Cs6zj^cCdXqihxibOkr-d^aD+IaN`QF&P`V^P_
zE&u1a-5+){yyw(7@cZH94}xZmBHj{iPOrCA&Gp;8dExF$xjREj7Onm*vA?$d>Pl{w
zj)wD0j4=$?o%rT-tm8hwVIkuq5EywWr_k@<u^k;9M>@&^Cv26Nct)wt({<@Vr+F3=
zB)Qrye_ZbWG)|%Z@5-l#l}pMj)vF#_OTIoiQ}O7$lO|K{pE&AxA^(Hm4oSTkT?+)b
z6!;HbkP`TN_^A8^;hfzYd2DBR<}xzu-^kN{UO?^Wb&pe_C9S)B=J|0Xo2@;)TqSCz
zr<?2+*&C&kEM{C1Yn<`Jq|;mX%f2U0d&>^Y{L3lv+j3j3_=1AJY<G_pIAw3$#3qz&
zB59f>th;(`=(Y*J>sJ1K_@nI`Ye&}=z59ZJMh+z=?+e0ZHEK3@7@d+`BN%8odtK!1
zL%V)NtW~tzQXy;k`|pLL#W5e#w_SezSgR%RNLxUnNvo+_n#fI+l4E>@)A!8k&z&r7
zEV*-zenZenh9A|^73UuPznb8%yxeTwa+yVQ<qz$>Q`zfjYx_4eHh0P`EpxAkeHy9@
z4O)GsnaeC|{CJ(+^8E?3ce+6dE+J8!Gv-VYI<4AOBf8%~Gw>u=iJF81N5X<7=cOC0
zL>KixUiZk$dtuzEPuq{QrnXEho>t2y$J+nq*NescXE$!FvWg7XS*xP`x=V^ZZ0r6%
zk8Wrd$Q<$aWo%^s9#V7D|9`!Y(WX7o1!0=$qA4*|+xAQd>t+=HRb1rl%cY!YCdr%O
z*g93L<<}Pe9~X<m=WdN<I@#<oH}>7}_g(W%ir-B5ar2+R$H%efcl+<%`rrC1+x#ad
zuVhIsy%V*qH)e;bvQ`rxw|AtW^wtlDCpXFqmFDW&T}=JWvtN7CHsy&Tdww~8II{B5
zw@F^Rwihlx=V%uGe7W_DM>2DD<_WYMuu$}Pe@g57r#l^Ms`VD0Yn{txe}LhL%GCNp
zDz(oJAHSCsxABtNw3FONTSdyO?7dfN8GM$#t*rY{MZ~9$k<HhJ=|9uF)uobaQ%$bz
zT<o!4R4DUa;tpl!`Lo>;mM5C&cLzQ>y`t$$iduWj&trZcKCQR5w{G8eCm?!4RBKjQ
z%adK(uZi9$t~t2#)9cT%_vaj6$F%M{%e@Ql?(E-RdUa9n&Q8ILR~CtOi6$OVn|Ef7
z(QI8S;j2fBH=SFQbt>qY#@)bU?@Q(1NvW*Uv$2q4-DPH@Z#vP>Ls-pKaO2h1rJ{Vl
z`;@i@W-i#U+N=3igi}H@uX*+dm-MLGy_X~7=RfoD@$vRv!t#K1>+R}mZ|naqn*KeO
zq2l8)4V$#LwR=83{1+&_yFEAe=1R9PB?<0nvaCE2Z1Jq?51D@1WBSTt)8}W5cV?ga
zT+#L0;g5QO9@EjYA2xn1c*C-Bap$jm&+QTKgMau~GzHICAJoM;(=*ShY4MU4Cz)&U
zsgFaJF5gfTq?j%tsvFUN>-S^1|9##L<(dnaTOL2|R}M6NmvNs@yy*Ha8FxOx{p*<e
z4~C1gskgfZ8z#=wo-UAJ%W+iyZKb#!JG1!F{2DVpmU%m4eqO!4VqwSoU7_{TEURnx
z`}ZCDH9_)+^*NIjvnLk(={F1Am(*KyVp*2!&09Yjd{y@)2iF$fUY3=eUuZIEZE5EF
z%LRP-RSTI`ezyJ>@^x)Yx#89Ce^!32TFKa3H#dBZX4;!8^J4G1=B8wavPoI<S4MZ0
z)=RujeD$t3wz&F@$i48L>hb)Mvv#J*E)6;<n#H}}S?cDNzL=eQdC3;NUo}OFB$J<W
zC*_AOxqbSjqjllA=eIlc6Ppu+v?R9hZvXQ6W&LhJ^Yl-0N(|+9!?%6T6LfiST>Fx7
zn5yc^yb0zLfB!mt%j(6wdAAP73*6X#J^gR(pJfwT&I*c{b;zjkHc#6VCD?0z^^3`s
z$?ojWoX&kY^06QyY|TQGZn3G_y=Pg961BdHRe!A44Ggb#e~>h{MR2vSc`jF9r-7H?
z%+T$jJ73M7CH2VGb8V*B+M_uJN4MnPoP6W7_>((c>vkLT&RO-s@lEmvzKp}~Z%y0%
z|H!sA$#=J3I`q}x_9p$k5BqX=CRYAyN;NsGkm$B@3fIoL4!>HP=kDWwwEkaobKb)9
z{~{{q`?tu&uRcB9xBPR2{@0JyKRRDpMHJut|Kw}KWcL5+E{%5&%P~bK3+ndXdnv2<
z>3Sn4<Abe^H4Ht^MI?Kw)H#!Ous_)SZHGqcimWTPrG^K#m2TmisXy_TMeH}d9apQB
zJZ8<-Ij6qx#WL;G%%+;tdksz3bmzW!As?g?xU2WqB|f_k%!w6kKIvC4+cR4qKk-+3
z&9gt-i=K+IWc@ckE0f1qGvQ^uL<*Y>+sz-7?kc+Xy}4KW#N)&}Rc|M!X$nFw8Z%?>
z-G6WS%l?nW)#opY4|vL)sx<K6l#kaxcU}2a##E6hX%mtbYG`k?T)*fOb8IsA-P=*^
zB3z6~|Mq_GH(g}q_Rjv=M0Okg?_Wx1nO(S474t--(e$l{^8d$5PVDAC)a^L;oPWE?
z`diTQoy)zIpM_s6+v=O`YV~=`BIWPaTW_k@g^GMztF?QAr}Dy?vo}2QpDlK~XhP}4
z1nctamP;7Be|y^*y`Lt*y`@9=oaoVYGd!K_%x%_hna-veUMXJsa(3yKz_^u;XQr)8
ze08T~ecBv52}3T^jt%PqSAM#$;;)d$`rl~kWc^U>6qkj8X&Y~pPV?fjDOcDZ6f!Tu
z#LFQ5(j5M{&v_;6@BXoP=qKEb`*n=t&YqxX!^WDrQ@@js$MWqJa+mk{uan92@!PWx
z<!XBG|0p&eGWz^gXsgS@`3wCw<~uO`_K5uzo>IPi?I~yZj6A!NDLel8z5n8tRe6<r
zt$0W6?(elfY9C)}<vX=ZFG*MJsb1>b6#n>xJ*k4?oehWHzIN%f>#msXe{AvdYuC$O
z?>xEHi|h9y1;vS-st<qty_0|Ud4Kt?qtR!tRAr~;DMyCBTw(L)*}Bfz*HT*ZmL4|u
zn7-HhN#29M?*2D=Z4&#J|F&BZw`TgCZ!O{<q|Po9kXrYB;o(`o&jdbEviJGBJ8<Fq
zQs!Rk4^~!czm?ueJ==RWs43Fy)A@)~aod*ebgNB#QhdYS;l(_8{o3#U4oF|!GOfMx
z_v+pDH@s`+R7mPAPHMhtn4<oN!~US_{pz&;JtvDNO*<HV@AP_0m+I%dw-;}WTW0Wn
zpTF?2{X3NsrEF(w|KR=U^*rX^bp59LznBi_Jh7jvZ#d`T-LK7NM$$7*oLHOl#Mb`B
zgS8Ba>ilhu3r@^;tdKu&poS~u)48cH`DeZ3>q**X^zsnzn`PC^{-;lc<O@%DcrbD2
zi3e5YCE1m=Oj{R*|NUv`v_azS*%{gmWvtU09ZJ+JWcP8ZnbdD$-oqQumhZr1(|Gk9
zQ@6lNkMh|!@(#}poitPT#5%8p;CJgDg<Va(p1YT4qe8P!bHTj+tLLk@f4R1#tVp_A
ze(}P=Fvb5n`c_JQdRH%a`~~;dP+#|TY%||h9n-M=;5R|t#C>mUY5(p8mm9A|9jh!q
zlNP&9FX?|u1FL3l&$)yzYfBz(pBA@#VWj!1cUyStl+<KhXPAg6%Ky#^>%O$it2^36
z(?czAQ>)n$3Fe2#eqHuu-ks-d;UMdF?9AyOeA)91TxU#I5PH4#<QAW{D{_kK^qj9e
z2=Gr%&)#F~q?LN5wdCnP#@PDM^UoLmo1c0=*?oCaqL9@y-o<m0HMVXNUBa*`PyU$5
zj=%e*c^HcGWe>+Zj+C=#yLp~fxO&dIwo6SnlC)0eoL;SRdd}27qr#mVrs(;5UUZ$9
z?>mQC{i2{E|CQ^U@wHFygvZNWEAHm1e7Cvz>AtL){pYmK{SyqBeen4Y=8Cr3(;>!R
z^A4T8w!yUCWlJYV)%RO#V?)fpSAEreu{E>wg~cPsC$b@_+A~7rKjp=LU4G(q;_sX9
z-tGJCZ<i-)*6eG;xaGix`}4oPx01iW%JU=5_6+0154EROna(ar`?oFZhsFX2O~wm1
z*%r*2r8zY;O=$5wi=;m;KlozYIFu6KN#^g@zQ7m9y7_?5ll~7AYQ@;@AMk$N_391p
zbBBWO`tl8leRGd4-Fs}e<+sWDM<)qAdjC0RW47-qwMxG;-3Hno)09I+t(G;MSg>Yp
zS66NMIkz7dPbl<tdZ)RTvv1YzT4H*dfqfcVq>Jio6;IaNT$73(|5PfRXJYEVQh0Lb
zPR^fB?tZzcyMJaFXPurV%{?L6SXeSrtz`dQuL;b`2Y*j-iPZ=e{S+JcAkgDr5Ysdz
z{fW2aoL{P_&Fp>HENCC^%)@_I-{{Gn`3p6Z&apJ`#n1YC!uo{VC9y!Zt!|!cJELd+
z`W3b|LVx3lpQ5&*$GA56Oc!%M?09d>lizZjR(=WJ-xb{}Ur_LSB1ghGUZ*GVOj67a
z=Xsg#pK6^{&sJ=;qnzi$fqVW3|7=za-!T6`*?Y}Bn{87+{+enWcV;o~ZOdDmihKn-
zV{iYD<ok5c&DXP!cj7w@{RQ2sKg$F)Mbe(R#CX_oxW(8rH#PkKvQ0E>*2SU?^Y`W4
zzPPbHV}j-7RV!EZ+}KpAQlt3iX>MiM#LJ7zLuG6e*Z;ilAj%S)b0}-!_OB5S^4>3w
zFq-i&_s~J6ce@MT#y{M}`ayKF4o9}-y4(C|JPq3q8Uz??9X}VCl73>b$BwDe%eTJT
zoFTe6@S@L(ipqypvrnD65n(s2X5FdOEGLeT#+p`s*MH&b*&Ckc+4L`0O=H_1E|Xn3
z*KB|GoHe4Kp04prQ(bG--Me(_(OJ!|2m15(hV1z)vC({^Qg2kXu-y^)h*ZHU^<95_
zAD9ZT%keU#?|uAXuUB%T!INAGp((;EFFbiOhr6kHQ<>)5YM=6;OljfMIk%@7ghW?A
zStjGoQ6V&s<CLk?Q`aR|Q*?|kCW!o4vFLQz-tz_Gzg>N#CU4U1^W7Uhm8l}K=x+W0
zuML0a@^97;W5}Gp|M@X(##)E2`x3`=wTf=&YHgnJ@3}#q<Gd9M0@Sx&Z2Hga&Zo5+
z%M>7Z5e8xk5Hh=sx=;f=7nq+{;+L44sz6}%3s`MVVtTQHp|PQXxdoV?pI74KlwY9`
zt!rjvZmOVbWNM~hW@rvtk6~mAUh(2tl9-d3?3kCHlL}c0;s{zDQ=(vDX#z3<v}gph
zltkCa#0<oDPAu?9%}mcIQ7|(FTM=B6nj5BIX{rZS4syO*W=^UxXpM$}LJ(+f5<cZ=
zNam`a&_LIy5Fd<HKM<FbyXeQr2($zS90Z6(KSm}XK@>-Wlwpe`P+(x4j|E8}RxIIl
zJ4h+r*8CV5gZ+kk&5wzN8ED0if~lbec+HQAg(Y~+4`{6qc+HPFXvGg`-3(~OkGTS9
zO^bzsg@TEJA$ZM?u_<iL56C3Qnjd3RW6**hL(sYv3($feLt_PV3uDlNA43zcPSBbk
zQw3uS%UG0P2So%T*rDq{ObkpxK?cbw<g5dk<m=C5DA4x)PuE9>CiXkA0;0(tDUB)o
zT8xXHFO}WEdD|@a`+@!2-<BMdnEmFs@#k&teQy6dTV-AIG^_vc$5=k;Evrm<+Mh<R
zt^WJZY2!A>m-hrMKj~%9ca%P=W2Ld$Rkii=C9h4vr#D{yqdxO-;EB}=6%IF}mP^gQ
z!&(06AS0{7H5SqD&koI1-2Ziwze$+JPoCEHrB9Y-ITdc3uF8Mn+P#w3zWh!_ljkJJ
z*Hj<n*pZ+YShM+9xujbD`D=;6C!3oLS5~Z^EcEAu*}v;n#chr{Z^SI*G(IO<NGbLk
zyy*Hn_0G1a`354Kl|74|e4O3-?EY&uMQ`5tMJv5E)-AjnnH;6?yDE53bCXw!T~g`U
z3s*jM?45q6UvkfyKQma5+y6{*y8Mm(TkLF&{og;?$Uoie;ku-~X@!cE;M$I3F3F3k
z7pX7eyr_Ip_+m?j*B37n^(X<|4mTI?MVU*EKe1EyddKf_vQ{$FvR8NcJ*UqPd-Qjo
zjY|HLc|^G{TKZd{$DTW)YfEN`&aXJR>$lX4<gd)Z6(43`DHn}QQOXHu+#4AffXf^5
zmqu(2s}2zkm-B1sTrua0)w#g*lD4Wh+jcG2TDR-&Te<ij8C#2Lbgy)+a8PP-uVCqL
zkelrDNTqRtI*Y1;he#8PaLm(%-K^YUk*iX*e=zJ`9s0fGt>s<YdDgcR`K=u_uU)=;
zx4!J(kF$5G)8GC5yYKz(`?7ZWCR2_-|NOjW#w3MP)0U<@dG<yub$Q4ApAKajx~hg2
zTV@`d@pD<hoJfIlhnIimnEbMmXTH_{jZJT7+l&9MQ{B>V{BdkeZ}%U|^~HrbIyH$K
zvUO?#Kd>FT|D^T9Po{_4zIt9_xybIhh$ph^jmH#|&mLu`9;QSdd2+ey=|t^&ksE7{
zp6akYxv1mh8l|!nZ`DOEkw<>TL~b&%PS@-=Z$18;GgL2a?&;W%OV-@K`aopEtW7Id
z6{Y><w@qAg%8qxwoRZk;L(69#N@rQde=fn!)oF+S&g`@e`)(dp3ohI+Ct=y@=7*Cb
z_sl$aa{K4DAELqAd~RAjt@Frvu_eIsg~S!z2&Igfx5T!o>ImfSI`ZeQ(ERRhz1A5{
zlE31u-7*i}t$)lB!TctHH@n@9)kj^ZCaGCBfZ@&K<O?fuwWQhglyf#P&f{o#eL~OR
z+0|#~ch!pjd1hvFL?_iu@tMz3OTq4h`zgvdPuyL1|L*=fcfW3!u3@Ob?>MFBT=>GG
z=&;M_y1L;uJDk^V*EB3#wr9eT3}4TkhpTpN>1v41Z+I=R)HqPWrsPOOf{qsN?bBWp
zPV`^@V<qaX7`<zLZ$oIm|CNAMT8CWrP29^XE~ipG`O}Qby~)Y(D=L%ssAkR6tiNV|
zQ2*d0>jIO_oM&AAJO~%i+4fs!Yu*;~%~qP<668)tw@G)O<>Tlpn_D`^zAY>x_tX^&
zS<&{xhEuk=<X+u!q4;!f7;k6ROQpFY_s>pq_*Ii@)+sh^rS#up+;!~l*!MqGliPRg
z>gArfD=sWwSrX*s)p29$1hde|3hqx+yW0Btmd!JhF|*E?8{4=vJ@v_C3D@XToEEnd
zS8l8-NEEqwti`0c;(ej|^q+foKiGS_z`la(kboBVrKd7e|CisHXV@uF^EzVw=A$jQ
zGB&fd%co8XJjF8W+)QtAX|KZdj72v~cV;;^+D#YO9Idc;f#cLb^+z|N4(vPY_HJdw
z$A*UA*0-bOz6d>Y<oggCJ!wP8tIO}ww;zb^|6988<ff*-l7=l4_Ufhlbv$wW$2a*8
zb>GhF81U-EeVxAc{(-^+4F7s8n4UJCdcNXVuod6cEzei99h@X4RmHdF*n$O1Dr9Ce
z1g?C-y`#Wl-QuavJq_CNt~oM#O!uPCym8u;Rb)GFmQ=s`b~SBnb8~L-P1_1(b-2#_
zddD}1bJ5JN9z43{K~c?R^Cm6}WxJAKHuK}`ri^WU(fwYN7q{PCvi+<7bGz(A4>#-0
z+O%rJjlb?EoO;wOW6oavrnZP(rhOjQDP6w)TXNsF9k|IgHO%tW>5E=#jlULn?wN6<
zwLR`cev`f0Cq5lEY4!;VEZWw8?e%t^zRcjnR?YQZi%Vmq?#<UTS#fK+iS+F6$Bh1H
zS#a(>Q}pfphBKesLxsCaS4bB|*yu&|9h{n?|Kr|ic}Yg={Fa9A2kclZ^k=gDbxd}A
zog%*Y25;aT#sjOP@5#U1|4RDJ!P8%?y18!e^j>ze{pj+!H7SO3HMR*Sut#*e=uKIp
zTDalD_0a$9Yi=$*`9RDfVjBCtzsHx&w!bxr|Df<UxgSS&D;J2LV5&Rvt~p_`@`Ded
zi;kQ4rDh%4;gch5w9)U>5s@h;=RNp$`m&rRPgwAKZ9DmbM_&`9Sg!xsy7;%J?z1f~
zG_@JyFW!nd#r0;&?tfQ0mHKBi?Ed!d&b}`U2Q9<YJHGPPZ~fTKxr}Y5?1$!d<`XJz
zb-}MAt?%)KIj8MDn{xP#nOCynot3Hbp~u@@=dSd&Za4k8=WcJyT&t|WWXYeEMW$-Y
z?_5<;d>h0jvYdPGF0M}HH6>a$7jCk}?x;8w+j}s+x=(A?hOT2;?_b75r)6!)h!&YR
zgGp5MiRiOL<~jHGo_TS<t}Re;w#&T42gWrYZhif|-RS_EkfmD1t<NW?znz(TdY#bA
zt4ntCeGN6Azkc<VXEQ&_6feEfJa^mfe)HpTH})B&MVBO<J-Cng$kW4Ro^rd?1Lfu~
z-EieXh3?u6kK;yLEVBw{|2P)t^h57uvePZ~gkNO>E7~lbKN*)#{C_uDtoL2}Hf@{z
z|D`^&#i-XFS)AQ}@Xh-R=SAyd_WfMUFFdKx*^uR)zuS((k4nqV-8#JM!1LoD)i!Xv
z%F5q+tI_nzsciyI6aEI@<4bEkn(*?%<!V>wf+ndP)_A4eYG*Ay7C&sd-?_aZRG=ZR
ze17JURck|botojiRPgr=X8rv?4joliG<dwaVY}e!qM(;q$!%u64Z@Y4IVvt{8NwzR
z`=TQ+UJkWCBYD(w-eHHxDKj+Mf3qI=!nS(pmL=z6+zup_THoM_%=X?J`eN&s$(hpM
zUGi^q&h8iA9sA<!7q84K*Jf<B-m%KNDZTHOWWnDXa>-ZL&#{Whl!`hiYxDp6-&btn
z6Sv=xToP1&Wx+gm$+cF}X`83Z6$>-4*Cb1ZD4*B6mRNNvV~Hj2I^}AH)2YTb^Ljg6
z*nV04w&qaxy=8Kvafyp3Pnd%K+8_bf(3DbrF0uPH1|fw}`WGd)Y>`{O)3hXG;pPpW
zLSjo}8}=RgB)mOU)}p0eMmbWr(<|rWRw0|mE|dSrsQuyJwruG)Yz+udOBd02gftgH
zJrhu82C@Pk)Qkj)Ksr_g8|iMaew86)B{E1WO25k3&`1H?ud+0<0QV^%ofAm6O4ks)
ze3|Hul?k|&i?d?|Y966>tjOI?;S%B-5fGv6lA4tmRvMg`SL~agmk$aWS7NtL7-8Ew
zVFX&ljp{;>GHfvdvJ6`<3LIdFUKCD;(y#Y~v17v7(<LO|-P6T4u>i5d1mqv^Rtgg%
z1v3L9Jp)q%3)GGcC~OcR0d3rx8XJOiLQ*O@9h)h>`Hu_)+TQ=+de7J?cf*2DW$CI3
z3JpgV%4=PHC;6zc*JaKLPrg6DxBm5ek#*Ih#%A8e=e6yIkLBODzx2AUK1<Dh>5m25
z-sL)8{`2%k&#}k8v0p@IzMJYXS#HtW$r(AZTds80?7umCQ}N2`;FxM(=X2$n*}JAZ
z(>{1zpz?lM>C>k9spX~J!a5xbJl|~9jw>@)l#e;3zbQ9zwz{D84XL@;r;1<iQ(C9E
zs6713gRXhri*>_=)Z@!Vv=^RUl+5)WyuQ6X`gY(}^XE}2Coa_<o_WajV*Bq~W#81)
z9B(vVC~<poHfz(;ogF6?zRiEIFn^YI<wU2pP$R1vw|jqHZ&VW8`0%&ZZjq1IFFjwY
zXs7V&Z_sPTBoCcCUbkhqH@O!tytujKe2~riJDb0V{_j37vTg3Uqw^Q@zLcJ>w{()X
z|0_WgewE}4${Ost6J|DEYfM@u(-JH+M{==~P;;3AYgB_!0N1R>Foldjt|>~}*it(_
z+Pw&=QF}e7G3>^6)?9~<v)fKgX?#|&<UwtpPiK{;jmMlxhnicyi^zpACGlGrKdn1d
z&Bb5D*TjDE_kyTH&Rum{=TdY7<~o)3>`S?mz2aPi`tcptS4?o6=~8a|PEWX8{Hsw|
zTfA{{>Wk82`?t*J6x9!rFq@}kU-qx;?(;n_)|P%(h*@WFrLM`_`Fr%OE4}wc;~rM=
z{}-8eudJT&?M=(ISV~1>94pSv%|S^ITer&2jtjbKy<*PY%1-AH_ig1@ZMVOB+j}pg
zEJJF8qpO&sONUptwqC}SKoh+cD|Re6rkZD%@JB#oilLOiW0qruJ&JvwWSZAX7&LjB
zr1j{}N-^nt+^u#|;IVOrQ0}SscW%#^u_ymu!~2V0-mcnJ>OZ&m)s^=;(*vA3=7|U@
zbZ(v({ccC3s&v5<7DcB=b5x7D=Lw3%94(XXlbx}<;OiXKPxqu-4){4SMSV^`f1*0^
zn*2KfAtToJ-_IRq^les1s%QVU`-!+teCprXtS?)4Y@ENj;Nu#})fI{5PEKdN_9q-$
zrTV66M&sX_H`ZcjHD<`(y7xQu&2%BB>H3j-a(?!jUM}L~{QTfAulKZbag+YN^PDMA
zEvQ(;Q8@Yg)qL5zZTpK0`eskzXm$DV^s$<5MSQ^XoiBfv2;26(tv%9wo%e~})q}fD
zM5BGV?2}mf!Y15(HCgn7X(Xfi3HK*FJDb+7&y;$w`HQlU<9em7zWdiP`QFGr_&O@1
zNk+<#`$SxofabcRrs9*G80%X%di-Sm$kbQo;Pqki+&8M-8`l<WWBmDlj*MdJlDTh0
z@+O_UVdv+kY(Gb0Z}tW6Cw4)rgnw}s7u?HSvaS2gBIy&Vn|xG4+Ktz5^mft-vTYI)
zFq-@(ZTbyASNR{+op%pfukbjjd-I9L6sL=~?W&r-iEKLQ{^L)Sk=(Kan+saSx&t41
z?eNrMVcMBuXL(-F(=15QeIi#TU##x4Rr9xY)g1CNoPKTMY>#5KKP`Vbp5$!TGE{VL
z*{Cx+b@7?vf}HJDYd^%P8vkUFTX1hX=Nvxab_ce5k=lJK)+gm^jMz+_Pb7I9yed9<
zYfkrf=T{$uk8g8Oy%fIHadK;2%65bHX^Pvw2hQ$J6!1K1dgw-OkWatDeU~`*X&b#;
zZkz~=Oj6>Q@}*$LYu5CzxV^7m${eqrtn{er&$`zJr~9gmmfcI=did{)i!)>lTYOig
zFZ}x8%9ZYOE3*H;d$x6lobs_J7I#b%J}mIt)LhK|@WBq594%X!V;>JTU#UK|>g$=#
z|B*Yt_C@~eJNxWx;LF)(H(!2SaQ<`U(i!K!JvuqX^9QF=kVu=ym1_>BIn47mwOs4Y
zwe9?wbo=Nwmw4}%qmqf8C&W9`C0i=;K6u^yary4jAoH5GfT-i|4{@FJs`1!yTIH?U
zdWqT;rm#+yS3MqzE6+}v*0#kaw=+cOPtLW56&Z?4r<;m~iR9l1h>6~s>^?PR@45NE
zUa|TAe`S{Y^Lps5TWuxJg_ZIgqBl&qs2A^fjd`QP)Qz6iUe`Q@E=HUckG?&rYEsMV
zx4GiyBQNP>cIqvkIb-F`M+$teHmFQ;nU&+WWk*LhpUG~W<P#EB$83%z&GmYm8M5R_
zdgmsU-(Q!X^!&&8sBQVR6xj@mGM#;uhZj7rI{fO#yZQ58|L{1oche?=P2Eb%9r%>(
zn+vXQ)yUkV?Qz+GXYH==6PlhG0*OoJdF7}`E}R_rY~S_UHnoBEoVlLYZF8U9?i9KD
zTzq0v_^dbLuAF~c#45xtGS&6A?Y^6|PJQ7bCZpCy^T7EXS}r_}J8M1p!xvoRU|A88
zmuWQTQlO*K;o2>e>N?Kexi{@e;ItRrkD{3_T@uplx~%<cdr_z2@n`nC_nmqBZfE^X
z>Gj;avWHvSR;_iv|3X8s`1|v7yOy2WI*ng=?T&f#N|X=B7&@|5d-RB{N!|DFR?+VI
zot&q3o80u(jrA|>=Tw@MxFTh%8_(;!y!_nHTT~yi%~&6wpX;vqvH0b-qqEwq8}C#^
zZv3gP{`K2d&cKNm4K>SBR+ifz>^LQ^leT)%_bDkeVm9qd$#%_5?EL-hy7Kql*^$;C
zo?eo(=8nq0n-v=|^MTl<bM>E2{`~xZ&l&sg1^yWx&NcnEUuTtGUUs2GE11`JzCq>e
ztoEj<?VP?r61TQ|)lkjvauIRaoONto@v5?xWz0c0{9T-{{9N+%;`BwrPx+KM*Cja5
zJnw0&$!+yAp6^*vu5bwZ?<iguDWRSwHBFa*^J(|$Zr8joTO{mSAkaP2WdTQBTyl`A
zujt&v|4pV<{}6q(<k98bn>KIr|9ku6G3K4t>`RUwyJUBzZNA;z>OHm!f8*un?f({1
z-`Zbe=NO~^Oh|iWDepH<gI^p9FTONg6JSt?U|Mq|i_c(T@L~Dxo5x=ya~Vk08lBx|
zcVva`^k|)9!TZEEpLACjzPV~+nk4)0MTJ`y`D*y6Z`D42e%7=O1I5`l%Qr<{{+aqp
ze7WXb&x!57BQ)o};u1T1ekN<LYcj79%TE{S#lE#Vk<)ZutH|FCF`DYNNkKYO$2YKL
z>B*?B-{STqVJUx}X<Bp5n`bnoKX0M(%L`(&_Ai?Gf6BbMd$Xff&v<*2k$bPzde__6
zJRepxEsEV2#k7m<aArn=LZ{26{wrD)4=tA;aAlI3p5<=#fB6deS^izD=lcVGoLS<Z
z_wTFkKmV$!VRruyz3X27;JJO-yVMSgx8>=}qTKx@r+hY&;qR+Tvxz(6@yf<{-?WtO
zU4@!AI=ljPjCUQ~n{cvwcE9ZFpT9P<f4ltm)WX2No(;bq&iiZpX<g;U1rpc0U)dOU
z$J`D4evr?3fu|a8W6@62MQ1L`v@JgtCHume`KZETKO>%^j!E(V-<`Uqaop|bk(O((
z-^#te82I7zthVLq7e%K@%zNR{<I%H5b?cU}6<4pm`u^iO+ZDEJY**Q&m)j-gYOd^`
z>G$&LZ_QbYq8810)M{caI_uZppZeKi?`%B!WvgGkcg>$u{o`<d$>VRC>hot_o)KKO
zD}IZ!M_t*;H>&co@69$P|J}FeW&Zn28_{irrSIe3&6u$<dGfaEkF{Kns?Q|XOc$-0
zzB104$#u2dckb4oqW35NU0Y}7*!L>e_oeCuO|5O$l}>qIGrRZwmFd0hZ>4{on|}SJ
zbr;`#H`!+j^Imysc$ToTOKl0ryEN^0=<HceahytFuP-<>tFZEO25&gWU6y-FanIlC
znuT2l!nz|}CGA=4SLo>8+fn)X*rQ8*`qg`kp1(0SzkhypU-|CVmVW*Coh2VPpFXr|
zqvao-|MTik`}@mmcP)Gxcc=H@GX0lNxzf_IE|_?1kvTfm?<Gt8%#4{&k}usBxEF0(
z8$J07@1A)}9#l^XeaNvkgllofXAaYh)jL#ACY@=GT>PRc?!~j|8E;<KPtUpPe|~Q0
zL(c|o(VOp@<D#QhzhKNg$^X^hhN$nK##g7dM63K~+ma~%t1Mt={$&4B366znYxlcs
za$5T=F>#gdcCC!pt;=3({o8hbn^xU~U#=xl9ru%$II*6L`z%mw6K^Je#xl}i{Zq+*
z6XKWkS<C-_A+~+0n7je^Wi@a2`>!XLi5%4G{T0Mq`cdESedXS`&S>+G8<TeI2)esI
zCH#f{@2e@R_%b=IM3=q07I0_#zqof+wTIV7KeNqzb?oAOD@Jb-*~p-nJ(<CUg`EO2
z;kLieoXtP?Xqv3G+7YejvX`fx_MLsKb}=Mt;XjkwM?1RazhAv8+v$x=|1RU|%A_M=
zF?n02X3y%mx`oxRHFC|bg^V4#hlInvsQ90YuSs40_s_9)VM#UtbHD$)et*u~VBhys
zDsoq)cpsPa3^&YEs&BvVBy43o@!o3_ZT(}p4%U}8gkS8d+QroClib9Xv~alzuT^hc
z_r|Fy+obBVU31^oMqf>C$@AJc|9-+eR_6=0HMh2iK3_j~eeju%y{G&`ORm`27ysV(
zz4Z>)E&1y@hfUiPR9307t_zsSC82pDXqgU!<)TEPsjS^Mg11d@k(CSXH&^g}al37G
z_1~rnx1WoIITmyYckl@?J<W64a>sq1#uLuZPel(&MT%><Ue3EDFiX{UNpa@BC64V6
zq#Xq<KMIAm1)lZS?dQ0@WrH{W<fHs@N4n%~eAK-7JdSX`xX*Ltk<^;-IkUsqySguT
z`dl$m^J3iOmd2=bIU_}pfrZ(RSE0>ER@i}A$a3j*i7!@bk4Y!KPMuVs=OD^(was8%
z*9UtWX|E+O{}{O%P41hta$V8huq*A83#8OooL5L3aoVc5E1`CW;;aP)PA0F_N+&Ni
zvE|8h%AcmT^yJA|``Ql9(s?WJx8N{~Z(rG>x=D$B2K>)DKHsQ$oAbB$kkmG>&wI*N
z+MQd%Ep$jxrnBw!q0)^`I<NJ=q}P@nE}2~NxwTR!etVck%hjZXJKAj5YhPjYTN<o;
zQZeM`^1v#os~3WPFSpg@{p0xeKL7RPfE__6-effS@@KbN%I@A1(O9`+hs5_t2a|Ip
zt-<mi6dCMhvV18LT^z7#DVyxZY?qTMFOp2EZNz_TwJlYcdTEp0#`|4iTTGZHePnQ1
zIYBk%>D?FVg4^%ae)n<b<o;a4EnhL|`=`4m>mxrh-~MU(P|sJPhh^8758|8LnI^U^
zv`n5>@NOgXhh~lVs{6%N*L7wU%v-;_mFxb3U#BO|P=Dpg(7DJe+~7}W_S#L-tC+Ok
zUXA_pMlpzmv(x0J@}b=dvS+N$Y`1n^cUwGPeV3h|0;h?iM+1vtqpAmIQIneE>;>Kz
z(kJlDQcQ7Zn{m)+36G`o<b`K1q`q*Ue6eJUL6muv{al~rms?-%dihH#$T_=3YK35S
zL~n@l^^B}7rn{v6Di(Ff3Gp3N{3u|pB0GsclP{D1CEv^0p2oRivld3?q@4}gd}mGO
zHM7^VzB>PtHJ<Bzu%ysxww~|w<=M-!r?&o=U8tAAAhOqG(*F6rhaSJX-Pyq<a<qhL
zl9AJXnX9|c&$yUb>n4(~seOCX)-^e=zkh#M`@gn&cY$^3nHg8?ZYsCl{o`Dck^ZyY
zWa2lsIX-KiuKrQ=PbuEj`z8053DZ{H*uwc;QS|#lZOK=!+-g?;xp4W-=arKVotF9S
zw0e=&(yaa0cmMn?w1M^J;<IHPJliu5@1AM9R$@y`&gWxOx`e~bp4nB&xae4a-Q2nV
z*!Pb2_dZ<U{&FwF#f8yvbFKORZ};x>KR;KQ{%qgj_VRbPLbp}lKIZBBbM^gGyL@h{
zar9Sye_CH7efO!4*ZNbs`eE;*gE!>lUSD@ywof~M-QCwmuW>!G=X-14^QG9et0<yi
zYL2FH{?^c+9HC3DERR~Zxp{8Fo5kHK&kC%K-etbsvh?*_o6li3toyjmXw4C{m;TB7
znd|)X)^B~+Zgkr2TbTCmX}`9Ay1%8}<E`e>@zqu0Njb9j)672J-hS(cZ2RNpCG);k
zXYpIlohvb?YmcYOQPCrFI7%M4w46>kA!)EcsaNIUrpUtETK~3f|0^}cxaYt`btzZn
zQx6=DukB~?b?4e`^6+4l*y<B=J@Yz5H}HL&n~~|GwX1bTh*sE#^Xk{D{&9F`sbAJ`
zT>RzRHNR)`t4mAwUsiu%aBZ98RE?00K{G=#O#>&%eh_)}@xivL!&*J<h8K^k%wK9T
zSya5`pXFTnCCTS5-JAFQ)e%wUyNBgtR((zi;5#cCepqg6nZP5Xj;)gdyiIz#TozYs
zT@wF_t*h^2_ty38;ZxTqSSX}iTe&B(*T2Wfnn%@tv22^w%p*+AO^OOfG(B}L=Tx3u
zekx3Jl2+r4Ql_gnnU&67Q1!WaZrfya!&fg;cKyAREV`<a=eM3hX3&yg&#l#yul)P+
zU9Dp!cdVk!mo*tn8Z|4Ow~5<+zBg&-`*S;-zE1x1D`wT|)z-d`f3IIDwKp&O*@0r)
z$$9&xRu}zjSTFL%y5I1FR}XJ$Qu)jyY%f<_aJc6(bK!iYE$*VXnwK*f*QzqOvd&xn
z`~97V68FRYyjdCW_{B*N=L#QYsTYCEE-3s}adeTor*hewd1Hj9yTb#^@^>EF=I>iE
z;Ye5fCq7npW>0Y&#=xSAfT?<WPOYhSK4Nq=Y~!i@mtx-bY?+)f-y@Q1>Ar`4tbVrF
zt%W0On9TRwWINXJF^gl_F*}JZ?v^b1PTunE_A6|6%-UFb<z%_gYq8p2vA>_+DHi9w
zVphZczvgeB>}&IB(>5s|pKJI>>%Ub#<NuHCyZ_k5I&QycTH;-C{Ltg-?{fe9_sg#N
zuX=3jqBm*zYyNxB3Cqn{w7x-VA@9+M+#BmBKAybspZ>|n^dmn~R5&N!%~SQ*UHSUW
zo7g)cQ86)LVKFgW;w_E#+jAw&CnjmM1}499S@-|Pr*v_{NiKC7Vo@#9Nj}SYe{)oy
zU@YuEk}>0Y$5oxcyIm=&4o5zGS;qeVh(ulE@{gbIeGXmlBdNz$`DA>IVPn|juqmDq
z9V)*iPsv^oDbhNjBi!w2>~(5ek5OtnTOXI4OlqEdV7`R?qI*XFX3j}g`El{2-DI2E
zs}p>-zT6jaHc-~AYpsjfx`mxdO5Rh1p1SxhG7Fr(;{1p6949!=aGc^e$8nP5EXU~$
z;*Jv|j&v<i+UXIzME8>DOYJ|}Oj=CZO<GObPFhadhqT@VzR0+;#-PJ4P~}(cR*xIf
zmiZMYAN|#IK4!DkKDQ$5R`z<=Gp8ghrStfuYZ~L<Mrf}2pLg??v~264U)J7J;tkEW
z=N}U|x<CKG-?L$Vt3^B&m}Ad5Ft6;Ixav(|XxNtzhU?YYq;{2T|6RIq_Lj2!6FfG|
zRyrj7(PsO~A8XzfFV7CFI<?F`vF%*NtWP)mPtE<ejJxlLT_U?v-N|p$yS=yXKXZQF
z{j%?exy!e&UBBkxpI@c_R-}bod}Zp|njJ3AxqP)*{<?Kq_qP<+9GQ6Nu(+O#o{f;;
z$GEdMU&qf|Y3rQ6uIgcHXm;1N>hI?5HrngNwlDTE)RX?XdD^v2_NNmBnp}leaUPoz
zXDG7u-1VC;dhRXW6Zo6+mzeyH`TUF2kG!o3n0sl(Vs(S6E{EMKkH6YEk44z}rQf9!
zEa6SIrfafOR%o(p(VwXl?{)Xy*QGylm%aTEl#t<(v%}Ws($ANj=N?@7dMP<0)5AQu
zHteL0<*HM&S=8>hJwIlx&1sSHH}{b0>R;ReQ<k?#nY6K4{QsMK&{n_tN>i)y=I2v)
znD3f)^tigLzGm)&!;4(9&HWGTxwu$NPsTLMv2*v4tx9_9o`39B&6_pRw*KIXK<?-L
zdY029=5MfB{NqQU)Ew{cPwq+B^5^T!nBQyu=usHYjfyjGzbdz87(0i|e(5x?$n}@k
zl2iYAH~Y^_T)k5(XcgDmo;78^yc`ZIZ!L2!nZT495uRHe(;Zy%(^mAP9Czb4rd9IW
zqe3<uP%7SZc+~<aFO#~z-`;XWs$Lgyv7Wm?;TC^<z(>9RbLwYrbzV`!6D~Vj;8F$)
z@2O~q(zpM8x7HZPpYi^&so<#Er-Juf2Gb{=$O$(;qN~Qm7?N;`Kgl}m0`rERd7YWp
zHNRxcSYu$=%`;8#3e%peP5;wn`8H3Ma6IYP6LDy<)P)Wu;W<qW4;QWvN?IIPdA7tr
z_R^W@b?uo4D=a>22s^vFB{MHKWS7O=E8pcfzfUvWzRh2w>d)^DTbehi`C65kuE@U>
z`CX-mkw3U-Q~T2XoHZwBFSPyW{&B6B-P*&yekZQ!TqC-s;_UHLvE2K<2HZQkcWuw3
z=#^?`N(`SV7QZM9>iNs{CN=5GMCY<a-)HwEXA7ot7liTMs#&<mTFCd<quopE13J$w
z*S}QWvd?K>0QbKMo%7Fr=#$WS*2#V}KO+CzOc9;06Ky_;?DYE=vTyaq?3h_|XFZ;E
zeoO5Z*ITx`*6o^J;`__zZ{FYfl|o0jVm)*s8?2iRnOBCb+LNQS^+Dy~^0tmolLeQq
z==eDKm)*JB%Z@bK=0_h;-}fTtu<+wY!ntQ^PK3|R<+PPlXZ|RANodn79o5e#Vy;{&
znsayRnM11<G^+^KFgs4#Xeyj;5n%rL!#|@xda9dG@?7!ZmpQA{T~KGUjcr2fkHQ6Q
za+jl)eM@`%KBwlH<(_8`ePktD*8cQJWQuGwPJ4Jq(j#@9)#b+A)_u$?bq>82nqw^d
z^4#G{zM4A2b=J;%zgJs54$<Oj4YbG>tTX<&TcXs;F}7aPZfnHSnJqCYk9TiSpI`sy
z%j0zGw{I^lUs3tVK8NSKcdhv!cB4r)zHO6Vrf|%3a$CHVM~UsqhlDGq4UFVg`l;AX
zbYd_}v^^^SRo;iS=I*ltS&{XR4&C}2aEA5R1c93AD-X)fTrzuO$;(Gmy`P^w8}HZ0
z>3Ze;hrX3L4jNyTr$z{WJ3Rg3soi>gx$$4Su9ohJy0R^D@2m?BjZ#;)oqw3$zKPNA
zmGia4^A2+=t}gx&u`u{$=G9247?~AowyBo#1>as|#rLXXL0`ai6}~yn$E`jTRGfI|
zDD>wJhyB`S`S;T|%Uk}b2-;JhFSI+J?|b)=>bDo)+*8@{T<G@VhwZyL-?XzAm^1#H
zeOQ+7zWTvj>6&oP+!IOC?PlK>bFXuMwB7mPwX-&5tA+BO9W<BO_fM;(_Uyye0y_>q
z{KfQR(&2j3LtE=vH)iuch<7a5Dzxvx2g~;J>wauJZxQpc`SjEe=l%cQu(zz)<$B)k
zYqS5ggU4SMa9U5l^iZk2|6lNNyGI}9TkSaT(3$VKdGw8+0YBR9YYse&QQZ^&EaiQ%
z#p#D<tSb5s@0Pjuu%K!>fA-T0haQTwZ?~M|Ql*}IA*W&4cBx3=_U(Q?srjadqFo<#
zx~W?miu&z1;-)V1ykL#c9Z}{Rfqc9_E`MOS=Mv>^@yC{*@A<)ciG}yL+AU<BtmFG3
z-Oem?Z-bL;`}ObAH(z^hxX-cv?dA>FcOA0h{!^MS^ZT{c4QclJha1`t&$qmCjb-C4
zn-!H;&tx?{2sQrW$-diiPgD1vLy6P*L*DnKUzI64<}A7{K9qB+zWF9EKK;eHd+%`Q
zi+5W8dy!(j>=2*$ud0g9!)9;tvs>(~7BWo@G-TMeXiIeN23P*476J3vQ&(&;QqS3T
zK#gyyjF&}@&bAG`GF`eK>Me2}d|0G9d9MZEwPKAZ)>i#B$*nSR5$vzue6VTX>K1W0
zQMLWK#hQq`1Z|%UhkQF<Z`yH(;k19(=`|b9sOmlapwq4@Bc?BPTrB+1qNa5@7cDei
zaB*Aecr^W#d8X?4k9o#zj$(^5&n6sCyyjy)`)Hz?;pUlTGY%?FKU~6hS?%>r6J?*X
z&6@8I8sDfq#y0tDgV@~U=1v*4f*;Nv0>7PwdY&8f9gg7hU*Bvf<91tN_F)aF<8Fl#
zH#wAd9s01w!OTW<6I)bdm;#Tq%!#%_iLSj1D-Bqxouv{B6nG9bI<7P@xO|8$Dse${
z!Oks7&lrSHZ*f=_t#Cv7fzc*LHHiny)HgmqWneH}FeWdmWiL<jv{VU&!@jZWY&P1r
z*PU?M&wgS0;ow-sxz18r7P|buzVM{gx;bdI-zzk`Hrx3W$BU^FXR3M|QvP^8o6sUW
z+2YHQ+qTV$h7v*>rV4O;jH(yA&rxVw6FG<X(VeDEIsBVjzkX<y<JvtnDW_b$`{@PQ
z^s;g%bH%x(k1tGh=4sCmw)ks2v)G`-&{3q_V{)f!QAfd%jUA;AI+{NSCLEvoR_2gJ
z%c4AI%a#Z0T38$n+7<X3Wtb*79T52Ny*v5e%m?Yl#``Tc%seRm{O7F$UFV}MBLa%N
z)n*j3Ze~3bcXwtFTbfbh$<@}2`}-t$6TZAU$6oq;F|+)YyMlt+f7y<13v#t(m-Slo
zc)?fpUda?bp-Iy$45Y7>T$Z#sutL3$^QFT?Mk)3qJXd@_cWu9L<G*da%D4aT_Zxhw
zXMDBVCkV@&pAl%*8Zp}pnO_DiUcj{y0_Q|Kd<BF7biNR=vfR|vLeJFF7__|H*xW?V
z)X>n}NWt9DT+iIx*u+G^(7?z-&)CSo7-L-o`0O_5st9vaOFeTlQ}7ydkmI0h&JFa8
zj7^Ne3qKJn&ym$)UnOA#I@u3x`MI$n%Cb^KSb(NK;cE~;!eDnH79V&=y197yV=O;+
z%Fjt5ck#I~XjOR-I6x4K&y7KAo>7)ffR$m3J`^V-9|i`JAj;(+g>+jyVGLT369lpn
z$8nR!rWTN;=ZJ$BK}*m<hde5nC>R@omY<s{fEJ{KmY{<cq=S~Ao0&iloisB<Sz`eX
zNJOwf*H{=swnTs;n7l&-C;9pxHsEP{|6BB#L8gq`ZQf%J8A2ixsu-5#HWg2=P`)(F
z#k1<h{^Omuc@>quKHeDred}x<{b{d1E;fml@n2sQvCw?2u!Y|JENcnA`Mnv^S02g+
zE_$>1pWGVbL&*)Bs@84cQdzsjVvA7q+4@Q9ceHE8T=+Gj<$at__Hwav^;s~iR9~So
zb9F(>pGhk7U+gjZCCAkyuIqjI$g@8RuWb~fC%v5IQ|{$`-SVK>FTO5L4^=1kmwHmO
zjKtRW+a(0QoZG0mIwjj$^}?yJFRz-d4{4Z|aSD~s`B@+|_foaQ*R%h;)<tLYOU!Pu
zaSc5E<;<fG?@OB}lrqm>bazU?9Ov1KkG^BRd42XoTai197IbXi>Ja|gmQSuIio2p>
z>DG?E`cK8{ZoNBF{&rH8+bf&-Pr6+uyKHWH+4iz6^Hj<4lCvR3qMdo`XFl^OUKSm8
zZpXB$S9g-j3x)mmJ8wC6@x52|gtY!<t={Elw;VgRs$^;K1^E>o^6TxpobP_aQmh%9
zqGV-g1RENefmhLBTgsrIpbyXD$oU2J@VwkWUZ3D_k-DeLb#IhL%CDbhSKBXfMQ7%j
zhe;)QDk~I={hrM^V>wgWW1?72tnL)2rS{+c@BMdC>=YZ5QOm*$i<C4>1kM<l<^?Bj
zQZ>#C-Zb;9>-3#-cfEcT)!vx0`{dtuw%?!CJh#68Fd;KjqW!R9-1O<EuSo6O^zA^j
z(bhdhN2@}8T|X_>@H-}M$fUI|q9Jgm#94#?iyF4SSl;~NmlEgC>Dsl1ZHejg{S?v<
z8gtfs@z|j9^UH1p^U6O;5nW4*EMgu$JH!>bGbgy!XXV7~66uiNrCC4kY5AVJqg(%!
z`=|D&@MrsHY~JfN&3L(H`s%2q6W(5YB62NjRmdymN{MMrg$DB!W$xb)%VQ4ASg}|C
zfa|k3xv4WBX(-8Y8c7^%nmkh>j^WXS2P-RjJbYDD!rV5k)|r-gBSqM=_PlChP)n+c
z=Jo`03w8_pWg^RZmi8<+%KVydyz$3e3H8RE8(n0|ZEpO!aPaT9{H_Kj4hKfACH7B_
zsdql%RaMStIPiG?m-e$ZAzZ;MUTg)kwOy=z!XM0*(BbdOYm|7{puUY|f4O0ti_DeV
zy}nx}r6<S6y%M^<^GxfeGOyK5pY&uy>s6B8DK0<%{cGu^wPE`eU1rX@@~vvqwr#d<
z$7Aa6O}+QH?baU0s)pyKJ90(rnvHh6N!az<`@E#vtMUpV|LwX{-Mp3WCIm+5rtLeL
zbAP{|mX2xdzhk05DqT#tnwCyrnmM6$e$z+JMSFg($eS|9?xLy4(vMQ<t8EiFKKS}B
zO9{+A&hobHPRWV0@8fsNEuEShwDsD&jxS~3f5g;HpI_8AN3p!){vo!g{>jSDRxOv;
zUt9Wk`7{l#srugCZQt*``Tr*3ePLHC6O(5})Ye^r?sW^^%Xd_<t&>~Wy5eI&Y|ZR%
z{3jm$VS5yEp?N|>?4B9lWt_Lp_{*+2_2W`!*R<tV*Oo^Ayu9tg!rY)ObGILRp|dS8
zOgs4X_D}9N1k18sO?kaV;rjdZU2E&=HeP?RQ_(dg##5t8ME!V`^4|GbN~ud{y{ere
za8-U?^#;W=8Ls7yJ?`(B{MKZeh+98<aqPy+mluDQ%scjgH*?RF_V|5II*mduJTeWQ
z+E#k3m#@9i^w*g`-DdMwduZLs`NbGEm!-x<gjHzb1ZI&3Kj!{mQ|Q?ANoaA;k@x#I
zWxomEHS_DQB?%9|{kU~|U-%uj)0uzH38|cL*1q>f%P!XObi2CL`bpFGOYIU{e0Uq5
zaO<o@$%A}9+iqL^w3V0V-8#X2vHZHtM!tUOhmI5<isqC)x^aTo7v)9271|!TWM4nX
z5Xr)lsQA7|H$$f~XU@T$#q$aU%O2JDc=IsKpCQdy7n>hy_0-QUsJH0hP5ocH`^!zI
z)VqXkuUphH$@%ZyWZAFBvu?fQJ8Jz<sK~psE?@QUy}U?Cujyuz6`#ERD(-4b|7g`0
z@H~LK{B8Z7c|GTXHymEgU!yL{HmAAp-2x4s)fcmF@ZJn)`lP@=zwzw#4sP?kcKyeb
zPs_#MjLR(wxw$F*rq#{vH&>pphCdhH=C$7@#&#c<m{$(tvBw|JF{r(i?%Bduk+%Bb
z^R4TorY~AF=PFlGdgO<h9m)w;w7j`g_-6NRG=KjuDoC7jcl+MWo>AAc*S&q8H+#C#
zwVn0;^0v(d{c|@)>)t%Cyl&U8+Q)Xkg;Re#^($+zE&KIm&Ndg>x!aH3w>=>Kk9o_=
z78Y!!DyWu5RGW~B(k(x)1k@hGwrmzp!w6K@BQ+Vp4LFcdsEcNeEFg<!4Gj!U^gstJ
zn}M4|$ZKc8Z82yY(SqQXMC6sThGrIe;N~RAUdWzAaJ_-r!XkI+thbw^zk4X!(pg>q
zq@2vc(o~S|U5Q;nYYbW&i_sRe1aH<uI(;0h3|s7gEW=i}p)H{$=wSM_20@(?l-3~r
zrL@M_SJE1Tf(Q{H&_;l<DLBPI5-&L`X@gGZ9WoHu^IUryyNbmH6_>Y+ic8EyG}+~p
zR@kyvJL?MG-Za<w-@ZE5Rja0bnsN8$+{oLLmnYlSFMibY`H^L_aMnfbrq4y!Pox;#
z<hWFR;;h_6CE3kYoI#w6E;>Z!YMtv@8aC%nRhRN}`%~6&lJx>}*rx0?TeSJ4v9Y=I
zoHm9E|A0X4b7vTCo(ZxG%vAd!RK#s(q3inm%uAJCsR?pxGjd&{kFD(TDk$9LxsTyg
zN9T$Cp6Sa=j(%OhTPB*%D$?j$EjcqGylT__TPqls-Mhh~u}!f!Kt%L$_>8`^dezr)
zr=+bWPxz@(^lJY~>AL$R9GNmd<a&dh{&CD@@7(D4YpZYxOXUWS9GBB=3$lKQP7Y1G
zE)^EN`<mZJ|9u>x)2G##pW0k}`rM}L)3>^JH=JtdYB1Xuyr$6h?zOw^3VVafJoXpg
z+qn6-#l3z9u9vI+JU*YdhmB8mn|-6r`BPZR922aIQjJWEz)Rq<wd9Z&rCtrK4w-UX
zbpQSDztg72Cftk_V~I>jjJ)z8D4>$1)Kul-1PLX!gAOb)a*K9oNNh}DcAF?5uVQ#N
z%6alEsqBo)6Izyp)J(W$k{LWZO0oB>XRhDmWtQy)x2`;?(Ba#wqjtQ)&;S2x%endK
z&;Gr;^LzHr;_@^P#YG8O>KEpe@|#%4$^TU8G*$1IB5c~bm3O|)&wgW<EbiCeuH@Z`
zn|$ljEoYYtJ8r#RrEQzb{C%IxlHw0PnykVk-ez$<7CP2h%6nG#&{CVjKOB!8>%CVx
zbyaMjq`gt6v{tl~X|vdoAD+khe5dkW?VSI#)ZpFopZ(@lvu9;8e-&ai{q)1PH+q%y
zX7ydSB)$t|CU*rFZmMgz_w3f`(gv%mW>!l}G>=D?PdOG@Jn!C<Z7$u*^Ijz$341f$
zPy9v1f$dXoT?vy42)`t_YT@Qvme=Mj_4~)S;h4AeOXgS0ZA&IxE2y7yFG0;yEr@wD
z-vw3E?tLkJaixk|SDD(JR<v63W{F_dC668rw{8CdeACv|&6~f%tEZ!R^6MvcE`R2(
zs%X&&>v@q=wY<nq;B4U2mPsquJ=nT7$SR=i?5yD1ZT>5xd)-;DUbaqZ+4a@$)wQb{
zx3_j3xGt6O{u=L#oL6RRonBtO`64*x*|w?oIF5K+S-(z1`v_Ox#<sQ9Ou65;ep}<U
z<IqLBbzZ46%cR9NuM6Eh`ElJe+w>&6_pF6$pWo8@=3Bex_1-C3-wvMt(-`}}Ho}9w
zByFqP-${E;EZ2F~FPeO1;g`=*9`6^cDM{~LCM*@w8YJ_~?&{V%m!I!je&l0VW=+;9
z-V2G>tbeW8pkJ~(IU#A$2A6KZrL~9dv4;oDe^ylYV?LX`kFTbNPT`l@g6w~$*P^vQ
zMTUnQdZdzM`a1ut|I_{ES3UQKsrP-*yl}asyyKhQ%X{HXNA9k2dzs$m{(MqpMM*`8
z-wxG#kGi%Wxt?iquVu!^{-yExyZ-zXyPNZD#jGFQVT*sBaPSOy=C?p^cVTJJ%FV`C
z_Jv=U+-bd~Dosc7!3K57h5cnO&Kfh%v9z?DmT75o(0#g_z0qm!<YyZ#-@Pnt+ZA!u
zJMQS}s)wc(i}zmMYZ$lN{944iDcapretw=bhtq0rQqUYu&(F^zH;ZY`l$<DNHrMXn
z5|<lF#>QeP3&WS&-nsLutZP^4-{`I4|E~qbe_7r3SiD#9v3SWYXLhf1xq<vgEY9lg
z{>>j}J8MqO$GdW>OBYt0J-%FcRk+2oo8N3EPChFcK1Ijw_4ATK5x=MJzO3Bx@{7u$
zGl>rm<?x+eYA|=_>04`Gb8U*q6%iAXTjJhvZh`r1=bUE`jh`)CsF>Ynn*J&M<U^0k
z?#JCDXB=L6VfNAV$y3W0m^gB-`IF`<&yndER#6kSCu-64>G#U*-pv)CXD)T_wDHDM
zs!tabH<td~G;iD7Z--3&eBOA{)UW2;_k)Ud%qLCWtn1r)+^1j6c#(@s$`KPmNy$XR
z_L)wtrY;gaZ3&4cQbMiT2cL>?a<04cV?~F+Sr5-nw#Pi#&vV}R-I*?s>EqKe>sgn{
z3#X<^4LikSqJolXD$DiGz1XB0FvrlSRasj0-wB&(X)}4w33ccRJPbLV`0VN5uc!BH
z<T;&kMdrcRk8$GP&9^UDpq~<Y($j0Egp!@~pPid^BX2G}b^T?l@t@ak?kl9fVh(%t
z!smYM(XH1ywk6wTS45>9T$OU)Fn)(>?K|1;OMdmmT8PbiR4P6tQK!Dr`DT;5S<KyK
z?=)^pZMCRAesp#2tG-ibFN;0P`~4+rc39xV?K>LO?z4aW*SM}JRsDL~(^|*En%Lr-
z^(%M$U0wI*L#S)awg27c9R#kgJXH6KP4aZ5rFmUMoWS&xhyO2l-F@hLfNZE{<m8)=
zCpr9ndH&Qt&G<`K6wamDa;BL~o_$_5(LpoiOg{f&)0!~Rvj;wDt_$Ae#OD^g=~Vfb
z`Rh*p*>>@TY2<D{F_EP=)}OTU3Ve1^w`RBLrLtR2uUAeBzka4?bB65MXLilD&jZxF
zLvtQ3SekSB%=Sp*=<r}w(}G<xTjrQ;td;Wi&QPxBi~4CA9?TG09Dml1zu<MExAN1?
zA?JCHZkeikZDX$L<|}MEvO4~stY@SOZ|}_sKDy`i&2tC;#m(DpWKgE;AJ~vO>7m}X
zTSvaW%bqv8a?h{*QPz1I^!e88>fC6)VG>VVwc7pn*FV=B{UqxCidSZGxvp=`!LPRG
z9)v90AE~x^ch6p~pM_z!@AmK4|LESy9kxgPBYS5#f1*p$j{jwbZw^<A*UfJ%uKVNn
zNVfC-tb(vd=0f@2f1)1wcE<nu&~`+!Gd|_P^X7`X?F%ngADwXI!i2J4AuBERiZ8#t
zHCTP}k(EJnin7%w7bF?P&e_p)utaA1k4QGQoF6OY*L&_cRlM)i-2+D~zqeegw~nj4
zsT}w5aVme@q!-nOZeKk2NHov)*t3Dre%g<V3RUy_#rB4Os4?mL`O#Us&&#G<#mPp!
zP=(3<!{eKW1s_Fr9$tFzQ31=o_lJ#lR?IqhdFPLLF6V>YE-HVVBG|67PrGo#4JE!?
zALn}fP~G?T_+%mWKNXKI27KIcBw6UL>B2?PN&Ao3b?z0au1M)WvUuSOtw^O^>mE!L
zC|Ot5>BnDI&eL^QNOt!r*W(ISx3<Pw$0mhamhId+SI<Ug<Kh0YvaHD!9lP6AYJ~W!
zF1$Lp-RH);c^?+KCe1#=EEKIeYqrlKOJ-lSoQ+Avi(PZ(wYqWd5t^+crDB%XAtr5m
zBOqT)dQo8hu`1<PDp{2WO&6{x%)UC$BvALE=V7aPd2{7M_i%>_u2>@>GF3=4`?Tv(
z1+80Kw|?Jw<W|v|((LcvQ@p1b>Pa7|)mxL;Z)!G$ZE;JoPGr;7J+Z4}HMTv7>kJig
z)z)3)k+hWcyN8I^9o>zGHifLwI20>XzHPw+zWEvxb{uYhs;2Y#aam_gXSB++w1m#;
zl@UeKce;aHt2M>+i~MICeH5Z&l)TVo-jTCHJ1t$6uJ_M*6REVE<L2fGsv8}W{)wKE
zc3I}qb|j|LQt0K$gGzT>O!$NDJ8?CONKa}moO~olI?eOUm7t?O_LEd%mSsFV<*=wF
zSjkaop8KQchXmVqNU8}wKgc7T^wv#qHsfx=vh8BVch!>K%*b=zazgZC-3M*8MJmf!
zUAr>%T)bR7Zk*wGezAa4yFGvE27|S!nrG@-KDHzZsm*BBlv*gHD0DDK`b~S_p#wT>
zoeMl(n3gB4y5P-GCc5*&4M%U*GXZY{PH0Tgm>_tn;nB+*%T@mKbF2QJFIK1dpLasJ
zpC6WXoH3|Pk7$fTn%|&~7tX#Tq5c!R_h@JW8P!8fIG7k2>KR*@nHwqSB274$nCTgS
zXCW*t&Gk%8Ein6%x`tqrpuI`tSp<+PDV=cuH)T;fmnfr@kT3~IOb2%l0}_is7Mg%2
zCBS_l-_(@MMDS5PpeC_}iJ_i_g(c|XBV#>NGsxVDbADb)YF<e(=++?6<c0$1Zm8n?
z(xT+lV$j`5P%+26y!?`4g=my9aTCyt10sT8y(J59h!ARL&kX?&eeZo9{)D4Fb>ruY
zPfoG4dn)+8&V94VaiYL%m-Zv~k9*$D({yDDQPnTJl>YoCr-$!-o)w#?2A-4NY2Wd4
zW$n$Ae?2oqo6Q6do__f-vtFcAF(N?mh{1*}=NAdSXEL()nB6er{ItmYsEgq_Ulz}e
zatl$5lAau^Z6InTo$07(A#c-WVsi6ck;i9i-HWGp37VUJK4Y|fwa5#F*UdL#Y_ry`
zWK=eiay$J(!Zvwo;q>4AcjVV^-xSw%d)A+(7K4Z84XYm1*A=GB?|Qr^i>s_}eZnLA
z15-}$oaMiFR)0~(d8;Q(QEP%3OD&D2C@qiW$jD@=OqnzF^-*Tdub!@3mVDDPi@x;6
zGon)8!|c}dQtJ+`od>Ee&yJX$%6ubp&a3H{`0rnu|6<BvCGNv7KR){6o0#p+wd3KG
z=}*=zp7-Iw`rwkkYc6{)PJ5!|a82^;0lQtI3C&Kg|CiZ3DOo6e*0MHY>T9?DH+$|M
zaE*A{y0rap;{Sp*`xqun`p|<VuYsnC5HU&3WCa=k0w>0xRAQ4ANDIO-&}3z3U_#WU
z!mAM{i-ZjY_MQ*tC=g=~+@h}|zUsjN-Ozo4d@2v-JkpvI^P}2Cxp&Dmk9md@n4f;q
ziHf?rK7M<Zi(uh??pJzF#X6$y+rQs^didWvw!3yEEYZ$8QbQL0dVKipy4R`_jvEcH
zxoG~Dzq{@C&5Mrv_FEmC%+{oN-G}RSl)>U4$)i61PqddsMmAL5><-!e$3;LmWAj_P
zoI{t+g*}tvH49sKw)XqeKeGgid@VkgFFI@;|2??&eR78IL%qLqdy_-$x?1AaeJ&S?
z`(w1*)F@z^{8t{0KrWusYc96BJztPJMf#Xse7)=J^LLN?mOriIEOnd^)%UwWPV=I&
zN05(*Xqft+I0oIkU$0lCYP2i#E$9pT^>6aOqA2OYX=m&iGu}4Ld0TMzd2aKL&ni2(
z-dhRFh_OA6>(du}blRWCa-XO{p_YND>6$z9#r(J@Oc3H?<=L}xQgidQBEMJZq8plc
zxQ;u#Xj&KYR3Vu6eUHd$7F~(6>8*jglloR=3BF%=H+uisg!P**OPrBeEPQYMwT?|j
zaew}Peeqnw^nAdS0R2;}JTc8hKAYbZ8Xjg{WtjL>g`I)9;DhAlmLt=o4xSAOay<LQ
z-iCLwM1_KW;k^ZC4Kk)yY@Bt>pXWsegG+bxnVTCkL?<tboM`6$;OYd{k5YFwta^5h
zaq?!CBYON3IMh#XeCFTxG4!P8+Kp;@S5=(#r+3OUKiD;iZ}ZK!78_O8?6C<*JKQW1
z_5O8K^%ee{*%`N7CMWjZv6E%E82Mtg)&}FkovZw+))+oJGkN2UME~N1Lq}pCMg=a^
z^5J%GKYaN`>{IDr+u(nS*B@M~C}!9ZacSwD&#@<W|J@$HFJ{@of=5$pQl_l#(cW3T
zP9h>qBt>fJtH1r-HmiOY?cRD(#L#r|`I(D%i%xy(e@3OijdR*8$y=9{i;DP9h&yka
zsXg_`A)UouhFfOUIj!o@<EfI_?I?31x_P~~62qYdPOPj8cjPVG8MwdrL)hGiz~VEL
zwz>%NUccH9?;yJ_cExnP7rk>5`OJl~&+)82)B0^|_QI%lw?!5HZ*4r}CB8&YOTB8-
zH^1{b$77zTzB3B@^>=CLlE7}&ldW=HT`x0&62k6JVs}lIlXcm$WBw~uhmxs_G765r
zoVfAYjb+jCPd*o(nC#Z9cbPwA20!0*cG2Q6(Ra4b<jxtzJ`4$G*4}z!<>ZUI4lUpL
zitCEg$0IIVYWd!pKgiB~v57U$PV9Q?ZLjp^m^tj9H@unsze7mwhj2se%oooq3R$%@
z6mM2s+rGnNhMK;!O4;+GUH5Mbr{8<FYQJ>+sx8LrCJDdGabaeBFD)+_7yY{QiJz<I
z62o^r=Vlt%6ly-IR5WJMPSfQ&-n#Se#{4Onzl5Dv&Q(}D^}-T+_bXfKmjo^dd1v6T
zi}{4chgatDT1V$&De+LJ`>0vsfyz=6OFWPkj1tcjdM*Tki|D3?_-98O^6dW|{9}Xt
z*@a!YC%5t3=F@(?aD$^qUM_$1E|FtK5k?ZfzfGQh|Nb{oA-VI@QeLKePJ6QU^7~7#
z4|OWIY`VQSQjWj>{+n+ZGAV^qF1lO$%WdE9<0$Y=VbW4}%Nld*&$oZD?O(_B$LGO;
z;6n!@RU7PFIyG9CxXGpI9q6i^lzlooed61+bi2G;t4+f~7B)P|Ft0AIE_^=ccYv7Q
z>AUkc?bAGcyX`)2&|l}9xv3putbZ42>Ex_RVg8(zs2?3Cnw&j1%5ICzw7;dNFFd-J
zmv?4)Z{$n!C0%oS&u?;{#dqGRs7P%3^$b&8|DuH%99fNt9&R6(-mN^9to~j1K3iLC
zLf*9dUnlY^RwOA**SPK!VRz(1#gAX-<JNxNdp$fp<m37v^I!iBwtrvsHQ`2`+1cBI
z?tCZT&A#*_^IF=3UVrvoS*;v~$=^&aN-YWXX3F5aD6&dCO!hseM^nO_jNT)m=l7P_
zbgZ5=d$U|>_d#{1+N+JTUN2Xl+AL7hcPKqlm0f7D{dtXaU7ONBI^PvGB(L>6;}Er1
zCcW2BBRuD{o=;RpQTV9|lP^yXXHZn%`8nNm=S1eR;15UE6&c5>>NWVSSz@_l<Kh#K
z4L_|*u3E1yA<<~L+~i<|{bjFT&tDa+%ga)AE^u^NKH2SJz^n&#GumD-HuGIBo7NY6
zVSee1pktYtiXNIpMX4v$;yvy&FS6*E@tI-AFaDiZd<C(jdu)>v)M-G1aukW_9;5{$
z-J20NQ2RFQY~F1Ho_()1OK$iVYbZ~g;==fvPy3p4Bd^A+=-Y><>9MvgJur#!@V&Yz
zPj3`HX5hSbn6EW)=8~1?MZN|u+wQkMcs;XvlfcPy)6;gv+170RytQz`(Lgu(w>x&s
zv!B(Z@WxTayM5EIG_hyPKl0YeidGzlq<&p+>UUjoOwP@&LG<^63(LgMDc!z#sAk62
z`Pa5Cl44bHw~n4Qdvf&iJHL$zB=hR0e)N^RXZCB+_E)l}E{C;d1YPi7b@<3KEi;4l
zYTve8y=u5^bMWf+u;ZU<?rNFr+`QTQb79)LFRy}+o;x=8&BSGgH&2k6bMz%^l<(=u
zF&a`$=MG#@Uwq_}UFC|$$KFNnjg`m~d*=4lb^E3|&Uq3iR8LLixcpl}E-e1vjnCP4
z-@pER{?(7@rQUn@&z^1lb(eXL{miuY9m?$~(|JwnW@KN!z3u+DqOV+nNypw~KDZja
zdOAx0*F}L<#$oc{^e<D9J9G8?+uwJYhnt(5RclA{*a^N`_w7=It!*No(+5i~c~fo6
z2@-z`Cl`f1%6#D7%HAlet!~JyS#8<pXVtLo#w9%-uNPSjqD&cT5$SR*ouZ!$=lpmQ
z-|<)H$T@+4my>dt&b6A`oN9cgP_EoA-gw{Y*!gd=3;&lZiu`hStZ8$)F`2<@f=uG1
z`hQ3KdU-$1F-rM6;i^c(gvom%-)s=Ge6Z}g#fSS(-TuWsV#<i0P|}<spp^fA&Hdad
zdhZz7+!D@d@*13TdlmIQhWVVSkFGX{UPlK1g4G!+zPZ;owY*?#-lmg#eAC>fcX!!>
zy)Fm6k__sa6O)-bNq^CMhCmsYGdtP${Nk3Z`PGIcD}g525UH1%RR}1Pl9-i1S`dzb
zHk!@MiRz2J4L_SDW5~1bw`R=?|8D|ob#HFs@#W_|t9Zfb#Jx!}x0Xn2_%68V^zwGN
z-1&2FQqmKr=Pl$-l;~eF(f;%&_2lZ;Uo5}eYH<;m`R41~nR;@0_P1ZRg7eb(vY42d
z`?H%A4mNvC<9qtBd*<x-$IO3h4SitR%<RvZd?JhS%f!~eE{|T@KAr~A>eUyPsh>;Q
zuz6>td3O7?ouIt5dG6hr-Ob+5@7%uBaw+DY#@p4G_T+u3%)e?rZT(uVi%S;BhqQP4
zhUO&1`MgP7y;^zu-r&{8!;XKdy{TogbJOPF&vj|%zPt<;o%3`nC@--q-n8nzEWBmb
zH20kWCM<6oH~PDEF8$lKu+MvU{@1dk9dl+#UwwY}%rDIfE(g89buKgR73`_~@#VDK
z{MS|U<?BO^&)1s!>i5-{n3dOiIlnb$Uh89OpYbNvxi|mWoiE$2?%x};SBW|O%sjTZ
zy<4k1S(Xa$F0@Mi`f*-^3fHFt*+*mk-dT2k@6KI2H{R2}$@M^Z;kqpS-m90DpDDP^
zk38hJcM@~rx80?uB0HBiz88@@@}Q|m$aumg^A8!zbzgMpzJ0Wy<s4gtVN;q?#`(1d
z8<Xz!3(x;!yz#r!8y>-_dN<WLc79OnDOzyz#N89mTpxsQ`?%OQ`o;cOj@ExV9n~5w
zyqpVIP7131e5`maD<>lLUbTYQP5-G6i>Ll|4_&4rd`;`IQBTg3f72FExqP&(ab7^8
zQ8Txt;Qzaacr=}_$sWk!aya1`=T{c7Pw~+wp$$(LUh0+6I_i3Xx%v|8BFB!zuOffb
zR+bd<8%$8lNV~-FI3q>-g8B7^V%}hF!A0FlRTkGHO(redw%gm~TSMS`p|_z)rmT1O
zt1g>z+vO&cf-2w1sn%|vT))UFbTJ>BQ+;6b{hXpr{a7*{wt*q))M213O=89aX~D>N
z=7x}?iwU&d-bTb{OB?dke_#IL@IMp&(43RgQX|YGBIUWHr#xHx_V6{m){SD<_>S%S
z`{eUez3XubOEpVWWu9*?*_86S&R%ufcE9zp>wP^~CZ3!ZKlA0=vro;d>$1UZxXrTf
z@6C&!{m8M2eWK3X>9gOb<<&{v|FM3p)xPBg4>S{bB263YHW_%m3|ic;%(&rKTz1xF
z=5)gwH}BNU*}AZF?Fui(lR4?(&r+UWvHZTzWTDCO{ocQqndD1X-pl^l_cU|0gNf$7
z@>K_qEW4F^XV0t~cf-P*^W2w*^{wrB`g50PMp0UN`?JeuWL{ofu4QrhJE#>W-;(lH
z$B+L)R@A#EPJ0z!aP-s~or<}YE^%tdh2LR$;%(inI|D24tz8q}w4C9I&{M9Km#oK6
z&t6~u_TR?3_mBVTXZ>)mZm;@ppq`#pn%ML=XI8#@qqEPqRgK5|i*u^(e!9Icek~;L
zh3(xI<;l`2z#Ch7D(kT=qo>G|#;cQd-P#$tzPi-3IC=5(O`-?Xo&K(>&F}FqpU^B&
zo5sm6HC2XVbN!74b3`kwKC=7rClxpvc1n6&l&&bbAXRWwtgO&s;o`>i5{|}#B~PO4
zHvZZp$8PsicY`_88y-PXaOQiU)|0eA^GV*43c(*sjrMI{)nb>gB=TdkLS6%hwvYqo
zBxRpZF9g0@n5E48F4y5|cG&37rZ@IUGn;%OB9E!|tU2;;R^X}q-J*?g0){gWw$AC8
zKWE0A1FpJ^(u!)iojX;ZY0N5pz4XWxi$6Ck<il7h=eeBY`hCW(eYt9phvcSzQ=)wt
zIV?|hALV-~r=(Z*Ir|;o-4pKuVp#50s;}K*G9xMC9^d|Gj=Ou<?ItK@bb2$(S1T`d
zejlSg=e5byodU5U7h|`rTl6wBYqxXb2|0sT3mvM}Hq2>yclXfpDanmNM&K-Zxao=a
z^>V&I8G~nctZja=zy4nmh9!@puB4!5<p|3CB<4|&7R)>fIenbaK;_#AMCEv2ZqZiN
z=xGZx7cR79iQ>2!J;`}?3G-4;6U{06YM=hR>zS75WM-my+Ca`**?Zfw-#za4toD}e
zF;f(DQL8S?d}e-KJpS#?UTEF8r@FW-wTqoo&Sg_c+`9cUm;TJGdAdLE>POjDaOJoP
zTseA8*Q%A_Y}oqVGkErU>+XYk)1Dn(#JM)xHI&OEZTAk7<N1Dbir;$)dli3Ly=A@E
z=UtPg?+tq&F>jk#N7~Wfvu`D&1>aqJXU~kAbKSz6^W2uZ_4W2V{kcgnqby6D{n_I~
zGOxf{v>cj6i^QJ)&M?*8UbOI@Kncq+JIPeNv&KBBIbZipoZXtZ+rV5)fA`d{-XBC7
zViv_PC)S<&_~_SZ`Q7D9?*Gnszgg<vwR?^C?w|d*GHUMZ1pAq<ZU;UPn7nt*f{%w~
zX2xy*we9`&u!)VvY5vTs<D#QsS@hPiYNkmVCzw}@mgYXcw)frDtuv*i_fA^NU?=!0
z{B3n|&8}9NmKVm}JFc&I;xOayU$&=f4qWcMpIs%;%-!XA#-Z!pfyK>g2SlZB9A#|f
zW8as=a@OU-#K|>DZ$D?r{CKkcz&(x)#x5Z{Qf4bWX_{@&)tIGRt~^`3G5+SU^6R+^
z{bzHq{?qA@RyZ_^C7|gE$7CCeBeH$Gk<a$BCrv!NfoHo;wVO`x1WxVKJ6a}gy)j>6
z=^VXlEWi3YPV(qIaryJ&$P*U5S7I9klP*o05uMbxD6)R<lo?X(@>0+L&QkE7d?GS&
z{>|qfZn(I)cuZ0Ibi;K2tQT%G_vHMLxt08O+Qn!$dv3S<cP_uzYsv<-t;yavi&>y(
z((S8!o$^ZCSa)@@%9{s$5EOUp&h+H>2j$_r2KTl(nZIx3PvNM_@?@6Ztz6xHZ|A&%
zb<0;?X??M%L+o6MXsCbi?W;ePst>Fv-M8$__E}BuVqXV)EnWXca)MC%6R*GeKQDcq
z>ny_FWBHwr|34Eiw}k?hJZxw{v)Kkv@jzlG25G^}#E|uS1T%4Dy#E~op8E64PaOVN
z!2d(Yx=<!J=hB4=hg&K~_A>HIznQSC(PW0n+uP?etFLQ+S>`;2GoUm}YIon{9sB3c
zezK?Z*X?gn;3n?N)|qkfbL+P*zkbY7%w5v<_P<wOUoO>@Q>hR*x#>&M*RyBN`ajnG
zU%Ij{UsI;SOTsyfcR{~SPtdB6m&yL@5x?(cWL&m|)U-29V_(MvPGy>O^PJw9i`O<5
zzl+s$((J3B`YBX1F8tG;tFJ^)-@V3kaY@DfRlI6uSFfHr+ueCLFU9o9veK+4H%>&n
z)0b{kQ!m?=Z+GrY<G))0tm!|)zIYsd*gPRe=IBegDBjb(5i87DavL}Dx=DH$^T$ex
zSKU8x_DF%D;dSlv(~Yy2KhR{@>9UjU(3hUaKd(-=FZ&*F|NFyt>85|yZmr$BZ}wv0
ztyabd>x{1MUVK1Ntvb;0al56-+Ptrs(d!{qtyS3CZQCYsa4Ejp6{VFe{hrffkwW>J
zuq#{VMt|QCdOdC3`mbJFn0~md$ltp5>&KUDMFNY?>pb*Z3u@<<XHVJ8<j-EW{GlU{
zo`#wsvt||Zce7gz>uwy-E7K^s@KIDbL#1ikofGQU?DT&(`q#01Q#f!=An@U&+@=ZK
zc~1Ilt6bhyO%iX6_k3*qI_Sk?HK#^<?newR5yFr@V|969cXI5s%J+>CDH78jp4g;*
z#E5m~hD|-*=9|QROMeRr6VJA)ayyd3CSIgeSCCZ1ByP&e<K!dNX(_Z>{Oqo;K}lKm
zHTUc8t$+EXP{>mIjqz_8xmhPVI65!2*_53P6OPrN{G50G;iO1wqpFlIlM}uaXy0;o
zc&Q=~;B0VWyJgwC$L3WjU;d|WNjcGakuzym`H6cWN1Na0Tz}rUP>lb-53^$CnG&tA
z&kUeid&zZQF~vuZ=F}Z7j=x^~PFt^O-b(em&VlJ2iKTZxlqu>Qzx%O~$I)DW<>Tb#
z>JMK`ea-m1YR0MZ4!y1yKX;y6v??=W`tiRLZ4<6M{`YK4y(!D-bnf{<e1E(bHBPZm
z3IE6Du`lHBB}Gu%I=Y>`p7GOXwtLtzJ!tw6k<X}DbDM&S6Vft0SPQ~2&~B}T33x#!
zv6=ooDARvz(BCM0TrhcZ+cD-#YKrf8D{dsToA53<xFqv_o!{-<aSP{my-=L7>hjXg
z*A|_>e_Lk0?YVk?+vP*<O$SoW>2=>c`}JseaanMLN0R2k<jb*pEq7~eV*SYHGHK14
zn0jroqvsDz{kA%Y_r736fr#OcB|;A35fZB5E2p&gF>cson~}A-Hv7WtpNoDNtZ%=z
zbrBb<%Ep=TV#o9S)@*%W^su<_llJuWMIU$N=u55q=e%#$D#tBT*X~~_vdw4Bs--i<
zqtkZhtya3eH~B7Ksr2WssdpEw4K}vdushf7{MU5dr)wW%-%s3ixKdH_&C#27Ql+PL
z<5!rnylq@q=r+&0_Ul_Sy{GH)u5%xLdMGEodSg`NW)^q36K-Cj0%^}>^w#bFV_5C}
zYft|-yVZ~K*UG;5UtL(UD(ZQw`TVX=Hz%gcFWRZI@Z(|&EvcKo?k<bVWM%W4A+vRh
zROV7uMiHkgW?O~Atj-BeU~$aLT-&K_d%JwMV0hNH)!%1rx7p#b!hh?^(vL62iUgXx
zb^gWeUBsGL_WkvgNlgCgb?aX`ez>NsX2_^nWm{e*#Sp$GQ9Me-D(5B_;}zk!YQ9aK
zQ_rr>doX!+gDuwvVU~~`D#8bs_ekIGY&4p1yYGSPgKLL=<i&H;-f}tdA>C1?k;9g6
z0mnrlx5^I!<rde{W)|~xxE@QC^n+L57W~S4Z^&DC*~Nb0`64ekS#pj4#EQp9o^Y6D
za7eVyFcB<PN>iWp^{RL0%Eup^k5}F|K5<#4DCmZI*~xrRwx9UOLGJdiP~lwl$>OH-
z|9*<FHmpkevN_>Ph59XZhnE@;0%HwM-IIyBp4mT7;_r{1X)Kz?R!$xKWjFmIbN-y&
zX3y7CTJa-YLgCc!s?Pm}iyi*AuM$ykV`cIWOmGnSpm6n?iI>QYnNA1UoEWpZI#lhB
zeNTD5cv<)tk#)PxI3hhyE1!CM_AYzOv#V^+GIQMLx#cjNZFK$n%yDh{>+9!#=1=dv
zx+mIf!ok<a+iq;ycw12F%luWG%d=*k^5HP+$k^u{9(e7_(bZpK64)h7Y{S!^UyI$a
zYx@>WOULQXPJQ-vx8`i?)(gLTN}-GO*c7Se_Ik$c-;bQdRz#pq{8O`t02Mw#pylU8
zPZyhlv|ttyM2>tx+Xe5JcP#tc$X?U=*rHEjwuy<{1T)UU`~!#Cte0de@T&R#{#JbJ
z-q)%x%Z#doeXhQ|bfk37k-vZMEGawoD*t$<<3;C${B!HOPQE?+G`+YkI>IBV*6H}N
z-Bs0fu_@e6d@hr8*4(MlOgs7=QAXG$Er68~wVM30%n7NxuU}DPzoszr<(dlfweT_`
zPE<X5`L$c-I~T;v`FG;!>6krQw>P`3`afa)vaE{zbJymFa@|%7yL#!&=iJS~+e0V5
zzPB;2eOK?#UyJg7yfrqq)w$>2t^C(?ol^FXzVCZ>9iCY6^6k-+j8dhiyY#O}HGMm9
z!9w}`(tSa@dy99jzWw!3!9IiAH|ObwUDG*O$&|m?UsOO%Tt+Y7?yu4B<G=Rwf45)t
z$bYTutN+=BMa!bZS!eRQ{(NI&*qX7<E2BocuiI@~&GwbyQH_nlYR{vidbeDf#K5I^
z-)yTunAN$;4?-+Emu^*A_vOv5+r2x2HplLrzQ^^!BKO)=zH7VvwNE&5=xw~Px5}0K
z(3^MHHC0*X`TdEz-0Uz-Wb%vy+Ety_)?XX6uWjJg<&xc+)5`FQ^U}P%IZ3IXcS--a
z*Ly&Y<pw8{R?MVM2hGQAR)zs=MYjd_*z8zpuy4Cwi(Q^l%8$(od=4$9d>;fCeU*56
z(D}~8h}o&<EI;TN@tiJ5xhV|ohF3~NcK@BX_{rU)vl{;?CmA&_6|v2qGehPe8!uzC
zz~%lUGMzU&(`>6W4NGO}URdN`=lNvOIY;DMXY3+hVM#&7UpFQn-)5J!=xxfUHP4LC
zZr`fB*xk*Z(~W=o;#!s|eM~K{njG()U05o6|Dy8Z|F(-&9Z&W22|Q|!-4-n-ZGUrJ
zKeKbL+&>AnJ?Gzl6{>f3Yy2v|DyTt1l*7iYQ7*8-VO98Lg}{Vz9#&}%))ksc({}89
zfAa0RszqX(Wd65JTh0FB-B)vwRNsh+b$j#Ls;-H|uCM5t_3vVE(>pDPJyT8YJFU&L
z(|BO>{<?90iuEUtq-MVhu7A}YN55O}wD`p9%4EaG(|A)9{z?c%n|-qiTmC=9*CO=t
zl@p8y*#yrXf2nn9mQ%t+JDxWT&CB>-zj?TcTkQKYGgWng;uELNEzc;9GTaqY%H6CX
zCJ~&)BlnkW!PMsw*h&!8H6GL~K|o~_i6sa~3q}coZ|f)WhJm+H@%gvS1nRFZPiRl+
zWp7dJKVJW0SDx;*b|z_oBl)HB*GlvZbQqtpNc?(REt2XvWktlgr%JjkhlM;RmOuIU
z-CEYuQ|(2$-pi)2!d#Kv`!x05naSVZ{Cc-j!TXj^3cRP)->=K>Ryeru$+^mK@0)*O
z*L45qiagaHE_6p*AV!N@%64kOgj*KOdMcrj>x{V+PRU)}+I_u=ansXX6+732T#jhu
zk}bct;i>P(Z#k+hKU8B3V#2;Z{FS`JM)&jUWmEoH-HAM-v6bV}`J`6X&4!U(mXRAi
zYx#@%UcD7o8T(Z6j{oYOs6EN2&5yo6{b*8M@5%s!%bVvZ6?>GN>fQF}Xm&!%v_4%A
zse&xVU50Kiyi1Rp@ZT<qe7d^vU|E9F?D*@-*=-7<MXGB)337<b_x#)O^R;kwsq5$3
zudn=9{jgtp@52B2kKS6Z`nu5Jn|t87xlYZuHq922`Y#sl8howp){<o1+#MeuEcMDV
zUAl4F<v9vVf&xnu*C;Q2bSjfwZRJ(1zOP3vJYHrICcN{SZnom|Fvhc4lTUqI*(~!Q
zs_JpU`mnHq^qxEGCw^zKdG#ai?qexdA+>|Wt}k3C=bA9B3pnVfF0#ufCG+e_ArD>m
zlPwyb&G>6n(-Zuea?YCy#Mo?>sXf4(W*A^qG_f$Q>-03~db=l1^5%j}e|ni`G;lDp
z1x$-xcwkp^=ogD=n|!=ZPA$xnns)Haru>dn7NhizRJ9d_%{Sy%s=A0XckNS7k~+*<
zwffA(&P*NgSuqDxj)WK+rYEIc^zqhLQhRCG{;JY&!IMIvo5FAQPL%8SO<{Ntc5|YQ
z*wr9mmuV+ocb(tCo1N}<zUQBsgl(+LZw`%IS$73tpHF$$PS)1BpYQqitEX(<?*kd9
zx7yxFIe+T(#qe#1>k?Kyc<5-pAf#gb^dGY?ar5MdRGwX{sxadwch3i=6R|a>zK>Yv
zon7~UV;#ebjuRHud;UJzqPcd3ELZaWmT7lcOX~jcy7J0KD87v|Usac(w{^<8w=YcB
zw-&$s=jp5-ERs2A>*N2w61aq!@2LCdTbFKg?o4;+4t=e$I%nRM>RWT#=ayZQS?Q<f
zvpW4dvsJWv>Bh9$j%gt=>etqVl$`(O_v%p90j-&9eXYvp2JhZ>DBd`4+P{p|l`j_S
zw|=kW=HGeQ%Cp*Hf?@@Gv2{S}EQyyB&hb@G(%OAjZ^rF;+1rl)jE=3F#oFcfFho+l
zw(9<?Y&ZX=tv8-5KQpJybeZ~^_tmq4-tzt^VY<}Al)?Y>DZ^zEOPL$xQr5kEGmgz$
z(if@ZEX8K$*)w&<r1eI84?UL`c=PW*RoUcnuVIxe+oFouX4)qoer;ct&>qR4>MA_R
z=GTJAM=OFj$`=TvKWq&CBc!eF8LF9dRdI@h@A}U&UQybcg(Rh%j-THC=)lasjdBbA
z{CTLzKS8=eWS=L8Ntu%-N5RvYZ(rWd@xLW=pvcPF_jA~^78#D+$uk>M!w+qX-7Bm&
zM_pQ|xWUG?p~fL%jYibc4H5P->)wTZc(kD4M~CBwkKqTaYgtNO%)DxM%E<fi={Iqb
zlZw~a1xx?DIr+p-<%OE_rkPnRSt9MZ;AipqViltU1uE7zT#kLN;dqhUUi(Jv<BaU8
zgO(0nCyiX&*6c64>{fJPUYc>;n`>r{e{-}ix4ysI#LSt^x<#pmH9ghiRFs0nLEeh{
z9DDxo$mtrZU@OQ`m#$E=AO}?uBo^c#Etmzlu_aMEzd!}~9W&5mOu+Ufxoja5UH-Ce
zYuAmC=gM)Iz)+p>YeU?0K4+nX=}d?B{nfa+>528piN(_uU7HlP9bN3vxukAMO7Wo&
z?|F}Rn>b8m+qCOlU;g#^_LHvW9$&GUXU>CJQ{?l*&F4-}P+fk_%GxXP|Has{`f{5S
z@7HTobRW=QSDsShv9L)yck70Kf=scZA{}vMmoN0)H&Rlu-2bM|N<QRq46BgtR=>%g
zU%&hNn)}!d*2lZ{H}ibgukDtsSN~U3;c`#HsG#|t!bDH~sUAED3S9N|FZI_mJ-rmq
z@Al|M<%4#GCrP%Myg_`+*X-RldC$k>Yd_WAOR?sykaVy6(l}@T>pDC4+aH_Ws&Jf|
zq9<iwE?_Rav1Y+HFZ(_(zmNK?ttl?;8!Y}Ux%&L;`~Q<B8^6yux$|PzoVkCx*8ESf
z*>m{+{$1bYH(X!tH!0rAbE`s3fcg~EIWgsKl3FImyp`e<F9vE`q_`|@-|=XYm3rgq
zo|F}nPN<$(CEdBe^ytmPhfh@(Eww8%l?-i23~7EY-9E`<b=`r^f~yN7w@wXO)pN?|
zpw8tzhh8o}82j^@#V-|g-=f1-tKa2p651U9rz^y^{=bIC0-e>l-%K|BXb&~on*Yu1
z*u+BNTlZWZ_)gi?zeHiNd2U8C(<vG8EQ7ZWAtLGPcs-jAW<QZxY<#m!#r1X{OaAQ@
z)`5Q?OnS3V^y>Ou_Pg)znk~|1E5es3p~$&MZYirC+ZWd3&lzWObfq?&wPJtH^Vj6`
z!oUvWVjZW7A9Iooy4uR-vNELZuyS8yoYZ2z?Mdl8i;uf47c)v(ELMD%Cd+f_fCO)`
zdA3PFukq=ryer@Q(A9I<%eks8DWiym??aNYPb<su%!AMLW<I&1pcdn`@>|Iwqcv4B
zPeSHTSiEn}O+`7**WqppFYmg+nyy^(K<6c6>>H6uT~iaDe>K=2vv=vtc7?+`E}voh
z{Ol0JL}9JuG^g+&0q=LNv$tBF6q%zUSR7Gs$&XKR)uh=oLdp%JHy3K%n<#d@C#6;^
zGq^b;d(O6HOWJk5EH?|`S{_?@LdP>ZvR(MNl*^*1Ia74=Ot13s?&!BDopnw8x}Wf4
zpTLlpPbRG_T(_bq;fmd}w#|zUJwEX7d7DN?;heIIca|&>GH1`zFAkn$*Kyq>Kqos#
zb4OfApmy55v<r{;*`u6nC+bYvS$SDLEMe`d#`RYfBi(N8cAimD=AmOTTf8IV)A4Ci
z2R<p@*y4N9{QFm{cY=#o{%A1x!4W03?9Q~SUWFgu3RL8*-VxCg`Fov1%Zbx+jINxU
zSs5SSbZpbPddE1@UM`$RU2P@r%nLz^_OosDPitqXxyoHxY?;?J>#(F8Pu#Wd$GVrj
zDqHtPrF-?ctg>01%fyfJ88dE)i!r&jpm>|bni)0wUM2tB8FSxiP5VsYkm8KK&C~l0
zPH6r6XJzgyoRH0SxQp|f<iYi2ocE74Rhw<tym-=6)$etQyTz6jM^C%HJ0~J)yXwu4
z=dP`EuP?ba!>{jMs5EEievk7P=WM+a7W+L$Ej41nvgF$v1G0{^onCsQz@Ye=*_^|A
zd>mh27@aMj93B(@Z+=d|NvmSHc>S;C(KF53&!znI49-1o)xP`dWx<4q;}Y3VJ~<fo
z>s?s2t<p=?_bAJG)w7rNGPhkb)3Eu*DHs=Zr{>$&sG6_g^(V`2v8c`Fu8s6nGTB%8
zZsCH4;Ex?jQyDD7`q?Eu{hOGgYPxC7-Zy&cn#W{6IQ2*M+1z!?S?TgeYURhHTH14t
zN5sU36&<NvlY2by&xCOQ`^ViR<u3dRvPxdY#FhBi{Pf?9SbMh*90#UseVEKFH_zeZ
zTm4yW{Ifp&?BDM?^IHAoC4b7fj{UIs7;h!{PQFs$#qRn4*kjaA9mG<dfcGvSN^nGV
zQVbdsaLzByD^V~6??U&^Oet1~1{L^03ZObDNCC8%EJy*g4kkzeG$|jXU;*0jt^k@h
z2vPvgWdtc0f<_C1K=;QQC<K8nj|Ed;15oxhn1X~L4nf*5Zwj&lQxs$;hNvMzEy(Q=
z{z+M>$t4P4gTd8WKw?QrYEhm7*if*DYek8Ba7kiGs)8xVNU)f5eolT-a6w{ns)8xl
zS0KYcyI>S-Y`7E@6cqH`3=|Au%0XO11tYL0p|VB_M#!?p3gAPlKxTs!n<yB=WbN#b
zZ_5Q+2JsZg#^R#%B!y^wPiJS)QBWxgU>m?EE2Nm2rWYkvB1?k$Q$Z-f2~v(Q3_6T!
zYy=+0^;0kg*$|YNm!7H+Z2&eJq}~v0JfT6}+6jBT4+n@G^<NV;byc&hj7XE1I_t%w
zo(rdz2`!YrbWOAJW&4C9GsHE|-8$%5DBxZycw}c^*#~|B7WO~^^Xptz8J*uvomMUQ
zUbNGm@B5*L43{RK<GH8F-1hRuNtcjw&ps7>kYsGR*v;6Z)f4T#vO+2(W@W*%8&-8!
zZp*4{%wK-0Yh~`<n6*!yFTM4x!c@3E-tPGStII_#7XS4WPMr3ZVUmwcSfS3r?jwm|
zVJ44sJ}&WP>nv}H`}D(O!>f<23D$Fa1h02K4U%4+oAYA!o7>F=@>(-yioBJZC0L*`
z(cw$~?046Ed#a=aD*v8q6i-jzv;G3pg|9DmtrvDEkk63Y@$Pu%Ycv1G1Iz*UKm5Pm
z-?)?QW%a&ga!k{AANa6$z3Yp-4O~~&=^hP>3Tjxkcn6!wxrTo-1|`lH*VQpTeiXkE
zOBMu09!69dnVEs&$WH;ho(vIH#6?lRqc>BaNb7l%sbXQ>F;YB&Yq=KHIkZg3y|uzI
zc=dJZ+$A#;tMZ**g}eM;Ahs=6{K>LuZ&?mb%{#JIn$=wCy!9(L$M=s5_8r~XU(9&6
zY=`!A-UDBmCVI`EdHq?hV5XD1O!kc<e2*{fKQkxYQ8_a3lY_;KS#i8kFRnVzt_=J6
zTrWzmHuvv-k$vyI-`eZU6V+C?{HdSW|655Re_~m8qyHM$&c}Ds#0r~!JW!nNCloIr
zz3%f7_5UrrNtW-moaNrBC`@cR@OjReR~nO-l(V#$pTDQ{S^fCqwKp`c=4f2K%dWKk
zzysfv|8@s8^E<2${^~xT)9lo%B};1<U(_&3t8Iv7yq4d7L(cOJmcTXz6;6oI4uI_7
zG6ff0-~dmpC{Zwj&zpo~mgJ-=*tog6xfvLk8X6dwn;IAxnHw0GnHm_F8ygsyn-~}v
zxfmFj8AHU33=9lh4GauGw3&&4ftjU&fw>Vv&Kzn6NIzH&R3BKsB}AXGn;pn0E~&*O
z3eliqF-So_A~H(B#6ZEs2)vU_!2l(*gWXHeQ=lvkDuwg|ic-rIzySf~qWIAS<Sz?|
zd(B)749pD-49uJ%e6V{#{)PG9!oa}Q65@AIxPZa}<X<y40|PTxBtL)(W`ceIIS-E?
zz>Wrc6w}eB29U@A1uDoP;D84?0u;C)8Wa(rhy!^B<^hnykvs_Y2q+>=L5_z+tQjb>
zKzc!HLFTxEBFM<V5M&0(PBQ}ouo_SVgVY!z>4n+{HW!poKx#ndf!t(@6gY;&#4tF4
zB0>jJP5YOY<YeZhf@^BG%%b8Fq)7EiEG|(n1BEF#xF8j|F>-xlhFb1Gj07#}^GQrf
z%>gCAU<G{_6dj<-AKej{IzY#?l_(gZ=mhzZSe-^FIzefNJe{CwmOP!HYM(rvpmKyf
zov7s!uGoNtElLQPg9<CM>@)`@5At-Pr5$i7sS%W!m#&ahnwFMYqzOttj-@3T`9%sE
zzL_~WnTdG{0r`ccsU=`3=c3fa5|CU-WkGR?f`Oi)v7RA9CNn?J1=K3jaIrEnFfuhT
zF|sr=Ffunb&^9nqH!uJz^vzGfuLh|ZX^xt5q0J#fL&#Z!kihm$ElEsCEJ*~p9DWp2
zgs%@MH9~Jtw6U)!NKDR7Em25HP0!4;ReHaBzmh^`img((sjq==fpcm`rbks#YH*cb
zNODznvSo^ry`4>kRYh(=ZfZ%QLPc&)Ua?h$tx{r2ep0GcUa=KOSYJs2tfVB{R;ePl
zK)1Xovm~`h$<C%ICCw_x#SN;hC?(BSDWjyMz)D}gyu4hm+*mKaC|%#s($Z4jz)0W7
zNVg~@O}Dr*uOzWTH?LS3Y5-_gH0a!~%=|nBkb#Lw`K2YcN=i^uQ<C9^7L*p{fQ?K^
z)=$kz%?0gJ);H8M)K^k~Dz3;afUC|c)&u)OFF8L~zap_f-%!s0MWwGVezm!|D9S?u
z(($V=(Jx3x=qNx64HTyoq@?K^>KW@RDcIShBwLk$k|rc59dk+`jGRo6f2?v6^U`gV
zDs)p)(-KQ_N|fx7(yxs^D6Dca?H~-WR(*tVDalsJkQ59tF*vml!pO<ALrv`v{cwZ8
z3PA?JwO8a8SV40`NPd2f9dd@S(MOlHsmLwx^|f-zPc8+;kEe@WWR`)uL4aYUQ;A_-
zph=}yW{6jLj-#zDSTCwlsAkW+;*!L?<Wx@=yYw;>OBau<G#5{c&=iy4Vvq8W(kdj)
zNJ>G0nU-Ian^<C(SWu9YnVeXXnV+X$kdkHt@()zXrXVHFD!|1pEVZaOGe6JHP|w^3
zqy||GWD+RsOB2&mA))4!m=0m&WZI?Xp#>RO5@ZEJPepD)NI<%kAE@prwlg#W`xQw9
z>d~Ooyp&9kE1h!^i;L|Fit_W*z)F36t<dB^Iv~-I3My3WK&6hZfr+k>Wr&f1m65p>
zxahGmFaYaERteVWo1c=IR!NLbB$W_<BIQqLVheI{v$N3$7YU%^!46UCq~@jADitZ&
z+hJ+gnq#YCofAtEbMn(cMH)D)6u{kmaEl-;GqpUmD4-}cEwv~$4|Mndtb6N{S(KU#
z3N{6OA0v=jJ8)|SRz50#3saD|KFCaPYoQq4H})&dEe7=|!L5rR1w#chP|+KtV60#U
zav*5vzzkHSgGLX`Ks7XI0Kp7Y;ey5x%s}-gXc)l^R2>E>SSo;PH}GHrxV8cxu?KMv
zto5S+ZX1E!<CB<|uAq^crwJ;vQ}a?lbsJYjQED2Ofr7ay7wB+82v#sNH8nO>NaKZw
znHU&@+yatQ$b*ZSTN*2Xgbd(fM&`yAm|~U|M(FA+jZ7@i#EcCL3^2tkK#M6rmcZ>W
zHZ%tvLV+q~1Ue@JB!qB_v9TFwAOR$Z&}(95Vu^0AsX3;-X6BX{Zm}>jN7rj&U|?yE
zW}bn80ch|8#a;sgLk#l_EHJ~xz|a6AoDB>uKtn{R=2;pUp@*q~rHKK0*c%!dTcW$!
zz|!0t-EW}N%gxaIVQ6FqI(!htUPB`b14A@*Mg|t3kr`BV#s;7yiza4{sn^iZ$Q0c?
zLt_IIbTMNSP<}x%&&bdWG@yklW@KQA?hhkla|28<3v&!Hb3;sZCWaX4#mL0W06pxD
zEiEiD+-z=YgdQJ87KRw{W@Kq>fgT^m28LMjhovQY*c%&KSQwy%l`+T?bTMOdbM$m-
zY+`PSq1V&`!@tI6mKf>4*uumJU9X9O0cac#B|c0H3{26(zyvf#faX3E10#$uFfp{i
z)N5!6D$G#rFf<00d}v~(80pW%&=R9OFfp{WKu-rIMg}J6acN>?h!N)|Muwo?Hmbcw
zMuzBdX<}rAk=9I%j6uh@qv<uaL{C>HMkb*3rfBL+G0H0wBQpyOHyc}mPJ)H$Eh$RO
z%t<Zc0#{=C!I@R5pb{T+xK4h4i2}HC1XmHBd1?6y=AiBigzKUZt%0ivrKzBStAV5m
Y9)Bq=Nh~S>*DofZ;NntMb@g`x09Qn|ga7~l

literal 0
HcmV?d00001

diff --git a/ring-buffer/ring-buffer.typ b/ring-buffer/ring-buffer.typ
new file mode 100644
index 0000000..de0de0a
--- /dev/null
+++ b/ring-buffer/ring-buffer.typ
@@ -0,0 +1,109 @@
+#import "@preview/touying:0.6.1": *
+#import themes.metropolis: *
+#import "@preview/cetz:0.3.4"
+#import "@preview/codly:1.3.0": *
+#import "@preview/codly-languages:0.1.8": *
+
+#set raw(theme: "mpoquet.tmTheme")
+#show: codly-init.with()
+#codly(display-name: false)
+
+#show strong: it => text(fill: luma(10%), it)
+
+#let cetz-canvas = touying-reducer.with(reduce: cetz.canvas, cover: cetz.draw.hide.with(bounds: true))
+
+#show: metropolis-theme.with(
+  aspect-ratio: "16-9",
+  footer: self => self.info.institution,
+  config-info(
+    title: [Ring buffer],
+    subtitle: [_and in the darkness bind them_],
+    author: [Millian #smallcaps[Poquet]],
+    date: [2025-04-29],
+  ),
+)
+#title-slide()
+
+== Qu'est-ce à dire que ceci ?
+Différents noms pour la même chose : `(ring|cyclic|circular) (buffer|queue|array)`
+
+Accès
+- `put` : ajout d'un élément
+- `get` : récupération d'un élément
+
+Éléments clés
+- Sémantique de file : les éléments ajoutés en premier sont récupérés en premier
+- Buffer à *taille fixe* de `N` cases
+- Utilisation de deux indices : têtes de lecture `r` et d'écriture `w`
+
+Utilité
+- Séquençage d'information entre deux composants matériels
+- File de messages (synchronisée) entre deux composants logiciels
+
+== Exemple d'exécution
+#let ringbuf(buf, w, r) = cetz-canvas({
+  import cetz.draw: *
+  grid((0,0), (buf.len(),1), step: 1)
+  translate(x: .5, y: .5)
+  for i in range(buf.len()) {
+    content((i, 0), [#buf.at(i)])
+  }
+  translate(y: -0.75)
+  if (w != r) {
+    content((r,0), [`r`])
+    content((w,0), [`w`])
+  } else {
+    content((r,0), [`rw`])
+  }
+})
+
+#grid(
+  columns: 2,
+  column-gutter: 3cm,
+  align: top,
+  grid(
+    columns: 2,
+    column-gutter: 1cm,
+    row-gutter: 5mm,
+    align: left+top,
+    [`init(4,0,0)`], ringbuf(([], [], [], []), 0, 0), pause,
+    [`put(3)`], ringbuf((3, [], [], []), 1, 0), pause,
+    [`put(5)`], ringbuf((3, 5, [], []), 2, 0), pause,
+    [`put(7)`], ringbuf((3, 5, 7, []), 3, 0), pause,
+    [`get()→3`], ringbuf((3, 5, 7, []), 3, 1), pause,
+    [`put(11)`], ringbuf((3, 5, 7, 11), 0, 1), pause,
+  ),
+  [
+    #grid(
+      columns: 2,
+      column-gutter: 1cm,
+      row-gutter: 5mm,
+      align: left+top,
+      [`put(13)`], ringbuf((13, 5, 7, 11), 1, 1), pause,
+      [`put(17)`], [???]
+    )
+    #pause
+    #v(1cm)
+    Plusieurs choix possibles selon l'implémentation !
+    - `put` renvoie une erreur : le buffer est plein.
+    - `put` bloque jusqu'à ce que `5` soit récupéré.
+    - `put` écrase `5`.#h(1cm) #box(baseline: 100%, inset: (top: -5mm), ringbuf((13, 17, 7, 11), 2, 1))
+  ],
+)
+
+== Pseudocode d'implémentation — variante _écrase_
+```py
+N = 4
+buf = [0, 0, 0, 0]
+w = 0
+r = 0
+
+def put(elem):
+  buf[w] = elem
+  w = (w + 1) % N
+
+def get():
+  val = buf[r]
+  r = (r + 1) % N
+  return val
+```
-- 
GitLab