From 181de3045b0ef9835fd083255126d006bc57018b Mon Sep 17 00:00:00 2001 From: Bill Rossi Date: Tue, 19 Dec 2023 04:20:18 -0500 Subject: [PATCH] Fasm (wow) --- fasm/.gitignore | 1 + fasm/2015/1/problem.asm | 275 ++++++++++++++++++++++++++++++++++++++++ fasm/bin/fasm | Bin 0 -> 107113 bytes fasm/bin/run | 6 + 4 files changed, 282 insertions(+) create mode 100644 fasm/.gitignore create mode 100644 fasm/2015/1/problem.asm create mode 100755 fasm/bin/fasm create mode 100755 fasm/bin/run diff --git a/fasm/.gitignore b/fasm/.gitignore new file mode 100644 index 0000000..44d4a10 --- /dev/null +++ b/fasm/.gitignore @@ -0,0 +1 @@ +problem \ No newline at end of file diff --git a/fasm/2015/1/problem.asm b/fasm/2015/1/problem.asm new file mode 100644 index 0000000..1148ce6 --- /dev/null +++ b/fasm/2015/1/problem.asm @@ -0,0 +1,275 @@ +format ELF64 executable 3 + +struc s_stat +{ + .st_dev dq 0 + .st_ino dq 0 + .st_nlink dq 0 + .st_mode dd 0 + .st_uid dd 0 + .st_gid dq 0 + .st_rdev dq 0 + .st_size dq 0 + .st_blksize dq 0 + .st_blocks dq 0 + .st_atim dq 0 + .st_atim_nano dq 0 + .st_mtim dq 0 + .st_mtim_nano dq 0 + .st_ctim dq 0 + .st_ctim_nano dq 0 + .st_atim_idk dq 0 + .st_mtim_idk dq 0 + .st_ctim_idk dq 0 +} + +macro syscall1 nr, arg1 +{ + mov rax, nr + mov rdi, arg1 + syscall +} + +macro syscall2 nr, arg1, arg2 +{ + mov rax, nr + mov rdi, arg1 + mov rsi, arg2 + syscall +} + +macro syscall3 nr, arg1, arg2, arg3 +{ + mov rax, nr + mov rdi, arg1 + mov rsi, arg2 + mov rdx, arg3 + syscall +} + +macro syscall6 nr, arg1, arg2, arg3, arg4, arg5, arg6 +{ + mov rax, nr + mov rdi, arg1 + mov rsi, arg2 + mov rdx, arg3 + mov r10, arg4 + mov r8, arg5 + mov r9, arg6 + syscall +} + +STDOUT equ 1 +STDERR equ 2 + +SYS_read equ 0 +;; ssize_t read(int fd, void buf[.count], size_t count); +macro read fd,buf,count +{ + syscall3 SYS_read, fd, buf, count +} + +SYS_write equ 1 +;; ssize_t write(int fd, const void buf[.count], size_t count); +macro write fd,buf,count +{ + syscall3 SYS_write, fd, buf, count +} + +SYS_open equ 2 +;; int open(const char *pathname, int flags); +macro open pathname, flags +{ + syscall2 SYS_open, pathname, flags +} + +SYS_close equ 3 +;; int close(int fd); +macro close fd +{ + syscall1 SYS_close, fd +} + +SYS_stat equ 4 +;; int stat(const char *restrict pathname +;; struct stat *restrict statbuf); +macro stat pathname, statbuf +{ + syscall2 SYS_stat, pathname, statbuf +} + + +PROT_READ equ 1 +MAP_PRIVATE = 2 +SYS_mmap equ 9 +;; void *mmap(void addr[.length], size_t length, int prot, int flags, +;; int fd, off_t offset); +macro mmap addr, length, prot, flags, fd, offset +{ + syscall6 SYS_mmap, addr, length, prot, flags, fd, offset +} + +SYS_munmap equ 11 +;; int munmap(void addr[.length], size_t length); +macro munmap addr, length +{ + syscall2 SYS_munmap, addr, length +} + +SYS_exit equ 60 +;; [[noreturn]] void _exit(int status); +macro exit status +{ + syscall1 SYS_exit, status +} + +segment readable executable +entry main + +main: + ;; Determine the file size of the input file + stat input_filename, file_stat + + ;; Open a file descriptor for the input file + open input_filename, 0 + mov [input_fd], rax + + ;; Map the input file into memory + mmap 0, [file_stat.st_size], PROT_READ, MAP_PRIVATE, [input_fd], 0 + mov [input], rax + + ;; Close the input file + close [input_fd] + + ;; Setup the loop variables for counting + ;; rbx starts at the first byte of input, and is incremented to read it all + mov rbx, [input] + ;; rcx tracks the current floor + mov rcx, 0 + ;; rdx counts down from the file's size to 0 + mov rdx, [file_stat.st_size] + +lp: + ;; Is the current character the "go up" character? + cmp byte [rbx], '(' + ;; If so, jump to "up" + je up + ;; If not, it's the "go down" character, so decrement the current floor + dec rcx + ;; Skip over the "increment" + jmp moved +up: + ;; We should "go up", so increment the current floor + inc rcx +moved: + ;; Check the next character in the file + inc rbx + ;; Count down the file's length + dec rdx + ;; If we haven't reached the end of the file, loop + jnz lp + + ;; Put part 1's answer in rax + mov rax, rcx + mov rbx, part_1 + call itoa + + ;; Write part 1's verbiage to STDOUT + write STDOUT, part_1_verbiage, 8 + write STDOUT, part_1, 6 + write STDOUT, newline, 1 + + ;; Setup the loop variables for counting + ;; rbx starts at the first byte of input, and is incremented to read it all + mov rbx, [input] + ;; rcx tracks the current floor + mov rcx, 0 + ;; rdx tracks how many steps we've made so far + mov rdx, 0 +lp2: + cmp byte [rbx], '(' + je up2 + dec rcx + jmp moved2 +up2: + inc rcx +moved2: + inc rdx + cmp rcx, 0 + jl done + inc rbx + jnz lp2 +done: + + ;; Put part 2's answer in rax + mov rax, rdx + mov rbx, part_2 + call itoa + + ;; Write part 2's verbiage to STDOUT + write STDOUT, part_2_verbiage, 8 + write STDOUT, part_2, 6 + write STDOUT, newline, 1 + + ;; Unmap the mapped file + munmap [input], [file_stat.st_size] + + ;; Done! + exit 0 + +;; rax contains the integer +;; rbx contains a pointer to the string buffer +itoa: + mov byte [rbx], 48 + mov byte [rbx + 1], 48 + mov byte [rbx + 2], 48 + mov byte [rbx + 3], 48 + mov byte [rbx + 4], 48 + mov byte [rbx + 5], 48 + sub rax, 100000 + inc byte [rbx] + cmp rax, 0 + jge itoa + add rax, 100000 + dec byte [rbx] +.ten_thousand: + sub rax, 10000 + inc byte [rbx + 1] + cmp rax, 0 + jge .ten_thousand + add rax, 10000 + dec byte [rbx + 1] +.one_thousand: + sub rax, 1000 + inc byte [rbx + 2] + cmp rax, 0 + jge .one_thousand + add rax, 1000 + dec byte [rbx + 2] +.one_hundred: + sub rax, 100 + inc byte [rbx + 3] + cmp rax, 0 + jge .one_hundred + add rax, 100 + dec byte [rbx + 3] +.ten: + sub rax, 10 + inc byte [rbx + 4] + cmp rax, 0 + jge .ten + add rax, 10 + dec byte [rbx + 4] + add [rbx + 5], rax + ret + +segment readable writable +input_filename db '../data/2015/1/input.txt', 0 +input_fd dq -1 +input dq -1 +part_1_verbiage db 'Part 1: ', 0 +part_1 db ' ', 0 +part_2_verbiage db 'Part 2: ', 0 +part_2 db ' ', 0 +newline db 10 +file_stat s_stat diff --git a/fasm/bin/fasm b/fasm/bin/fasm new file mode 100755 index 0000000000000000000000000000000000000000..1cd237101725f0f617a1d9795518ca4babcf9b91 GIT binary patch literal 107113 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≫k#ISwL`KlFgOExv0Enh zA>T-Q>0fPXRx<@Bo05MsrcHykO)kzV8CcL=|7Ub+AJ66wfp~aR3TK6W&ui;Q_wwH7 zp%uP|Gav`xJgC6w%V6yB=HSRE=jTteOChe2xbJiEUs1u@f_krb6>uKzd?5H~MZA%@ z9m7TdR4!|Sk-0zIiNdZ=hFbtJCC-DL z^E#jOHad-4@!>$>s5iiQ1*Vuc(PkvAWnEKv7vFL4M6BJce$l0;;XyieuOc0)_B0d; z&BnDGxbVGH-yLDG+NUA%H;`d*3(|SS*Ac_tXgPO4RmBD3&cw{!84Ip zvQs5^o=>;VO)_a4>cC{qxXO739x<+OrN+ z;WX62{yOhsvIOSiSkY%nZ=C~(I<~xoIwqrzo;66(vc0eg8%bNVYP|5cA3*B}2_Lwm zu&S5dC_Ik4sD?$9RCF<}MG}4vhYDcVT|x}&K=jzuC{hASc>*b1L5isOHWi#mNymoG zC|51ovnz@hk2RlXC77oa`#6C6Sa;!Ilt;_~-Y?HLO_}<(tp*uICGo}D(sYw9S`WJL z2EO}%U$6jsKv&x{>R&~C+vYh~wxn<)+M!jt8RhX|;Va<2C`Uw8?w3Qyh`lnzfN{Hy-d70hsiDm?>)_6n9) z>X%b~)Yzy_H@?*45Y9I*qIdXhx$Tuf*HAb24Wy{c5zA(iyUym-q{3rx26>J5VSf)+ zCHUsOvCF8Ceh2hE>;=}%UCVhZ3RSqv!|u zMe_MvK`-pjK9cQ_-Eq^(HSmEcVv6Fhx&b4O5tue)gy z)r1aS8BStZwo&YVuzo3YBQ`zr@x~0fSZ&%PMF`^-)I2 zYTS;infK0$%~dp2dx5K`FNUdAoc7Yx_nqn!yyEfr`X#kdzk8lG>H(liXZ8b5dx<&J z$87&XN?`P{Zd9a;$Qm}isM!XD@i z{ktmsz7Et=0lxr+e@P0ma4A+p-Ku+k68-%DnFG+T-Rmyg6}`lF4}~*Z^?w4w=MLed zZ_`Qjix=UH{I~#}>0M}}&a~W%`hQ252W)i}b*mTO+1RCK-e?*pFGJ70zl2*FFRYkJ zH84P}QsJ@})gHU*S(>=FUf}KW8VdCsj18n)RwebQ2dGV0I6;>@nM>Y`lBI<|3~8a5 zL;Qm|{k=%iZI7Je3VEayLrUsD?2JH0VOQF@9Z+ve3X@SGPEp;3706IFXSk7X!?1a^ z-+hKUeHX~W&gk;Zw9qQL#eIaWMn(z-PKO*n0k#cY8NM3R`3C>)yq=_ZtEl=@+p`>16j$T_wpZSHTr31Lcc55;SH5sJULdfc_qV6ZO`B^$ zLH|FGoq+!-|0k>gsmJp<^$etzq)rBDWx>efk$IX59m4b(j3c*4fo@gOcR92cJ->ER zuUVciDeMC7!dZCq^v%OI#pn3MqyD?e)pZy2N8Pjegf{9yAKOF!Ou29bituuOzGj=& z*F9Hi-OSe&o=3;It36A6G|T@r1@%6RQopTt3u4z=6m4_f!U#U?7sx6$UDX`c7P3@5 zeHB)ycuRNaG*n$UF>H4B0ej{9O*;R8-6Iuy;8!n@caOeA4O)*SfnU>0?T?AQk3cNJ#NHdv9_=YfSe_?JJh8y{DWi={4ojs zT{VABq2ovSqh{|<9W?xd)TQ)DzD-}DZ=@^fd+Bc)@$F1Q;Sabe8D4t7m|it{eSh7K zK2cDY-{+6!nEB6bes1>9`}n@Hq+Bm8rq7d%yg_iSW}G~}awE9Z|U{WAOKq(5}_&tFqW>?^<5+>Lb?eva?1SN5$~ z**ChfZ)D}N_tlT^ZR)%11C2$OZJ5_yvASkev9ZSW)CjI(8QhbWy0V^Bq9?WM3vem7 z&O1DckA?Le?1`|;*50`S|Nj8(sqsvN)kBTXI~=uNb~Bws)x?%n6U*+J4xj?-Fh*|n zf3|3rS}aENUWa;8+Z}853==fT5&WhQU3V`|bKTrKL1L=$b4x&$eL1fkKhSKI4S4=& zG9G7dG}YL5M`L;wcG+h1y?H@+4*FIWE`|WcEND*ryL9{(FxQi>Q+6q2PG?>1`b~Z2 zkEUCM7-a2w#nRwc_pYLQjf$M;NBf$Xs0*H|TDj~iwKDuaL6&{3i6haaOP;@kKc2vs z5#yVlp3f%S+^6%nJWuIPdM~2V|cIL+YM{jYwX^8?!VswyYF$zjI++!XUy5Vp1boI`<_}Y>|`oyUs_p{ z$|llzVc))eMapx&sIJ6Q{=lF!T2qyYC%oJvm4JStqfbq(las!a%i4EVS2=mF-F~E| z(z6}^1_O z;O?|NX-^+)R3=kt`{&xqG&;6VFC((o?8w;jBYR#R+53u$cvdW{$mGP$(VTZ*h3rVL zz{7jIqATb99h`F_V=t(%WO6+o-iC^7&R<*Mr2Q`|yw3O+MpZnWYR~>D8kZMEH&c-l1MU1o#TVb)k_bD-szqpdD;=R}8Dl}MZY6Vi+& zy38F#hgmIB=58Ww4iM685nbj^wltfP(j3<=&DNQX^;2dx)gL!AR)74==K4R(Y^k3* zb6ouiGh6FVoH@S!q>LPKP^NoGL$+)91&%$W(Q7m3c@xY_JTYoVFFUHi%a7X0>mIeU zOqsh%$J|9qvswD)&6blk2PM45dL!XA)khLutUj9Xn(HePUQ2yt!W&m#mGD~Ys}tV% z`kI8-R$rU&Ce-&5skFJhNT-L-7AR{9lhX|A% zYGXbo+L(yLY|O+VHimzYjj)S^7=pEz*yf zi=^Ld-YWeT^ET;^Gyf+2R`Yi0k2mk|F^Lm>OyWU4Ch=e&lX!@aNj%iYBp&8t5-0hX z#KQxT8Ge3~pNoy^k7vuM0eH5J8faxjWBnO;Hr2=RjMZCsHrFR;C-;vea>5>3mB=NN zLndO88|!=H*;L;L&scq5Je%vc!?UHnAD-jt>qOj-53RDa9;L-s>a%N&NMFpt7B&3It$iOMW*r z%r$sUFrS`9W!K}`WNyGSX1p&BrIX18XptWV-L<|h);~4@? z=CcH1=5qv^&F2ZUm@g0*XTC_F)m%$py!jG=HuGfy6U=-?*=n#@fEV&-N7 z&E}^BTFlP~j59wc&}x1`V7&Pyfj09i0u#)y0nov32sD}B5{Q{w2sE4D5oj^LCosWtfg+Sp^P{xQeeq z`bbFZ0LhV+xwJjJLg<`{VpcYuNhL-`A*QWd&L7^VJ)4IP^>QPR2Zn-)nIn&bvY(mC zCUZl3d3IdHt+YLKBut51-b>iSqJfw4Ic=2eh=YN$M^K_dN1B2dw5^F%TDAK z_YSDv?nrv^j6HG+wcy#AT&F#>k4VV`%nz<-Xe#U5p5xhgjwF-8iMOk2hfg&685bGT zjYZKpMq~A_Mnk`*$eTmHH!j&}U}XC5-ZAcK3yk{@=r-bqonV}L)NrHk(Ibq)G20n0 z9~(8kKQ>}mer0M-Drp?oJC!xei_eS)@Bisc%fll<58KD1{X9Igh*+w+X3LCLf*4!ABU{pbPLb)@}oFw5D5 zF`_$_mFfOhVwRu(NSqnBCB|miop`p}=ir&P&&4z27=NF4W;RagS&MkG34Ypn!rO@_ zniEo8-Q=cMhpaT1==0G^bUc(%(bJY~89 zJW@u1`(DN3tFSeUi&L3=x^hQYp6wNQ=A6qfy#`w%x??KmwHsrNT;4a&$(X0tH9HCzP?>xCp~e;*F}!X^b&09ld!>ZHwa&q*7@&$7~q)UMxu3Lpm(kg1BhHvxDNfbNdexA$#^>76!i zn1|h9Ux%em#}m)YSdd7!r~X60m(>f97+BRymSRiD+Yh_~yTQJ0Dz<|kH#SZbjw25G za4~?K_~BwZEp6lJ-gYJn-=`PV)o-7fs-epjbc!mj{GgIau58Z$Q-AQu0nd5{p1afu$^xY-|X03{!86*_2uV$+KuME;RGRR%dz`34*ypBOPabhBk z{jSDQ61V+y9zfT3cWuUz5=)3ed$(+snB)jpFv$iE6ehVI0D9-y84IM}o_dEsPTuw8 zNVMDK&xd0oh-4L=10`S!t3%cMDz8<>@ zS&o=yEg~qVO(rPCw0R8WwEQCWKaJnjV@Vt_6?}kl>f}WhR>k{nBpuaMVvstkiNSzb z9KT_YJxDM+{0WBnVGJ`fhp&0a%H<({FF(tIN}Or@v9BcqZ1isyB(N{yhcCT=pmnf< z2@UN-72Q5r!SvAz<|ZoW9HpQ7|PS~i)_-w#)oGCdb5n? z7)?vo_-8Xg*I2nM8S8@igkwz;Y}~RiY2oZwlUPaHUGGD7K(3^|$S`y&APk`AQyY*@ z4c34k(5oR)0~ys1GAilWwlVnnWC|4;-&~takzgVS#%h8ja0q5o{s$zRNY=1$g0Mk4 zsmH2kt_O5dd!b)ocOqyfOS0^=8oXxltiw@1pg0`$1Gxl8Kg`Hr5(xbSrOk+yb55X+I4i3DIXQQBd47m1*~$G{fMYv49X@?;mn0L3@M6 z(0%^|hQa&0FzlxE?nKuASN89jc$Xtiw-ynUr%xs*#p&}H%G2|UGO4U1W*{F>&OkmX zhZ)ERlrxZzX|TWO{yU(wZtEim3S-M{1l_--nU=;!Ob34(%XHUc6V69|ch>`e*dF3! z)DI|6M*aD;6epv8KzTCir*(dM&@vL;R<@5IC~{L72D!1qfljqX+<7NKF;c-`2ZC7N zpCROFeScNZU8i913qcqL?-7I}XRKZ7#5>!q^+b2J2Oj_?p&NG?y_jGyf?zz6Sjtd{ zzYxSs-NrDLy_#V@y_}$zaIPVU4SPLcDwY)6DH!wxgqjiY!%4HmgLnhMq_~OcqE(rzr)s8n3biY!O(7w;<=Y+#rcFDvN2qG0e6!MtUCk8uEs9~E?eQZV=d zkmUOI_b(=$7C!@e4^UJ>xdA3`gysWuYZVa*-?7`EFtF-+TkVVI4p^sJ@$vI!0C z1uDN?^QBd}Z0-t`?%bfDT&Q5T;&*JNah)9HldopDF^=#WXI7BbwC*BHH7CX0=r5pq zH~I@0+>QQ1oQYGdMFi!klL<<3>O6+>)chiH*rYMG%BS=BX!h^$XywfM??3Hi!}7pa z2+E14zS4;UB#c8}Am|z`fbjO-xa0oLOjj;j-MYM!EuYz|3Ca^cTiwY<&(t-fxy2@f zp}Xm(r#ji1fhzAngxR>gSKwh?8yASclTvKC+iF3pWtm7d}PJl5WrS18~5rd%R zG0YuV%>#+T8qbQf=o+^2VIUadun`Xdk$%_k%?~Hi-L{uAc6xwyx_yXJ%9cGzA?@}t z3Q60?DkK}%Sy@XnXA>b}AEtTQL*}$Dp3NPkvz*^+L>{S;Ze7Z;wQ1nwhzF`xioJhc z#E9Jc>qSX6H&&#eelZApjYjfs5CU%J3s-4om?%mWJJry2q=Oy9gc1gmQ=zr5S3`*O zeJ7&ztyjeg*UolUo=O@w9kcg@3MItfLm}<4F$&4X#sa|`4VVQ`!&$Zi2w_D|2y5a6 z*8?FH3>6LpI=JEnyqUmD4&&UWqyr}>+l+chi#Lq};$dTZl_&+o$$W@Vrx4;)LBaFRGU}GL+rG3D;}?hy zh;m1qZ7pI%o;~8$4n9riAcc?9IU{a`UxIfovroJqNZM&PwqHOBJ8K=RGwLkQ=oYVa0d(5H5ivNW5O?qy3JC^zcRR@})aiV!CcV3W(4vYc6gMG3gb*yMsMbhO z1q4&zSq<}-Fd}xkN+Iq}H!37pb;nH(88Fsg$=P}>t#N;-HIDLDs%{GsgM z9T^u^umvfyBcHSk42KYr-1jex1jbk(co}EaQWg-=TO&a)LQt_=v*0#IX5zAA>ro3} z2_U6{QlLYu0@Vy8=ph77k9Y*Lnzz!agz-y^)x0QfdmB3B==NFofH@{PU^ zNIq7P!Jm<{;E3a(MhTI}L5~8F;y5T$LgaDzMKlNP^7|ke|YziRms1p?u?7&%Mj*llEvd3!_;;y@mcyQi-;VigXZfj1<|@Uv zF7NXNW%=Stjks57B)EbQ97gLpjfm?t;@+TalaxE)`%e?;WEz69=48Zwp(x|F4kAIW>F^Q+n+_mBvT;bsv0X<*rBCK3u%I$Ub|agB=V>gcp3k-i;KEM|X7ids%P`9V z7i0ZeCjNz*b-^_zz)p7sxYKAb8T*j@*C4fZ!t# z^g{{WsFn{t#zbd`xqHCg;j|#H(%OAXgqTQ%m^)tawflihX*?U>Ke`lHHkoRF@|Z5ZZ9rLdc)^3< zBP<_mRB3tPegljQjE>-IZGfeNuL#Rq82KBNOIYwGFrQzmR^Is!kAlmN==I@Zg~?it zNzvyml_q8H7Z-Ey9Cx>2LCQ0$TpBE`i{_g8Vo!aNV^%cU%=~ftd-3HQV zRYk>{uwMvsD=uP7hFo!oT2i&}#mSaY-s`0=D@^V^`{ho&>W(>L%~k6ZCfD4tt`h;S zZbzKI_vZ?evo$8g1$8P-$~mJx?_@7coDDV3m^?cP43p}Jb1024c@EN2o}Z7WjmN5B z*dWU3RgZ-s!ZyyEWZEe2X3cX7le@ph82p>uB^t};E@X^6oSAEhk50-g#>mG}X>^WM z8o4s6KJsO#KHOnTi|YN+E->lW5XNh6)ZEYZ2|OG&KG?-!4AUmw3vCtmJ+e`-WAoP5 z#mer;i>;Sv%-wpn#)7Sj2+L)_cek=Vz<004+^zr6Sg`d$V6ZhH<+c5R5wS_azEz+1 zkqb-=9;q>R@IZ|PgX)0Ml#6IRbTeT=gfUFHs1C89iZIARcvSm-pfIu1AsTacI$UGH zssn+M@oDYX2o+D5*ncg?OPIU=42=b!(YzoHE>?(%12tdXJy7$(-Qrr%u+7IwZuOzf-q^6tKx4~`hu0-0$w{Q!du%P)fFUlitAv2Qgd#)WA?i{=Zg zMowcdPS7|YB!UmQHTL7UHDK;UZVg!QD&@lZ>lA~YMhU{)L6i&ouT#{kG_TXGr!?jA zQ3-k%CtRFC##|R?kg>q&!?_-Imdf>nD^;!sYe(ghzeuBGhtc_h%HkwjwX}lDQw*`7 z7h~)z{t;Fw%)w4^IE{la_i$fh!2mL6VH$RdNt_GJos^+mU_pPCOa3L-;-Qwq6d!6i zjB7z!U@{-%u2tYsk_7GnrhT{+tUU7OX$CYbq?He z@onSurHM2GnvkZ|D<8pmg#yRxUN)o%m6dEs0hOYXO({ZUCEHRk<{VM2c*#1eR=i}M zRV!Yy&#E;qhESz>VWCxNUYKZAnin=&74yPxa6}FB5-Mw$7pN39%uA@O0dFVtKE&}y zeQ(vMJY_PaIs)qbqY;z})JcsUc&A3?bc-2MD7NQ@+bI>O+_S)_M6pv8g9O9$fm{R7 z)Y#rsgA_5D8k-DJIei{gCQ~sf_RQX)QMsqhs6^`YJTm}IjXm*BWkXu_T9}RqC9*XK zJ5ixQH4H^I$6H&B-b-=dVUsy>$FJ|gr2txZ>pFzv6e_MmKu)3VbqL8RG`J2yIoXj) zLOaHKUel;(E~0Mp`(bJj3sKK%3>iGpR7BmTB16y!G@o@6Gp*qF2=_56+}|V4$7mpa zf57XA!O$B(*VyHDZOnE3$krSp3^4WQA{E~BOxXH=B$O<+_?~mg+{0^@yfb*rt%Rn@ z^c!=lgI5S}W`dcpH5d)7ghKO3-3wL|Qelf&?MPKS+%lJv6_jvNe$(x25D^-CK-)%0 zy@QM%?u7OFLpKsCyDYKeqgNFSzD%{a$YBUf#PYY3ZmpG%{sG&*K0Mw1C z8h{3ks)p_^;f_-^baw@!S=9j4ZJ`>-8k0dEm}s7zv~g|TxOJ%~lG2Lf9oz~8m)aSP z0Hv@pEcdE^KLQ7hPi*17N8l|Zgwx*i^rMS48hZvPEGBwO-cmH4+;MY7UayPM{}Em` zSONK_aq+(V+m zK){DBSNM;Lw;iHlJH^`$QL&xk1uD1Gyg0P|G%rp-Kh2BN*H80e{QVR!`-h5`9Yn>; z9-`u97g6(~-iYQUCsFgF-iYQUHxayelS#p^)K{?W7?m9%D#gq#I#tRueZ3oeNHR@ZDkk=QHkk@x3A+H}qm^YWPU8_>Zwb0*69oe#7w^GNpY&WQ+=oXC5 zcH64ZyzREA(7f%oTcLT|?Vuv$^{r^g>x*c}>$}mA*AJqa7h{WPUW_fGc`>$#=Ec|| zA+K*4A+IltkQd%~$m<6N@d^jtmzYBKlyCw_$KwfwNt}vVc^#!o#YAT@)$JsUiy4AE znI%B|n01ck^<&~(&Fjb9b2YCY3(g^4GLkLv#Ib0YQFmn#4IU3s;XWIp@HolNV%u7* z4pRg7DMoPutYAZk3ipE$g?q}yzz~S{DV48bh(jMn*BNyWrKl-BEt0rpa2gm04a7A? zG+3Ze_Hb!e<6u~^%pS)eUI|phG7~hKiCMc3SE-qpXe**_TYZ=s?5bzQcqDK&7|^u(pMP9YToP**AjpurJ}fnEHKFH;Tq zBz$~Em6K0B!%~o!PbgU(8Ee;-uW3~5c29`9yWJO}!LE4N-(6T68Mn5sg6E_?E|0L{>*6C?>1J4-n8{TmjyH7+8S&Pw&|g zl?bkSGqAEbj>X;#r$j02=!ypdPbut*6%Ta96K)=tu5iVp3pd$qXms3)REB$NOI2?j zdWGp8QE1Nbt93vY-@jBv=sGQhE8DEviPylkBvTevEt{u=JE<{j)wvph9pJ)oD*mAgZvoGop>Vu~_fm-xp0R+F?j#4OvSi-`kz1EK%I2_w z4p?sr7w(xwJP@f6Pg}tmMO?U65f4NhIK^*p%h=v}=mJCr;^ItvDDdl1gd?JX^j{BM zKvq!}gSOWw3kk7S+45Y?U3l9S@9c_=Yc*DVsqk@4vB;_~`P~+KQ3%PP`#24bT#KL# zD@cSN>}ywtxU|31I7IUA57FikPS8=nv3Sats$=^{IaA8wP~Ma>Ig~r4>=Qmgy)-{r zNxd{bnMu7gKiNsWLVj$6-XTBMw0FplrSBc`W9fTqe)iWiKRaxipFK9s&n{cYkNT@Z ze$-zT@}vH$kRSC|DSmR+M2+GnT-GRla@RzS;wN0z5P#^qJ@7$@%TwS0BVFzDb2n<- zk<*uixa*#Eq~hs-*EaBq51EJe{~aow{k9EUC!K|k9qtKvQ1)?7ciCtBH^O?IKH>6| z1zf-K?q+;M>4eMaaKi~_|E}-HAujhEs&Mx3@FtOX*v0Gq2tgNZfelzgAwqgFD&|3j zXln_6?%hd6ka zggAKq#<=qKt|(AF%H6w;apmvr!MC%N!*|!q#G^bu;7*ISYQ}sC8&$i1{8p53_NP(Bo1Eh3yIISd^HVPMlRG`9LK{`<3L6Vdp> z#NDV4Re~poau@V@QK}cQp6EQDdFxe zx-5JftG_m#DabQW+s=6y+5@zq4O|Q=r3dvz{=hPII!9!5og9+U{o$C5ZkK~HMI2F? z67IHeSsj<55HlIUSy;h$XnQxC5xZSc#NFK%6!Bo!n_&psBANY2172h{KwrSlDxH=_w-i{G*G>6vJ;z zU`^_jZNh}CQ^pAqQq=9iRvHtsPMIe#L*Sy#QnmpRt~*N`AChw(3@r}IQKkjVhP+J8 zI!4(LU;}X`6WXfz2U{9MxNi5!Tmjkau;07cP9Xw0YuHfH7Q9duC=>pCCeSg+mhO9* zjS1PkjB7(*C`Va0Ovvs_xl!~55$Ut4*mhw;o;BcO7$%`dfLCWp*!#GH?1UyGNjb1!!o4Rs>3p*)~btTpx3I3 zWuVxqie;eLs)}Wx+N!urF2jAR(z=lQR;868_pM56L+)FZR)@69ts1Qli4ZkfArj%% zXpKljP(vyasxOvoinUd*L_~y$6o^ThNTspgjvR?wRHPw6$Rmi*yFy%!)eZ^wa_j?5 zxZ;XZj_Y1QIi#Yba62w5>K`2Ki;D^f8t8USD7TWtb0|{&L`xsOg!t3vAP@l0rgQCL z^qbJ4ns7(cn?xl<;D3_ss0cWqWNaz|9%wO#T+k8$AGFAph7*b$4j)iF<5-GkP%Ht2 zJeDFFijZP5#WXY_CsR~|2#RYwM{x~J$mb}sp$I9Sr`U!je7_n456OPbCn{PqE2mR#!CvwvHxZ(Xo{QTHuy^MVx&D9B*j zJv|4>Vk#l5C}}Dw%#;-79xR3xB~9g4g33dN)E3KulC{NhdAx6^EtUf%YfI(O-jGr` z>Bu3aa@cA^O68=KLsYqB9N#EAqK_)4DA`AqV+z3}RZdZ|k1E%0pPoZMcTnXNC3jHe zn37@#RZdZI2VKtRawBy)rsPOnjwpP_rOPoTN2+pZ)!qPAPEm4zD#w%*15`Oh$pN~Y zYOlX8r`qeU%c=JI>vF2S{;C{Ig3~dd+pBVllH03tOi8i5DyJy9y($+P6RKQjO{j9A zIibph_5_u~HxGD!f%fLld%i@;`ImuGu`sB;t{aQ$6soSPq)#a?QBmo4!0P;^zz!`RT&r5EK&C{s)`3j9)mjNM6;$h&HM}LQ1oj}g#Y~AmmQ(H@v0ICI zK|)icO7m8YR?|$08m*_9a%;4rW-6#rnmU`rw+g;kMeZS82_(v0#ZF<-bf(+Jw3_2$ z9eMYDayAu}&b!Nrf`8#d`3Z6Jv!9eG_vTe4$`!Yi<+<)Hlvgse=^X`AY-xicflnVW z;ocuPIUyx$$<5IeWF$E{Atie&SBJaeh(%~2?3g1Lp><6`e%@NjgPgzh*-whP3Wk1B zS#`M7n@E}N0!hkCt1`+p2He$YAzm-=Wh6}Lq2Ih)M#>>yysLw>EPnec@dQJONZD7( zCq+upR|zOh%DzgnF$obhqO2@*%!snGP%@RqYN6%c^z z-AKZOqoyo@ZzO3Fl2Y76;-pB*n@FB8$pUOiu`EllCB?EV!tN=SWf^u)sVoVxM@wZ% zialB?OJeL_rLrW){-w%l5i9=8OOekQ<9BmtRN|7Y9b4aqBY#BB+ zB-ui3E0!g)ZJ%OUHd)(>Wr=Lr2W6e&0k*ofzFS6$X*KVak?zTT%E@3>1;{cZm)*aT zmCIxb~Z?H4*inQr7(lyX7J ziej#h_jkf5<`O9l$|W=3O8JOyT(GY)`Se0bSg!B(8?7EK@inu%;scju3Ao z_JxM4B`7Ay;c5-S1Sy8AMJOi7;aG*xd}Fb94IO1|&#~aUh7Pk%U_o(v83&7s+sipf z96V6YK?30c=78XVWx=gn%N(Tyd2Ja7w{k}r2e)!ZIR~}!U^xf1@*p_2-Qwqv{gO}n zDZa+&S{J~C(WZe~^eQY`d4jCMs+AJ3Y*kpc@&s9hbt@*&!dI8qK`UQfUPlw^s4lMq z39@>RO^BY(v}d*3S;WT>D|!#7v9#Ja53!*ylr1-V>cd|CO-kGF*UD4qlni_8Hz_T{ z-z`g_lMy?)ykqQLpx1&dB?EkQx^Hg7>4nJXQ;4fkbEAo%+gs7a`Pb90i_7e_0+}gQy!tedh zI+2eK=_i8dj{Q6x3fDOdnfM1(wNb*k~(eIQtB;r|0vFrw{pzYyufH2fo z{0-?8zCpqd6XHh+8|eiSO_ zHPGjyscbvR%2Bt4GAk%QfH!H*rxf>r3#GUy;W9+Xl`u^0>U<;6oW(G$in= zhPb+cA3!cv85T6~C7#_LPd7kKL*A?JYQi?~vp4jua z!r;oYWP`}@tn$x0|DW0*D9B%Lz_jIUBc!O#V!?Pj{gM(sy~E3aTtFkjN2vHINt$}< zkcY1naVr|*qh26*l;a;?YzR_*M?*S?`GkXxU-ZS|8MslyKQ7sDWMTFEtpi^*@o!#>201HZ;aB=J2sd2w=@1QWp04bd zr_irCVYNH$@{Lly3D|lr+d2)HYWmG=Lw|kMkdnNp{3R6nV`p>u_73FwKD8S5rnDvK zSN)2~dXfwpF5>yKu!QubyEN1>DE5vQ6TiJ_