From 70b90c7cb905334cb0073c8ec1efcf10405978fa Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Thu, 18 May 2023 20:40:01 +0530 Subject: [PATCH] Presentation for effect systems meetup https://hasgeek.com/fpindia/effect-systems-reading-group/ --- effects-may20-2023/Makefile | 11 + .../effects-freer-monads-slideshow.pdf | Bin 0 -> 288513 bytes effects-may20-2023/effects-freer-monads.md | 196 ++++++++++++++++++ effects-may20-2023/effects-freer-monads.pdf | Bin 0 -> 223953 bytes effects-may20-2023/style.tex | 1 + images/Haskell.jpg | Bin 0 -> 23463 bytes 6 files changed, 208 insertions(+) create mode 100644 effects-may20-2023/Makefile create mode 100644 effects-may20-2023/effects-freer-monads-slideshow.pdf create mode 100644 effects-may20-2023/effects-freer-monads.md create mode 100644 effects-may20-2023/effects-freer-monads.pdf create mode 100644 effects-may20-2023/style.tex create mode 100644 images/Haskell.jpg diff --git a/effects-may20-2023/Makefile b/effects-may20-2023/Makefile new file mode 100644 index 0000000..8425c83 --- /dev/null +++ b/effects-may20-2023/Makefile @@ -0,0 +1,11 @@ +all: + make slide slideshow + +slide: + pandoc -t beamer --include-in-header=./style.tex effects-freer-monads.md -f markdown-implicit_figures -V colorlinks=true -V linkcolor=blue -V urlcolor=red -o effects-freer-monads.pdf + +slideshow: + pandoc -t beamer --include-in-header=./style.tex effects-freer-monads.md -f markdown-implicit_figures -V colorlinks=true -V linkcolor=blue -V urlcolor=red -i -o effects-freer-monads-slideshow.pdf + +view: + zathura --mode=presentation effects-freer-monads.pdf & diff --git a/effects-may20-2023/effects-freer-monads-slideshow.pdf b/effects-may20-2023/effects-freer-monads-slideshow.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b04988774cbac321f9876e5cda54bf62e5226299 GIT binary patch literal 288513 zcmd431zZ*1w?2Fh-Q6JF-HoJ3gS3Rw-6bMOBOo1ugfvJ1#sp|pyZVjjwOtQxa1n!h}GWV!GJXM%Ex zJ(eMqd}JlblGZ9GXauF3$bUW4)+kXl1KkiEp5zB|2%4L%VBVUfdQ3oOSP&mVXqv>E zEQclqsva-nEK@hJ1ea6_oSa=bi?{sGW>g(p;csN<)J^i?bC&`>DBvD_@4uuxM2lS#*H%47jkdFC0dWvU_V z_u>nh!^dyux?rMzYETv@kZpzNCg+u{w!aLuD`L&W3ufgkF;3$QhA&N{?5OL?o*w`H ztoDdXlj$x&vrf2}b}AJCyV%8oAXB{K*jTwTin)W?b+mvZNTj)V{s_6|V<&S;4qa6f z8*@`P6b=n{6E|p!yuGodISPl4wHZK&0KWhVhn%^!rIi~cA1@aQhm^IOtD3osw4=R~ zql3AF8>QfH@_2apc~Cf{9qk-lG@Oi0fzf5mJ*-X5)$dCErc*{*^B-hhPF^m8uoPtF zWkFyt7$gV0K$l-ZE^1beZjP>2j!u+3?3^G$DS2f$I1pshA_MDzU`grjlEHvLz)l9^ z29j(mq_i{kGInuvu(ok`uy%BzWTUilb8`~r;CS@t5xa}InTflJiJdvSsiQrIlewdl zojJ!}F8Kdu&KZz22p$#=4h|L`_yG?OkAR4Vga~YysHn(j*qAst*qGSZxCCT`xOgP^ z*w{o=L?pLvQBY9e5>nGrlhcxsQ;=T*gMfic5fKnEkdQFQ@v!m8|Hs>98weW-<`&E) zESMSugAIno248l7$UtBa3@n6}UmF4<96S=x2J{jG?Lgkr%dU$78D#ZlB*#0;hDUH zl;w~f)P~r}opp=bvbwPM6&?;Nj<-xvLfU7ohu1N+4gBVIVr(NPgvzntaJIv_axV+3FdrS=AnjDs66HF1-B5HNC3 zF#6+lS72r~vHmMC+!g>B∾C=IRFs?Xj8v4UESjd+mP(W->qI<=??rKKvhnVfPyo zG--hh!al8N+?O?ZLQIKn&g3iUsJ&w52Q+Hj=tYaXpc6=*2d(144Xc1`%+)u_bQs)S>s3?IB zP&q5RZv(gNqUCL0Nu@3O>1fNWA0klcLwbP?<_D2zCiEaBC-2YmF-l0sr0s{hpEb3=$zjN`Zj5E?fI%Rp*N(ET7cbihARS;2^(PpH7$3TOK(^K*r>I`Fq_mKB zQXi>X;7tJR4-AE)HupJ{<`)Z6Wm*5dJrmCyG6pa@MsnT&a*((|kRNactUi7MO@IQ$FfH6RfD4(DSDh~;hCr%_W|d~zO; z6Sx{7--$uuOn7)*NE3A9pH2{l9e-?mvO|`57`Rfpo_k(o& zk}~YdQDKA3VSYWdk-O~2yBSe<$&kCu{Sm%W(&dm={`V}Ei3khpY;b-j*O zfV9xcWPbIF^ZR8_NxA0g>{>(miT?V7(5QVCxB}BZGp9yxPW=|-YA}1`!r|KxE3mpE z^ME>u1kePcpUrc@9g1{kc-s0+JIBlqXo9sbl)3~R8&1CZ%X$jdPs)BdUKF(2l zjr}6^fjvNK8%_0ZQgN*YW~4W{T0oTh&s2OI56FXp{D9FQ@DBl1OA7)gSDQD|IYs5f zR?Ir&6xj_T<}^Ueard=tuEY%HUuB7TA{LJ&4lr~F1}Vw(a}{_hBZ!Jr`JXfA?+{D3o*CfErK$s+kDL=fUpqthQl^XJ}AO_ zlfx^&IlMs#T&_`Z))hY^PUQp~15DbO{swu4&}-$ILqjlO%9>vZXXvVaZ1nndhRt(% z44+0oF9xnhl9?OJP)E81Wl>QAr=VAp@6KJ#A}0rdV;BxOdp@tv!jN{DhdAruQ#rh# z*K3LFFVQ6+ZMYa3OyDmq&|}E?C-q0$2!|g0a*z}LhFp$IkQ38)U|j|v19z76Siqem za4Y%y))P2}2P5EtC^;qY)qopf94ai}HWLZB`vk+oG|-gyt?S3#U)oMUM?_jCm`U43 z)WjLnW4b-Nl*+08!ABwkOZC1<;y%IN?-tvd`eDLfV^M&CkpM4cUAjE4B7 zN!k6xtK8U3&j-dxlLe$k<4%#L9v;OTEhY`76f%eMF(6(eoduB6c1UIm23J9l!gUk@ zNO>*#AV^C+m;Z^B^8o}YcIEr8^sTKN>3r&1ST-t{vxZ!g<_B!`tUE{Yp@A~)sMdp? zfi}otT6h@_Rs%1X0vo6dc022k14XCM>>5B9Bg56v#{xP}CWHzM0Pvg~^-pH(W!kkGu=S8?qiRZ~)UoqOggYgeH}Jc9BiimgS7c&(el zd>HX4D!An7@@EeJ%B)`{|a>M(Y2($IwL#RW8+~z=v|NOC(N>zTZ#Q!z|Fcf zdG&sdHunONV)i1i>O~!@Y($p35?IkOc!z$@5JReP6;)<5T{Mi}`PHXRp@vV(W73ctbjflG13S z!fiE+$fn5{s_JsRJq=MU1bCZjkx$IsmX+1$vgGyn$yGY!ybE ziSLKaaEcRQdZYf@^|ezfJxo^iL}H!~Unk8< z+qyniecsnP)jpQmtKg0RiE*Nn=QA;Bq15@xQLset9wo}8lwG}Q7e%8j#jar#9g9p% zI8vGXBYB@8H#WK1do?7ACTNO-Sa;p|inK7?F>uXVfZQ0ZD$D+B$R907UWMEs^Af~- zz|k;+)|0%nwjbUej03tN(fJe|<}CIcRreAUzU|DU2gQQ=cPs%yE1mcADo05yoY0_R zR{Ns1#19d3CyQ>LE#4cG#1i%DaP10(2`0V&*i@bWAAolU*intz9A1g);E61Lnb=!Oyra;fnOdp<&qI4E;R}J_0h!~$S3lE&Gdq0 zy>x@4{#$S%X*hqoyq#p&<2Ix((fAfG`mD^~#QPZ~4JnK>KNEh2yw1)^&wAv89} zrBnZD#!}=KPQ@>IHi^==q=UX0sNWX79b7@0@?a+DXJrGHgi%=g-)GE*%oyRcFZ7QY z=S4CxD@uVZ?R=tRmo$4UH6GbXYMfg`+3{`(bN@s5TSfCK?oYIfM0ES3)e2crS#2Kd zLad-uf({4kCl0v#DC?5o00!2WP~N-x`t19iB$_66BHnaEtuq94SeiTIXKQ1hc@34G z@n>xH)(pD=b7)WgxzLBhDo3ycl*2r^2Br0D730k%nMc9G& zXl>er=FS&?3Lv@=U7gh>@0)rv5UD-Ke1J(O(*vM$oAZupRE-&N=O+1!L!^)}bf*)J-j+VQacE1LpW5mrPfa_ZJY|5^Qy`gy zfX{$1Fz`r72sh~jhJgi9Vbe(5Gls*#qon5I8Nub2R8u#Jji=?6@{eofT-tHYy7^d$ zAP%!JjgLvusiSM<^ix{>f#7CgqTF|>QqKHY6`N5j>K3vLnLtcAZ*@Ufkty#;cIl9Q z3nO5&XpZlxmf`Vu=C_ECJ39O)x-i48n(=Z15+0H!ipn3Fy*%R8c7JNQKjUlPMVI$n zDazNPX+l^*vF})WLm$8j?m4iD4@5$dha(OUS$ZszV{SS|^g!j<5b+Z!4EKvKG6@-2 z4OnLigHoN8n;Qe@x#6vz&Fz`O&Q=$VU*yeso4aRk=gt`q8}g~7yk{;w+Z=u*Yvak1 z>Rkf15-O6#d!4=}VOr8>l_=TbZXTMzZR&>s$XtIHdm!M>-G=U#}{n0abWc$3#Ci zL_T@mKsQ7)0@|wCCtnJz`Jk-08i-?kOo|dNGFKNFcKCx8S%4M4+!)DZnr6cIcl_F7 zRF6gG+$ap}kb3pgZ<+lF9)32h?LxqWsH0+KPpOUCd2|ar_WbVQg79xIf;NiWwjXPq zZw{OCiQ*45YlCvr#%V{r$O#PLTc4O1gKb0||8tM@$ z{gp)s6)&*3fR{gp1%CMq!*8QA=M)$^Vf2jV?WXd?E#xuHjmf>@v+>MMfWk zwLfWuN*D?f_1Fl?VKlf>!sXvHqQqHzUo}beb9; z=>@;c=rFEi*c;?T`Bb|^2_231{{Oj&V{MdJnWIt!npNq1D(TV8@0;|{)MC}^YkOPp z;-%uO5!Nx}1ZfxRHirdYr(kX}QU?e`?T?Z`>Wwzp2h0vWx|OJ+WX-69)Ci_p+?1*m zq;f>dk(W?mtKXrFG~}zOEEKu~IezE+{2e_w^nudx{i}4pcva~wT_r_feZN~b*9MaA zD8JIZT64OSNi8!}gWh^R(DS<(Rl-;T_rJOsLIBE5!9%B<1NR`pr4ioJL&V3GJih~{ zCc8WDb)~xYWJncwFOYhpy0KrX>rW$+P?uw(j*%@*nViy0y9Cu9r|dlnY3tyie^L^- z73oi`=&SmN{P^6~LPp_@-aRxPz9m@Yt5+oTr=Pde|J!~VjC9Hj``(kp!+uA;KdN^f zPgNkECl%uwD6#YL&cVFbNq2l=1Pg6jC|- zfP;nq!cV%pA5%+&aq|nuDpqxlizUNxn05Gf+91691GQ9$axp$&r8q^f@S69)c`rq1 z8n-8JKmy7yTx6^+G740*w5xUIR)(zEVjHl`$m0d@xlMHS#Ah7+n5XfKTowrZAH7wU zF?gz9YsKfsBz8je!FOmO+AanPQKX?zR+Yalhw@E16cb@8U^G+kpCJ544Oj~HW1XkWp4==9misPW*D9YKV-h_eW!V0oh&Y!|E7u!w5 zP8T;Xe4V((_IY@}O}Z^zt9k8nv;mc4gzDEmcB(*)VSf%CCH(C!;${kD;#pX z%{Rvav|dZ7KJyI&$xO5WUo@3K(WX~Hb9cRq&m(y*35O-S^Q6q^Q$77o7e~2UX~EJI z&pz{4hp@NmBS|lHreWVQayvbsWTVB4m7~#7wv+1_^!Zquu5E+GL{FGds@a3Qliw1N z9;+~6MYcpNVyGE;oOSf)3^70tuVUD1J+5w*%kcc8l(qL;M ztK#~N?%n2FHGg@|cX=-P@~XiCy4dlR{C|t4EfCG%{%RUy#E%{s)xfX5|A=b@B(Aep zaU~u9cYh1)EmC20WeQUw+i?1E76HT&NSCv{oN|l zRhMY155248BhiVyVmTBn2~T8i>o6Wgc$fY!%zTrswAMZ*obk+TsK2+EiZ;s zM0#nF?AgF+1CMO=h&Z#Iux*YpLK*(ULZGYE!n z+b7vJ^asrEfACI(Ov76+z5fbXb*g(8{((W@4{-t*;*AuM5_#^`N$J@Oy_U7UJ$MvtaeYoDdYPd&w|ofEO;y%KG7&<&2& zzvH+C;Fz|uyCEYbUlo*nRwsp+v#hrJ%^0{)dK20Tcu#3KWFGFeED`C-#d5 zq~K}W_LAt7;xbSiAPa|m$;c&$E6D7tyPBBu_(%$0Y1oN|@t7eg5}#-4c8aaEeZ~E7 z-(nysVpH!PnqI-^zgl7GJ`bO@JD+NJ6fL;AJmCWFs<(gr@k z(eOuaog5HoX-}2xGk>psCjXfC_Rj3nggHpve$_WH{7X}fnhsbmQdMkl7-7cBnaNT( zftxenLww9#Gx!wP!uUXn)vUL>7(MT}$`8KfXT_fY3u5G3wUMOc1>>0&Aps%1gtk>x z%~{7_-t_@JbU0m{zrffNK1*85^^_=w`<6R$%MjziEvHOnWjte>r-}=P=`J#7n@0}F2?>u<5y4qhjnVHu4DnwH2Avu1aS}Eedacc7Oz9Io3YAg1FfQecpnshb zd4!z>mm7=_<`=cuh=XmpnPm+8mZ?d|HVEQ}hY}&t!a>@~Q8M&h&$|2h#^RTcM-ZX1toC-ng85CqhL zI?LYV>Y%#)=6NI3k7iCZs2})QU>sRM9(NNB!;qR&gP#pwY#ywZVsDAq`=2RPLc{S| zmKN+|KYlHbyt!iK#@Y=SP-OR%!CK9IARI97q2bUSf`mg}6B>?mPJz2d8`gsjQR(d8 zhfe@`6yWsH!yKbt({hmwQK@|dEOHTjj!&eOgiLJa2;hc8N6p9S%A=YPn&nMe5#C z8K@ht|KWxj!)pQB+1n~+J@NEPFS-BY8>0+0%<0VLHF?sFzsRe6w>M?^p^6jbr@u0e zy|Sr~QU3-$=jVCMlf(eLP%1c=6CrfNj)MGwjlpDuGedM-!1)Pbx8nEGfVL}NDY7P` z9W{zI+>x6rPl8SccVA12mip9zKuG$1^+w+; z%}0+J*rPN(5Gjs1$m-6) zEUPP`ukBb8(cR3iH3-M*WwrfZXmXkBiXyW$IM2GGd+KFj0HuCBeG?=}yU6$ItDgN_ zBapbnk?CJvT+BX^2EFga8=?O=AuxeuVW~v|D`SWMrGTBQg_m(q8e^e%C*Kb2f3l z_4M$)*Fuxy{Qs=s3Ccbt8oe1%m%wzCkUW%$)ufT)$X_x|7CC#6R@WwmXkX50sL;H? zlYZO0mlON(L#SYY@>ud7QXc1HD3SW@zVp={txOZa&#UE!@no~cx4T&jTANCi4)G&I)SM1 zBr@svxD!0}F|9=d{1NF^!WNrOo&(zw1Jxrl*Tmz-SL za;UqudpN=iYrd=2LU@yg)WI1WV`cQrD?c>e<~EDc4A04Zx~IM~(VluohZtJG^#PJxyoZUK9aDP!eT8pp~AJbSV)Z5vC#;O^)dERU(>=vdC$vy4k zEgaRZH7puiOApZOowqWCg+fb>0s-mF5A=!xwFlu$h~&C?=|YG%Q>c~W)ghk$+|Yn) zn))HWrY$o7k|fC>q%9jdbN-I{knb9Zf}!AyPC%2!w`GJ4O#eYoKewp!MqmvzBFJTz zRaLfKOt4459)SI~sYYeOhWZ(}GArv}PnYooI*3 z*z^NE`1$rPFWj<%uEb4aDZznb+1|sl|Eg4M^wWTrqgGRkN()h60jbT7PLa>7#2np@ z&=3(u>_V-Juelw}$Gq;IjW^ynk)jXyewfm4y(SR7SB|siZUF9g{2Vdi?-S*fC)}sC zp&Qgp-}bHh3k#uvsa0_JdtjkRrydWMC%s$m__Tud60{K950af2glNMoj6>>58@i3f z;YH~B!mwCD5rI;=O96!ev{Q}LRReFu2b19m8%1k;`%5Cz{5|7uW5_>DIE2PnE2Xv$ zc@jo_qigyd{$>V0mVmrBhU*U)?{FZ-7sbW|!GFZKm6*X$qC6lnG%3Dl5ySK;G{zcN zG47(<EYTW(~|Z0#jTH_rEa%bEmk_1i{}1N9WO z;&9r|TxzSz3---rKp<`Yp;EGvS*);;2pkU<|HU4?`a);*yzV%-ETw2be->^VjO?~z{{ZDsH5G|8w;54rkt2phBGsNT z(#m{$G-F@+2X)MOG7(lAAs=D#Ffxt-QMq~u?D>V2U!;@ljFle=)b^VkZup*o+ zDAFjYevsH8&{_^nl1a3>#aHdkbHr>C;+7U&2obu)M<;0;JCBoxpt#fw2R1l zEL%91<90UpXk}GI^&2(`K(~Vwd&Zq$x!&XS1DT_L#p;K=ovY08fMpk?KgKxoMUYp+ zoSLfe&mmxj{?G}$XihYu(V(d)I6zau0KqJ5mui6l-mG9yFr| z&&3XEzkp@E0z$8R1*AAZ>&$!5t@Dd1*U$7xSZ9I(A_H88)R*t@HcY;i77jZa8_iy^ z!OhR_7^vNDMWuEjyN6yK_pNSB1%T20AdFw7n~leAXdl=4`M3ROx0=oR>J}wqtRxkF zTu+v9UMot6xF2a>{F)_-DO0UsG**+ycQ0&v&?4%A#bWJUDwt-uxq{wzhIAC3)@-Sh zr!>oiswfvi2Y5F`R;pN{x%FMp{h~KIc`KtopjoD;i&nmv`cveqUr!O@+N^BWZF9w>~nk z&L0G2)}xNlRz)C;@%LYXIBSWTzY88Kx-?X`s2F3hr`gf(W@wIP`Zp*pyS{=sTGXn8 zIU0p4=wlaK322V>Lc5n#Bs*J+?VF6u41XBLb1^v`!$iY?08V#D#YWenez>L8LfC~& zjPeHNj9?GjqNrN`^uf0UgkDIAQv|;-!1aCRQ=Y;V_-&z5h=}ZCC=`h3vIX}Ok#dA( zwm8;bKt%om}DG*E5<}{{gv(tu@zz{V%v& z@l$g(V52*UiT5cvUO7P47Tku0BIzfv2#b)l(C<#n_DM6kK3Zn5H12D}M_noQe$4Dr z2l8wzU`XxW%;-xG*h(VbaL~~K3nAS5MMv-z9fy9*v*0JTepf*70U%7hgZi)E_rs;Z zoOZmt1lifk;l;-POk%C*n9ao$DTP7i!n-f~;Z*8QO3}FE23~D*l_KVASO3K1kBu#l ztRr}v+VfF-q|aJroq|hbMQD7*dv5-y5d;f-sK>Is1l_!jhgjgSfG6=9Gee^L|JZkZ zZ|u$;Mg1UllBxeN0xsJ-zp=Xn&3XTbff&M5{L6s*gYR!FkALp$K+wk01loMhossC@V zcbjf3FAjf}$3X1<18VUb!+p2?a;P2OyZtoIcC_C+#OFT38@o%;{(c`A;v{y}e#So| z$?*&ICCGOO8H&bv|HD5GMNNMXDWED2HPm?0Tl3El?fy0d#uP1w;-*j)`={mppO%L| z7onDjs;vK_p@Cn>kKJ~6AjskPe*We9-(y`*)JO5V>C;{dGzfSH|KdfT*p1=E`F9dwr~xzz%Ws!;RS`=*PQ#Kj@s|s8B=cOVA%a?tQOcrY6v?dx)=i)8u1UEj@^uR2|631gwCh|cyyieV()GO2|S9t zd2Q_v8bb`R?*g5B-H;LCh<_Po+?ZV)?=M382(AJGh7Rs~J)pnujoq2(-WA|SS9aGK ze+C7!S9W6tFf4ii#X;bEWhg2LJ-rfh@r~Uj=-VZ5iv{hXxe3Tl48#+7UO&2_zo#22+J5-B6f*uhmuO|p5(9ZkYW+x z>PK)a=XJr&N3dEq5#g+${wQ?z7sx>+ag>FtYr9}JFj8J`>q;H*XXmU%e_dBn%EA)f zyIlEyI*1G~FjCwQCCv(sWEIw#ZdMh^@@MDD5BEdv#93rP7aKg<~R;s6~%yYr_s=A!>;M zCV`(W==XOZH4Z+3e4CdZN(3xCE(7 ztWJkBvoAPLgs1k}jp0I4(D6En(R34A4jWzLx_Sm^t=~IMf=bjIKDtPjQNIh{W9j}+ zZ_xv5jB7W;@r7k*)e72C#*9hkB=)jhJ6@CNtHI8?o&JLu_WN0<27NC;%UtUzI zA*Mb1xuVilp2TsMAH;%JT4ja5d%JkqN2lYoEbQn}wVd-$EzuFKFj%nF9Lw9403E3x&O)$r~B z2ur{H^8~#Qi=+e`0Yf{2UkM)8zK15~7lRNl)p^~i2;e)lI6Lqri4&19e)1!KUic7t zA?oi7vG+~Qh%fHNRIvDetmRSr{`c33#rwym7TjAu72(3u6R)v05I>rvVG|u7Cl|_u zK_zt#G;HcI#f;CiVgvzXzH^y39Gz6i&M zr%UBv-8}b4Nk$P>`@*84t^g4J6~r%4DH%Y9>6&fLWJbX_?V9Vm&~?Q#$BAVQYOif{X)~tC-=Lx{C~Fo&w^d>uDFS z3Q|pm`^q_)4%*HSN5uWv@;u1ku0W$RLA-pBos8YVntYjQxFh~aKW>&a4k^~lryTSs z;O~rv2>mDDYi`ZL4Fyd~$xIE?PM){Jl3j#spP>ZQe8TBTypnW4^bEz^%Ls09SOJ#xAdG?qPuk)s}fipa@r<2T;X8cb)@N% zuBXK^lgyS8VHSzQ@o!DksWpb#0+EDt>BnV9vS&%}V8v1@$kZQ)aS)Zu-p_>XadD#f zN`<=y7E$77kl?1V#-Km(Cq$}?ve(Y0LC$UCr{?!^<^5FADG>g10(rPREu@A1;q#sV zzbAb>lC(pw&Wz_;EZgj;sO{ECEabF&TSj&Z9djFt;QYH&1wS6~xIeFteW`svdMGxM zT%BBo9RB&VKOt^5w+1fFcS;M|py(jI2WX&-!8mgf8syLJy@HgXY9*Zrrg$*(0d|vh zL!Yct;gxm+A>4S_Daa^zA^tE%WW%+|u^MrJ4~dYAp`$i9>xf6sj3|~sjQ2)7lj}I~ zQyD`K8%7JQX25MWy3@u^lL}vlDxX_HicKme6mC1&ui;tt9d7+T0~JaI_s<6k!Jy+8 z4gvBRVn^+be%I7+zD~#%jp8NeV>@{DNCM!d7V8y+oBoL2%KoR`p;mh_dz3qj9JX)< zDxp0}O40B9lVgl=rwEb)K@9u3FIBqR9^Z0_4y7hw;gU@51eve%4?K@J_XsQ393tWw z;K^dJ=*X2R$n?!Y60%CwB9(pa#LH_Ug00j-1%ZUswLySR3DKYDZeMZxc6v>QofddTjW{d z$BN~5Ll&SD488l|ZdYD&eA_w>BDFK}nt4O#j9h;)>xVCcucDbSsWFkLKgGaju16$v z073)xpvUe!S8VkYhLOj4C5zj=mAEa5)p>tM&cu)V0G0kj@-;I#qGQ6OQx#0uOzXIE zK_Pnd<9A)*>-0zfDBLtW-*LAM7DEAMVusMX6H4NDVLU1-gpo;!Vg(cTVc4;q+Z;fX z8@$BW71(dbQZkz&It3cfT7?M))o!r#!QNxZFwE}y274RV7#Y`6BHqPcW{y-?d$X+$1aQfae6jFZ zR(+lTPP78;kzwyiH9qCSd`?OpAUi>;Lg(!VB)^lspNOzBf($hI*EvkN48L6*LU9zI zK3WV0f2Sm6WOw&?PFly~sT@SBoDPH96HAS~+j>~s91BoF6DznX5I|h1H6zkCI^c!G%0cR#C4+RdPSaA<9H+f@$4d<2jtB zZ`J55akbDCcxxI2C`*|-RA@a_>sCL(l9{|eEpjYzhG)w1COA`RD$zeVIm)ny~kt3ym#msVIx;j5odNL z)~}W&6^w$%_#fY>i6vc&s&waCQ?Kd+)&r$5tmr7rH--lh1QM}iVIP>@#S8%TVeY#YcxrL35J;*L^sJI)N!Eo{iE)&gp*|+PT{JppCzlhn4x-A)C)chd z<7x$>fQLBBj~UIBQ98np@`^(`mAmxF&IzCrm+>C_6_u@;_pXAV%nxF=`BC`!#Zdi_ zvsW;-h9CGF83Ua;@_V9ZosrR!8g_s<_h4At*afNl#M0>lsUbDcg_e*fx%AlAD;*Ur zA71!B&OESR`EmNTpE z8Z+$={-c;-3_lp+Q{y%Fm@zcM5vp*|sch@+DwO$V4%k%A+9&*iK!rrE5@N~#Dr9}Y zEKE2jFC-5)@>}4QAL5I~O&tq4a7bh`JAuU7{XUmu39MlKFthVQnK29ND2u_iz(#Xw z2R*q_@@IM0yIcm15DkQAD7gEo{KU!>6O3m=2zq)qR9~Q%m1SzN(gb(*8}kk7E2fFG zmHe@yBM~P`ubJ+ow1mTjBh z9CLEj-HOg}v_`*X+I$0@6T);RX6`oX71JR<-VyQ}J6toJ>Ee1Ds6IXfi!bi^=OV{q zXUMgKQTetkaG37AZu~2=tq2vjP=+P6A!3NOc2oAf(>>Ms{6}=UAz4` zbL2u_ts(HkRvbLV3-JT~?b?SBp%=M$?T80*MrsuDo`mEY;)dDw=({`Yb}e(;E+W`G z!|F*4q`Ul8-?L|NdLcwp^K38nEy?au>Jvs zRA^xf=okYzt~_WVLV78-Vx5U8g#o8o;!d&*S34!RUkFz+mK%~JSD`yON=I*dF8lt& zQ${t+$Fkfoswr;>1YCg1mrMI39agzVjT(C=bC;xXl#>`tE$o?xmKk7Y*dMh;>xG!L z+9n0uCg^G~`*ULySwJeEMp`66K?AMv9jtXQB4+Z^-axlg2nrHWJeVPiic>WIX`{?E z=?Z09>j)8}yu7>*xEibGEv&8T55)j^S%esR8CjosS2b1=ZPbVGb%HxoT$7iedgYea zn1eL%Ps!TqP-gL2$&_>L!hAW|!va8J)a1iwJPdN;M$N#dUkQ?Rclk?@%q8e4qbBB~ ze$Yn+5}w#WIx#SkA6#)MBba(BR9KBo8m3@`tlqz`jMDFEX~5$8`mM2qnM}Lfz1i&1?Cb^&s%jnP=>sA$1(!QTcW!+Q(iux; z%!NC$dKe%Lo6FroU{^<~=i6qGh?7Plu`T1n9gkB(VYP|9i^dF}!a98LNrzEcd$JB#KOiqKvMM;1V-0?UQvxwpYKFqXYy)u{Z3p=0 zBA`!-^{R)e$IDUAa&6sRNU(RJ@gh4}KfYhQ&x!oC-j5_qTE#^i=apZO1dP@vJW#A% z2U$4WG77+GdSp{zyjl1%R{5eBnu|=Qg)|mKphlOMoJie26N8u(Qq+;@MZ0c|#g-B%uoN97R z1#)^GF)f=kub&H%p*M*yv8xmgqEi9^VL(B$tKQ}NoS=79s4FqdWL3RQQ00Oo_kru| zE0ktgcoVXgE1GR{S%1+?Fne}CK9{1L8~9%`0CtVj1eV70b3;tI(dEy)G)v@Esp0nv zeOoGxaHn0=4sk=$KC9v&ETltu7onn@3VMl$s@76?AW&)Kveiv_+q`fw%FG-f-hcOz zn7WgC78PP$;9(CdtWNT+a7!lcCWh^=yt3Eep9#XmK*0;uWC!`F@WG38tK;J{pTyJH zlxkJ4bJ=|S{9H2tV^fM{qX$nT%6gO_J(p9s+lG4ZE>zm_MJ|DIBG?piZGNO|-pY^Z zs<%gJ{WEb!Y$w^QK4T?DeVMayfR}jcQeKR;2H&E+SR5GX2JqgGvYt!{J8JB>0L4xX zV21~n)*d1em|t9!KFf7>c7b5$I=jY>SowKrlL1|*`xPzvdtq!4vW|g=RO?$Tw@ked zc-3r7*AMLP0$|tl$f*yeA-wMx4jH7ztjkG`Ql7ggzE&mnpUiiOD<1V89FwtcAbG+a zLKaTeqK*YD=Fz77T>Ok-T@c=>)YZ!p%}KRf-jqq!Yrdo&r;dU`*S?0%wT<+edjJBx zK{1})1PWdLH+0>&?v@wNAGF%urIsnRFg?~w^;e@vd&k}(&2sv#t=wLxx)z|5bHE|x;% zs)rm;@$miA^Rwgc3pa1xY8{hSxKZJ<=6Jzj3h%TM?6rDpnh;j?&3`xN>A>As`jDDgqTT% z1xj@9q+}(MfrPRSC?sNoWDWaBm@lm!;H=q8hv`vzvVY0+9ff`8a|AB`_^vJ43I^5Q zyJqzO43Y_Y)ZrFUAK!3>Jx8qK*PaYjT?U!$7%5O{3y&1ajCnEWNrG0?)Oo1nbgQ)# zvhVel>b#fqoA|=2my7gB9cyJQu4I*LESHTv7ZR{xFykUD%S-^1IaOvy3d_7Y6U}HD zd>;?ZdA4R&vyf%;;`X-OT@#UY>Z(4zw2+01IJ%C8PPtKxj=N>;ZL+WxwwY{39O31i zO8rl_G_06m_oIVyGl774QdSARzY16>Ai-4qBS3=iqEy(FAP^ox1KN<5AoFZ;27g9t z_LD)hr)?*-ccsHrp<=YeXx^qOXeLieWARqxH#TSv&e2x&>)%Q^(Un8+q@69CbT*b>Q0{A%IJpPw>=^M=h@!B|2D6RUK zD~s209k0fF++iAt9!;m{ZAa|{g>V$sLC*gdY452uYY}>Zgq_G;? zw$s>d(8jjf7>ye=`JS|W_q+Fb`;D{rIQLJu#+q}@IoGsFKYEHe_Ga_&_E$jLm?_9eYYvZ6IP>hy$lz*{^8E6{3F&67>TB zs1XA>r}SW(DXGRvF02U81D^pR7v2O2N?1~M`e%pZ1ll~vQ{$t1q`n1{$YB7fww(`< zI2kAW!=o*D8mod=bP zymgeQ5HYSJAqYFmE!{*^vqg9Y)JiZ2L|4Cw^(N&P=wM;87;OQa16^0~Bo&=#n_Xsx z5@HMLa)JzKR?xzi-Sghr{kVIOns0>;IeHra?yWS4~b4hQ-QUlf?ig*d@$hc>bgqE&^ zac%&dkxUc-N39@)_zOuIGiAhWVuawn?l(d%tdFQg2yTv==KU z%qI2G#RxOs7xCY#1Q*SQ@IVuHkq=J-(+Mt8B@mnhT#K?+i9*CA z0pxSRE~a>isB@0|Duk@bu$R+f`TMkZexBBo58AQ8RFVTkIYfu_9I5DV$8uGEF%JwI z`$aZD?GR2R>uytTX_Zc0LFjrb)EcT^$?z12yImW;6R(65-;wxjQT#ne(Jf@iLiD9C#zJ#zHoU$^6>>cHabgNwLU|1TiYNgb zPL`F4q7i_>`mxx+L=Eg@*!%G(+rrK^LU-+oB@BhCy z+)vbHl~Y1hs-N+n*g>b01*{*(HYN*8=luY|3<&z70UMo~m^ux>z#VfFSkt&#(2}8WLK-2b z-L+U_;}B;N&y!#ZNlFZ>11OUyWcJZ88^R)*nYrj4k?7yKio-5riw~8>=u4G)G-zfq3kvv?UK&_m5%vgYZs_ivh1lgT4F?S)y&IfhQ!%qLK;75TH=I9@u zZ^0s_-|?e$ym)GJ<;w}Byw~IF%*s_i`~DPU1kht;tG60a$ijYj2cc^VTw*6EJU3g* znGZs9rzUIIZjYsPfL96uBB)A%5bCM^Ev2w^+n)m*Z5%atxAwy-PNha2sSUh82Q?fa zUP$Z0hh#d};MVrE<1%f0s@me?A@Y;XW{|QTW?dolrN}&LVd3A(qW>gSVmDg0WMT;= zK!4@u<-FpVlIT^(R&e)~UEkhNs23!ujRt_+|23eyUii1vaQx1!$4jwLXbW@H#&RHGX-he$zXvf4Y_|b zOf#y)QY}R+{G+J;q-<2@}}tr)Ivh)uFcj}*H)YK#B(uCO4+2? z#HDIFlwHsGv38s&Z%17Z8*1><0l)bfOwbcfuLKYfZV}rqT^5Ihp&%CwDxUW#1u=p5 zho5Z_B?{=>nD$tqzNJYX-uT4Lva6!ZO%!Ell=wbW^Uh&2sj3@C`@>pQYi`Vu!iQ#d z>r_=^YsuUXAj2Aa1oidAZ+u%@t>5>qiel#`FI%rK*3=u)ZLw&|(W@Xko;x~DDcpn0 zI;@O1{N~+`DjY#k!YI5Cofljv4+Sz5^c`uYS13Ds#X2idcGiaLta~oY&%g+9je4@} zL`QR)HAk{-^=dy`^X|)6DJD)9#uDTca&Ztr!Mkon!@dnm2osPSl6UiBmuF4gfDR$( zx__dcmE}*UXZjyd|4D8|5Pj_uqrN|G*krvaB~e(cqTDuYR%|6$lCsyzMtNm&_sn~U zHJTt051LqXkd$y@#(kXo79{{PEZ5z;a7M|3rlH#)h?s;sIe?6kqL@vv_044`BPR#H z_WLr?Q<5~%J5blqkGoR4wCFG&YvWOwF%4+J( zh}*OJZDJzV28`XHfX^pK#hohydSZXv-2}?Ici1+Cm}=~>*nnJ`ec zrS6G`9%$(iRb)%cvtQp5E~&TpW_;nBLBW4RBtLJ~)4U}e1_^RQ!_HA@4o%V%b=7}! z#3nR`p|#ULp587rmuWJF-E>@9`zO#_Iqt7Ixb&%dQ+?$^ci=M5dUST(0jXD|c=mdfFsrp0loCbVN|DvN@Y0kxpYJr^68HkZW>2t=eqzdwMs+-K;W zR2JqrcTXcoO`wYf2%pO)5rcGAi6V}E`&Uylthb-1EzCkG0|h-i6EQD8e@mn42{fEq zbcb74G6WI!V(ZYKr)e)Q5UNrq5Z<0FK~f$HKTp$H(9^2Z!JkcBku1s3BXITHgNKR_ z@BxL}ut$4VvaqEMxz+-q5nkRb)@ywG`W4(H!A7#ZAp7hd(kD*i&PXZ#BT8)N<^3R* z<#mKD&MOT3W4G}X;@w4ZlG3V<8b{AK-J~YgdC6p~HpU(yJmhOs*C*g*nAFEWCtQQU zf#}5c29IP424all?mkGygl1xHAsDEMxvo!c^)0D-7-BjLxQ=nB?ZU=!g9rIpmo1!C zqbaYxf+t~5wrNW&VvOzLb&mM?W#;v5yu#tSWhT*;HO`V#FPI1%b=~EFB3I;bWioe$ z`W7ttaN~oco}@{rI+3KUfdO@++ib;SP+oq34@RM4cPX&&6Y_0p+VBXJK1R^NI6on; zf2sSRc~w9CMjX*GAL)3KuVR~lEB%BD&o#)kbKcX@sdYA7?o%mjcQYMHp@!2vZBQ~Y zuEf0yvV%<6GZO*6=}3|5QA=ro*_daydNXK1ILPe##`mA13R~P2gTpqma=i_|CSX|i zt`2u(3O6L+LjXX&K8pv#yc@-cg;)%I6vG<3wS5M?6~oy01L8UVpAm0214R5Sote70 z73F19Cw-9^1PO7}0H{XG2zg!DiBWs-BfmS}&Z4BT(sX`#(R&X*`3>&9RdMKal7Mym z*r;D^o(vpjqz)aQnTELtWRyLf@NHY;!PM_IKWc8_Y++GtQY{>308dAQVhmC&oa+eM zJP<_FlBzl7RaN}>Fx!34ufE7>o7-qF&luU!MPNNzP=+Ie_d?ybf?;k8-QB?H5ik)>IE2D^51ZSH1( z6u$sm6ahON2_l9vq!bK1M3@v&sF?v2)R;i7ABr6pvY=Sw*_C?P3~3j5%lxKm?9D5` zA;iZWv9e1x+8w;+j?c#dx0<-J$CIU4(2OzDM(H>Lm*5^u^tcaAo3Ai1i3_3nAMUa~ z)CAy~@M4gYBl>u~hRDL{9(6q#NkWY%(86?^wyaRL&RE|33-a%>w=E8%=d?h=-z+1S zJ*mems-J)+j<}n?n#8!i`|)93fiYi6o?|AF+t%R?j_p|pG2uNdq8o1sT&%Z^5{`<+ z`d&+>`9jeNylec|;8WOyNk|h}bjBCF`~Spyc4GS%uQ&<@lNY>)a3=g99uy*hp7@&g zDJ`J|TOUhIN1fg=j}oS(_>jsIsc*J~nmU zQ-)hBrXkmt$HB&BBMYVjR1xaWJz$B5$&cx0%M z)94@AuWU49lOg;Q@oazW@y!22kC%3yVM6Y@Ro_=LFIK#2@}Vy>ga!T-!i)<5#i@vj zR7YUb9Q$r!G~SvsN>cKZiFy_NruxP zC{#}!Z_ZT7#>^Yh#yv<-Dhh~a z)<7yvYH@K%{~O|Sh-=$cVD{|qRV5*IZLi!z4?4aH{E6b9Z#1U*l9?{FJbS}l1&oiXIn_r)Sdv&E^jgN zfMB(Sb|8Wk?qk}Z;ZATMiTX)a;*LVkc`A(M zZI+2T&)GHip5BtN|84!yTgLhT)rLcVsqAq$y1xJ~Y5As)S0C#I@Nmw<%Rs;%5?=4R zeFFmC$=0mC0OuH-cMN%?Y5Y^1Vw2Ogog*s^e@B% zTI_m`h)=WuF$CX-J}K>4s(e(p^GsWUIICw%*P3eih4^F~?_HS1UX7{!W(fPTS^z0O z_WHzGq7Tk2@yZA>iR1pv1G9z2Bke*XmAVXdw3XJPGBitMU#+Ux+%uH3M~{Kz-TP|Fwnf?`-=82=^g!RYB3pX zV%fOSQ7IA=zUdOReddjNKVqsl;JSu}b&yBrwX2yqzH*o1olu^*thlTY4pP;AZmiFi z!ON3?2-4Tz9rYtV+L;hckdt2FB>&Q%gDOW$Ar2 z5b_FjK5ONSy-KP+2lNWU7~Drr0(}m{o_MQR3sy`Aq$1Rjn;@{r){o2UjX7c)bapnA zByv}A7-Ju3Spo}|9GwdE>Z%ub80FNYe?lJ6ne_|uqzz#}$PfO4{5cTvYV%b)`O)c( zWB&np>cLL2Uyu(jl2_9~+f}pMMbFRrLJff4Pk={iKAHu@lVHQuBDFpz=3F(O*!M{@ z@%{nwe{Ayqi(Ormh88;`AsnU{q(Q+WKpnRz$i)k#2q;uf;BR;SvA z?*p_DtLS7q*oUc~x?WH?HWpvH7bO8z88=s_;Gj2!HzT`hP=)k1PA30t2#1)+CHWe)69#A$ng<1?OmF|^2({+)izI!7!rVp&hwShBwvfm+ARu&$Hm`*YTs0Hm zb3g$h#}mz19Q|9>OSs9tQPSNIpEIUu)>~ z512j1P*3Oiv!1v~=TX{vW^TPh^ih;*Y=;nip9&gM%|2#(g1RxOvEAGDYSYsDNyLQQ ze&RLNhh!giW08=+zrQks=VA3tI$BPkqeK^He|22AqeivB(b|iHNDlD>9JA}0Wn^lW zprR2JHL8I`sncs<$2$mcbD^7t&?4^hRQs7@_I>GW!kCJg9A2j4o0WEw$VfSDq3$P2ROe$izz+?R|krx-Az{L=yZxRj{9c(IO z2v#;yA1jmhCFty8(sWN!C$i=}X|;7hiv*IcA={^Im-+FjRXp{t^U)WfQt%dQF(ME7 zORH09snA>yk7P@X%-mFL2VzmiSuSnTqUCxO& zQ<0wy`M5^n>5k?d6~)Jvch~gRV4*1?6&U9k7&sHR*E?WQn(>6(?G6$!==xSiHvSU! zKN$P_*R(kNOrSr49*aEn!F_)RoSJ0>@mu~A_3VFa^eq2Rjo$P>8oloCMsG|N1ygw9 zV&Pp&QAMcd^KjA+K87r0k2w5BI>G`>_iVCE+Zvl>E{$x43%SN>(zj%9KI^e z5`KZRjE*pt^jVb}HPVoR!ic^{1)5E6GdYzB0*jSSYwg9&v&RO^_w{;i7cAfi)VfNp(4T!*eJqA3}JlQV)#T6nW?j)zA>3$QCE(phn^78+7LH(*Y zt>%`_dWL4!SN@g3T!bs@&Oi1F_`BvQw>{Kyl<5fMvH7V`2 z32Rc?45WGD)QuhVRbI`eL9=rkASFz;Es%En0YByPxUC^DPwqp z@dMQMB!G_chCEt&2TOB1z}QezVNuZPf}UKNntQ90&t=II6>H}xKkR6knqgW*9eeBp zS5~7l+wDiy*2aRzJXA2P82u+UFBeKi&}guCuO28E_ev=t${Z_a&Yiy1sdFF9?pBgZ z4UMBO&Ego^N#U&M52!Y#iO+c-V5&jHoE)iT!OmA6s+bp{mQPuxprM6`jOSFKok^!a zHZrsY^+BKJ&DLF&;wXAsUv(NyKpJj~5@}AcRX71!DhQ~olj2-AU%Y(d>!q zRieLJM%t;T5(bmRLIRD3IY0Xtm_Xn9A({xw^|;D*{p7YP)-WIZ+UO+TTZHCxtb+K$ znapM4mCpwwu~cnUKnXGu#n1Tec{pMP!x2D(5&2^0!=E7^tsn4!jFs{S%ya$8&i^ms zURxPx=Y99okMTy}*G~CI$Vj>NxvUN%kq$*HnkkGE3{ZQXyeG^!WwpZQK>Ne^To}z6 zxgWC5bfhNnQLfBlY_8C~V1FRRB9oI3DLD)j4kU(@PFghG9?a)a9Wf^jv&T!Se4Z+{ zFv&K_{>#pj0PVaaYz@%Pd!#N+;mk|>!ybmCH=rQO&j32dK>~OMdteb)DB-IZtmCJQ zUjjUco4^y72HQq|)5%SieZZwv2Pfa}058g%df=}BFFT)ceM`rDX7QQBw_P@Y@JGxL z9sB0WHww{yWT-@30yVlI zu+vA>zNGe6FP;8dP{pa_s3ZBN7qHXsMPFF!eg^{vcz5(yc5g8~S}}A!rU;aNImmAa z;H&>}uHM(0tzt&mQE#ewFl)=rnL>Zk7aDw1#@U?UE?I^pU7xOBbKn(@&ii3EJxwYp_G;wcF{(z*BI zd>!J@28HS7vy;Ax#^va4Fqk4U1CxBdPp@6-zd_ezWE0D8e62$pZ>96=Zw9dLn5j0z9+)WGmEOH z=!8$VBD*rd{ZxATQ?Q(?+MsJ&ONKlO(9J(5$?+-`K~%-ikPHQZ-x`l9X6r3~i%XOR zx7U~=;^*-n8o)iISpFK8?6TTkDl#?p2DGIX{L?3lBD*=%OktHI{9pixE}Y1-oi2f} z5u`E54a&RSca%>}&k&)O>VyA;JjcKP`uDF%9Shh0(&p`F1Yi98aaHuJ&5iAYhEyP| zupn+Yn1e%ts};&huN&Om?Psrrx{P`7WtAi;q@|(b{`!r#m(W6RqLUe5ALf+zX|7)X zhqxCm_zv{*BJ%Ubv~kwt38fmjwo?OqBYeT6z1V6>q#r?Lf(7f*^}=D4zcJMpuvVtL z{knigV?lcteBQ3T?wd;e33=*Yke35O{;xsZ1Ghm} zigqup7J?v!JXR6Lm$Vc4Zq)JXN*30wteTfW-KXGI6I(0+`fEQgINp~*T`Nb$-8F*l zS?y0hf2C$|ZBhA8KhOU!KksvTrCwCe()!EK6KMVN^HNxvDijNL-bpJ6XP5Np+EXsb z&^2KnSjMCH-=iNJR9alMgZ=dLCkSVI?w^2uo^<8YPd^{ZY+>_QJ{d)|AVVF4tF