From 8cda43d443e73dffeafc68dd736a45e36aeebc42 Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Sun, 4 May 2025 02:56:37 +0200 Subject: [PATCH] gauss notation and some diagrams --- main.pdf | Bin 855608 -> 885767 bytes main.typ | 593 +++++++++++++++++++++++++++++++++++++++++++----------- theme.typ | 169 ++++++++-------- 3 files changed, 561 insertions(+), 201 deletions(-) diff --git a/main.pdf b/main.pdf index 8dc1ee8b02cc10a2b84ba7588d341097852952e0..085bed4fd6e808e601abc80c06fd9d1323108bcd 100644 GIT binary patch delta 87917 zcmY(pV|ZNO_y66vv2EMQ#I|kQY#KC}*tTt}F&f)e!$ys*CjZIj`@0|9XWnz2Jqvs7 zy=Ja6bDh_;Wpjju15hcI#U&Y8nYiF6{XqvD9BW!ZA~;6E3~Cax3p%u%f}*^FN`j&! z7)O#b0R|W#X$2pUu!Hx1jzlnTFwP_&usu$0c2*KL_D^xL0!Y|6J_X?6Az|bE6c;PV z3o-*p005AU>r>n;EJ+#Q_&`oh9uiP8NC0-wi0xAVE|7u!Q#_p9BcO7SIV43eu2X!ol__9v0AuodgJaa&Ur% z|A~{8g^34rfWkRH_1_c#5)QzBML%Z&>GR3`DQ<4iOrRPdfoz;CpWDUL5~dgcDQ&)Sb`3{{-LxWrAknCgJ*YfwFl1TMU2& z6!hO>0HB6_whd$lRRGNn>IwkVCJquV7LWn-0@Ni|9s@W*K{yLXb0LbU1 z0D#VQ5JEr&r#%*w(91WtORxwcZF_18WesT*;k{Yp6x&CH1`~2r>hX~PU~kJd*yfU? z?QVk=|7}kn``dK`F|)?^#r7Ytg|h8 zI~oK=0Qr(L6{N3xQ`Fh6wO=}xGm+BY{Av~vA$2FuW%Y<%w+JS6kPX{>vCb^)@Ks~ldU7VE6UPu zD871;fsr!r<>NF%D$G%(9!;3sn<6fsI9Nt_Ob7AgDXC6jRAgAhn211W*Fj!u(!#oou4sGMvs za?D%8g=nNY|K%sGO?rSd#BWPkJZoe;GIi+!k^ZgZ-vbPH@(f~WgZyq0N@8iASREAB zd$W{1NCtbivy|^s*i2$Zo@g)qX$8#uaK5Nbv)BotJy#reA;4S8VJBJ%E74#@X~oEk z%EBcxiwkDDEol#nE%T0<@Gd7jKCw6B8;HKG_x|J8;Hs*1i)SGrJSVl~xz`8gvm6iQ zBveTZFs{#!9wY$t*-JxRfxu5fF((K5>cDDaXtk6M>8jhOw2Td=+nVYZx{yj*MMvP* zvR=^Bm4BrP4`gVZ_&vK-)+yp{E~PHM_6Yr0u7YmHrdY__!%aoS8bK9Xbea4uBf|qO zT4yr)-gj&LdyV&H`v>s-BU^Rt{=%V5wc>^O8aA){i8IZmHh`}yh4^rcc~lJ8Cz5ES zF5`Rd_C+8Msecxj{TGil*@&3@=XZdf&+mr^*su5SF+LU#)<+Rcb=|Cvg%je~M>=2y0bqWl(^aD29*`Gz@b~bz zmtEs&eqWIh9z04fjq?Zvb4dk(zo$DPx_kq3#C(0TkLnED$Gr@Vh0AZrgqZXEQHYOR z_Oo-ue0;Kf#l$=ma#%>+9$T&h`ZlQSOIS(K-R}_KGVsIprxU^%9cqpP&6$t2nb92NE%S$l>RaGf(u#l&tY|Ew(-aD}}=ZPmp~3 z3i4_$RjQWkTZ%K-*$4>YFReBle zy(dV8K?Oo9+cmuk0y4fp$6w`OTF{QTo{qCoL0E{q``oiGdHY%RZ(+Tn>@l77_tIzLSZVKzsS7z?6`rDApFhzn6)8ip*UrOw;INuse_&%y_M~z(? z0!!vN*G5*uo|rC$RZ|>9BDa`OM$I|G=h}^E5A4k9$NZdH?^$yo%91vC%*_TO9f7B6 zY?sycuDU}7Kue5sF}*Uzw1@>pwMl`JY*ftoTN-^DQ68ZV9A&&ld@kdjs?LZ7mN}L= zhG-!VF4_>26e$JfW-$wM&)U4XW2mJy8|T8e{t(Y_uAwZkDdP}X6(X9m)_&TGwg81) z4`Ex^JNJa{>7D~%;^XlNnnIVLPzKWrYVSc|mD=OQmjs1trhPrq3G-O2&d{%=SH;0l zB$e<5sMw2UBgY~6%tAAk0x|`JuY%Q^Dx?R;j!AYVR)qdFA+39G z)Cn~=n5qqv{kW64BooATC0S|SHfQTcYOwQ1vGre4g^ZH}vIs{xisGj06{Ej(N9KEV zIGZ?T6Qfhy_fyZQ75R7aS(|#%CKoaWRT;=y3L?YFD4M3L7|8}3!s>- zL+tUgq@6kgRem~ivYRK=Li__<)st~LcgWlgRCKiu%Cn*}->hz{HwwhvqdB02Ms>JD zc%H*twBfp+bU+K_5QgNrd#Dn*MN+*Z0uIGoxd2y2uG_UMZIi{(Po^kxkCxac2STui ziIZm&B!I7el15j5+pU}Wzl)tQ5!TbWgZ1t|oGpj}8HPR>o!-^Z-C}m-cVB|N+$!N1 z%DBo;d7Y6WxjP4XkUk2}cbaCInvlFuzCGEpoG*UA7A>FKAsrHp<{=pLWPbOygTeTP z%WcOiW+#tAMly~8Q`k8tOP!DTpu_Ne-jIlA^lHNL!4zgt`3n+6Sr2Rs&`zC`o3N39 zO{*Uj$Zg77XwNpkqFNrb`PMkEh$>cKfqFw%D>Ov^^{w>*gAn%>Oph> z1;A|UV)+OkfM6*JQ*-;&6Shjge)DWlM6-r!m)Eh%`ho>jr)FynwswK*?`cr#zs2% z1;5ys`Mr#_X3LC>Mr_F4isrVC9iw*+*cMUPje49!=BI28Q8h+D+GxXoUj}<iBF_9CoVaG}N7&f$bP6WtfC&n`Lsyy!RIxwu zWT->(KnVYMHzqAqh07sB(CSbVyua2Q(y!rX<;HFK73(XN#BM@LZ$6KL+(ch^puuDQ zZ<6(NLPt!$H-gssfBGFn(VD*Is@zX#eA1Xbg~}ZLnC0XePo(WCh7T0^#Leri6C&&6 zK1rOMk|ULn%lIJ~GzC|WarJeGP3>gv^Ku@sBuQN}IGO0g!yxP(&lYqStssPPd}}{xW=cwQ)-E zfyarV>=e)L2X7B#QGI1e;DIfrfnb1fi3?0|?~hEM#ug^@u~sH2f$65r0HTQ`^H4H! zPMHVTqH2Jf>&!RZh-XLk>8p52USLu}T(DgP{<>IwqEDb@Nx`T2OBob`XjLTvKy7si zu?bQBO2)xr1<{JwlF6lwVOsFlK!Ygv=SbX~hId*HA$hsnzQawgE&=lvp;?mmR?d1w zJ2@~qtJ(iS&8ZC|%3d7v2$=G-5$|_Usu;E(q{_Ef_O?r{>Cn;;{|1b~fANO310KPq zqmjvpzsw_*P`DiTQd^lP*T2{^O!{Gl_VpJLm2~p0Xi*o@9ZZCais_`6x3@5tl7+L) zgywrO4XgW4Hkd@40Q)Bv3tC^?MdP0iA;NZpCjoQjMDi~M?;vHp+%#Fur zmu$?>sMF!AQ!PzH19703?MyhUOY(EE6$41sTV?#kr8y`lAsyHD!Qf3qo>P-HvXT@B zV9OhF>+GupzLngNM*_zNyg`@z06X1eo(9N4G`Zh`gt3^71vI*3lrawvMta>A+h}N| z&-OTfXF~rjy8c36?r~Lpr$%c0kYdDT42^g?y0ExzTIxYo|-zFD>WcNOx=@&yOHxS4Cy{3pKK5M@ifTZSu)s zR}|!QMi{qDzGL7vM2dK!v})ti1DoS@1C+$A%{MGSY>Z{@B>D+HBd@+}CEFLMoF9;X z;t)Aw%Y?)htl0TDAC#3?87& z9VfR8pu+NddfveqPo_=U^7Q*5?c_6izCMVQF3D3l*2e=aXk$}NNhm0&0D=Qer;Nq~ z4C&BK#xEg=E#;M-%~5np#e{^>Le20kfpK{wKHwK`)ecixu`A0C(5z&fwEAT|3Hq%~ zs9Sb(MSTq${Lp(lQG}V=5<(r%xspD0mxtcb^%&vwC1gxbksPg1NS;UY6(Z$r2D1ct z-m8RC2J}EdJxLfW+K>R&_4N1-J~B3fe$r}^0)e;N$wMK)+r6NCWFvfSyO{B#a{o>5Ij?kqoxdu|uS?)sCs z{V`COZzRlvBN@u426}|RPj_BZxb*eXmODzAi*SL=?_48##VOxK+lPGAf8FKaq1Kk*|9t<*I$ho`T#mH-GtqO*jj^qt2c8d9q_9hy>3cNv^ zlu88X%n)HC(u@IvnxN$;?#SCN^TjV z*gqj^F`R`B{|Qm1S7;=dYu%Oafax3|3kh#-DQw>yRX4M2pMPqV2qdpl_QO%9s$`wM zj7+T-p?qX<#aW|vj-!)f0OW5WVO98&GIfE#jhijOLfFfz%uahpw1gW`XwSbLu~Xl$ zXXhegq3fq0go%+fT6vi@(?X}>wY_E(6weEt1|_6iY-{#W38H1TYc3c0lhGUET4=yk zi)mO&kBbHX)mKK+e7@_WQ=7p7u=G}QZ0=>VUD6jG(BHR(~ z*i^(Db&PQ#+BOjx{1)xfgS`SrzJMQ4YGpk=6;yl1O9}Iqut-S++DPXDrc_A}GBHO8 zIeGaFQ>^vT;>P4V8U#3AAv6wlbaq%kP7}Ug`M}K9 zX{yn0<8)}(x9B@QC|3C$OaHXd_hDgCiv=N>^C^By?!M(1v@f{|-N0Kp35`@sw4~W- z?QQRta_(t(g*o~1hPz%DwE%f9Q@;y=e^IF+a4IO*Sr^)jPi^)5r4@X(E;%qotvXCj_Wh?qA-=D@{V(6j zImc2=nT&YLb-Tz2rAYs;F5eUe0|umIvnU=^l9r7(F~x9c>By^T6n!Gj+o(6+^55+$ z;KuKGDw0Pp{n5gItzQVUyn|ij1A9GH`EB2?Es>vy+Bgx@^o`FuNaC*e(5nSmU^VUU zjKnQ)Bu?0}o;eUQvD|k(@}DG*LQWg6PLv9sjGSEI(EYkefVz`&+bkwiktD6TP+cDr zP#pg*z;piu_NXi`R$>sDE8jD5(Lg=M!#=L%tzx91o_PVTCRCoNdhUmOfdnKCeLU+j zzs}M_ZLEixDH>}=;H#qkX3Fu&sALsQ_{jY;#V zI_CA)M4j2R`_lx_z+E!A;e4j7QTWPw!J&eBWLh$39K>xPOMsppVN?Hxk>LoK{pH!= z0qbnDB3FRlwuS$8G!r0T4CJ8JX__CuEs*5LYusjLA?e?kYWdUUhB$4={lvs7_prlu zQ-hn9ZsBa`O?FN{tPob=n$2VHCW)0W#tvd+|FJ^s~u|P6k&BTdw;+@b+fNW_qMrM4>^e2G}*6s;y;a0Aw8lOZdl9C zW43kV0OYLdLGS%xmrE~FoU&97d~KcTUcLsqxd5EmE$F8Zy5v6;cV@9{3sE@p=+mXu zqe-npicU%EpG@0j0_BUAdv78|HXnM=@^{{bF5*g*Hhy=@BI7IG3vE+B2D@~OIHct;y_`44{PP<-rvMj0|(>x z*nqs)e>gqRX9lhpj50=i=2rgi%gXs+x@|g@d+bWdu1xb8Uc!slY)CjM1W<*u{zWzoP@#^vJHm0t>PTtRj zs7o}UREg=if3foxpIXxWN8M15V5yi-@Qem&5Mw7ZrbJpU)bL(O^fwO-i)M?Oh~{AZ zpHlpH%qnMo5}Rgr7a!rG%3SUX*$W*cs*;Iq2v}8$^k^V$gGdxWylw9NyMNL8%opAQ zO)ZF!P<}DBAW^yvVa>r;$C+w|x@~_F^JbFS_+{@ss2V@B?q5 ziBYjw*S(oVE4z^Ih<1;TWnNN9-Z|Za?^jdWJ`#^aZfA9sC@b*gr-by9Aj|$) zNR}BdvgIGG>%a#*M`m8`k$)4Avr4E6)L1ZPvZq~hrBGjdV-%d#>dk>uni@z#Nowht z6Iuq{tB(?IU0|OhJTeq|M2&EoAA(wu85(Umz{59tr59y zYJ(lPDH@gCuLs5rV-PUW{5(jPFpFeGy)$(-IRHBmHeo$!_|QI=)V}Hvr~g67)cUjU z4|8uY6#no1E}c+V(HU{xP+fCdRE!9t9`pD1clC#fCNKRkv-0)TTC<`_ zUE|6&&UbvSNuYpk#k!=b0U+_?i(uSww%$H4m4|pZYP|5? zpGis>jRL3KPY%q?goC%SZ^@pie#O7$n^|3h;UYzJ1Z&2zyH5*gQsmuXN1>=~fdb8l z#8o)OM$V0g9wXK|fz8^?E-k?@BtePSlXje3^VPqDiE5)%>7gov>(`^*%%`d1nN@RO zh28Ik8qZtq`@^(Hw@FMV>oO;8eo0d%?Qr<#R|zMtV-95G#+hc9U(jkdmQnSHD_4|* zC#O?;DoWb0*RuCoI8<@<6-2EbQJORnnqR}~=n7MoY$8_z`trGO2Td5Fu08Lf$@IGd zZXuQAnswZSsFQ0UAifm4$Nh+^!3*U9ZUsT(q(>5oQhDiX88MO5F&2Q+kudTVDf1#;{ z5KK)e+O<7)>;J%i;|>3*Tys~olrCw9Cu8z5I|h(6)`{a`dKV@jWk*p>N+g%Cym$#% z7{N)j^v5}zHY28A5sooG4O@du|LWDzylJ*dEVs*#&!bt<_qS$Sg>+RqzK%8g43ElA z2Xd)dTS8$A4Xv7JL`K)bBkQab_y$;;I&^SYkYwjm8kQl?dzskAk?9+LNlG}ox6uqq zR(u;{d0&>MYgZ(CqgbGg1sq}130>#`L|sF^gOTo1gr9HLMJ06t3i8|P%k#O}E56-3 zs6Ngi=a%!0y;PE1`ZE$;zb7YmDN&xGvnp_FFQ|Co#iNn@MgDf8@16eu93+Oqhsb>? z+LIMS>ozFvrxYpPw5LpR+u@?JaZiIt!_Sslk{~tLYm!R=WK5n(^xC_P6T{jjAN$zZr*AFj4vpPKJ8aFY zP8I)(uxH)1V_42U?49`y4dZWjrRo5<9U_n0ffuJ@SsDe}ILbY# z6Ay`iv||HYbv-SeIXBY)J%bqOWUe-Mn7K83}Ff0UxW^OXMyJv}v0+>~}`RtQpKGgJ=08reQas;$ohAeBO!s_v|TY#P%3Y zcHDFG?&>!9*IdkNz#Tr+khBj`vUT9*-b(8C!84(GZFl)V^js)bo0QkT-)wiWnrFf? zSZ1u=H+jfzjdS(w2^jhHqm!**PoJ>(4TEeDV+j`(PL&Y#VU3C}T{4*uT=nxq7QkA| zf704s7}9pXFm0mMO|=Op-Df>aXJu8nFSTkAR3z=3oo1_l15OnzPtrXRR9`ChaxM?% zdh7HKS#y-6qsb3LqWzLSy^*QuIs~gUZqDM1_SC_Kv|9iW2xe-ifGL<}0hg$hwhbKX zwhSV5VULXdUH>g3+}ACWl`Clv_#yhe^v9p`SxkV=ZgA6FP)u60(VzcS%|2*F2vz@QCWvwtF@q*MZ& zBxggM|AWg(-1xcZTqGsh0s^%EG2Q>XpimHdOR@LHr-Yxj|du{>11Y8qPz){hvU|pU65%(GVxC_X+_9f{Tp@ z1giys8WW29EErpl^!)G?+AQ~cP^85GhY}{w@WPDmGWt|#3WXE~cb6j%?KV@^bRs-G zD}r(O*;T}K8yjA0K5csUNljcUTqCv4twdie6w;#lTjq&B<&VnB^kumz;gfGHb<0j;L@eLHM3K z9X~UVo9V>9IN=t$S**sseW+({&x^~nFy@@27DZjy=Ks|)GmH$1jk+s6!-i^~}=P;KO|kYVR;Yz^qEHm+F#-+d_W2^??R0<63G z16&ccn-O&JLkD9^L(M?IgydmmVg3IAIR)?sjHmk2vU}+6x)fO(L!-psB1 z+cQ`4>pb7wb^iKp-`6rWoUAQKk|iK$SHS7jo8A;(S7|ts{@#EX+GfNuL=P1s#F#4suLZ10d_VT%dIkoGTkZ%+{d5*QieuEt z62@w7_21mfQ#;Cif&>D|C7E%|xGd%mGWN^lGufsbbDiq*>ZIbg)=7k%goxveji}tlDPG*%o`SaxH@fG zndOoDNi_X%9F{ELEZ(yeF90-wU7Oh?dxCg%+|>i;4&<~f|tN)-V8Tnz^No#nt{ z5U}MxN|IecLhA3mhYyV2L}chkih`V|yh_uUKkU;OwiUxv7mMl94P&V8rd_vP4Xgik zDEUYHP@Hsg^_e%RKv7{DGC4I@w;BVwsa~k{Fgn8Uyy|xDHIVoT?=70fzq^vt9)cM1 zfMjea74HzKb`__0R=ObBqg#15X5^SQulhxDj+|;AUDh z$$$)SK1}{#;~Nmu6SjrteT;h5l2Jz#fSR=gkA;$zu%=uBS`gl;$m7!V7N@roGwSU4qVHbvu*y*n0ed*bq5{aYke(W65#5Z zji;Sqgh88+LKF6I16gR06}f~E|H=W%P{D8@X^fz!DGcZla@L`8UV2t-yybTK_(bAV z5QZ?*&rcL1q~61d6V9>u+u>XK$EilqmzYGJ<9QF-kgYQ&vmfvu%I-)^Va<%2k0yt1 z=`jaMzXHV=S9LZ&>^uuYE_&-RE3ZR^jYVOJcN7ev?rQDj$eL-cU#-@dzZGH8F|Lvd zLz{%6d>03*`^Wjw=ihsV+5@4RZ}LW2<}V{BsR<13o%zeYVG0Z5vD84}X{?ABCAMC{ zvU#B(KGd_AL@r?=x1amqbEUUO^($o8d`+&9l1vIPC(X}bb5woYv0LRGeNEW5NNKmB z?n818Sle+F{f)`saZbEaC{5)N)$;Xyi+x?eisB5YUOYNoO3h0zgCrNa+w-?)?@`#y z-SBVw35;Qwhuy&>6g5@!EFgnI#02M|0$#aGNr;IGl^dg?@qeXhpQ59ff>j zJCSGwo-Qdh+)0)K#HOmi+)wxSOD7H3GHN+bJRs`^^se%Qv{E)_Ja(VDOkd@Bsql2# zL(lXnJ+Nm?+3(w3eE0{YI{8St?Y)!C*61=d#m4>?Q)g5r^NFX8=+ztXJhZNwKENT_ z_Ueueo#Fe;n}_HNQ|XX%oZ{OAQ#Cw9oV=z0J(s2Id5iJq!E&~bo&#LjCw`*RrrJ)- zU}rN;MRA=ziv2?SZ@GvJ;>IY{t54%M_ ziM=yx$5|OQhw0ex#8K4Tc|LpR*cb6jLy)5q9twn*el;ML_e3Z6wSn*iZ z69VIW$h#R_r59(<^qn?6V^<}(&FkMtq6X=6(|Fy`71`O>DNzkDDfQJ#<7y*#fJXe<#CO@1fD?el+?A=Lg;P*@-Nk zZ3y%CHh1LWrN0Ik5U(V0AD{UW9|LDEQ@E zu&FmGVWYc}LZ}lTs8zcj$_shR`&YPVMps(N$~!s=3o}if7u324T=gP1fG~Oxt2*oU za2=S*=Z#J`SXGk-d{L#v@RO(g2=LwucNnbAr#cwB=J%yp$(WC`|LV#ZIKZmG%{0>1 z_K4CNPT8~=7m->T@kvnbIKS4J6cASbMw|=DrK~a*_WlAcry|Sz|r*PCv zR9#jwRMFt*U*N z5FLB26IU*G)$ewLFO8cW`emmib5TGRr5M2@aWw+DEj>d#t?KM~Nzi8)H{a&FwGA+`_E!I0Y2UO$qVo zQ)PjD%KG*kfeq!J9}f^Os>104Pjl36#G^mx{hH)GhwvO)e1WdG*qeLMUnN%c0@@pp zt>33Y&o}x-QS?o7YhIV`iXFxkACD&H7lJd6{vvr|nX^@>O#Kxsi#xvk>szhdBanWl z$6-cviBO65QF^ROmnDaSWZEvWIKx%70GRIU;5%}N5j0o}uc5kqXXeezqu2EP?P+Cy z{A&0$ti84=4|MLn7S)fSfY)6Hj@bi#&4%6^W4RMU;a8xEQTWi<9%PlU1lT)uV|Voq zA89%LayHQV)!~HlLh7tT1}reMi*|bdM=8#bd$rly9rAH0jF_;apR5d#I+>h!M4pkj z_ODQMKkDb1X@e)jF~n1x(4xQ?#NjH6@U?dtjM z5C#~7F;x~;(M~BTu0P!8@%~K?L5+sb=8y1$1& z{KgW$KsXIEDKq&zi72)->43`xHYr=ojP%dil6c|y%ckb&+@U9_y_}z!YLNnLyLvdz zg6b`BcBX9?dw#UIyc1|OE8UJe_ISDwNJ><=w}*y?+AbdZrDvQ2 zr>X81lk9P-XtOM^UFrTtsN7=QH&69q12HdR(+bga8+`%q3LK9`;7V0>ym-iJSUF&C zAKawbzxtAixAMuB2VVCcpQ*{AuO_XS)Zi=iRp3dBxtS0Z{O-mDxDRbW z&W^J+_4<(U=OH9HUs*Cn4GGF-m|qgr7Oa-ZwlT3hx0`0({oz>{Cj5SV3hK#W!`bZsjYaO;S%PP zkQr`lGC}i85(0azs+=hptM;+cqS;f&iz=1l7-OE3_Sp>JeWAzO{JVTb+z-%b9By?{ zs1(ZQf?XH3PZkGEyi&Elr*)Thym*lqjMM_3H{eko*e7*moT67Z!gP_Ys7AwpZ-d$j z;s}t1JAw7GJ-ofeqB5pcm@4b_IJ%zHxZw2rKUq0QOi@iDU@WySF1qV7nTcxQU@B8z zRN5F`@Wz83G&lC@+95=3u^}PVzUHSqbFgaEyaY;TYPtL{aAm-gxNAnEG2_tbz{p%m zm87|twjCzU?iATU!4S*k>o?;AQU(ySk=p&k0)7eaWFm9$OyHy}LV$~>>>}Z2pco!$ zSgT19LRO%rS0w9FP9M;oZpDSO7FYP%uqUC(Kk{Qaa=RiiyX|TYs_QLKeRd}W&a>^V z3YT)RrJjxc#voS3ve)(O4Dr{cD6SXZ)LcBI%$iaKq0{-{gZS)UbhCt4pzUzk52*zV zUG#zI3Koptg1jH0z?M?R2U&9qQw7r$I~(CtYS1tGEUd{LUlYaCmw~ES8|GvDI~~}3 zU&(8vEsQ)QXfxgv)Y4=FsTv~eO-G0eD5K4?Y#A?WDIP=LQ(-R=p3s|BS3UlF_DuCW z#KcM-O-AvrMVKKCKbd@RfcA3hJrFM9-M%aCYG393hoW``Ry9l6!iLYHuOL0HrZsd1 z&d9s7f8jEE)?-b$TpDdSUMUlAwKUlJF41YraE-vCAsW&aXjWFK<#*Ma#~CHH;LL7K zq}9#NpZs+y07Sd?Ssv1#~kgydm7h{ z>QPCrq$koODfxYfotoHF2$&Ad2CS_WZ@ctolm6RCvk<{6P6rMKf^OpAbTU45Ew#L( zHfIs-a>li7^ZtO7iF_^UC9k_Z7!%6kWDeCQh_h;HV{UoADR3P$hRGikNIBw%jhnDA z7@l&#Exqp4c|MAE#>i1+2hi?>;yvm`;d*ZZUxv74x9|{s7XoX!_uh|_%;``t<9TY` zdSOuXFwo^J>VQ~@svI`)P#%JUG3|g&@-RGmBXXXQR>{9mFKh34vLU!ZHHK&A4(>&& z+(VlFtm#JAed<@>nKzWqc(K~bR)UO$rqs8Fd(}N5-6WxMTBwv{*Rb@0@6B)dx}{HO zWoUG{W(`;L1DJ0ih!I?WH+IZ*q{Ipy>siG`+FpwqIXQJ4ax;BKeV zgXh<4dpLWLu{)Nq>x8q#0w9n3Dy_X;p%8#{B4TAVLv{_IOC; z%AIdMs4`qz9tt$noR;%rry|hSa3$#WFp|aZ1Vd zqc0VRe-^7HKV4o?0ye-DTJ*Va$^<*M*p#wGf3Rn9Q?T18432 zsufrs4qI4@Tmsjg>Jr-eE9Nv#_aRp1yz z`dYXCeME9Wq?*Dhf!3UFEw(J7!t>`1o{vcdUk-lbN(Pz;mH7dE#a1&lL07_lO@1jbBgS6VuDhynHLV@0 zJ--jz(+HQM!_}E<2Kc&`)MU_~`+h0@{_&*h2r+d0VZ%$rrUTp1p#iqx)8c6jaSsc8 zAu%AMI7Yum30pi-9=%NSU3z-QVKZ;I1eBmpGP(&FR@ZI$=+4swms|JW$*lxqkc zxw-892q_frbu2+6vD{9Q%QIO27STx=Zn~HPoqI|{M&Oq>ho7`Sb5No$kd)%mQ?sT` zH!f#XQ%=5V9KyOTtk$iaR}zZzH7XW}`R9+aE*X3ug4TyADLv~h5fG~~j)}mk7TLj2 zEQy6*6`je@*vz!DK=+JccD%+re4%HWCTS-(&F@JwlCM0`)@|#j-<;mxu$$n2-hb{y zzf&}+a$z=X6Y@5Hqb9MmaZ`8m@&#|8~anYtO?)AoFK09f5ter?od~JSEfS z%N&sSr|sF~_|7`IE``}hJq0s>a^!C*j@v|Onm_J_3-Zq z#SgL0l1&1RS;Am$`{%4N@aGgNLbm2;Ny3b88xmP`-%@y&>_kQ8RwuHSb~U2HGoyh7 zrh`6|KXNtKaJb6MTFNP#X*nk@CU#PGu;yg$KXx&Vumn}0pPyv}m`gjxx_z@e4L8o4 z1f~xZ!V8x7oj(l@jQ1>0_3y@0F@tjHRIH*UW3aoTbezpi6g5*OV9Y|}sezS{NM5f9 zpG~_;a_#=U$BWvE+(r(0O1+ek*f)ye%H6QKiJ7cj82+^`J%pWkKF?o-7rQEWeMYp- zxF$lm{dFNzsEV!J6C%Bl#uG4UOMD90d>$ z42VKvc?@YMOy~sSZjEAU__(Q6%46uUfH)JGR}> zU-Trb4k^ffOKIz+n;Ru@dEU$!C1V}E%G+_K*Sbga zRn1;u*QA8%wD_BPcaJ!7U4>HCBV=c(huhh?^5v>S982zMX~?3H$!jnm{RoRbv;j*d zFB<1An@qN-29^fLUF_uIu_gAOS=a+*6Jw%^+weB%6%z_I7-9rZ8|0g1BSWlD;K!>Z zeF2QoB!*>k<#W=BB0p54C~4DbQ5{?^0t$f)b<<+9s4YSAw-v1qLCM@Na8ftLa!E5c&>GFM0jiNxZhN^6OTUh6+Bv}V9w z1swRk-T*K7;_(GO+ObLR%D#AP<5@e@uVeiq8U#AL2~-Tk#?DC{)jSsLpORmENWGvb zb$rOILmHrwnelnV+lV3*Db1Cr#MK;PXnWFYEM2NCK%=&MLOedm(1Z|hskemF@Es+b z1ZK`<-8GkcU;mL33Q9g8&t#@ZT~uhp?b}iV*~uqv(2wV?Xiqh zyZ}zDi+RA(_Y5hZRSzhr7C=kUIx=-~+buU*G+7$xyWbuTMR9pu7mK#4X;4m9C%SXb z@yw^6mr!;O9tnZN04d$3NtJ@ZsRX5*zLt@D&va(CG|JvRzqrQwvb{}zFF-!_;t`dCM;v$rGVmF+EhxizX ze`zqMkqq{ui_>ZQ)*4UOiMF1x83nxJbjK#}yt4}S-C{cbdM-=ql+%=(X&a15yrGUl zR0{cBH9FLCR$f&$bx%ybP2oU}rG-#{!W(GF4mL6jt4=w-MK~5xUi$=f1Y)SOVM|R>BsgZD?$GWY<$# zD=2hrlk~KaGod}Z-ES~`t6Y;@E8cd2O3;f#nrAJs*I^Wi=?$Xq4 z?^N=VxXLDGraH81J(vG9n5~u#Vo5Ce5Rk2ORl$9xlLj5+E#%f&g-CuWwQOrGH+A_5 zSd2et;cQ&~sUdhZ3RU--CPEf5>;W*3?-uGg>m|=l+G(*MjjvGACZ*dbfyXA0qERfK zo1+PgnMAgo6XF3d7LNsro{Z3poHifDZ9Zbeyq*4_W#Bgydj8{{&mHPSy~B7#*n^a7 z@Qw2L`<%;c;h}`4?k`VFrFUUnU%PI)Z#}mdwFZnTSfEy0ulP@xQrCdCcw2z>`rhYn zJx?_p|C7bMH-C*>iz4Q=Md;k-E${Cb%`GC}B^-4c0dM2J()P~`+vo?96Z?qtVX|@w z?i8~K{U6o7+37_J3hK@s_TLxJM^Mfb&>VDufKC%Dwqh0{bftTCB&zgZ*qag z`bd3Mt6V16zLkZSC1tc68pR4~@g6Si5Jd=C<2L9mM!?Sy#86RBLP-Yb$JZ5++;cFo z6gN<$xb(<*VC7gVbwns?y?L=IV0X}D?HASd6tBRI|569}mD{X@Nm@XDW}8TnXy#o= zJ#K#$Qha0R>%KS?=DAtV=7v@NVA=@;130LNb^Y-U^KiPLjyti)*^7#-= z6v~`*^xrVMK)a~;QbFGU189cM)K6n%9a&k|y6;L=x zlUxynBwztObi7>5rQc}yTuxStEsD)a`Snsq3$O}iu=?>(i3#00$IDF7mhK`z>v+uw z3_849cOULuc9$#TOXqXWhb|dq1;&eY!Yk>qU13=^!=uQRNSjUpB)cFu0RS`8idKXf z>n23$#LRJdSCs^JOnyY9yX@?jZd^O*6i@fI{*ALb+H8)?^#p9hV?^A1txcp;_&gKw zI?HFk`T6gUjV){?ld3>ZRfb8#-)}EHN?wx`XtcSsf`(`q(4b%9YwMXKOa}$uTbM;q zNaiHTp~?HHsQ9JD7Y4LD#k;j@?%12LbLGA?#Dbc;>0Hi$fOpopj7Wrx?Z zB^Ahz{Y93U&uzXP=600Brg=D)=bg!=x| z@B9V${?qSpvjJr~|MWZTEWo9I`klXhfearIP2>O)g?}6T#U+6~fM0VH^8i7?|D-$Y zf3-UQq&t7x0og%d{RIMn#vK4~=3r)HWCnhK(w%?B3FHO;Q}1xH0GIw@nOwjX{)c7$ z-MRm;OwPZn_=jb30x8G;q&r-H!Al^I39P@=A#gi?p-Uj0_)og?mu379(BuT}`d>g3 zzz&rD0K5DnG&z8W^&g@6kJbDq-QoJnWCGj%MG}Fl`Uhxo{e>a_F`8_D#YF!AO%`_G zF8^oUVFxz;AL|bA_xpcynVf&y{o^vZf$k%~e_$pDD{yr{jPma}0rHpsV9dW~2zWAq z_4n}p!kGVIlt5e2-|heX?q6~I#WMfFm>fV{@;?}p{Vz`mBrgB!`xn6k9vLg!{~`VX zZk?Gp@zV(|agq#(RI;%Dhg6O@?lB{D9MQ3dfn|zOp;B1TM1sX&5r;8aN2a;h(h-11 zJ9zT!UrC{2$hi**r#wmDsGv)1yn70)OGtd=UOqF)ZmMe`J5*in7Ms=oZjm|ll3wqA6uX6Xg>TMaXx7D_4cJ0f$xWr+jExIUbgnz5Yi(B5R=+(gIZ^h%m41V=77 zR=Pd0e;vxDk;67t0LtLrJZw1s`0~@$x#AJ(G|Tn!Kls}u!PmUssbgt%GY{yq8MusV z_*4ik>;{}(#q*oL`mjf`y-9A@#j1TiE#rC++Ih$Z2(Au*%|HRCMbak81~I)r>LzJ! zz0j=RF>DPED4?sP;$SFJNjX&Y*3m3DmQ8)s#`#|(RUjGx)V<@~#5pyh=6N74Ld>^9vYs`Cd;W$SzAuJGls59>$E5w#40Mqs~`PbE8m2gy3dn`QHIbSYNe;M@EtiS2hU>2o+mZxz$=D zvB7(^AL6Jsd+U`q>12j0xG2Susuoe%PoBf`BWjk48N6PnNpUUT%AS9h?8j-0+_2o# zs+5)N7mGqwuEvnr+{ggppd|8R_kN13JEG=)KS~Y ziR(Ly5BEoqjG&;9tZ9@5>m*W^s*+|$Dn({AATr5hq0f0J+>-A!MckzTRYTuq=uw8+)lbUe9ByPt^vKkAR9Hro9?q7!vP-r`FC%x}V{g%ggsK5igCZs!!46H3G*F1z z7((VbKEuS=tlZ4QS8hC+f+;@3aoyYB+m=t9`7#}!;&M$hK>k!>Mscr08KXso9v(kc z7$>Uqy;fopvg8>3EUEotQ>*&E3F6p|;fSk6pGG!iJqJ995jhJW_^c!*8kT{L%hzCejA#>a|Km+_%j4{m>Qd;vyA^ts=-FDk(*EQ6 z<~H8>EF6POmN3fq`hD0+%Kv4$E^O0_`*6oYN+%EtG6hmg@OGKZD^_1a8+{@&_Ghu^ zJV^>s=1s}zO!9PXZgp@K@`4bjpX;BQgZwT0kI&nJ(Y)-A-JoT;V;Wde5&cRZuQ9d zW>PO%Z-KU%os5uY1Y%X&OTG1r+>N>5kP~#8ICI5N>E+XK2mx!5S>Y>Ip9=pUOE5ff zDCMl!GE;r$#}?iwSXNBGK?(-pe;Q_PB| znTd=qOY72ZcJRL4tPXmEE@ELqSm5+y$RcRy!XqgT0Fo(6R2+ z!$~Wu2jjb649Iit*g5nrD&@3jmUF$r#e^dXeUjl$1yZ817Bv&iIF&0Q!GND%(?rWy zyc1oG2#;={D4mj?L^D}i@$lUPV-P6@>I6+32ooP#H^>SI4M+}S4;F3R_L+HqLCKx; z6p{83fa>0Fa?O6M3!L7E*s4A`MT-wpMZ=+9<NPX2+`LC8LAfG86KR%I6#)CaaPx?6l9kX6u{!xp}L%c z&^8)Vtq$@6>GL@KEqF2y`~-V(+-u$#l1ya)kj}==!=1)ZtgaH9xX{N4lX@C}?!`Yq zVLPm0DICS%!e!!ej0Hs$Hgj0QNFkK5cRYONg$SD>TU(0c3yhEOK1L=7$- zoox(gG0pYBoz$(%y?UQkEg9iT5;^1sVCpa%O-}uMV>U*C8OO|z8K&$HF0`aF19V%g znc{`hbC>Z9CCZ2L)#LwkdT@6W*lKs zkrx&-7+^M|+zP7&3u=P6x6x$}V=i1cR5(HrC25}}gpV&`>!o$z4NqOoZeI)U;n zJGkRr{8>@xDLnjgvX&0UF7=FJV1tF+H43Ooz&iA5glp36B?O~vjhB=90`PAsKq8I< zDX?lO_#Ts!hj&jx?All`ea3)Zr3JU7WQDxTlBrPqoUW+#`P!lC4W;Y3NV;3?Aw>Fw zxkHLyz>mj@F5o2X4w5<%L7pC6SJILpnlH5j**uhWwSIEJUH{adg^WKTTqQgem$jy! zg`2q{&nla%--9LX4!WG#2q=iDI)J zPjTM{eoK^VWsQsnj{hf6!O%$eth%bXK&N3)x=xtX;^6$abFIm*@0jQqg3~1XoYpVp zBKhsM9XI6se15H|n!K)DuzHCqirT_zC8$fk5Lq@DrO-8IaZ2g_2LSBIdW46?sehYR z*h+2R^lO?6tI>pZ6Hd>BKK#$^<|8b3T_Wm# z2)hg64Gk*tKaNsZP~f{~38oNjqWZz?l(x3Idg$2AWHaa2NF6)#VADgD$5&X`ahpMD z*RgR`t!7{#+mRe$HvoEeHtsu5gQAO(&SAT=b3G|dTapYy^+;bMjpVsj_pc}$9ikQG zB9%(y?Ny(1hIO{xmM^3srdu_~MO>PhqGKeFvFNKk()2@8go?m1RDZcE&v!)gPV4#F z4rG3!x@Ae0KiEblZG2Ej7!qB2lbiY~l!tp)g}*GLRHBINg1@1di_qw;Qz$moPWcK8ZCyxeV}%|P3hRBMh)-7<~BH>3vK zi{c**R4Gl!O19a^){V`Uv(e=T@Dn|%m(7@5({`lJUtC58Q8~P%*3;cDvtGf%*&-%C~hPK_XG@H-M)}n6=; z;!7`EXP=dPG1)-}n>)!b-@e0{cuR6S%jtlg??jSqBPK=lE8xQ_oluL5TxNKEY@zv< z^#j4*OI+|EFn4Qs?1x1pRWo3z#1k!`#QCwl{5b`5fvpl0KvVP@1-e~F5g@c$QAJvz z?lAS}!bNI9J*+UGEL)v+s!*&q8_x!-! z$R`IFw#^Z%^Jt}lGqr~7W@ntu%Pg0Uj&Ii9OZ=G(ZDEX~{p^NuO(n5E7D z@Lwow*9R7?q}LQCmp~o^Ti<21Sk&Xd`5r4Wv3myhVSndQgQRb0=svj_Yq51Y;^YVw zoT@3bwDxmhkE|x8m&Ams*X4S>kqj*P9Ah(8DW^HdF+O3v*<6dLI5;Ror)H0Z4bvr` z8*~S1ccmOr8>`tR%(c^d56QxiRcC1foPWgdf2N=|&)6svLo@4)^OWs7*u&5VoKQ$t z{yK}zT3JY%1K|spCkz_QTq8gkRbO^oNiMy$&?H{tyL(#f5~Xo&686oVbi5%pV_>A! zG<{8@o?6taK#{iPh`TJCtgib>0`9Ck77gQwyrF^*o2*WNGBZzR>c5Z)dTSaDV3O*Q z+#@Dnpm}_W3<0IkLmR(yRk-@DDqGL;fg62rg05AFCgAFOv^fP!jh;6mQfdby=u zM8qTZxeGV3&H@+kMD(6_He`LO$U?MAK+Y7zHikact+h$Mn!C z;L^MOK;D$VC*nQ#Z#7aa5qVmGxope6kb1h9$T{xxq?~#E^34})cl&2JfZGq}f%fBZ z@nO*f&?@1!CCM@7c}eRd^AJb1H1^VGwB!q?dN+?? zXLWdjR+lHL%y&cVYc25vJR-JUuJH(s`R~J@==137dPY1{Q`TiWU2eRQWRPUb3l8+l z^ZPxVQv+VB21if5A=wKw2A1`BCowMrz^{wZQ=xWvOd?ojP;QbN56R(Cwdn%%e{c@L zTZ}SBRJ_gJERdXkdaWhXHFwX2>=g4}geWLWxKn8j^$%G&WFWCRiIVfx1Kf^WH4D8+)lb-!zuO2d+)1e&+J}yo z6N(hMzq!bL-%YojSLxDVxt?^YDIsvFY>6Y}ZO<;zqcEOthFt{AO%DWBI+hj&6%52J zn9@}WdZ37cvbbLg5LUi;&>3nN-25m)s2NMxwzQ_Rpt2>ai|h)asJ$IyVHPP>2ig71cM@w^Xss%*(CnM9MA2%sp}Zuw=H;sONIrjO_2% z4i52ZEbcv{YGdk>vB=2p-Vw{1Zn3y3yD_2XRx?0Al3-Z|=*RS~GV$s@8SneJ4J&Ab zo)-+5qr8Dzsp4_O$#6oD#?W+LnPflN2TCK^xE#sLpj%tgpvH{}>=Y>d%HaV0t+Q>X>5og!_oiQ-@e`C`@6Baa zxih?z`jt-rKyo;A>*mY}s?!6(*+CsfYa>)<{=t2M{isWpIW1R>hj;8?4sE+i`p0{q z%>~`g#LxVGalJ}GV~rSLw)xP)T)Z^JbpNrASKKIlO=)yegV0vunqg4{qGViGjnV|% zI~gACyFb|%#8Xn<6dEHPXv7$A>p;u9OCyVD{b3z=0AV$%@7pngl7fo<$76HNImtaJ zZ*q*<3d+Om>#@T%T!|1km*Dcrbv)Mz?xdQQmXYD??D95^*!Ptdf@GAF z!lc1VXgrB415}SSWhgLeb-Fy0HXgV<<8*ME3Xw1A(<(_+6(OZC9hP#On3HPSTv!8y zmLhY5fF3aI4N#+PmtVDU&&hz}DpvLMExLi!D_Sw$3qV38!s^$c$O8V3V9?}U>PB<$ zL_?nw%4rkft73gL0-4UdBsy!REw>dBeL=kt)nBpYS^7ff!vh(kK}Xh)FTK1g9vjGR zOi6t7CDk}HLmWKjA8?GdcMrd`0!F?gnhXzz0(vX*O`I$ev-esAyoTybC`D)>Ogj<)@tzdw3V4tP5sr{oj{<&(#urViLfIYvgZ z0;CD2#Vcew7AQpLU0&;cYp#D&Y0002kkij2!9Aud$5{kZ z;;B2?LG4o}T+jB=6jsA3GT{0RL{+cGDQD>Di80}iFX3lOf<1@PJP+qvCuZ4Ow*Z<& zGJCBMMz+sy6U>T2*aB1?_wt zpON`*)&OqMD+jo7a8}4ghH-VASSLq>GsN@tsEU#d3$V#|J!36X2+&#Tdd&}Boyj_G zmnM-A%3A{QCBZ%QM#{7(ih1+SOxQnaqqyRl&`1W0#5Gtz%z0R<&7QJ?BAb z1+ID)XM_EfI438k5s4ok12He!b~9xEyV5-(j}ZMa;odn8COf4oC*{IUZVEvCeT>VV znt(T1vD@qzIkl`n=w8Mt)1eWo<=H)*9@TdK^$hQaaK6T{8+L0oT!0SXR*~7ZOXuS{soo=zRSaEqv~9?JHbisED)IR zE2~){TUfQ|+_(>A7E$I{m*$|QBvaTXe(db_@XB4|!!n`Q-N#?d$1mq@IP5E`y&W+@ zvZLv4#aD-R8sz#OJAxUf2LL5_2zw!MscEEhqohwcgJ<3)CTzle=Zx0H~9qx>A zO?$EXgAt?iFnMLx2~=pL&b8<;!9B+j&4FaO4sA~wtd8+4o-^!Q?h#z`!9gVt-UO~4 zVNN9iqnTh;do5Q$0{{lL-v9z5#EY{-)k0}fYVq6!>k!LFdB-msRWuXT$Cd>?R3G)N zm4|`qNz0;x;E`|jW>+Z9?kf~gORHzxY73gfekd_0QaPb03JJ}W=i9zzDbpi$g%NaKM*}p1SFQvnM_k?9h#Pcb&`e! zO{1>%5?Cgn*~{m)lHz27OBWX8fhf=A8KgK?!cGr4D!?G{`O9(Ey{#HV=N6xPG#ac3 zM2kG$0zMumf3Qn3;{9<#&pJSiOZ$_#+*RUmcrc;vZMNJP(~WCMJk zkBt^}FCQ&$5Ad;~5m^*!(3X@bK=C>LMv4r0H8cdD zg5eJk3_*IS%5LI7+H*44a#wKgSR21eH1a(l;1uuaOei?|MD|f_&?9{dP#oyzIlhwR z?t0%x1BC1sN2X)d^2ZrupC<`@gu%*}8Jq1m*!Jz4dTb|@=-;N4S>XMwBhsuxKG-W3 z?17@uz6Ok1TAety;{SG{J#-WuvN_%mTyOi(vgxsEo!a6fZrkWckNN!IEM!9T@%!j- z5M7yx)ezU&CjQyY^80x;0G1gCvvRd_=K18j4&Wd>I8ZA?e4bK=aPDZOGBR?S_*T<> zYb=8ZG!BP~_wz2OPsSB&gx931R#kzVZ|!3(#zo5Mvk`=#X4jWo@+0P|dZLw~))eWX z2@QTHjRclQ*#}0KiD)%022ZCRAw4yI-ZfpW2FY6}5+){gC<)7#&+$LIM1Vz= z{LY@(w%n@t%;PMX;(U_m2ucmZI+n2ty%+<0nVFkGG3ZT-x>&xc#_SL!m_?NQV~|ID zpDcl3hHWYIYx}qNNi06Ym5xqp3d1h^@s~kV(zdd4&P5=1fy$nH&W*_31zwhPEi!JT zezk31O0_2xfDD@{`PK!vNY}et2AD(gXERedTDm{S&@g8g@B%F^*^+c-RJ6oJO7-$D z7aCnCK}MR88*?ay4(~dzfh9iV00TmA`hAAQuAql4>^e$U3>xV}N6tSDPlKIAeNK|= zQN2%!;;+mU6Na%rch-o0F)H82Ka#aR*PLfGwMBl4eeO^e3$h53sDP$H0(fIhtaMfQ z&xudJhKl=QW-zG@P#BG(rQZl$X=R( z-X@M$yh=Q7x$n1B{YXojs!_Gb$znFVx81N?iHJ#WNt5$Y=XoFEXSUtCNO?j+RzUcB@MEq9Yh!+<$Ri*kuk4OXfMVffv-$?BDUA(0;-0FV@(# z$@`;YQFiFhD!{rJgR9?HP)O>M^Wezj0FCfx6InCs>vk`|CNul{q$U6|!rZJSLqqe- zln&*SDxjy3PMNcZ(2A|7#ji+`cvDnLg2lNl38KKNBceHKI_!lKNzOXhnAN)iKkB%d z^1PnuFiP5BUPrHwlidD;38(=g{gY(*(X>0s=|6A50@#u`+jrfr=(~#t>B7wVlI>+` zp+YYz>};wjs;j=Jdfx~r<5kqe@6>X$X0R;}V3wJJLdT+SWe}d{i7R{fr9Y}`?Yy{C ze$K)1aaR7Dzft?*GB?(xvth8ZINnqGgqojFYjTq+Y=Xwj6evc}YxYNMhruB-dpT1!<5N-I(4L=7G_jPzxRTO9CxxNLu>&?K~WvL#P(EPISlF0!z7qK!mJ^Vi(?y($fHkD$E-4l zD)UW}HSF<290|qT{ZP3+%bW^kINC@(7)b49$v+Em&md%Lg^i~ozsFmIp|5x99H-JD zgNNnNtHH1W6BtG8z}YY<_T(DS`N~TAu_ez<0{Dj++#BKi^VI#{pjAoYo)IeOKQo=S zs){D?&2FfXH0J-GnU0MmapmhjO6z|b@*4Ysu`vTP)QA$7j0*r;sVzd35m zf9wAVC1VA~r~!#8phXQx4gre|m>2e6>e^p=3djZl>u&(rf2nK#TfcwVYwXPbD|?L{ zh%5o^aDN4Hf0zCtVH|%oYzROm47dT#{~T;z}cbU;cpZG(p z0>rW8?ZIU9G^FFcCrL2TE{yZ`LsO#Gl2PegKbpOH7_*mAFmAOxXKV>(eLi!KbEy*9 z5dPUePvjLyjXYejTTv{U)7KIcD+7=vkV`o|jqB!@$9N}Wc;%jMhGLerA|wo^UWqoj zRxJp0FBq>(KeX0PRs&kQwD%C84t-2R8V1fjN1uZbUnGjk8@(-idlg6IxvE+mQA2R) zUuz_gn~qC0XM<(Wk53i*14mjqNsTqND@{s{8qaRoT}^( z@qCOE6tCOyWQsJcIPuayhP<#>A4RKV20MNx-FL;K{n6y?&jS!YTO!h?{Z8+!VhBOZ z+p5-$A)Yq1U@*|rG?#TN8i8-Nn=pKIuQV9=^ZremFRM(b@Mb3h@yNGlDFy=iASa~w zU=a-~OOwTy#Ts@iu~@vj8Jt0QST1hpDJL$>AOVAPMlPW{B}nx-IY;UlOdw#|3iZ_& z!eSU6Lc$kvHNdnfM}Rb!WI*N`9RiUb91;;vc^ahAW*WqghCMtEi#^8>4iT)QV4Ao$ z3r`tWan~J}v`dc_(71!NLD8nusi47uZB{%PTSr8~#nhO$mTv8KR`)(6RCHs&>%H{{ zk|2*@FmWdbXbJyoB4cOaW=r{>s4jAVHms+bMXMuq@w+gC?8LMF&jQlXJV^YG-^`QY z+VOsL$zXGS@EfAPC~fBK6@C@HB(T3NQaZG9*~oFp!WS|agGw;aj&|gscTDo1=6hU* zzZSb(^8#dXmT*#RvW_y?r+9d_Zac4@{7r% zt-nm;efRulNc*{l&i=1F4KFT6T3w7*rpJ|wwOzAjdwrs22ak2x&Tyhcjo}|7!~4a~ zw~?BmAro+B!L`8W1jU-nKm2+g-1Q5pZzO6CCt{eQGVCHVpyTiS?tB4I25!d-dU!Zq z-u_AqUQUZ`u7ksRy(1Udsl zk*oaYTTKYyk!&=64oK7GqH{9WoeSTVNaS;8lH#Q1;0oKReaCHBb>@*>Rj_D(jZ%cU z2g||9?ZcP877&``u<^yXlx3&Sl^mo0wTjx-Z-}sB{g5aJc$){Pg;m$)^emg!kYz^H zrHDbwL1}3Gw4e@{EGSdgMYPW8)wTg+JHE$E-o$!-*3-nD!b*^G>!lU`i@T;Cq>Edl5Hc#z-&hz;z)N$8B|FSluP+!cwQI# zVqzo}{nB<&(qv9E==a9n9CA>)23!W+q5^Z>7EEzzNARU@9kRJI(%&VR+CBvfD`!VX z4xH`MuvUB4%bN30GUVOLr{ImLN^(@mL}t`}7VcMqEfVbk-1=0m-IhCsm-cv}L(_a) z1lt#fx>2xdTB-O`U7~H&SASN>CX}ewGCnr%KPnId2)uKLIISH;I#4dI%XWT0U4XPB zSh6QAw0W`kU46K&iw!OLMmcreVsX(y>ZLwS$M%UN6PtnvJ*M?Ql~f0enMloOU&0T* zc0QZ#{6rc8oR}5YF`G#dztZu0)px3b%yL?QJ_TgvKtv$v=B%vjoJ$_v5K-%;Z-N=R z($>?^C5tg>DfNxW@akUFxw8Yfk=$#_1CS+d!G6LV2qia0C75fDiiES`&PnPJxou-C zoF8{JLb#+pSaiOxueY!7;)>wWeYu8SR*@?fGt)l-^l#2(xrBl5^w4enh#WKMM1#n2 z3xfY;Kao7xTIe$F7#Hb zIB$s(fRx2vq3B3%wh&)|2S(Z1?(qhh@5Y&oF4CVQQga33St-R}uJm3h6q=$3a(qVN zF{r|dgil4Eo@nfv@Vyy~T$?OYn8}PwDQ|i(&gjXg;KN0@aCd%i%%20Fu0mFG~ zo+vmfcG7wjW7ySyuYVXV84acD-dq8@LE!MG& z>_ed>AV?p4=d#Yz4Yh@19jh(sM1jXdeXt1=u)QawQE75g5-9h-V^ys4M^`(OJl)FyA&;J@Vifx7eNTaw|#hD^KinT72UJ>HaFq>rhg&uNo!KJ zT;20|9)y@|^~z~!6yNk>A?Zhbvi^n<>JNU(zAw;$S6IQs{yz8`F;?)n0p|l13HT&! zRvm$aOh}i-vr8uc7qjWWJ87{&Ca>9kVv^IPQ@-Ddp@qVzfp%`OOA%%{XOEPUj4H_c z-mY5w-AMaag9HDY8>Zn*P=09mGWkrYVEYP|{<$7E=SXJv&uVc1YDRNN1Wu2FdSm*0 z#jE6mdAF7(ru6FXN}2+{`V*deR={f(#}H@x0AWCYe;7C{VWD{hMxdzTYk(^lJIy}m zQcRvubv^fKE+)@dN0{s_InK!jMPkL&&Me)goOBc#3|x}{4l?y?qJT!qxjpx0%+Vr| z9j}*b4c4^IS-xzOq^QJ9b37$KWy5PYN;IVT~4bb?vxp1Q}(2blz?Kq3mCj^be9)DAULBXwV-tbS}ph7+VR- zKe`U~Y+x7Sj?ig-Cq#*T3tJQc<7YMeiaL$$+Qil5^N67CX|)|=dF>A_Zf?%{bs6H* zNwmJZ3*l3%#+QnraP)mWc^;5G(Q^bLZ?W0bC^RYp&u%Rc!dYASogbQgb<~Eo^Lul) zWqX*yjydjy)u{p{k$V1@5p7q|;4eUdnXX1IW(dS27$Ig%>^15n4nCV%!%=1cp15qs z>zqD1$0Fr5=f*W4P! z>#&$~c=E~LXM$Rp@`+-4Os#mCI$_kH8PcT-di@ zK7QcMtbD=lEN&!Z19g*R7cPuMEGu)Kb$^{a%T)JLY}qwQkm_&H=k1oZ7P7<+P~k4c zA&KYCnXLNG>aG)veS42f&0bOtn}8^+9dw=9!#KL`IHTu^=?7o>!C@WOt(iwdIuJwq z;>tcd?JJ=;jfVipa+*6hjhcaZXU)IC-{0Rq$p7Jaz4a~XVY`AN)C;6Ky%uM&kGF$L z84KI_S@UtMw;P*Ic}rY4>|)31|_MhKW}x_t+z$C3ER+{`vWkw#prVWkb@jlI6_lDV~8=D8OgM z2>{lNC1UGNQF(u;_R7;2VUyfHp1ZI^ZDu^6A(Va5d3&Zy;xX1-DeWlNJ z+Rg8Ji$TrBITjjxK`=aE6ga3Yfp^=tsiGaI3BA{nD9F zP%V0Nji(KUcRWQs(mFeFOWH{4vu5}uu%>li6$3H_*YU=hyU@ zwjq17W3bN0$*5SBFGP25;j1!@>uffBwnQgnzimQ)p?2z$gKfG#M^9|_RZzFT7D*sa zYTuV;0~}_kJQfK+(4iwnUPeaYVK>Q_k=~G;KcB_gVjO#8fA1I_EQX0(l{oRSF#Cgs zf;^&jbyGYuNu^sKF?HT$qh5On`ClJ)-aeM^h_GE+__z3Z^4Sp;m}7l4-;+VwoML~$ zAlAen<=yp0EgV;~Wo;>Rxnmr1g9z$GCl&x3Qz9eN+h&`ZBxDA4X((3 z&_eTyO^MQ(wM7RVGn<0e;7r+3=cFs0xAgr+3K3kei;h&;IH-&TRKBAvw%Ixw<#VaBY`lNuzacFCMdEr16BZN z_Rvwiu&rjAdUO~{pATbkP-JZ_Znw7y;9EA`R>* z{9WQ=0x|z5C?d5E}k@iWa!8%2-HmngC~nOic$Z-*6OCCean{H z_S23(B}3HL_WjP?%crQQ)|fA|h@y$dak9Dyq%bnnJzkY_)?%&UHeKFxf#Y7FE)l-u zTS>9<+c4ZM=C*F{U{19_iFx|0ExJuy1ff9P4rx~O(JqF$#d|X9^|rAtu`KURY>fP$VE!K;83uRngITeD<+%kLUJBGFKEw z(U(AfLjT)EnC3pvhF9MnocA`8cMUeW(<_H@<(0u1{FVrl8F2b4N6->LPuFOu_hijQ39U^3pm{G|Cpn5u1a_K zX5D1)n62~?UA^7Rs!Q<|WvluwH=U-h$JD2Y31A~FX>6t}x>W;T?>Npp%FHYLY;HnZ zaqMuBI8yUq?7AP^bpA}Kt2^rTqkuq+e{j$O{1klFamDK5?hOnVh{(LzmGHp0?J0h* zQ_xetl%Yn(v#KjYm}m@wwF@64FR z4l9~`VmFEYneO`xSgUG@RIxu7!S)f|uViVWS=WhjobZRgd~5Aoo-T;{w!n+_M==oa zvLt3R5RAB`wNj`I#Fmy;odZU$QbyN>a|hO|8y-lSCwek3wsl^eNV1wg^&kcSyCe8( zF~#pwxe+HW*^CG33}7~}q+bGNrBwq6$!IoH0yJ|Ft)W&W^Vn5cB_?RBL*0r zSL!fYw4&K7OCHJP$BC53uV6&!rR*F}v+&+rz$RKNR)#PbI$DXAvI2SZ zvcYL6L(FWVOTUzGy>ZzRE1JbA@onz&ri&#NLJZk$ZRG`fc&syI14roMpp;Qs7r)Y_ zF=O@O*!-rDSI(!r8UIarA1+WMAbG3!$$C=>yF}Yg_~euEq_B78<;%ZYh{)CO z_3;yKL4)9L7J%=DVXv^$T36_A3!8tB-x%{iF(8038NhLD#xUf7N^e+K{Uxu>4yQE4 zGh@y;@b6C7-$7vzgh7IOID>ln5HJ(8x$(jF$HOTtYra58#G}JRD%;PLVM-NQj7ZgD z=*g;%Don|^sXigfl&fDzNBZq@S6wufsdDg7sI1L3RJrb}ni_abL4IedE#oXOB%+2yrA9n zWjvqi&l!=96PoI`tT^1c(!%w;W{x*60i>NCwIlTebLkkf@5@Djxt;c;SrnOpb>5F+T)Uc(XP{`2C3wOID& zp^ud0tuy9^YpR+tv+K5gtBkC`4C?Anz`K|~>$5@}gvXCc`QbtGr_aG5{h>iByhOf1 zM+ZE=Y`Z@d-!^T>iH530(Q!AQ`87BRX*%yzywhUmq%=_D)LGMU736076;%B_MLGU2 zzTN_=s_yw8_Fj~dlI~PM`qGVnfPi$jbP7mF$_438xpYc*cT1;qBVD2(DfvI3&-Z!s z_pX<1-vtSy-&{`U_-3U1~h<7|sb|`J#hKOP{gunfGcu)S^0T>ay$5 z4Y_;=kWcPLEawDa1b)@}D{1mWOf6xRa&x~ZlFzwS4~jMVCEeL4SLT$HqFQCe=qA+C zi^wU^CM!m_aCo}WRIoS?%Hb5AFb6Ow24;S+r#in`Ec{ceJF+D zA5LpjbytjjDEv4}QO#LJ#{!A&dl*c$4PRv?scWM|;uYAD7f9urGv)8$KlvSHO;W|3 z^Fv8~Pysuh(q7TPTAF5=`-2OmKp{HERfe;!=XArL5IhXkY}==+%R6ZdH6NYqtU|4j z8RCyWw)Jvvkx6_X>Zl)nw1M=dCqhm8$!E(L#l1>xP!!Gl)=R0PD8tcQO|)bB=yW^C z(+lQ;f~RFz2!WjjFTt`QpS2gw%~e`PcZ&RL=f8ZOn9X(tyY!_@L~yx%Ltb+^nJ4La z_;nj~P3)u)X-(#<22oGqOa)U!P3a~y<=J9iN)f1z7CI5*`_VX0Co9!(ax@#h8nvDa zfou|Ct{U~63qkEz`02Cppvj9LNZHK=6@6#(L#gPOl4%8`mt{F9*V7fC%Q91{GebF{ zGs9u({qB^(FW~~G?}bjRK+vxw8mi&=B zb?>()xjZ75anQ{ROfYx-QCsrxD@4-b;?Y-3&O`8L;{5ni_N`?1BAb>KsT)vIf( zA5J!OQp5r@6O&d+;fgHXN6bWX7-Jr_C_72k*c zI`gqEe=&o!?Kh)3=TFF&5`57s(72tz98BF$%1@)Lhn?hUzP@$tHXBWxh7dMv&JQO% zLeGUOO08Oc@eH*_7xemNckB2&g*Rz?76>LG77T1xN4rtO6vDyVg=`N#=nL+Z^1r(( zd$#DOu9WlxU3vT9Mo)9V*}#K=vP0$d7@pp2nmsX^b6OSchb!lYHRnd6Oz=>yL`v>^ zk7^w%Bsjqjohl0iN`H8tZl|`|0W}fbKyvWo9{kyH*b)@h<|tk@v_;$Zl*}BFzofTv zh;-e1d`}*p7)?7lq^3FSg zXRb?dDB-MI+#O?S!w`N{-nM-xyII&C4>EcGiP5vLy~8xgTh_=|)ah8JJF zLrWD9h1Tp7qhc?<8NKJUTYW>p^(Sn4CVXb+HLBnHw>)e1y(ejw>qJXwdgonSQQC4)R+kGJ$ydPon#=}o?%p*g zm%alBJCP#UkJtz=p779;BFP1U=>|QlXA7JW-AuLD(x4rQROVSIRI)2EB&ctr9l55F z>fZ|pv@zB6GtD(z*){bV3#FuQ^rllC#;2z=>kqYz67j@?3l2pOAX)pbV{>fRxbtoE zKP$<}HkoWfd4w6Fl%=1Sy@-lO2E*V^MU|-g4!!vU4!1uAW(dzOaGQ5-zkQ^*>p0P{ zOHdbz`Zm~6t-v%`6E^mE>LSr7yr8Cl27C0W6VF1($@8P0%gac!_5u6dtDw;(K7M!a zhN@Avvypjvd(+JH?qUzjKs^$qa524*FyZR>&~OSZsF2+}d}sI2!|^x7y=8}llw&b5 zuo;GoXJ5yeG#82tnuLtdXOq8?zcuj;tR5;diCJu39!S_*CKgaQdu!y*-=0$EUv@2s zIM9AY5#$>&D&`yp)f|rzNh9_zdPyC{VOZc%t)gPAVIDZx=O9a7OI-R&lx$8OO;}7@ zm==)}4O+j|{^Ey|2hHK4o8b2eQ3#=2^QB$+J_3gwrs<*Sm(5`AM9dY6*HRA+J1{ud z-}eVjzYR!aqR;xI&wL!?GC=t>{R#Eg=VeMY)OtCAOYmc@i?OjybA(q#8|UXHlgROu zAGgKu8kW7jB}zU)qIK)fefCNlyqw#b3>IICL9~ZvUSY$(s=7Cb0>`p!ropkH$Fl>6TxsNWaAm2#*#G7p7$7xKav9W}|gFw>EnGaU&TSf84 zkg3;na={Y#RAV^nF}2C-i^wIN&-={cd%4BEg>9!RMT5;=Ew9Y3tju=$+VYc<;uDk= zCf7GY?Uvj7)|D&+<9@uy9J~Hv^#-q7MR*b|YDOQ{uq=CDy>oSL4=ZSqxfQ&_iSV68 ziA1l&v+5R_D>Yk6y-1vCVL36Z>V2Jzx~BYQMeg=eVMR{up0fho=YPP z%XrEA#WJv|?g%vmc2P=&CokhpvCg^!U%YB-g+k)1m3`L+#2)4r%&6?yv99~v6Bsv~ zp?DUtZf|}vLc|{LoJ#S6ut%pphG^&*+r!2x&2l=athgz-M}Ql@Mn~Jj;HSYUl5w+} zZDTK&Yn<#PN_aT>uBj`^`NdO*fS<7ldKGhT&u}+hIGv+Kt;!^c(;PDLb+?JNco~hl zNJ8mJYk~=zv&u6XQBZjD>}f<(UPW(&8;>OiDI{onTJl(>Yx}tn=E*6Xe=)Q&mBTMy zuO|qN=Wl$I1&>!U$lY{){2VKKkDWmOq~l@`!_)| z8pr)ae<+rqMje=0=h5Jge{E&J^Pbw!D2ukM7fRN#lJnDTnl7>>IG8`^L>Nn2H#4<5 zw@7mu;pDe)L{Er6Q9$!-)PRLQ??~1cyhjnbIo|d7YUxXzUuA@SN!>t_867L5 zMlK@t^LnuKvR$b&8b1c*0OSdgQP%>r)VKXG!ENgOoNQ&~N`AqUj|#=F^DNuMbxjSU zhmn;|ebkkaj^7ixB=Y*H$3^}msXy!Mzi{PVWF<*SPEAFX)2cnPn=Rg69T^EV$}OTF zBjB|+*!wioJXAMV6Siiys_yWF7kAgKkU4uD`w@#4oFGxp=P4^hX^}|j8p#TLXcEDp z9BxIACEc3JTT8UyP{j~dxH;mN^dG)fz?nyol*1j&S`;m8)bKk!AxL~?lz_!|g{t#p ze101pb?^m;?snQ*Q6%?`SJz3bpI@w~s4v!0>RG~NbNj(c^ye0YqtlL#iAd@!eJ5X} zljk(38IcFr6U|}cGX({X5`73H*3g=qoSdn$2m7og62#Y^2OP+3GLmRROvE3st-ri% zZNqvf`aV7r7t;0fp`NY(*OQ1u!Kw!f&0;O`Y(_Qc6WA$~b9NjXEf|qUX=!t-IzOj% zdgHFXOLke~T+jA&;bw?)iuW=YkcZ<>zigKx^QyppU}8Zm^2K->FSVnq!&M4uIJ!#V z9_6G~HK)&k#BZK0W72W)AilvX%8`o#k!`_Hg686?+(elaz5jvHj$m`l_BM*cF&eaj zx!#r`LLHOz%X>Gty@mA66dhh`9@cFeRQ7PKh1k6Gt6ov5qLwWE))fbj*A}YLa>$U} z=Z8;2bi*XX$tl4|jkMZ}QIBSz8rMeoLnu%)2*?@5i=HocXxyB@qVI^ z?LG_-_rEZ>$2>bU+`fpvJ3b*G2t@VE-JbV`V=rRR=Ih!vm>=ECtE@qCb8XS#!t%Fh#M*jrIy2oh&*>(agsHRzQRMAFMNtCCB5a#Db)>!4p+s`3_YyZ zB?U=_B93lb%qcf}OCGxM525gzF^=0g%nQ!jIiqDk@!e<(an1ZnZIiT~g~dDz0HkJ!D!p45B7BsQt7MTjH4p_xG(#*QNgZoT5>DB(g4~)RIuP&kTU_N z1#LJTm{yrpIpdjZxYvAB*5-t?I)@cxH_&#TC}Pb>-^k)liO&x~*_dkkw!Tf|Pnwv= zo&E4x&GBA&O&N!)Xy`tjdIsciy@`1^(@DGBmXn`j9!#tGgNsw-;Jet#vD8tO5w#rW z?-}oimeH{Nh82A$X)vJ)P_O3Mw31X~q0cw;7Z3-vMP*HsOJSOd)T*k^pH&04aZg(H zRi~3ua}YL%g_7v$Uh@a7h(`;T#KJ96s<>7Oi%FG!XQk&ndf6RvwrFEOC@+@(RYhF1R^v(4 zZ7De4CMUW@K3CY6BysaKWo{&S5A?N$e^_|rDMWf;5uewZr2BaL!@XDZWwTY7ft?7c z(ic_3ZE1R0k-(cBs8;VyJcGNQ5CY94aa)4pr;?rqnRyfLuNTmV{^+E9qv0=x<9)B{ z;$AId;C1+qqIb&|i(amlj-9?+WtyrDFPMS<$+M=SqSA3(W8;-gI-(qouOsCyMIutL zjN7iHm4a$+UiEFJIU^YY}c?qq@Tcz)d9TTWRofP6p;o2nV`Ef{vfU{!Jhg~)&(+j zV5Z<4&#?6+F$sx4A0fn@=|_#$r!EJ?jqpPgoO@=g&u~(4%nk-#e=>2}3B!AtDB8pT zyt&?zxH&pplC^`=)4K-F)}2j|+-tO6_7?fkV6x#)T_p#-l;Y?ry{40n2(Hl(SFDvL zTOn()WGHemb5HgJTP7-L+qS_zbLGmPv54NhPHz=B>zyyt#e`m;$CgFQ zt|L?CBck>Qw!=w~OG1uALynHa!cOP{ecqdNeAzNUg6hSRZV64!xD-Okb-G{-VQA~F zxr7gW4GM8|;{#A+U!sUpAF+{+eQU5z{~ACaG^f&AF+fHdfUFtVg~VWkeg6%bV1*66 z&G<^dn1Zptzmba}YSByz7ong6+HrfUwuykJ;?gKpeAx>lD+aqQ*JYCP_X#|XNKQtD zne?ojS5R@g4Yv(@bO-ZOBdiF4451amhWNDH7qq9`-^^Vs-rHb{>7ywV+<(3JvX(&X z1H2^S>sYslPnX%<`wQbX^6aep-ACK)Ez6`DyjmY~8Ck{gqHI#MEXKBe&U8IILU6~f zp((WXU;EM|Ur$*`0*A_P;S}NgqCpozL^xzkt5FI)n~`8{agV*Z`jm4+pWc5dR(Skj zu&NZp`jdQChl$3()Fh=-ah8to{XOR9%O4V^SnlR4N+)C`oSevv&(ptCZa!N-L`yeO zbh?mxvuZe~mzP^r(F1_`t=5Bh^^dtDL z&pE>A&{OurV|KQAiPGSgMy8?B3KSxiiR3TCn|eo9$g!uqW72!qA=vTVwmn9pgC%)^ zyt4c~#_a-&fgKOoBB_Ge$7Uwo$;+b7RVB324z-d6F2GsCg60}Lvjk!$uYlJv5!}Wu zJCgl*Yt5xUqgjV%ynERuY3inC4c1#&PUo+)pif30;WOc}^PolZ40ZT^8P1_rCM!@` zroOLg9c}!!qL?SG6tQN_*GKHz^dt*><(!l3b6s_h?khJ#v%~i|@vVtA*^BP>-~0o~ zR#H7YYF@FydbuE`T-H;|`1aZgaL2n!iz5v{Ue;AzEzYj>%-YJvCI)VH;eCh@g-rKp z1oVyZr;wvYa3oHGL;ifHdpH%z`aDXKFn>TUYUTcsvA>R{C@=#*_NY%rbHfswRiupT3)$4jA0$SD*>P`%LdG<GjW)Y_OYI&TzTl^uO$Y z5;Yb{5GL#fCXtc|4Q5n7$}<;I+kWOLovFZa(4Ey*L=M;yVHV(%Jju-R&=5@!#8HZu{6;A%hOgi*DIYr+qF9CM#jg4HTtbG@FvA2$5`H2sZUaY<41di|_x(dhd*5o&Ye8i7tNGAAi&4I1d zXBPys!MvfqxcsM?sF@2Q(V-lvTqpXwk4HSj5M}u~Wf9(NaR1b?$b@tFkbidNX}K|3 z+g(@l6LkIfMkZbAENY+20OqWD>D6nJz@E&h1G#G6W*(rnuW%XQxAB;`OocK~#a6^7 z#-0|*?n>@X6$;g;%%+rHHGa~;d>Y^VU9(s3!($6={QH)OZK{zRfDA6&hMjs2AGgaAz5{=zK+H_;|hi z=G}$%YZOO|P5n*hK^NbyUgk&PYjvHQvQ#5m&q`ttJ4UmZbXK;UYSlpZ!s=27FJ$L4 zoelX*%vMLk-aV0lr}66kXpc5uF)_*hlV60_3#g|aI{A=L#OTrM>lE$9a7D$+sJshm(u!aVDdRUfQ2 z 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 diff --git a/main.typ b/main.typ index 2734f42..c84ad95 100644 --- a/main.typ +++ b/main.typ @@ -5,15 +5,28 @@ #import "@preview/cetz:0.3.4" + #let kL = $L$ -#let draw-strand = (polyline) => { +#let draw-strand(polyline, style: (:)) = { import cetz.draw: * - - set-style(stroke: (paint: white, thickness: 5pt, cap: "butt")) + + set-style( + ..cetz.styles.resolve( + (stroke: (paint: white, thickness: 5pt, cap: "butt")), + base: style, + ), + ) polyline - set-style(stroke: (paint: black, thickness: 0.75pt, cap: "round")) + set-style( + ..cetz.styles.resolve( + style, + base: (stroke: (paint: black, thickness: 0.75pt, cap: "round")), + ), + ) polyline + + set-style(stroke: (paint: black, thickness: 0.75pt, cap: "round")) } #let skein-canvas = body => cetz.canvas( @@ -22,87 +35,33 @@ { import cetz.draw: * rect((-1, -1), (1, 1), fill: white, stroke: none) - + body - } + }, ) +#let arrow-size = 0.35 + +#let draw-arrow((x, y), angle: 0, ..style) = { + import cetz.draw: * + + { + let len = arrow-size / calc.sqrt(2) + set-style(..style) + + translate(x: x, y: y) + rotate(z: angle) + line((0, 0), (-len, +len), ..style) + line((0, 0), (-len, -len), ..style) + } +} + #let skein = ( unit: skein-canvas({ import cetz.draw: * - + circle((0, 0), radius: 1, stroke: (paint: black, thickness: 0.75pt)) }), - // over: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - // draw-strand({ line((-1, -1), (1, 1)) }) - // draw-strand({ line((-1, 1), (1, -1)) }) - // } - // ), - // under: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - - // draw-strand({ line((-1, 1), (1, -1)) }) - // draw-strand({ line((-1, -1), (1, 1)) }) - // } - // ), - // h: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - - // draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }) - // draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }) - // } - // ), - // v: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - - // draw-strand({ hobby((-1, -1), (-0.61, 0), (-1, 1), omega: 1) }) - // draw-strand({ hobby((1, -1), (+0.61, 0), (1, 1), omega: 1) }) - // } - // ), - // strand: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - - // rect((-1, -1), (1, 1), fill: white, stroke: none) - - // draw-strand({ hobby((-1, 0), (0, 0.25), (1, 0), omega: 1) }) - // } - // ), - // over-twist: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - - // draw-strand({ hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) }) - // draw-strand({ hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) }) - // } - // ), - // under-twist: cetz.canvas( - // length: 0.25cm, - // padding: 0.25, - // { - // import cetz.draw: * - - // draw-strand({ hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) }) - // draw-strand({ hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) }) - // } - // ) over: skein-canvas({ import cetz.draw: * draw-strand({ line((-1, -1), (1, 1)) }) @@ -137,9 +96,43 @@ import cetz.draw: * draw-strand({ hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) }) draw-strand({ hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) }) - }) + }), ) +#let skein-generic( + kind: "over", + direction: (+1, +1), + arrows: (true, true), + styles: ((:), (:)), +) = { + skein-canvas({ + import cetz.draw: * + if kind == "over" { + draw-strand({ line((-1, -1), (1, 1)) }, style: styles.at(1)) + draw-strand({ line((-1, 1), (1, -1)) }, style: styles.at(0)) + } + if kind == "under" { + draw-strand({ line((-1, 1), (1, -1)) }, style: styles.at(0)) + draw-strand({ line((-1, -1), (1, 1)) }, style: styles.at(1)) + } + + if arrows.at(0) { + if direction.at(0) == +1 { + line((1 - arrow-size, -1), (1, -1), (1, -1 + arrow-size), ..styles.at(0)) + } else { + line((-1, 1 - arrow-size), (-1, 1), (-1 + arrow-size, 1), ..styles.at(0)) + } + } + if arrows.at(1) { + if direction.at(1) == +1 { + line((1 - arrow-size, 1), (1, 1), (1, 1 - arrow-size), ..styles.at(1)) + } else { + line((-1, -1 + arrow-size), (-1, -1), (-1 + arrow-size, -1), ..styles.at(1)) + } + } + }) +} + #show: ams-article.with( paper-size: "a4", title: [Implementation of the Kauffman Polynomial in SageMath], @@ -149,12 +142,12 @@ organization: [Dipartimento di Matematica], location: [Pisa, Italia], email: "antonio.delucreziis@gmail.com", - url: "https://poisson.phc.dm.unipi.it/~delucreziis/" + url: "https://poisson.phc.dm.unipi.it/~delucreziis/", ), ), abstract: [ In this project we implement the Kauffman polynomial in SageMath (Python). - ] + ], ) @@ -191,15 +184,15 @@ The first problem in computational knot theory is to find a good representation - *Gauss codes*: - This is very simple to generate, we just need to label each crossing with a number and then write down the sequence of numbers in the order they appear by walking along the knot. This has the problem that it is not unique, for example it does not distinguish between the trefoil knot and its mirror image. + This is very simple to generate, we just need to label each crossing with a number and then write down the sequence of numbers in the order they appear by walking along the knot. This has the problem that it is not unique, for example it does not distinguish between the trefoil knot and its mirror image. - *Signed Gauss codes*: - This is an improvement over the previous representation, on the second occurrence of a number we use a $+$ or $-$ sign to indicate the handedness of the crossing. + This is an improvement over the previous representation, on the second occurrence of a number we use a $+$ or $-$ sign to indicate the handedness of the crossing. - *Planar diagram codes (PD codes)*, this is the one we will be using in this project: - The PD code for a link is generated by labelling each arc of the link with a number. Then we choose a starting point and walk along the link, when we pass at an over-crossing for the current strand we write down a $4$-uple of counter-clockwise numbers for the arc incident to the crossing. + The PD code for a link is generated by labelling each arc of the link with a number. Then we choose a starting point and walk along the link, when we pass at an over-crossing for the current strand we write down a $4$-uple of counter-clockwise numbers for the arc incident to the crossing. There are also other codes like *Braid representations* and *DT (Dowker-Thistlethwaite) Codes* we will not be using in this project. @@ -207,20 +200,18 @@ There are also other codes like *Braid representations* and *DT (Dowker-Thistlet Reference: #link("https://knotinfo.math.indiana.edu/descriptions/pd_notation.html")[PD notation article from KnotInfo] -The PD code for a link is generated by labelling each arc of the link with a number. Then we choose a starting point for each component and process each component in order. +The PD code for a link is generated by labelling each arc of the link with a number. Then we choose a starting point for each component and process each component in order. For each component we walk along it from the starting point in the component direction. -#figure( - image("assets/pd-code-crossing-ordering.svg"), -) +#figure(image("assets/pd-code-crossing-ordering.svg")) When we pass at a crossing that is an over-crossing for the current strand we write down a $4$-uple of counter-clockwise numbers for the arc incident to the crossing starting from the _entering under-crossing_ arc. *Algorithm*: ``` -Input: An oriented link diagram. +Input: An oriented link diagram with starting points on each component Output: List<(Nat, Nat, Nat, Nat)> - Choose an ordering for the components and starting point for each component @@ -228,20 +219,18 @@ Output: List<(Nat, Nat, Nat, Nat)> - For each component: - Walk along it from the starting point in its orientation - At each crossing, when at an over-crossing for the current strand - - Write down a 4-uple of counter-clockwise numbers for the arc incident to the crossing starting from the entering under-crossing arc - + - Write down a 4-uple of counter-clockwise numbers for the arc incident + to the crossing starting from the entering under-crossing arc + ``` - Let's see an example of how to construct the PD code for the following link diagram -#figure( - image("assets/pd-code-0.svg"), -) +#figure(image("assets/pd-code-0.svg")) First let's choose a starting point for each component and label accordingly the arcs of the link. We will use the following convention: - -#figure( + +#figure( image("assets/pd-code-labelling.svg"), caption: [Oriented link with starting points and edge labels.], ) @@ -249,7 +238,8 @@ First let's choose a starting point for each component and label accordingly the Now we can start processing each component of the link by walking along it in its orientation and writing down the over-crossings we encounter. #{ - align(center, + align( + center, grid( columns: 2, align: horizon, @@ -259,35 +249,38 @@ Now we can start processing each component of the link by walking along it in it block[ #set align(left) - First link component \ + First link component \ First over-crossing \ $=>$ `(6,1,7,2)` ], + image("assets/pd-code-crossing-2.svg"), block[ #set align(left) - First link component \ + First link component \ Second over-crossing \ $=>$ `(8,3,5,4)` ], + image("assets/pd-code-crossing-3.svg"), block[ #set align(left) - Second link component \ + Second link component \ First over-crossing \ $=>$ `(2,5,3,6)` ], + image("assets/pd-code-crossing-4.svg"), block[ #set align(left) - Second link component \ + Second link component \ Second over-crossing \ $=>$ `(4,7,1,8)` ], - ) + ), ) } @@ -300,10 +293,285 @@ Every directed crossing appears only once as an over-crossing so this algorithm `[(6,1,7,2), (8,3,5,4), (2,5,3,6), (4,7,1,8)]` } -=== Link reconstruction from a PD code +=== Signed Gauss Codes + +Gauss originally developed a notation called *Gauss codes* based on labelling each crossing of a knot with a number and keeping track of when we walk an over-crossing or an under-crossing using a sign. This produces a list of numbers where each number appears exactly twice with different signs. This has a few problems like the fact that this doesn't distinguish a knot vs its mirror. + +This is solved by *Signed Gauss Codes*#footnote[#link("https://en.wikipedia.org/wiki/Gauss_notation")[Gauss Notation on Wikipedia]] where we also store the information about the handedness of a crossing. + +More precisely this is constructed by the following: for each component we walk along it, when we pass at a crossing we write a tuple $(plus.minus i, plus.minus 1)$ where the first component is the index of the crossing with a sign indicating if this is an over-crossing or under-crossing, the second sign (that can be added in a second pass over the loop) is given by the handedness of the crossing using the following convention -We briefly mention that reconstructing a link from a PD code is not trivial, for example the KnotTheory package in SageMath has a #link("https://doc.sagemath.org/html/en/reference/knots/sage/knots/link.html#sage.knots.link.Link.plot")[`Link.plot()`] that can be used as follows +$ + epsilon(#skein-generic(direction: (+1, +1))) = +1 + wide + epsilon(#skein-generic(direction: (+1, -1))) = -1 +$ +*Algorithm*: + +``` +Input: An oriented link diagram with starting points on each component +Output: List> + +- Label each crossing with a number in order +- For each component: + - Walk along it from the starting point in its orientation + - At each crossing, write a tuple with components + - $+i$ or $-i$ if this is an over-crossing or under-crossing + - $+1$ or $-1$ if this is a left-handed or right-handed +``` + +Converting one code to the other is not too much work as one just need to first do a labelling step to convert crossing labels and then convert the over/under-strand and left/right-handedness relations between the two notations. + +For example the _Knot Theory code for the Kauffman polynomial_ converts the *pd notation* to *signed gauss notation* as this is better suited for doing manipulations directly on the crossings. + +#let style-stroke-green = (stroke: (paint: green.darken(20%))) + +- Crossing switch is just two sign swaps on each of the two occurrences of the over and under strand + +- Splicing is just a matter of splitting and rejoining lists correctly, for example let's see what happens in the case of an _horizontal splice_. There are two cases based on the orientation of the strands: + + - If the splice happens on a *self-crossing* (crossing with a part of the same curve) then we apply the following modification to the link, the rest remains the same except for the curve containing the spliced crossing that is changed as follows + + $ + lr( + [ + ... thin ell^+_1 thin ... + #skein-generic(styles: (style-stroke-green, (:))) + ... thin ell^+_2 thin ... + #skein-generic(styles: ((:), style-stroke-green)) + ... thin ell^+_3 thin ... + ], + size: #1.75em + ) + & mapsto && + lr( + [ + ... thin ell^+_1 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }, style: style-stroke-green) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }) + + draw-arrow((0.1, 0.61), ..style-stroke-green) + }, + ) + ... thin ell^+_3 thin ... + ], + size: #1.75em + ), + lr( + [ + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }, style: style-stroke-green) + + draw-arrow((0.1, -0.61), ..style-stroke-green) + }, + ) + ... thin ell^+_2 thin ... + ], + size: #1.75em + ) \ + lr( + [ + ... thin ell^+_1 thin ... + #skein-generic(styles: (style-stroke-green, (:)), direction: (1, -1)) + ... thin ell^+_2 thin ... + #skein-generic(styles: ((:), style-stroke-green), direction: (1, -1)) + ... thin ell^+_3 thin ... + ], + size: #1.75em + ) + & mapsto && + lr( + [ + ... thin ell^+_1 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }, style: style-stroke-green) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }) + + draw-arrow((0.1, +0.61), ..style-stroke-green) + }, + ) + ... thin ell^-_2 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }, style: style-stroke-green) + + draw-arrow((-0.1, -0.61), angle: 180deg, ..style-stroke-green) + }, + ) + ... thin ell^+_3 thin ... + ], + size: #1.75em + ), + $ + + here by "$... thin ell_i^+ thin ...$" we mean a part of the crossing list and "$... thin ell_i^- thin ...$" is the same list reversed. + + - Otherwise if the splice happens on a crossing *between strands of different curves* + + $ + lr( + [ + ... + [ + ... thin ell^+_1 thin ... + #skein-generic(styles: (style-stroke-green, (:))) + ... thin ell^+_2 thin ... + ] + ... + [ + ... thin ell^+_3 thin ... + #skein-generic(styles: ((:), style-stroke-green)) + ... thin ell^+_4 thin ... + ] + ... + ], + size: #1.75em + ) \ + #rotate(90deg)[$mapsto$] \ + lr( + [ + ... + [ + ... thin ell^+_1 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }, style: style-stroke-green) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }) + + draw-arrow((0.1, +0.61), ..style-stroke-green) + }, + ) + ... thin ell^+_4 thin ... thin ell^+_3 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }, style: style-stroke-green) + + draw-arrow((0.1, -0.61), ..style-stroke-green) + }, + ) + ... thin ell^+_2 thin ... + ] + ... + ], + size: #1.75em + ) + $ + + or in case of the other orientation + + $ + lr( + [ + ... + [ + ... thin ell^+_1 thin ... + #skein-generic(styles: (style-stroke-green, (:)), direction: (1, -1)) + ... thin ell^+_2 thin ... + ] + ... + [ + ... thin ell^+_3 thin ... + #skein-generic(styles: ((:), style-stroke-green), direction: (1, -1)) + ... thin ell^+_4 thin ... + ] + ... + ], + size: #1.75em + ) \ + #rotate(90deg)[$mapsto$] \ + lr( + [ + ... + [ + ... thin ell^+_1 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }, style: style-stroke-green) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }) + + draw-arrow((0.1, +0.61), ..style-stroke-green) + }, + ) + ... thin ell^-_3 thin ... thin ell^-_4 thin ... + #skein-canvas( + { + import cetz.draw: * + draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }) + draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }, style: style-stroke-green) + + draw-arrow((0.1, -0.61), ..style-stroke-green) + }, + ) + ... thin ell^+_2 thin ... + ] + ... + ], + size: #1.75em + ) + $ + +// $ +// lr( +// [ +// ... thin ell^+_1 thin ... +// #skein-generic(styles: (style-stroke-green, (:)), direction: (1, -1)) +// ... thin ell^+_2 thin ... +// #skein-generic(styles: ((:), style-stroke-green), direction: (1, -1)) +// ... thin ell^+_3 thin ... +// ], +// size: #1.75em +// ) +// & mapsto & +// lr( +// [ +// ... thin ell^+_1 thin ... +// #skein-canvas( +// { +// import cetz.draw: * +// draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }, style: style-stroke-green) +// draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }) + +// draw-arrow((0.1, +0.61), ..style-stroke-green) +// }, +// ) +// ... thin ell^-_2 thin ... +// #skein-canvas( +// { +// import cetz.draw: * +// draw-strand({ hobby((-1, 1), (0, +0.61), (1, 1), omega: 1) }) +// draw-strand({ hobby((-1, -1), (0, -0.61), (1, -1), omega: 1) }, style: style-stroke-green) + +// draw-arrow((-0.1, -0.61), angle: 180deg, ..style-stroke-green) +// }, +// ) +// ... thin ell^+_3 thin ... +// ], +// size: #1.75em +// ), +// $ + +=== Link reconstruction from code + +We briefly mention that reconstructing a link from a PD code is not trivial and there are various approaches that can be used for this task. + +==== Linear Integer Programming + +For example the #link("https://doc.sagemath.org/html/en/reference/knots/sage/knots/link.html")[KnotTheory package in Sage] has a #link("https://doc.sagemath.org/html/en/reference/knots/sage/knots/link.html#sage.knots.link.Link.plot")[`Link.plot()`] method that thats a link that can be constructed using a PD code and then plots it as follows #[ #set align(center) @@ -319,20 +587,25 @@ We briefly mention that reconstructing a link from a PD code is not trivial, for fill: luma(93%), radius: 0.5em, inset: 1em, - image("assets/sage-monster-unknot.svg", width: 40%) + image("assets/sage-monster-unknot.svg", width: 40%), ) ] -This internally uses a #link("https://github.com/sagemath/sage/blob/e0cf1e41d419feb9ddbc0e3c54823928a01587dc/src/sage/knots/link.py#L3639")[_mixed integer linear programming_ (MILP)] solver to generate a knot diagram from a PD code. Another library called #link("https://github.com/3-manifolds/Spherogram/blob/725086a1d8c5d1381ff6a70315047efd8e0dac3f/spherogram_src/links/orthogonal.py")[Spherogram uses _network flows_] to generate this visualization by computing the minimum number of left and right bends for an "orthogonal" presentation of the link. +Sage internally uses a #link("https://github.com/sagemath/sage/blob/e0cf1e41d419feb9ddbc0e3c54823928a01587dc/src/sage/knots/link.py#L3639")[_mixed integer linear programming_ (MILP)] solver to generate a knot diagram from a PD code. Another library called #link("https://github.com/3-manifolds/Spherogram/blob/725086a1d8c5d1381ff6a70315047efd8e0dac3f/spherogram_src/links/orthogonal.py")[Spherogram] instead uses _network flows_. The problem here is to find an orthogonal presentation for the link with the _minimum number of left and right bends_ +#footnote[#link("https://www.sciencedirect.com/science/article/pii/S0096300305002778")[A better heuristic for area-compaction of orthogonal representations]]. -More references: +==== Planar Graph Embeddings -- #link("https://www.sciencedirect.com/science/article/pii/S0096300305002778")[A better heuristic for area-compaction of orthogonal representations] +Another approach used by #link("https://knotfol.io/")[KnotFolio] is based on #link("https://en.wikipedia.org/wiki/Tutte_embedding")[Tutte embeddings]. A *Tutte embedding or barycentric embedding* of a simple, 3-vertex-connected, planar graph is a crossing-free straight-line embedding with the properties that the outer face is a convex polygon and that each interior vertex is at the average (or barycenter) of its neighbors' positions. + +This condition that every point is the average of its neighbors can be easily expressed as a system of linear equations where some points on a chosen outer face have been fixed. When the graph is planar and 3-vertex-connected the linear system is non degenerate and has a unique solution. == Algorithm for computing the Kauffman Polynomial +Let's now recap the main formal algorithm for computing the Kauffman polynomial. + #definition[ - Let $K$ be an un-oriented link. We denote by $hat(K)(p)$ the *standard unknot* for $K$ where $p$ is a _directed starting point_. This is build by considering the planar shadow $U$ of $K$ and walking along $U$ starting from $p$ and making each crossing an over-crossing when passing on it the first time. + Let $K$ be an un-oriented link. We denote by $hat(K)(p)$ the *standard unknot* for $K$ where $p$ is a _directed starting point_. This is built by considering the planar shadow $U$ of $K$ and walking along $U$ starting from $p$ and making each crossing an over-crossing when passing on it the first time. TODO: Disegnini ] @@ -340,26 +613,106 @@ More references: #definition[ Let's give a name to the following knot modifications for $K$ near a specific crossing $i$ - #align(center, + #align( + center, grid( columns: 4, column-gutter: 2em, - row-gutter: 0.5em, - skein.over, - skein.under, - skein.h, - skein.v, - $K$, - $S_i K$, - $E_i K$, - $e_i K$, - ) + row-gutter: 1em, + skein.over, skein.under, skein.h, skein.v, + $K$, $S_i K$, $E_i K$, $e_i K$, + [ #set text(size: 9pt); _original_], + [ #set text(size: 9pt); _switch_], + [ #set text(size: 9pt); _splice_], + [ #set text(size: 9pt); _splice_], + ), ) ] Let now $K$ be an oriented link with $n$ components so $K = K_1 union ... union K_n$. +#definition[ + Let $K$ abd $lambda = (lambda_n, ..., lambda_0)$ a sequence of indices of crossing of $K$ and let $i$ be an index of one of the crossings, let's define the following actions + + - $A_i^lambda colon.eq E_i S_(lambda_i) ... S_(lambda_0)$ + + - $B_i^lambda colon.eq e_i S_(lambda_i) ... S_(lambda_0)$ + + - Then let $lambda$ be a sequence of indices that bring $K$ to $hat(K)$ so that $hat(K)(lambda) colon.eq S_(lambda_n) dots.c space S_(lambda_0) K$ and define + + $ + sum_K (lambda) = + sum_(i=0)^n (-1)^i (kL(A_i^lambda K) + kL(B_i^lambda K)) \ + Omega_K (lambda) = + (-1)^(|lambda| + 1) L_(hat(K)(lambda)) + z sum_K (lambda) + $ +] *Algorithm.* Here follows the algorithm that computes $kL_(K)(a,z)$. +1. If $K = hat(K)$ is a _standard unknot_ then $kL_K (a, z) colon.eq a^w(K)$ +2. If $K_1$ _overlies_ $K_2$, let $d colon.eq (a + a^(-1)) slash z - 1$ and then + + $ + kL(K_1 union K_2) colon.eq d kL(K_1) kL(K_2) + $ + +3. If $K = K_1 union dots.c union K_n$ + + - If a $K_i$ _overlies_ another another component than apply (ii). + + - If no $K_i$ _overlies_ all others let $p_1, ..., p_n$ be _directed starting points_ on $K_1, ..., K_n$ and let $overline(p)_i$ be the same _directed starting point_ with the opposite direction of $p_i$ on $K_i$. Let $lambda(p_i)$ the sequence of under-crossings of $K_i$ with $K - K_i$ so that $hat(K)(lambda(p_i)) = K_i union.sq (K - K_i)$ so that $K_i$ _overlies_ the rest of the components. At this point we can define $kL_K$ as + + #[ + #set text(size: 11pt) + $ + kL_K (a, z) colon.eq + 1 / (2n) [ + sum_(q = p_i, overline(p)_i) sum_(i=1)^(|lambda(q)|) (-1)^(|lambda(q)|+1) d kL_(K_i) kL_(K - K_i) + z sum_K (lambda(q)) + ] + $ + ] + + - If $K$ is a single component then let $p$ be a directed starting point on $K$ and $overline(p)$ the one with opposite direction. Let $lambda(p)$ the switching sequence that brings it to the standard unknot $hat(K)$ and define + + #[ + #set text(size: 11pt) + + $ + kL_K (a, z) colon.eq + 1 / 2 [ + sum_(q = p, overline(p)) sum_(i=1)^(|lambda(q)|) (-1)^(|lambda(q)|+1) kL(hat(K)(lambda(q))) + z sum_K (lambda(q)) + ] + $ + ] + +#pagebreak() + += Appendix + +All combinations of `skein-generic` typst function + +#[ + #set align(center + horizon) + + #for kind in ("over", "under") { + [*Kind:* #raw(repr(kind))] + grid( + columns: 4, + gutter: 1.5em, + ..( + ((+1, +1), (+1, -1), (-1, +1), (-1, -1)).map(direction => { + ((true, true), (false, true), (true, false), (false, false)).map(arrows => { + skein-generic( + kind: kind, + direction: direction, + arrows: arrows, + ) + [#direction \ #arrows] + }) + }) + ).flatten() + ) + } +] diff --git a/theme.typ b/theme.typ index 3176b4a..a006d68 100644 --- a/theme.typ +++ b/theme.typ @@ -13,21 +13,16 @@ #let ams-article( // The article's title. title: [Paper title], - // An array of authors. For each author you can specify a name, // department, organization, location, and email. Everything but // but the name is optional. authors: (), - // Your article's abstract. Can be omitted if you don't have one. abstract: none, - // The article's paper size. Also affects the margins. paper-size: "us-letter", - // The result of a call to the `bibliography` function or `none`. bibliography: none, - // The document's content. body, ) = { @@ -45,7 +40,7 @@ // Set the body font. AMS uses the LaTeX font. set text(size: normal-size, font: "New Computer Modern") - + // set text(size: normal-size, font: "Fira Sans", weight: 400) // show math.equation: set text(font: "Fira Math") // set strong(delta: 100) @@ -79,7 +74,7 @@ footer: context { let i = counter(page).get().first() align(center, text(size: script-size, [#i])) - } + }, ) // Configure headings. @@ -97,30 +92,30 @@ set par(first-line-indent: 0em) if it.level == 1 { // set align(center) - set text(size: 17pt) - smallcaps[ - #v(1.5em, weak: true) - #number - #it.body - #v(normal-size, weak: true) - ] + set text(size: 18pt) + v(normal-size * 2, weak: true) + number + strong(smallcaps(it.body)) + v(normal-size * 1.5, weak: true) counter(figure.where(kind: "definition")).update(0) counter(figure.where(kind: "theorem")).update(0) + } else if it.level == 2 { + set text(size: 13pt, fill: luma(10%)) + v(normal-size * 2, weak: true) + number + strong(it.body) + v(normal-size * 1.5, weak: true) + } else if it.level == 3 { + set text(size: 12pt) + v(normal-size * 2, weak: true) + number + smallcaps(it.body) + v(normal-size * 1.5, weak: true) } else { - if it.level == 2 { - set text(size: 12pt) - v(1.5em, weak: true) - number - smallcaps(it.body) - h(7pt, weak: true) - } else { - set text(size: 12pt) - v(1.5em, weak: true) - number - it.body - h(7pt, weak: true) - } - + set text(size: 10pt, fill: luma(20%)) + v(normal-size * 2, weak: true) + strong(it.body) + v(normal-size * 1.5, weak: true) } } @@ -128,7 +123,7 @@ set par(spacing: 1.5em, leading: 1em, justify: true) // Configure lists and links. - set list(spacing: 1.5em, indent: 0.5em, body-indent: 0.5em, marker: ([•])) + set list(spacing: 1.5em, indent: 0.5em, body-indent: 0.5em, marker: [•]) set enum(spacing: 1.5em, indent: 0.5em, body-indent: 0.5em, numbering: "i.1.a)") show link: it => { @@ -149,17 +144,17 @@ show raw: set text(font: "JetBrains Mono") show raw: it => box( - fill: luma(92%), - radius: 3pt, + fill: luma(92%), + radius: 3pt, outset: (x: 2pt, y: 3pt), - it + it, ) show raw.where(block: true): it => box( - fill: luma(92%), - radius: 4pt, + fill: luma(92%), + radius: 4pt, inset: 4pt, - it + it, ) // Configure citation and bibliography styles. @@ -188,42 +183,51 @@ // Definitions show figure.where(kind: "definition"): set align(start) - show figure.where(kind: "definition"): it => block(spacing: 11.5pt, { - strong({ - it.supplement - if it.numbering != none { - [ ] - it.counter.display(it.numbering) - } - [.] - }) - [ ] - it.body - }) + show figure.where(kind: "definition"): it => block( + spacing: 11.5pt, + { + strong({ + it.supplement + if it.numbering != none { + [ ] + it.counter.display(it.numbering) + } + [.] + }) + [ ] + it.body + }, + ) // Definitions show figure.where(kind: "theorem"): set align(start) - show figure.where(kind: "theorem"): it => block(spacing: 11.5pt, { - strong({ - it.supplement - if it.numbering != none { - [ ] - it.counter.display(it.numbering) - } - [.] - }) - [ ] - emph(it.body) - }) + show figure.where(kind: "theorem"): it => block( + spacing: 11.5pt, + { + strong({ + it.supplement + if it.numbering != none { + [ ] + it.counter.display(it.numbering) + } + [.] + }) + [ ] + emph(it.body) + }, + ) // Display the title and authors. v(35pt, weak: true) - align(center, smallcaps({ - text(size: 18pt, weight: 600, title) - v(25pt, weak: true) - // text(authors.map(author => link(author.url, author.name)).join(", ")) - text(author-string) - })) + align( + center, + smallcaps({ + text(size: 18pt, weight: 600, title) + v(25pt, weak: true) + // text(authors.map(author => link(author.url, author.name)).join(", ")) + text(author-string) + }), + ) // Display the abstract if abstract != none { @@ -279,21 +283,21 @@ body, kind: "definition", supplement: [Definition], - numbering: if numbered { n => [#n] } + numbering: if numbered { n => [#n] }, ) #let theorem(body, numbered: true) = figure( body, kind: "theorem", supplement: [Theorem], - numbering: if numbered { n => [#n] } + numbering: if numbered { n => [#n] }, ) #let proposition(body, numbered: true) = figure( body, kind: "theorem", supplement: [Proposition], - numbering: if numbered { n => [#n] } + numbering: if numbered { n => [#n] }, ) #let todo(msg: "", body) = grid( @@ -310,20 +314,23 @@ ) // And a function for a proof. -#let proof(body) = block(spacing: 11.5pt, { - emph[Proof.] - [ ] - body - h(1fr) +#let proof(body) = block( + spacing: 11.5pt, + { + emph[Proof.] + [ ] + body + h(1fr) - // Add a word-joiner so that the proof square and the last word before the - // 1fr spacing are kept together. - sym.wj + // Add a word-joiner so that the proof square and the last word before the + // 1fr spacing are kept together. + sym.wj - // Add a non-breaking space to ensure a minimum amount of space between the - // text and the proof square. - sym.space.nobreak + // Add a non-breaking space to ensure a minimum amount of space between the + // text and the proof square. + sym.space.nobreak - $square.stroked$ -}) + $square.stroked$ + }, +)