From 56f53ee0fce7c3cb892678567b11b8a00ed13bf7 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 08:05:02 -0700 Subject: [PATCH 1/8] Rename 2012/zeitak/test.sh try.sh This is because it was used in the same way as the try scripts and it matches better other entries and looks better with the manifest (makes it easier to see what it is for). Rebuilt manifest, generated .entry.json and index.html files. The thanks file was updated accordingly. --- 2012/zeitak/.entry.json | 4 ++-- 2012/zeitak/Makefile | 2 +- 2012/zeitak/README.md | 2 +- 2012/zeitak/index.html | 4 ++-- 2012/zeitak/{test.sh => try.sh} | 0 thanks-for-help.md | 19 ++++++++++++------- tmp/manifest.csv | 2 +- tmp/manifest.numbers | Bin 1332995 -> 1332729 bytes tmp/path_list.found.txt | 2 +- tmp/path_list.manifest.txt | 2 +- tmp/path_list.required.txt | 2 +- 11 files changed, 22 insertions(+), 17 deletions(-) rename 2012/zeitak/{test.sh => try.sh} (100%) diff --git a/2012/zeitak/.entry.json b/2012/zeitak/.entry.json index 9e3321746..59c865475 100644 --- a/2012/zeitak/.entry.json +++ b/2012/zeitak/.entry.json @@ -58,12 +58,12 @@ "entry_text" : "original source code" }, { - "file_path" : "test.sh", + "file_path" : "try.sh", "inventory_order" : 100, "OK_to_edit" : true, "display_as" : "shellscript", "display_via_github" : true, - "entry_text" : "test tool" + "entry_text" : "script to try entry" }, { "file_path" : "correct.java", diff --git a/2012/zeitak/Makefile b/2012/zeitak/Makefile index 893853a56..436355a7d 100644 --- a/2012/zeitak/Makefile +++ b/2012/zeitak/Makefile @@ -137,7 +137,7 @@ all: data ${TARGET} ${PROG}: ${PROG}.c ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} -test: test.sh +test: try.sh ./$< || exit 1 diff --git a/2012/zeitak/README.md b/2012/zeitak/README.md index 4eb75f96c..b447b9883 100644 --- a/2012/zeitak/README.md +++ b/2012/zeitak/README.md @@ -22,7 +22,7 @@ text files that are not code. ## Try: ``` - make test + ./try.sh ``` NOTE: the program prints an error and exits on the first nesting error so it diff --git a/2012/zeitak/index.html b/2012/zeitak/index.html index b8e8c0328..64e500e2f 100644 --- a/2012/zeitak/index.html +++ b/2012/zeitak/index.html @@ -411,7 +411,7 @@ code below.

try incorrect.1.quote.c and the program itself. You may also run it on text files that are not code.

Try:

-
    make test
+
    ./try.sh

NOTE: the program prints an error and exits on the first nesting error so it will not detect multiple issues.

Alternate code:

@@ -525,7 +525,7 @@ at least two bytes long.

  • anonymous.c - 1984/anonymous source
  • zeitak.alt.c - alternate source code
  • zeitak.orig.c - original source code
  • -
  • test.sh - test tool
  • +
  • try.sh - script to try entry
  • correct.java - example Java source with correct brace (supposedly :-) )
  • incorrect.1.quote.c - example C source with incorrect quote
  • incorrect.3.quotes.c - example C source with incorrect quote
  • diff --git a/2012/zeitak/test.sh b/2012/zeitak/try.sh similarity index 100% rename from 2012/zeitak/test.sh rename to 2012/zeitak/try.sh diff --git a/thanks-for-help.md b/thanks-for-help.md index 25e5dce10..23d2db993 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -4744,13 +4744,18 @@ version](%%REPO_URL%%/2012/vik/vik.alt.c) that does this. ### Winning entry source code: [zeitak.c](%%REPO_URL%%/2012/zeitak//zeitak.c) -[Cody](#cody) added the [test.sh](%%REPO_URL%%/2012/zeitak/test.sh) script and the `make test` rule -that uses the script along with a number of files that will correctly be flagged -as incorrect (including a text file and a java file, with a joke, to show that -it's not that it parses C but rather just matching pairs though that's probably -obvious) and some correctly nested files were also added including -[1984/anonymous](1984/anonymous/index.html) (as the author explicitly mentioned -it) and a java file as well with another joke. +[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/zeitak/try.sh) script and the +`make test` rule that uses the script along with a number of files that will +correctly be flagged as incorrect (including a text file and a Java file, with a +joke, to show that it's not that it parses C but rather just matching pairs +though that's probably obvious) and some correctly nested files were also added +including [1984/anonymous](%%REPO_URL%%/1984/anonymous/index.html) (as the +author explicitly mentioned it), both the [original +version](%%REPO_URL%%/2012/zeitak/anonymous.alt.c) (.alt.c) and the +[modified version](%%REPO_URL%%/2012/zeitak/anonymous.c) that works with macOS +as well, and a Java file as well with another joke. Those C files had to be +added because each entry has its own tarball and without the files it would +break the script. A problem was later fixed in the `Makefile` by Cody, a typo in the `CSILENCE` variable that prevented compilation. diff --git a/tmp/manifest.csv b/tmp/manifest.csv index 98f3eb78e..6ce06e8e3 100644 --- a/tmp/manifest.csv +++ b/tmp/manifest.csv @@ -2857,7 +2857,7 @@ 2012,zeitak,anonymous.c,40,true,c,true,1984/anonymous source 2012,zeitak,zeitak.alt.c,40,true,c,true,alternate source code 2012,zeitak,zeitak.orig.c,50,true,c,true,original source code -2012,zeitak,test.sh,100,true,shellscript,true,test tool +2012,zeitak,try.sh,100,true,shellscript,true,script to try entry 2012,zeitak,correct.java,150,false,java,true,example Java source with correct brace (supposedly :-) ) 2012,zeitak,incorrect.1.quote.c,150,true,c,true,example C source with incorrect quote 2012,zeitak,incorrect.3.quotes.c,150,true,c,true,example C source with incorrect quote diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers index ac7d544434231a6b2838c5e3708a44a3cbeac80b..ef56c8584021bb61a7c1dcc310cde77992a0bd9d 100644 GIT binary patch delta 35720 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 S?E!PQS~?xWUS=sq`2PWq)K?4u delta 36311 zcmcG$cU)Un)-J3Al8(Sw-iT^UY)le6cHH6=XHxBiaTE_poXkuzsbiAeGy6`7?8;2o6;ap~XYrMm>^u5Q4m?^jIl!D{a$2%e9aT)7%Wc95BOgi~kn^n1ITsu8;02WX&_u?@| z+cVb~Rx4pw;2FOEqju+W1%KMTc%^Aum%+dvqo37&{jVQ=`}?nMfAtZq_qr~l#Pll@ zjveR@@|y{sF2P`#g9;gHtUY`W5(FFZE^xNq)w^fm_8f8cWTyH~mimrLeJ5LeN3Fh- zqrQ`?zLTfEldry0puSVDzQeo1Vek&^@9Wb4_VN}NszhUYVtT&ji>3#`Gh3Y#+ z>N~~iJ0@W!f zN&1H$e%P0A;5=w^;~q=SP2IN$2SyI-b4D%{%!5xpi){m{PZ3NGsJ}rl1Ud|F9pc?R zABKYugHgr$H=`P|)xf8g#pZzed;elM{ENXTW&Mp&25dQeD&SKIyr~By6hcA~5XJB* zVX+M~>VUJyUmQt9X2A&8E4Oy$*xq( zu2jjc)XAR^I%)r#J z4CwKK(PY%arxZSwEcQfsK=DaSE9Z#Z68DgSu`uF^FhXBS=$mk&LZ`Mwj)_Wd0-eka z*gp9RoBcsY_{YqEo7VSQjW8IdCvE<~L!6isJY8KKee)6GtZu993KUGdF~y*2_E;y# z!yJY#i&I3c@3AgXFNf+L{+;Cw9eu`YjQ34mizhDqjScG!%6!TAfq@7;1D-x7_LEu5 z$2oe4Va~9=r;lNMnEo)W*?Isj_c0hhTytRZzIxPV;S(zA8RFA(w^taVC;W9jL`-vC zYv1&f`UV`R>oVJ%uwpzwz!Pzp%OF@>hR$IwWgn*di0U8D5|^25WCeMwsFN=dCs-!| zo;-lo0Ig}Lx~0%{CMaY>kSfJ*39my&4{)Js0dbi$7Z9v3Ib055qPq4fapVD&Z!)3J zj7~4rQpTyARSh zSQ>|xcKw&q?()Bq#`*8k^sqF&{~@hw`DbbR1|W@TV0E0aL+e9AWn_PvXt7cyn6(3%?Y9m;aS`^Pj~(h^Uu8VEG(26qpN+V!=oMM>lg#bbsn*eM>yn zmcJTnODx@zmj1h6O25nhO1kCG(sT7yFa1_mhYe$V4;FsUFNOCXQoa6$?%uJxEw;if zw)&~XR#>JLEz|#ZzgR?f`CrMj`j1S!h)!Z@Cx0pJuX?J}p}KMwW&b>JhRq`{^Q;b2 zgU=F{l!-$3ylV4#LP4lTBXtW8>E9bc!l5gVH0Xff1|2Kb1B5l0jgRT>y2?gB@obtWO%Q`* zAuubAgq1;~4s|<-X+;UXClJ$6VEDOeQ9y*SDXVW-Y{HNF>=4rw>EhauKo>Vl*V@9I zI`IeQeT1&+_9(N%(8wPv#5A?IYK(1;s)| zo?#tRi9aRs*_7-&s4J$`Jwoy%=H>ztD??gK%zv#+_(dkN%4*UzV4@(bhd$OrAM2ry z^;p)odZb<-%h$)|95?>22VF^^yF7K9Wd4TTKzwe{pidP`bnaC(3a}bG?!kP$`hw2jU7bS@ zbUt#R^AW7l5o?R12Ra|YI?FgG7`nVC9%nF3kfDH4aQG(77C`vJC?qa13aPj3bxx{$ zePd{>?BMa4-Le({lza5O6>D~3qzRR0hv01QUe_pk< zuxe{fe_pj5ylQW$7O(4Ey4$X(gLau6w95>uZDws@aWIxbu!28!e(4x{>yfO z;qd6)t-j-a|VMjv1G{LJj1`07Pta&dNF)VOPEO1Ng^e;YAZ2^^3TUZ?|-@D6& zPokgrpO$Y8fedOaezAI4pAs*T2dg)hR{O{?p2Wgja11MT%vxgc%b}-D3H64A#nZ`n z>z4^ICmz#Pg0W|-K1g7FeOUE5(v>i2Lz95pc^ulwIF25*}~tV4|F-ZE$CZBeC95!8v3 zS>WF`FnRjc-uGFuAp^L|h#0uX40aMTj)3~^X=2~N@}xBf+IpjxT>!rD1V*la+JA$Q8=(K9kvpLE z$1&#t$dyK(fXry*1xR@Xr+NdrLL(udipMbL1LzGJ`2re$6mx!nzNL}B9e$gB>RUppYJsL_o)Blmsa00bC>*&@(hj0aSk) zbE$ydqfr{5xl@=+2lOM2G5~RDlnE&8ew>;G=mL#YfC}!zTsEMW@1w_G4Y2QCOy&Uk zlt#IL_N+0N2S`Yxd_c!(Q~)UHBu*^^^bC!P0M%Pzt{BjJG%5i!cLH-7KtIx`6cCq2 zWqACeyJmoM=9p{&^dpU00dZ-h1r%n6Q`-Ptpiw)Z0#nR&0D755 zoq+mGFxLg>QyO&x+B3#n4AfWeXGz4hQ z5Oc$Tex%U|ATEtY0fix)ItJ(hjm7~L9KqZKpqFVh38;^YxhX)O(r6kGZ|^WBX8;Nh z@68*O&l^yOenXtJGrbA{nvo~Yp5a)2#xX#*;N1V%82SJB#k4+r8IlbN>4ldrSuvr6 z0D>ddPwYdH|C=wn|I2d!hs6x9B|URghar3M=w)*bXnOaHV{OOf{5OVa&3)`{;xFKT zO8kF~?EbeE8rm0Qb&EjVhp@W;|9#p0zpUD@xb@wm#_a@5gaOd@2G;ifnZ2 zYOa55!bo}fIb)8l`Jo%n8K*sAviGscb03?Sn{puD#zWSQ=m7}X=&q$b4ZDB*%Np3L z&Dqvg`fTp9G3PQvpVx21;xKg(?Bluw=ec+E48GEb-LoZ`>+|#nB4THZ=`ZsiI1mJc zkl4oo!h63qTQ{@PF=tvA1u`LGBQ!C9cou`}Vjhqmzm$IXevYml_oE)BfZ#rGE#2yY zO2hlkWwY?{1lA^j)Qn5^*!Ox0ho02`;nNo%x(E?I0Y2~v*y7JssrM6Wx&c;?Gf9%m z;4sKj>DS)b(j_4v#bI#nKIq{Gy}J+k_(A{f!y)`|=->f|l{h%8^!X#ds1-tX9LC|h z*}3?Eiy!uMbs0zQvJeRZKM6l<=<1mZ46$m4chh({jd%CK2tOG8obll3aFC{N0%>qk zux9WBuKmfM#SAcc^iq10?fbeMQ(Vea+xQEm%rIqkw^j(ta2V!yACBUOqjw)H@PoxE z#ceMpaX_WNC(`5Sf{^rUf7;MZ|4?>_NWb)(H60Qn9UO)g&eW=-3cWA+N7r!ZwWF}gOz{^Nf1OH~jcn^04r7{)X*Q2~E#o+7M{tpB4*E&tsa0bMtU+ST;1hfN3L48(|t25KS*) z+89^z(?Y_u$r8{^6KmeN+i?2E(8_x7muu>a)em%e%ebs5uF@1&X{wz(XszK2PB6m> zW;g-X7%giR)8?2q$26=qnqI^7QA{7jG^{&JQ&&xhgFdssti@gS<)e4mW0*a5z^dN8 zhj@{dp3>W(W3r8FJC18R4mmi-t#m9NZpC^T8t^O)Ieqvb$T_Z^VpecWwNt95hlo=; zhK;5ixOMr(4Elnj?dJ;)IJ9LRV;m=<4Zvm5KbpbB zU*?7!xW3^XGFkkbK2Ik7@6MC@=6Xc?-Y}zNn8AUY88}Na|HdF@VZW-pUcg|)-M9#6 zNVYla!@U9q{ClndW-X`u@+UeEq`|d}mcEv$gsqChF~4_D!+?JmG>mIsF|@CK#nj3! ze5G@h&EepaqzPv}@(NswDo&XGa|z$edPZG=tq8t(EEdOr6M5J&n+n}$T{OE^XFNn$ z=$oT!_gFH`gC}yPI9AsZt*Fs`)=Ny-{(i`Ols!XmUcP`AbjOF3%!_SB-Oyo!+4yI)RAOH9_>hC)2&-5+%7LVv((!aoYQ#Gu^{_(u|BmPE+I1qp@q8Pe#Jp)YY z`%CP{i5sd<9%SDlC@^5TBu8M3erP9*D-mV zYV~6$sQ&HE4uB0#U~hS&!;EV5WGAc2{Mb)0^*92-@f*I!7#S*kDf?f9%9&!{`iuyn z#@J-&Ax7mUu588PaI;ECl2-{`o+*cF=yur;mqpCzkEmdA^3?Dk|1nm$U4pIJ=9V zdy}>()a?jzA1QPzp3LbB#X<+CGzyuQW-yLGeXZlMamB;M;W&F!;pkl3Kup?$D0e4l zDrJ3Sm8Pqc(%OavO-^5;)ehg-{>jls8LmYcKd`$RAeOHYC`i6K8Ztf3-jd@4%Kns| z(IW~BYt~iX!9f|}5SPlTn;DA_8A(%ONj@Ssm*$F%6eilf8mmRY#wbPrWx zVtjtf(ei*7qOi65B>*#6{6KKC_a%tJ4siqKD(U9g78oA%4 zNP&Uy?wR-T7}}?Ks`w^UU4rWv+MMXvA5tv;6~zq}54aafbAdMH1RgpV`H|>VsjpgF zl}w4wX22pL$w2XIIdo zj3SWKdvM7qZg>(BOgJNHO_eKZ^#T`px+iw$s3W$jFuhQf(o*0e3w#T0ZP)ol`+0TL z;A*NPlG1Wo<&jkca&q2Nrj&cR)Z^^RvgMJPRiF_ofntjWeihJv#@GW(krLx2$V6OP(PL4 zAZ*9{{#1Eo@P1g&GJ)m-J0$9mxDMb=I6XbdJ*kqxz{|)!F;7$A5xX-$EALfZo!Ppu z^gMD@E>-5aI&6;NTBaz00cnhvpSIAxwXthN(Lf-vxU)CIvu1S~=Wt5iSjvuQ^2{bs zn6!O2I-quD3G>}UVf*8LlU2~!#bbdDnQp6*tC;V~^C(#L4BmxK4V4ZiJ2q60tYN-0 zd9kP~tX-xgkb^2{upl;jd>t!Rm|8Yzr^;E)dIN=(izDMh>(m>V*T(0TNSeC`ZlH0k zTVqd7um2XVW+I;Qn{8^UY$Z@i+WeGTXS;G6^Ua~25nB}wUQqpPqF`<+Wexn%U+ur%T@afmB`(^=O9vNQN{bYbJE}80OS-PTEvUs#s4vJ_1q$BH)Jld$ZIT~KrT&dI~^hJ z{)sq)53b#u-`JKp5}K8u?k7;Nc1T#3u$jt&)IvzLQ}P$rdZq%$J(MSq|9r1+YI;LO z7V(0u!${iVUdxiA7rN0=?&2_B(yW4ZtZYZP`b;ktu~1aJ)+t!ovX=vjmc~T7H|;I& zzl!QT^OiKJ?In4@7N&05FH7vDFQc-+(dkyFkkx!(J@)Je+8oPAOi)nol>d$0Q72^) z@fF{3Uep#9Ua1);(A4@$dXdV18g%rZm~kkabc|9HD9zJjOqN=dtsySiwxpJAyB5SW zZ4)TFVLQ{!v(%xSpkDoxp6Ny6Tbt$xjkGC7(`SQ1atia@y8LTd7j1>H!IGBlYRZK` zLXW__{cUAHB{Y*-G=(mDfj{QrS~==99q}RTMXO@vyu)A>9v&+*=%S1KsfPMUkL(f; z9n@94p1qf~msSHUY49qWDC!;zk0=c?3B$r5)nO z7J*hpcHQeMt}}71#J7B3-xBq*zk9zaD(DOwYLV1CX+e)hp+`c+PWQ}Ls6mpq?W)Qa zwSgYOg>ifTe5WO_UiRhD_G%CBwRRZ5uH}TRgvoBBtJi-g1RZkx&OnIoWi z=0x+j(@KZxMI;VWWzDXXsYh96HtlWwIX$zzY*bs7;N9R(WsgBc{;~6JQ8~HkV8ter zN5th$Q89Bc#RWl5b&HDD99XlHS!tDJBjeOE(3|PW6)Ex(c&`KHid(EAw>7y7E5K*E zcvC*fscm}%TI+^wd$MzXllV59dip4Nk$pYx(8}y()sIKX2aJzli_ufC9^w!>q(DeW z#Vs$kB`t$%0b6qMdD6rJTR5?2SaRyniV>>YN-PZSE(r^v)8)tYj2;fdHK@beo6_?m zD&I!qqTb!UlA>gqE>BX&JLabNnV{vkOlrzUGeEl!)TIk}uQ%oFxoo(kRTj>}zA5Wj z4iV4iMMUE23Pabzw>Q@WMrfjPJS4U-ZHA^P`2(;aW6{Ft;>q~H$ni-6HRt7SIyqDh zA9xWms96_kposH&uq&8wQdid#qwDsUb&!WfSrO3bmlcO4j5{s&D)uxHPocE@f$qkZ zYOe%bZ*BPW$XbF#9zmdjI)DGfL3KnT&MpnikksXATE9b%i_Ps_twq5}m{!btRD_Gi zqt7EhMXIZF!$wXzrVD&V0;|eG6-N%E@ZRMO?WFf&Cf#ALUOey@GShp?o%5Y$z}Cx0 z`YTp^!*^Ag9xJtk+2;W}{O!Jl$Z zg~5~2kD}OVr@Ech`Vrc7i4Is@YVPW*sw7ZgWV$5Z(?6AVE~=vXYL)KOfz<@+i1P6C zPkJe}q!!mx)3T8-S{Zh_4-L#LG-UaUCA8DArcDcX*~nb}9a8pGjfQWAOw&$;wp}4k z8Y#=DfbGV8veRQz)zw0G>FqmuMjy0dC@6|)tl#v_2Fnv(>F3hh;2E#Q{HRD6HLK~B z!CZ0Jw67Ee*4TGo1qO;rJKfqllmChKQ-ijI)BUhd0_~6&oG?^H$^VV=3x!Q^I1bnt5R zLi^Ng<|jxQQy41=TJ8nfl#|k%nL8~_PuPKONgXWo*N(^Z&|>T#B8@(z;Y7a4%up|~*1^az{@p%Mtb8H_@ZEEux z#C$`G_x7^Nu@vmIPvT0esKBe2=BY(!&@HHMUF4%_m%0?5LN#&Gp(&xg@)0a1)U732 zUJ#%7J&JMZoUC*lNgc&>_ilFVV(tFI(0&;5m+^6jf>Sd>TdrlEBH6)rES* zC5_WOb?fp$w=HJ-_0^T6R451(=k7P%R4Ii4fr2}&gDVm0&5RXjWlGEHO5s*D@Ftv` z?$(I5f`I;akb7K2eEeRK5S%#^PG(GWQ|3Z)#G44#U1?dy;@~W%siw==2{hr%jxM|J zq$p|$)S0+Mh3pn;=W)8YM$lFhSs?r!>aPvkYpohtUBGm&PgmD`V#n^QD9K@CqOWTp ze+ARiUS4^5ergFD_0+b^w{QE+(GH+`FS542qS<$vK;8YaIBjZc0XTZ5ocP)VUu9(W z42mU?HmTV;WYK44lh*3a!{iz2i(EL!FIwo&Sx`hA`=~1FVe(Tp%L|vJ%%33T*mq4W z6E26z(_}*g%G_U{bKeh`rO$%%TJOxYsG^b+s8%ecBAOdJC|t3hhuVK3H8}DlaxEPX ziV|lHhG1H=U76c4wI=%e38{(FN zYx8Vuj?8N4D1)<8=dQ0$T~uf@@NjSMloyxP6czOa@^kO>Pb*PO&~#-=uY+*SvyVFS z6ls7@fzz(tu>sT6KAiT%l98~?m4zPKI2VfTr`=oEqMQj73r=jdU-&HWFtt8&_-prbaYrA4VG`EroCt@I=DWEZg%lg2McT=W;MRe ze=YobR6L)W?3x$eN1sba6W2%O(_@|AqmHebf=*dYGi~g{`*R9BChMcY(%HLfLi;D? z)`2(SY!%fGhN+y}{)x2qf_}+LNLB$Y<)NqX0)u5Nsos(9q&we2-NU8Z0dvdcML1op z^p9_?ud9L;krY{!5x3H!qW2E}pyW_Nq^9l>G~w8<>Gq4A1sbkICY+L@tKE8Gu6V9x zwFY>WuhZEn`O~EFZOG6%;6Fumg-T`c!d7xfZ2XLK4%mMa&Qfvq(m=jA`k$z5)V@XN z=Tk#(3u9|rv)e0~GH_>dR!ioqvkRrLEr9h835%Ma&e}bTlzGd&JwrpGb#!YCpTRpM zjApA-NlQj{!F8k%?>p^pQp=ET!l@keO%ERzd;c4Cik+udG8`22kyM(Ko}M=9?gQRY zXl=kmX@{`?VAn|Mm?-FV$1^{%qI})GCfT0e68hZNmngr9C|3dn?7C+c*H?toe4NTD zWxat{Gt^F?Mf>_5XTSJTI)SqPRL{r`pa~~qCrYx~S{v~Il7^?&Ym-Y|+A*D@X(F@D zUfSqyX*2U--QS=TugSQP7}*YO^n2C@dS@nOLtt$k69kknwY+Z_ zXD^y@n%R%-&-eqw2@zFDvDawDzc%qz8;AiRmIvxnqTyB z$m!k6bbtff+?@O7-tbN@ePnlu-(6jpbeV-&Q!7Zw9+oc&X9%7h9FhlPrYcLzd}atV z5g?jU>K^Z}u8&*9W93h|PUW->Xi{PDm&VFV8d5qSP+-DIakNiNs#|qD`5f}d z-5A&^uJKtTEOssRnU^nJdWgqFr_2e9IZOR%%L7~AWT{_oN!$AKMw}|m>~3Xjx~n;I z^`G7owG@8DGv*|@Dx({OA<=(9E)D9i$cm|Q0$A1FRnlGGjyHV9rfMfkRa_(J3*OcXGvaS2^)@5#-YBH106#kWmIFpva!(#^j*> z%@Tq-WJ~Jl@>U1V{x!?}E&ipmcy$$xy0`fT;N%x<$uk!W9^*T=O%zqM zXN=uOV`F}C`HQI&wL~-D%eOK$VbMwaZ!{8H;6LWoJ6=b8MTOatrte&|No>x{OKOZs z;G>qEp^n6w)kvQHW41fZvXy#qh`owHGeT3Uo zNNhK8iMsinp2<p4@JhN;6@8 zM`%NQ+XHKP{g3j4RwI2ot7?5-M?DqWbse)c0b|4rzh+N0omm^*d>Cz%Wyc971L`N? z%qNMd_DI$?fS;TsZk_3#i!PqR=fp+OPj`;ENRcm-=g-@2WrNX}?UUfb&6{r)lP_RHis;?I=uWzzJ`Kl20Yc0<+Kf#Opr zB*Q*9Y$G*q9mGb)cqi00&bK^=+Cnx8V>3cVH;L;DFIERjQbbABwGc&`Ska75Y!%n; z6BZMv={fue%;D28hdWQ}x1FZvFgNeCzWTJjDd#=OV=LbJ)S*|%-&OAs;*nlUSJS=e<-sn{^8*a<`1pv_aZg|9xaEnE7N^QVxe3aQ4Ne=HEzR^J z%w(wz5q`t9eyWF2J9X?W@`T+#_}c= zKs7!~j_Qr}EeL#cCrIG|3CAw&dq>uvJd#TRT{*J~RT6~4_7L@Fy75{N1tgfa*b z)ORSw@iU$BCUCrc1~-BSmNR81399jJ^2|lz0)MG|DKwI2QvwQ&hcH6lx zC#^Oug}7)_n;pAUJGB#b8ZD;AsY*6B>UdA``5`T%nKDga3Ts2L#zC%82XWQZ9 z7?&MdR~ST~ouK3rM<+o^I`Iu(B`aE}iuRA@AlJ+ln*E8{MqhObg5B_4E1l za#hXT+*CB2YGRaog9Q&)1nk17Yr14rU0rE$;Sin}oe2!c&!V!4R@=?ecLy&>pFyja=b;J zx8Wz$OwQ~z`zby^nJvzPRWYvX)5LXtM2$!uk&;{pUfYOssYB#;&n)kj5ntN9-8<#J z9{nfOu)1B5-=fM~q+{VCJtK;|O`a#NQ;*&zD|BAJLG9fp&+5MY>@DiS_sOG7?v&A2 z6#sqll3vUW6me2N{N($T!~3MojsLn~>(Sb>IJ#bG4|hsUu@0Wq(*xyfZX0jKikMa< zyOi`sY!N86eK_AM#xea6*x6}GWkuDlsP`*WFcRdLDTwRm0-Ho}KOi4v;u{}|{{iV` zhmG%CaTS&08k7l>V!uSAcI}FC!sd6UFs8pCy*C=RTKmF2XP*Xby%~2$f8nZqW7_`W zumA!s6C!P=T)DV&9J1Hv+0U#byOsbwxsq7#x*b?}0_f;MYR|v2r@sf{6T;4lZJ+jl zlf-XV^x2wzhyE=?v0D+Wiuk0(3bEVBNzjmb|3mV1<|!yi<$XwAV*(hUbUq^C&jpP+ zZj{?c%K5pz}Gso@3llK!p@=fl2CC+vRk-4cZ_2zoSpLx zU8txWfgo!^q+-oWHe(MKEP6xi)izcY_f-*zw@BezfkvzIwf)?C(56AmrDOTc~yt-qSpRSUZ4={ zLAtz0-lU$qL)w_xHfQfetPD8rfJ>#Q+^AcQ_fv)wb5!6R@|sTEn^fl=^4vSK{H!{; zHmp{V1#zl$S9#u~j7s9YZpinL%IbO&+G1WuYvQWB$eg0)SR#^N-#FFU=TfD-hVr8v z1`}X!H;9DgUFHqlpLOyu$y6w`0Z}(LG zK!hi3zPql;Ga*usbjT-OsZDn-cOQmpvH0EY(KUz4f($UjO`nkG>-Td1u2`v0kUGm-_X3oJGzpu{qVtPSY?ldxF%hJpXl#Eh@;A*-uG>+SSAb zo4DB2?tEcZ{!vsMB=^h7++E@we~Z88HzkwBiIoo_&(Vx=58+r@E{vj|SA1pK{#@k= zlJ8xmF>}BM)-L~B@9uPD^e9f;I*{+## znW!irP*qs_hB&#)jrWK9_;n7wfm5xk!sn5Deq?UnPIufSLG8QgnNqf2kml$3ejTw6 zbE3W7Tc`)-s(Yl+e-`>btz2B>R@1ZlcN8Jr&QZ+gh47SbQNCZ0W)JeWk}GAQo2#Ao zqb8@Yx|)fcqIodN6(#z>-=eDFoVM1X4c|qAT9AO-GzM~rW@`Tn(iA$NDOAr$ zcY}D3I`<{{Iq?k@`XzbHg8Tj3R$Oq2C8zYMQ|~n)w0pn)*8T4{p#iG(OY%2}n{#Wy zem62DIjEWiHYA?1{0Dgk`@c0s>20CfW~~Vlc*P0odpj4|*o3_Y$;Sf>0A_}lCU{mv za;uG39LS=oji}zd77aGZl;R&?@F2&SYVRMU55as87xe#{yk-HZ4TDZQn-a%50~9~k zsFClBwl4vjM9qFprs6_bRKzz28fYuJqkG33Cm%v%6a9(x1H!52aqXkukZYG;ft-nr zt*axEZuQ_57mun+{iC~fUx5t40nu~n(88iuQC~LYIK4L6^eV6=)Zy>Ia|e`4z4{#% zWz3ONG!A9^LP(>Q)TGMQp5#|I%<(ztk@gLrc2g2H`t zXEB?b{PjW~b>*LAza2M6&o)6AyVjjrQVQE$M~OV&CDP5`6&82%?BJ3&l@I}Tm&!~@ z4-z}1x&iHwSrn9>TopA6M}cJrH&1bq$elZ-XS1M8P7I#ihQL8d&*;)v?-ah6TZzw` z?yU{zeFjA|$0qH%w>a>s4Q(3N*A&gd=8Zq1m*XR$XG^vNcrSg!FI%b?4zKm4)WC(V zd$%~>b$6U~(Z)Yh>)Nq3u>1hZT?x{32Pk}a_uOaeQ{6yK<^*TggL4`mBJavga`Go4 zsX_xi6CJQ$3y1ZLZHPR+bjm|nCteu)0gWjVQ{DXbQ$(-=D$}|bYqeD}b0plHXiJPr zsp5?o@-toPy8Y+3YvI1PxNoyyA-1NLWlr5Rgc=DUMHt~*u&#S;J;E|3%95i};SkW{ z+3(R3J0POqqIGQ81&mosu>s1Ob=;7JNNR$J7tHNNE27QdWbWaQt$dXs)5Y4JgfQ^J z^ZJJ)dOQld{*HqCI}(#J9G!SWhBjq_OvlB-94(w9#wQ*7T5`nPA;X&x`HBwniE!-- zs(um<7?a*BfwI{+-sAV$%y>7|Cd^N3Z=sf{&B%l{s)G09y|y)8t6|DjR|N#7vc+Bt z5hH%02tsH}z4{|*0_}L{G=$%HH}Bf`1A-KHgusuAY6 zmHr!TtmgYfcP4c5whZ}^Q^_&$s>FOlv@zkgF@)+e)I_$2FmCRY}CVHo@wt zjsnWrjy!G3A6$-iEsWJxyn(VOdR-FJoVrtpDXPQ{b_Bb7`J?@Xt^1lhwGncktJ|l% z%VRSMs{a{1Qyn6TIxfJQ_q)_>0htVj&(I#W%L;ftZBM>w&ex8)=T|h92p&cAg)32O z!bfLR5EN8PGkr@k-9)_4c>Mm=iYWi7*h<*f zeeJ`1CtX|$d4J;BQgXPUyVOeX`J=Lhy@}>b4_Jc9wQ1h<3h4~XoS)hiJ5tdR9UTp< z*f~9UINOcqeusL|fqb4|QGVa)K{QA6n5}Q#Lf&vvO~)!+FRpAR=cYwR_rdOT@n3o- zL_XE%Kt2b75hF+PIa8b5oVt+pZlU5KlrTLqv^zL9%VT^(4LF10w{s-VoARqRdjeMd z>SW&`hs5>lQI%iwIGj{U97(rB=36Sql;&)Q;#V!H*PY0dru;ll&%(M~-wiwDv|yi= zQQwfXMrbK-C-MtZzS~C9V)3|2@BwO&YemAw#O7VXn=*FBLgweG`NZ-Ok9Uy9t2QvC z&_lcr`}!NsmOJ2tD_wW)p#Z%zdzvz?1UJJo>@qu&uL zCW;axIoy+<^0zy@Jl#FZCm?Q+zBuJpT3^B8x}3a9-EkouY!>W2<4e2zdsT{CXthP@ zoSDA6g~K|n-Ze{&q19fWpv_oHRGwhJWC*Mq+||X_w%1%kn$g|HoaTsq%u<(J$ulqV z06BJ#$4ZAAR4g=lPfPWRccor_gJ)Z|#R7Oe8#@=|Q zH$HG=iVLbUR!1k{^{auZA%*979A>-6tIKDb#`ABZNT0#E(yYlk%yvmLMbb6rzJH+f zkmW}4#Gc#pP_edqI(w#aCK}FCg5I4}VWv|x-s5Kiq~09~`ARktpKw+AwN&+VW7;!o zH>APE)#V?kA=F3Szqajioktaga!e?`Cuz#Oj&*+DlMG>UuUW|`9WV0Cbvbc$TQt(R z+Lob%_U9tn_sSOJ+n;@b=9a*(8lrDQ5C3a?r z2J>1+-o&-uRCA1v$<1vPYR`h~BJm$kZ+lsL=0How+gy_eS3cK;mxzCIBnCk&^EOmP z9q}eVWqyi_J9r=XJ|l(mxz+YU$=j$hZ?!-uF5dhCGFDT)-sH2`-6&}4h>w$}$Y7=h z`2|fb2A7q81M~p(xR89-{9DKy6jbL|)G(*`8cFJ=Li0*PBEREN{bL+c+ILY3NhzKy z>(q507&<7rusg9TE!vTpBB=_ZH?3hRdwfG+FN>^I##d_{;nrp|bU7%iSWELB3+mCJ zq!l;t#64={*OxTC zz&T_y7|~miZyz1`PvqEHzc!Z_=)_|h+r$r+H+r@Cjz5Jeyh3D+Wlo8_hmEOJLeIqP zqRmcvvqM;TWZ*|g(K3|kLir1L=T1>S`jW4k@uRl););?JB@hmADhbLA9>@#h#TZl5 zzU28gZKC$d+QvsW6yKt-hUqn-bNL8QX>8Ny+vHX}B#iqVg4mH_(yiH__nk4{KUce$ z7}nwe!R@Nz)!c;giXgD~t8FnW`LnWt7;u7yqJ&LJ*}c4WW9kb((#G7@x2nE&rALqr zXLNO+GBr=()FtH_9Hy>Wg83fwBY*qbclqPOE*E*|LK18lVNzLsS$;?iFWQ)2>?adI(0`D3Ucsx(>cHpxBtxGlW#z1}mb z3U?_3-&C5GprnifNQEh1T;^Q1wx6K-0p+hcOk`K&W|e@)bM0@HB6UNoTvOW$}uPf}*g!Cy~caO4)j*qp3n*6Q7Xakt?rIy?{pM zrd@aKMSDEL*hbr*S>Z9)Bi2W*>9Hm56ZPG^xGPtcqe-hhD>2gd5WJDoSE8slH8lpt5UW-iCB7#MC(5Q`fl@Fo>kE^l+}>~i`Vb?vyV#Ye@tnR0E77oMU%m68vP4 z?j3Yh=rs_vzdG;?O7m0Jbh-qt6X#^qyc9R7{Q(=wG6edk;5XEtL&&SgPCmKtjMTXz zMpGe$JMz>qdHYU>v(Is;yphTYAx|H*y4`!#ufZdxQWJjx1uk3~!J%FH%YzgBBR@bLgOsO&bkMQmQN%LGlzxq?sy$}ZH!d6Az88)q zW<*X#IpHm+GpZwPsJJVHiCWXDN@E=-M`=24rL|JI9k;6@3|x&#dQ?78(AIJ?GZ}<%}i8B=u3IX|ABNz+;fzk-H_CgmmMx|-MG5V%+;#+6qGWW*JYZKv6xpw9X7RJk-Z z5Ub_A(Ibxqrpd!;~X23 z>Zt{hWaTUh?Ft>0F8h|!^kheM;C6D~=!eKbqVOn!zW@Om#?ZIFB0PCjQ30=(bh{T$ z*>8&J*S0n@ilt>m;;d|VK`?neI3-mZO!M}Wn;F@HoG}RJ1|-#%tz;`Ifrq!uY9{OL zy0aCL-=Xl$p=OWNv7#utgYpao+yL!go+#bnj?K+g>cZMP|y`o{4RV((KKH zc`NpqoNv^m3+dO$lH9vCa{}scY&f)dDQu!zQ%CcZr}BTb_TAx49a-O3E=V?Txe{{0 z7_dn~3#J83%Mv>gAQC4b1QH-5!E8uKLOMxy)7<6W%eYIjRouHRSJ`s!y~wnm?dXOE z*(B(ZkY_aL5*YaxkvN)EO?yTU#8xg^u7JK+?r+;-Z|6JDcvB0FMpI3mr3hHO2HsFa z>U<&Cuu6r!{ZgKj_JzZ`b{!cu@uQo#qasq$@8XD8>ulcjE+#h@rl$Ws+>U*__(T2eDi@ZPU={oXmJF7;VOYHks9ISqzIX zX4b(A#IYuAWTPVumoZu0cA=-KHHycjBqfzyIdp2yXKTcVMGq091E5ZB~Nd z@v%A53fH6rf~}Kw#ro+45Cdk-1l zw8-$L;oO7fi6%;ZUaQNv)8C0;DL-_Ew=xc_Gz%<=$|&}Cw}#1|?M9VGt*>1k=aA`r z6ZCB&_0U~*NQ7K4AYF5^Ao@K-W4^w{Nrz1bS$u2z7PlhTNebv2HfE!uhc>`URx#Be z708{cz-pf{)hPMQ4zuF3uuv>@$e+(bhVL7gZ#CWc*yFfqNyIw5n4rrz5 zm?6(3>dq_2%}q_#HyxsKvpNk35!X3kbb{}Jf2hUs8Wm>vb1btB2yy0kZ$W6HFDX5_ z&B_|ni){lwCJIBlt)d#6R!;&cm1sPPdYG(2%GsJCd3whJ{FGyJMVh~F?Ia@XXxb<7 zOfB}JBq+<-XCmh$(KR%;*u`_2I)hv6QeG;FNpvrA_y3AW^(h+*YMCE4hBDDN$)NUw zBBO%5)_ChRaiHd|t16tCEVhd|hkwLiN88DB3;iQYK?`rQ(cEd9E<1;-=<1`CWa>>2 zr8QH?irB8rlAKMUzNTWt>RsgKCRCThl(4?vv&uGpbqqhR!!TN49r z1}o!Lxsh(&6rCqIahBz6X;ob?;&s@z%s6tL=SXq2Cat^Hro+&(Q^)Qr=WR3z=LV8x!MUA2w77I*hp(|D1fMr@|^a zF-Buvfx>v>j`=N~3CfGataYJvjkC1jS4g!9LP#hH-TaXV-gGXF^b+=xsT+=M9@Flt zoC8E@Sc~VfrDE|nNDV=!bI2w`lEggccYl4yxx9G4k%IpBh~lKwV8?_iA6qhiEoG&y zUKFKJBPKIe(-yg|Nl%mIi6xe6xw5_&iI@hf`A)ljQrjOKwJ0R#s#yC4cxvF#>q!) zk5!&;M}K;^In3RwGDBKBlH3h-%tk7F?Gt1Cdtt=l4=>T`hL<@_9$?cxkxSK5G1Ns@ zb79igdmK6Cg3o5saaLlbLr3$R!ul&>JbxiADby;Oaq1C^o1f&=kfHS2Pt0XkScX`2 zW;4EKAw@1#TUTJ#nUI}064P!4KjA$rb5FNPj`yQ9pdESCBiihh;*L0*%<2hsBCH`z zINLrcK$Oeq%{;1!E?8pI?Yi@l7Z>xc5py|yw)Jfl5dmPt{!jJXo4p=i8S59Y*6|&|mv%0%OlHTYg9#y}5F9;^ zOB99Fw^WSGMneY+m5UKg-C%rQ_YUXP$~hHaY+9~rXs`-xvip^=oh_XAXm)QUAKtu# zdh`{RL&W$SW0lVHsIZ6CZNbCswM8Y1ppTm<iU?F&Gbjaxu(`K4xT|W@SaC`rPO7?KEam9CHQwsY;C}Fx}KVpIp6NJ z#`ylM89yO6z_K%a{vy$nSJez^Cf)`GcYfalX;o9N9DSAnZV4`WnvQy!cdcxQsa=}m zyFTmQue{_e5m`o#Z8$t4@@<0W#-e4W40QY@n$`*E^ZIQ4lZI1eBCu}y*2%_%@iDGj z@V^-{^C!fswKMpQ-TKR3qobRvvPxX-ENZK!zN`|n8||r~vQ+FoLw~KIzN@ReRFPIY zVO5b2lplNSx3S4VX<)SaY_BsY2_KUT4@auuBI)0Rf-8>$ZD_g`Zrj$6yq zhX%L7!sgMHr09vlBY49zXlE_;D+`nA+Ck5*sG4(xeRo?(R~Nlp}W z;SQ(SlE8GHsNAP~H_;~J6oxIV7M{VIKT-w`5Bpe#XA1NPzxV|^cSNb9x~iIf%R^pu z;QFKd!YaHcY*i)zw<343ZFOCHYBg!anF~q}R4z=3z+RIQ-ZC{>E({{ADxt$=?IWQQ zo*5BPz-zI~u*xPaGb;mjbJIS_L7=~`oL@=lTIMyeAh}d(?J8*xv4rWXe4%N{wRj=y zGX6O*Ei`bhuzaf2hzLY4)>F^uneth-{*zXqBL9#`=A}B7O$-NK!^__QEtqpX^(8j` zmp$yF>LhukFKT_4h#jvD%vrV$x^9TG>ZH9{=+cvtz_HeD4->m({Kzk3b zmO}UxWhYCs1VJ}(*0cU-X9M-%ZhT@l+onj+(c#<`_AL>e<(ie}Chxk3Ydl~fx|GH| z#$KNYNgQ5@sexjZNwHqzO~Wqu${( z8=^H*jgIm9V%rv?B0R#N?~tZuy5*&;3%&rtdGXUW1^LS8gG8vLt}AXsDgs&W5_-@` zJxmIk`4h>*^<~P%Md%qEZQaWi!%?_&7c0PrS6v+t@1;)2JDlbet|hg&L%s4=Jj!V# zje4LA@oS8#rt?oH1`SBh^d6m z#Ywqkm@D*sb4}E8N)pO#roN(MHnBdOP|07d1x1Qoc*odqL9~s~@HMong?dz*Z57D% z6D-R&Um~R3`H`5+O>q=h-rsAX-ah^T+hc0sw8*Idrn|DKs3q&_$* zc)}5M2aSy>+-6R1bs}^#y)D!`M(ntuBo0R;Y=D{VW(*UBd6=@zoMZws*#Ra&tfIY<)dN{2_2mW z>%FFX+7uMAJt)?;u-2?{Zt2x1)6?w4~b51k133LQ;Jm zxV-5q^qWyc!@|1k27ZgRRsK$>C&m6b)BV0_GFTuGMhtV{S_1ReJ9mMS83vx)gf{5ERAOq(dqV+LHSF0$H;qjbWx9972jcHjVF0c ziZ#@b>YSTsPxQ`t0N1a{NgCF3QrtHAwCMS-|vKU6Q*-*HL+nkG=~L$jGwYHNtgONwJX9+ zi8#lI$rdD0fbTs!x-76GEj<*hm+kAzGqWSDGhg9f(b=t1o+vv(01D1fNmoJ1{6NOn z_{AN{Yr?LD@t6=HbhlxOv8I&9cz06K-V)K@5Wo$XU=hx-zH5=wvDsv5e|@iWcid$A zDWY(CbJ0^&ANf5nR_^)Bat;APcEJ!-_RiQ(t?2PDUR zOl(e6dxtjEZQ6s^si+_zTv1;W5(3Mqq>AXsp3++IEJN}>5P#Ir-hQf|8va~4OOnw~ z{erU1ph+rT9a)W0-Botc5n~)=)Pf7>(m3^9 z3wHW|RP5>A=xWRHkgU z8sPkGtlnx#Onuof7_lw=1a3Y2I3E5jomGSk5rUm#F zy8c9<(lyZ9&JNc&Rf`%Xsb|#jx_vOlY?~qtRYvS7bbSie#;}E%j;+;hGH-&|w5}`3 z81ZSlh>KrkwRG^CW7ookU~OM_Y3LZu&%#gdQwE|uxQX-=C_(Bq4UM177;@=vuXLE~6H@KcX6rx1JtK&`jIK76SCI`7JC0MfXFJ3aq^T;i6 zZ|u5Aq^z{oxc1b!`;g|JYw0Uv^9@zW*7cQq{Ofx39d0ADET-*L z!{5KjLt3-cLppyoj5dko7Okw5D(?`pt%A~&(W)lOQFL>bT1=W&ch7-N0NQdgx;jVY zr~r|w=Rh?14w8hMgF(X;av^9r;wwA~?I*K+f8ei}Ao@JqV*Z8F7hReMKOWLdhCU_J zekMbHWC#M2s9>IYNX0}4P0YjWS8Xdgu|R!A*GxDgUM*BQOF*70Pm5L7a6861_zPQ+ z(*m_y$1Kg-2Jza5Q{zB@8yT-dZj&XhhU&<25#$Cl>5_c8H!Dj9{d^ry5^WvGhYgjk zN(vUKB8rM(uH^ADH5hbU+(^$df6L;`2SkeP#EN5brxWA-a5KxIFvXnZ7#OUGeCsmN z;CysWKII3=3v1LjDBH|BW&>RtTJyxvOCr~G>UnKedzFt%ca+3Kj|dT_39>3`-5JBi zsAC-_Kw}b(4eEVRSz2c(3){qQG0>(41+tF*vBFBm^Tx<>lY09Kt0yWhgUhdP1tBK~ z1zQVeTNoAI?14tFF7KS$kU$DCR+{e@nAIy|-1#DcvnBuyV?_x}kTT>#`)aPg?bAiE zzI$m$DIcL}UyYr7I;c-leL3_iD5cUj zv8}0nh19E*CL-JN$~s?A!MQHY#6~2>)vS`~S+@Qu-SND1FvC_AWE3Rl#fsM`?q(uk z#6X2rOfu*_c+PTZUvyN-8aVL!WsU@K$A`sWQSg~g8%fN{TV11w*-i7AtHBO!&+y(M zQgX#nsV=F~by%C>-xg9_P>{s~d0SE#(a7bl8XPJS zR&~|Dq8(3%2(J4)pOLl`t?Z=ThUu(=50n2-n6&$EQ({o*C$ys)*qNE9Z*GE)AE0U> z#v|HMRp?8Q`O=o1y1E}NBcMI?L zYt!PwSFjxtOtK1XtR7vwt8q&Q6dv_HNp2o%X?bcy#>S$bY?42su7e`(Y8;__XWwvF zL(*_p^QUb%d17GQ<)CX-;TTpGjuZ|%_Gz3rb@~{2OyK7dn@==^$}hSY9WR$r*rs~4U9@(}F&g9B@3raX6kW;BbDBa`72!vcXO=X%lr7Bf9_j6( zNs5*=gLbGWLhK)CYz1rsY?nOHz|R=sneQdv-g4yAB>i_VO#dB3H`uCAGk)Rek2_1s zj^K;9j+&fyclh%o39wK4tv8srHXK^^I<#Ovqr}s=KH8?-aln4-1st$Lvh@NX4BSqh zB`6f1O*9f?n2{u>5j>(O9EqJd{nRdtNcGpT0ljzjo!F&G*VMQL2P1y__|q@9vkb0N z?yB6T=+mMYAJXYZuxrPr-qY3Grm1%ITl2knmNd%UvkW!-#%~UL@4RZ69`L7H)r>g8cfzA{L`P8bhTbdz@Iou=i6{$x#|ojCQvsdNgK zWd1GIw&8@mzi{+AcE5F-o&l}Z@eQqj8C65cE5x@w+kEQe1RE^=fHi?SM8dO|>9j`XMY3A}v~b)#Rb{y;!pr6LOeXE9BPsQ6kg| zLMdCwV;YIttPi2wBAVJMHU19xP@F+;+R;yHC|-hy`N=9Ka1oHFQ)8JQN#BYY8yl%H{57$%u)!_Z3&z{k4SKig%^s#v7__~A+1jQ?5-0b$QGCA! z7WRFFnpJ?gCYGnAhlK;I)%9p_r046$)Mf(AOD%{z-dSSq*5B095QRy(fpN6XsSWtk znV7v6Q*F?n@-gP4buK^?E7W=x3s=8SF~g#PeolZGfHNQ#5C=qd)!K{2L)Zz=sbY4d4rq0Q>;y00hVYWJ2KqP79axH z0mJ|fAOZm7!6E@mgaIfwyb5nJdCYqF%^0mcNM2KG?&+84jRk@$7r%_ z_%fr(dNi1_6%9=V6L1W`20YNvJP=G%a5R_-9z^93t)|JAG?>_!mJ%LM6PpA~0W8Mh zBlt`pwt7bGDG}G;IXAUVVV0@SK7HJ@Aeu3dugGGGO;3RnZI z12zCwKnH91wgK1y>;Vn{M*s%^Z*K9leL6wJ8Q=nN1&~B^2Y3KH0bT%afDgbI@K5?_ zLQQ}d0E7Uz06riL5Dwr0k^w0I0YC^40mOg^KqN{3C}Vl0kQ!(0J3U^ey@V91FE2kRzqA0$OYs9WPp4?0iY021SkfS07?O67VuFHr~p&~ zY5=u>IzR(}tO?D4764f@cxP~I6F}DQ4ZskvY8cX?LnFI9Ob#HszYahrpbO9q=m97I zWcSzy=m!h{EC%6Y1TYF112}5cLwoq|*zvzv0sMT*&Ofsx6w*kxkgWJKYyMz|#sA{R zf5#4zrzA_#03=(|0VHckcKn$=|6s*`W&`m5DIeg*KeM3<;v_Hs%noRfPgz2;;m>UO zf06!wlbxjU6o715vn2oL0P_H{SuFy{CS|$5^gmVE|DHr-wf{4j{tbyN{$q9hzp5$} z_Wz$mK>vSNJ;|y`*32OQS-t;UL&+ZN&t2G4IzrmNBjYlp|GS=P6VfgBhi%6!tRVD{ zKFSutb^s3G&wbT@Y7d@TnryGYvlldJRK^yXo$pzK0%6+rZE$SK@Lp_^(YdqMt}}nI zcy>*AmI#4qmRp@d>Prd(J^p85A}(&UXm1d^WQ6Gwyc+i+dE|tXJDEGKe&N1z9&)Br9xFv<;r+t*2#59MA|F}W@EH&`CSb{cSyz@K zdqdJHY662rcXykzDsRw^@*QOGPstNHX7^eEA{mwAhw;>2a~4kEd8wAz{PTy-0s zXbQ0l==$f(a>nFV3-+rbaE=Krkc>~eR96pEqOg?bF5dLdv);&dnh?Sc8)> z{AEyaZ;shH3d3Wz!W)Mo%EkMU>!qtT&iVXea5-G9t{cg#-|(S8CZZP7Pg|&^2T&5( z!7*}IYyS=5H6oyHAjcylL=j54t=1m^dshr5*Usj8^@jn$xI$h^Y;$7mbIEERfs~78 zi+T1|jbkOeRC0%gP0r}l?9zvL$8PL29?5)`q4AFc(~qp_sh!f?o5F+x7?!j#%HCmZ zwfpHfQyXjNSafM&Cl9c+)UIRNkT60@yvDCWXfTwqPwj=1WUwF%K28}IYj2b6(0dWz zs)sQGHTN4UF#^Q8u&;1GEja0Y?@eukx1ap|@x$*PJ$!iN1MQ3W_exlt|Yy%F$MQv`p>QQGo zSyRQ33!AiMH;lKIO@`ZnudS?c#nEeF_#McMP~UUUEG{*w&wJiq0RAr_o{o00MG1=s zq1Y((+h&%9jlw(+MHt)`D6a5|ZM7?jGY!Nd)%TjYj@f2874rlFP(Thu+Z1LFga=Xf zqQ5)P_wF@qHbb$Uk{Uj^bAxTYVO7MBwGU++y!3}c2n`i ziEW}Oh7*B_peoHRO*LnA_krD!2zD0Cr)IdVGl5p}u*E5DKF@I|KjMK&5KNw7_8 z4+HaELTW-(G+(4-e6a)TW*pWqOC9!IuJoA@fFGZKhHHYWQ<6v*|6B`YA^L7@R&H8V zw{KXmz=+_FbyiFZgno>SooF1lzriF6vBSJV5vP^y`!#C5e2xDP`BaoT$(?exs*g5RAcA@ryYfokjbA)xi?Y zaC)rDnS0HmwcM1F1wLrSbF#ARniE?buEV4DGa8<`&u>$rXzL0d)T)30x8f-GPXAY7 z=<7q{LVAnN?IH&cr>cz<-c7>URZ`c6>RKK`E|QDr4l0Vjp^wD$>nhs&C23;%XR4=7 zkKD^jUiIcg^$UWazpV4*cCI!^e}G5HR=;B=PpAkC^F$&({8EE5q9WBd!Gm%U-HfKc zNqJWyh^CjSXtRYCR?LX! zm!R#sbq~)bWDkeqkIrC{q*QvDipme?CBLTA^C=d1#W~Cj?|NOAp=0{xmtQ?$9JxW5 ze*fgrS9?p}RnyyhcNfMudxLiN{Qe8;cVOVVcis4-H))KU=8W&}(r$kGSlyU*;>-)D zjInK`3JF(v>nCGO&G-}~=)z$360J7t%Gf(fYI#(8ERFd8vTO2?671^GlnMPzO z2K;8+MPL^VA6s6qE^jJeyrH*6Z7vModLDV&&~+@P)h`&#SVx3e=Zu68;y<2a*7#-3 zE!8q^J&$dwe-DQjj3{%X90Z0$LZ=A1dB_5qOtZ03=!pFlY1NU_QsJvaglslvT@o-= zYc9lw)o-(9{9^05u6S5)N?3Cp+Fa}6#~JEz90)O6y}R zGq73pJ8W56L9eeeMqoimbC*`~rknx_D0i?iD6b*NA=NJ02Y>#ILEyTFz~0fd*h=;* zrhM)IYi`h0;ZfNU{tl7eR#8wdwMc5ke?EG@)ao;!b;4M*&r(c=FdM|K_|bLO#0i02 z9M%oAsLWNQZdT5Qe+c^tc1$!?m8^;k4`2g8i^1*^ahx+p{3+p|sAxcr#qF6ONv^3s zVdW&Qd)LW*1!e@VU_%_~v{{Hh(!ti%&)*BKOIeI9Naur11!-E-x1AeQKhIts4;^h6 z&xo!OF|fS3E+i}Z8$A6GWXy!}oPuoqVBCt!DzwR%Sx=jwxT{%)n_j(#60CraBkC9K zt)$mZ1x1X9gV`j_S5&^TD(-(D8YOf}x4FK4?UCUv;S9pDsxn&~IXY%w9 zh)&6*_#Gl9q&y)drZV&){-vI}K6q<-q()oj@Xiyi%Zh}Ks^LQX6Ju;e{TsFuuft}s ztVjS0VKQa|(TKfkngtFVURK{@2DU2q#o9rzzYwCJQjfw+4hL5p1R4p(Jx7$VEDsLj zv6Gf9_$)+t7`}@w!L!X*2QJo!EQkF-a1|9{J$CbXC!iBjz*{TR0*cC&b+B%U7ad?Z z@8noLWVjbwBx_%4!eWDGXBezNN}lEPw!RpZxr&dS#(E&n%}1J<5?TY>$Pz9Usot$l z!b+U;oSId*`A16g_-0gJz33DUJ75WG{RWdbNzD5wxRCy;`lpW{es~HE71H0h`t|;M zFu!3Ywq7g~6Kf2~%_(bImiD~0y>$tQb~F~iT2F^wbJldvQB$G5Ok z6!m8>sNxvKBz?yXHC)#mLq8YM{b{6L{F`6OEYa>_deOoEM#23d@htiP4q!Y8f&b=u z`x_;607G)4WT)bn?WD~m!sj{Hq1_lZgiKh>7w$jR%^yEox2lR^Bz9td{?pONuxntg z_}lS+i1!ak8_D(8C@PmQ=F=<50zUm=+PimJ10%8j&-Y`mpmrAXP1T1CP4rC@u7g;Y znGC~!HT__i!N1({*GHPj{0dVad0%E8SNU=qx_^ba2Pq&z*@Zs5!rY6FUxAE!IGJIl z((?3s51QJ(RUOq{VIEOAvE%n!c3p+boS#PY(Z^SrCsg|Xh@_B_M+W3&`p9D6)-8y} zh8tynq+Dk+PpIk{ZbjzTn7Sy4%{;F9#*cr*2FO@r)gQ6r*Wf4eo8)p8gIm?C|A<*YOvR=dCA`LDt7aeF z@%uG9&ET41&eNDSde4k`Qst;UN_Yc^5oHFHvHK(9#@Vq2ZI}UNx}K)&L04Y~E}Vru zVu1_3WZ3KXa32{S`#pT}4fxF~j%0az&~=9$>d5vDD1!Sm#Y|=CkDT3a!ewtc{eIb} zWF+d3h=h!&IwRBT%tMH{4w0m%k#|+j^^l1N;mj;}%D_J&aozBg25$lV)_Qi3HAfG9 z@)o?(Ed>gEi)pHAdx0QddncNHi+M)1;Nb`|mLw^jjmb z9d+MeZZjZj_x~96z_9nPRBviRTi*uCzW6I0c8Q@MMiy@~w~>Y~g4LKAHBeCmWuG(FKe!9uL ztny45lHFupRrM*OBW@}E8FcIxkXo$*-Mz&;tMVcZdEa9G*a@b@D8r_eF%{AIE={~sEI^k4u0 diff --git a/tmp/path_list.found.txt b/tmp/path_list.found.txt index 8458cbf32..11df5d3b6 100644 --- a/tmp/path_list.found.txt +++ b/tmp/path_list.found.txt @@ -2869,7 +2869,7 @@ 2012/zeitak/incorrect.single.quote.c 2012/zeitak/incorrect.txt 2012/zeitak/index.html -2012/zeitak/test.sh +2012/zeitak/try.sh 2012/zeitak/zeitak.alt.c 2012/zeitak/zeitak.c 2012/zeitak/zeitak.orig.c diff --git a/tmp/path_list.manifest.txt b/tmp/path_list.manifest.txt index 8458cbf32..11df5d3b6 100644 --- a/tmp/path_list.manifest.txt +++ b/tmp/path_list.manifest.txt @@ -2869,7 +2869,7 @@ 2012/zeitak/incorrect.single.quote.c 2012/zeitak/incorrect.txt 2012/zeitak/index.html -2012/zeitak/test.sh +2012/zeitak/try.sh 2012/zeitak/zeitak.alt.c 2012/zeitak/zeitak.c 2012/zeitak/zeitak.orig.c diff --git a/tmp/path_list.required.txt b/tmp/path_list.required.txt index e9e048b4a..ffd63ff46 100644 --- a/tmp/path_list.required.txt +++ b/tmp/path_list.required.txt @@ -1983,7 +1983,7 @@ 2012/zeitak/incorrect.quote-esc.c 2012/zeitak/incorrect.single.quote.c 2012/zeitak/incorrect.txt -2012/zeitak/test.sh +2012/zeitak/try.sh 2012/zeitak/zeitak.alt.c 2012/zeitak/zeitak.c 2012/zeitak/zeitak.orig.c From 88ea6ef3b16324bc2958c87aa77eec0e1c5e9ee5 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 10:58:50 -0700 Subject: [PATCH 2/8] Add link to FAQ about tabstops in 2012/zeitak --- 2012/zeitak/README.md | 4 +++- 2012/zeitak/index.html | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/2012/zeitak/README.md b/2012/zeitak/README.md index b447b9883..ce35c0bde 100644 --- a/2012/zeitak/README.md +++ b/2012/zeitak/README.md @@ -64,7 +64,9 @@ NOTE: if you use vim to view the code, make sure to do: :set tabstop=4 ``` -in command mode, before looking at the code, to see the correct layout. +in command mode, before looking at the code, to see the correct layout. For more +help see [[6.14 - How do I set certain tabstops for viewing source code in +vi(m)?](../../faq.html#faq6_14) ## Author's remarks: diff --git a/2012/zeitak/index.html b/2012/zeitak/index.html index 64e500e2f..cb10f9f6b 100644 --- a/2012/zeitak/index.html +++ b/2012/zeitak/index.html @@ -431,7 +431,9 @@ minutes just to understand 18 key characters of this code.

    NOTE: if you use vim to view the code, make sure to do:

        :set tabstop=4
    -

    in command mode, before looking at the code, to see the correct layout.

    +

    in command mode, before looking at the code, to see the correct layout. For more +help see [6.14 - How do I set certain tabstops for viewing source code in +vi(m)?

    Author’s remarks:

    Nesting Errors Detector

    What does it do

    From df931e190da342482b62221afd7aa51738194b1f Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 11:06:09 -0700 Subject: [PATCH 3/8] Minor fix in 2013/cable2/try.sh Remove reference to Menlo 160pt text. It might be that the image used is that but I have no way of knowing that and it's not documented. --- 2013/cable2/try.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/2013/cable2/try.sh b/2013/cable2/try.sh index c5da94d17..f55ac7056 100755 --- a/2013/cable2/try.sh +++ b/2013/cable2/try.sh @@ -44,7 +44,6 @@ echo 1>&2 echo "Sometimes typeset text will work if the typeset has characters that are" 1>&2 echo "enough to support the handwritten shapes." 1>&2 -read -r -n 1 -p "Press any key to try Menlo 160pt text: " echo 1>&2 read -r -n 1 -p "Press any key to run: ./cable2 typeset.bmp: " echo 1>&2 From 39664ab66567be5360b83af528584692ca096548 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 11:38:45 -0700 Subject: [PATCH 4/8] Fix manifest for 2013/endoh4 The endoh4.sh script is better described now. In the script itself it no longer refers to try.sh but endoh4.sh. Regenerated .entry.json and index.html file. --- 2013/endoh4/.entry.json | 2 +- 2013/endoh4/endoh4.sh | 2 +- 2013/endoh4/index.html | 2 +- tmp/manifest.csv | 2 +- tmp/manifest.numbers | Bin 1332729 -> 1332835 bytes 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/2013/endoh4/.entry.json b/2013/endoh4/.entry.json index bb9df81bd..b224c405f 100644 --- a/2013/endoh4/.entry.json +++ b/2013/endoh4/.entry.json @@ -47,7 +47,7 @@ "OK_to_edit" : true, "display_as" : "shellscript", "display_via_github" : true, - "entry_text" : "script to try entry" + "entry_text" : "script to run entry without cursor" }, { "file_path" : "solids/antiprism/a04-square-antiprism.txt", diff --git a/2013/endoh4/endoh4.sh b/2013/endoh4/endoh4.sh index f2968776d..9aeba1fc3 100755 --- a/2013/endoh4/endoh4.sh +++ b/2013/endoh4/endoh4.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# try.sh - demonstrate IOCCC entry 2013/endoh4 +# endoh4.sh - run IOCCC entry 2013/endoh4 without cursor being in the way # # make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it diff --git a/2013/endoh4/index.html b/2013/endoh4/index.html index ef5b8d56f..07fcd237a 100644 --- a/2013/endoh4/index.html +++ b/2013/endoh4/index.html @@ -518,7 +518,7 @@ They are copyrighted in CC BY-SA 3.0 by “User:Cyp” and “User:AndrewKepert
  • Makefile - entry Makefile
  • endoh4.orig.c - original source code
  • cube.txt - 3D object coordinates
  • -
  • endoh4.sh - script to try entry
  • +
  • endoh4.sh - script to run entry without cursor
  • solids/antiprism/a04-square-antiprism.txt - 3D object coordinates
  • solids/antiprism/a05-pentagonal-antiprism.txt - 3D object coordinates
  • solids/antiprism/a06-hexagonal-antiprism.txt - 3D object coordinates
  • diff --git a/tmp/manifest.csv b/tmp/manifest.csv index 6ce06e8e3..7a54584a2 100644 --- a/tmp/manifest.csv +++ b/tmp/manifest.csv @@ -3036,7 +3036,7 @@ 2013,endoh4,Makefile,30,true,makefile,true,entry Makefile 2013,endoh4,endoh4.orig.c,50,false,c,true,original source code 2013,endoh4,cube.txt,100,true,text,false,3D object coordinates -2013,endoh4,endoh4.sh,100,true,shellscript,true,script to try entry +2013,endoh4,endoh4.sh,100,true,shellscript,true,script to run entry without cursor 2013,endoh4,solids/antiprism/a04-square-antiprism.txt,200,true,text,false,3D object coordinates 2013,endoh4,solids/antiprism/a05-pentagonal-antiprism.txt,200,true,text,false,3D object coordinates 2013,endoh4,solids/antiprism/a06-hexagonal-antiprism.txt,200,true,text,false,3D object coordinates diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers index ef56c8584021bb61a7c1dcc310cde77992a0bd9d..3df83d936a1ccc74091201f3afdb9b6178e6ea61 100644 GIT binary patch delta 19726 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�e8(Bm}<4o-?-=4;8WVdjf?@+wBbIcEYl0|wA) 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 Qre6#dQDU3uA_6o40Hf>=`v3p{ delta 20039 zcma&O2V4}__BcLw*=2@dxeQBNSHQ&WRk!?ZTT^l64^U506WhG|2FX=8?IQ-*1ChG~C>DQ^cw z@Z?{=mU;7e{aTU#`+CI}8Ky5YOnWj+doxV?GE8?8`$&1hyIMopK#IC~7h%wjiDj5} zW|($mn0CwUV$*>0CHshsIX=~rVfrk?v^B%@d4_45H=}9Dt6sC7sNu*GwRn5Vk!`HY z@II+&AVcV1^Y+zTeXX8znP|YL8u8Y|k=1tD3fL58Z3YllEW(WizFTr9Y}^Ur1?Laq zB}VGOTQ5hJ!mKU*PT2fT5bc}`LGlT|@qW}m%?AxsB zou#$vNYYqWRY|aY441JBn~rvDobpmXPMib=9|;J8cjO>JT)3xC5R5V0egUu>GJw)Y z7XY5yvVC~h#8JmPc5}wk1@NEGcJECq0K?8_!7nlHDMP2dmyhfp(i`|ewBlU1K_h~KP#Vc*YK z)%1t=43CYg?l!VB59;i#K^jXCU@_Z|{lpcGf)h6Uw z4KyX~j-YDS-)NBkO@sW4#v3^K7Y*`%)1ag@sQ;$Xsw8>c0Vdx08zuQSltgc5BmWnr zH*opCD9Qg1O6Wa4OOEwlGl^oc30d9`5{2a~-5q};rTB)_M{h|f{zd8yT=6ebivNQY z791m;6!YJcYEj~9SSd-tNe-gG#Na2e8c>7`&mfx3W>AQcsur%H|4*0djnVgi#O%}!5gZI{ks@`CM9M`EDM_TUp(Ojc>aX7R)H3_ z6EgqOi=TF|gcAK`RxI%j#n#bnO(! zU9v$&X8P}1u>1|VgKx<#|BKuk`0~HVE&m_nkm)WNJk`JSxkX-b`GCy4-rpuAHQ^w_ z<>NP&v*Ir*Z{REbqO#(DP{EUWYx(~@DJ;}Uz=&_u5_VA738*sQ z28<|I5=zRFWb`2lJqDtx?}2$Jarn~4)|=6saocLO2$22L<90A}^U>bLNy7&tn2ZLPkyc1*Kn-%g*dF1&MGMhDPOXfFQk~mS_RH_iOfzpN!dm=TZo1Li@RpsTOL?Um)vIJ>>D26Bl%r&|MIFbQaA@) zKEhfj+YLVBcFQ3zfA%|)QD0EfLp3sc@JM zrOm{}e^0kVNyvFaT~-Rm!k5JxsfsragB7e32)Ug~Qf}6v?{j42C9%FhiT!3dB>P^l zyZ56iWfrw@UArotVY{jjs~chRX6&PQp-AT6@PDgY2Vl4zs&BQ8rNY|D#@be)$B}BA zBHv0)x?E~20~G(IZBbHfQVcL|E6v1BOLb?Z?t^Px_=MfzHIZqv<r1^r6$21Z zkk?dY-W6=2H`034>KdGH5)5d@JLJuhwFk+PWiqnA=pl~{vK;FYUd4z?Z-yOx4?X@~Rs+0cQjwXq`V^l_x4~aCM=qn;Q?fge-U(S1S+I~XW_aq!y^67FM`wWHx4V4rT2H1%_5fz$LGtZ8`RUJ`fq{`t zdsRrR%S=oPVB($fY<(y1mAV4HQNoRzF6mXVjX0GJdY%zAIb2rY1+pb9Ir8-m)^5DI zd&&1?*_N2F)U%1u%$DSep%K8iO|^L34C){He3NkPv zRb*hjJUVDZ+Q`6Pxsp;NGE9LljNf8_RT?|FbEl3>!P8B)CLKUe5`n$;%{T|I@vf4{)9}pB zP?Y{Fsk2=Bk;vtK|NZeapC6b=*N%JMHv@{#!-qP)Rp6LC(Dh7Fm9fZ+V#yRYqdU-CrvrzRgp2c|yS!bp4{-OZe-^W%NEO6=Gk z(=2%z;C6)xEzb1x7+pA_~&;!$WgQ!FS>t zQ?s^HGsQl)aD6)46kI>saEqtI6V<(R$||mYWVMYM$(f9L)s-Ksrh33I-^D7*gI7Gd;?bznruEN-M)aN#P-0kFfZx{QHX2;F@Em-+tN9pc&=f%L7 z7f*CRJkj1#UfvuKl?a%$z!Z;1Dc5~?W;~>5L#lx&)NU%Lf_B@G<}B@cRQ-#bGJ0e~ zrl^TC(#wOUTW&;bViE?rI~O}%4!s1CNa%pE!)(biu6Ryjn^g1ACIWj~^s^oLsk%|L z_4B!?7jutt0aKdLbiX`0I&wz)SM<#8tw&j5Pre5P$CQn-9}P8)`7f0E0VaLHH=;K; zF_MD147%b#>Kcsh@eH=PljLeU!eV;kz4{Yu?nZO5`B=}TmWSND7t{%uviS$DEhYBp z3Op6c9#uJz@39J$5p*Q?UJG69P6~RKksi8=xijPw;n?cb$HN!TqNJzQ4Yl2`0OR;F zC@{eFZa*AdEwXLti3{wilyI2Nhm#>a`5oP`Nm+EKDm~A2&NJMA@p)06IW}|44K}Sd zy6K*N+uQAy2f_~1KPR%cJE=<*vJ^#;wztdrhRVKV!tcc|p$bP*meZp$84Dy$j$|BQ z!@J6%$ia!!VFUHiJ?Op@`2ibFF#hP36ZsAsk}6`P?My0v1N1~iy|+gF8a?W_F?EjB ziw>DS&Tz{b@k6Jwq3(>nOfT#xcuQCsH~h6LHWhb6vh%}e%hq=B-nbwBFhLrZ&#&6&|syNLk zawXqq!)2HQ(v8&NKm(Q0i)gDGd5Hu6P{xrU+6_knxJE~mGm=qieIwu-=5gj!_6^^> z*`N0QfR_y1AV1K6C)S9o8{=<>C583^#^2MwZ|r7a(N(xygxXzASm(|h;&574H>PoS>X=Y{MuSlBAsXAuqp(gvKwR|8y2gEq6_Y%&NBG1 zp=hypDlm5;RE-IgcxRA6eLWEcYb$qcBA|6&Cm&S$dKkEHHq+^dg&C>MCf9H)+SZqKwkKNi)_zT+n(S zasx0z$v@yARHn^Frucu>N6P3X-Y+v&7GIxiuDP8v++2(&-rN`)?Ux+JGgd~eK2m3s ziG;r7emx_fM+II@@hzc4fXS(hvUPqP(pm@H#N#g>c-~uj;ray=Ib1UARcO^!kK1V; zzNEFxvQfkCh)0uw$*omkfbn*)ce`FWkk7)}ipKU*%98hPlHLG_QFQ>REP$m7h7E;F zF4tR=Pcb=9U2i|}y3qxxj)xYP#75qm)_02LpYhd4BppxFT2PosXO{RCb?rc*X>dK2((qj15AdKA6(1ZA$pyX z{(7c7`Wh2HJ+l;7>SXn+wx?mDyLI$agjAW)0f{=P}~zhV0NqVl_H$}-??Rq=RB zN4ITgQ-cO`Gq`!8qqmLh{tX(6N3Bt21o4-X z3C(b|ai@Xh=pz0W`b}Mv{_5mFDc(Ej(m9P%! z#**u$svAr0Q#X296&;zr;3&aftSD*0p(5J1F%Ro^QY^XQxW3rFBqA@(%DZAWGyQsU zD$x6WeSvngI1kmlY+ITS8v{&qmtDEFGYaGF(h+q;)|5;oE;;?d+>UiD>FvQ#T1Q;& zTo9Pkk-oHrc``NJ+8Npt{TS!x+v3Oymb#H={ENgV(^hj?fNA!(YjCvpof-p&kRX8! z+AoT0?|IzoHC>|4G-P`CRX@uf<{gOmHu!mNY+!;{jz3@m>TV=ujl@4(0)l4;c)ltI zTX<|ni4O$j2k6oR-}|Z{xkOT1RdnC#b$v=_m@QzU#%ya_UG4{He~3OvB-ISscaQF= zw<@wN>KUSAHcSm28+}?l{u%Q)wbVA#c6JW_t|CHOcSu{7>q-=Hhuo(pe$sWf z`+9baiPkj0)P!bcErbT9uaFvDWD?e{ShSdgJrWF9XXrgO*A!aqzn|%Hj&F6U z&T@f%pNi4mWK#J%=&K@%if9ge9ogl*j(L^o7B-WxXaf^I6)ieUN!ondyah~Da%x;e zU2hJyiICB-+(y?y=UCzNNsjxvvWC4E7L|=B1b&~>UE*jTEqBUKesNc2m6_fj_jLlUAA*@#hzHS^&Yu_ z4efV_qEq*9V1}{pijc=WQiUJd`P$b1-t~!?9gK}6Wya6$WtcwpLU&LmzJi4HT5xRVzRJjJfStF7JX1MqaWo=@f z_e@Sd4|N{d2CpqMEKW#vFLd`eV^Vxd1_B$Vdf}Q4;=qb0;Xd&`udg!BPg82gJPRZ{ zpy#{dK(B?+#mYNnfT=Do7#}XOPuQt_SQKyHoKxT*_ZTpZwoCP`b`SG_x^V7xK~j5g zMV1fLIAnTfc~SgAyvr^urrPlrj#Hy9*#^wW-Q=<-uX6Gc<4URV)kMCx#(FcBeCoF{ z?)^7j4YC`U;$K|+G zSHJ9inGKju-_bDl1!p@ECYUx@?37h_bM6AOG}2n{LzOoHGd13R z=h6MfnFAO(v-WmTa%N@yX+~iw^MzCNOhM;Cj6I9eQpgVkhcHHYiJR-Ip&8$=8UN{= zm%|ISRZ=KYN+lm`oZJdJr*GvXRg~hQp{Coj-0trDz^C~1RO(n^%iOH>PA2}w^o<*n zc8gLd8c!wnev5}MuwCpJn;A&QHAPcGZr$UXsd-26c}G-VeRHI&^%Ud#$gON9Jj(iW z46U%8u`6F1DkPcGrOJx<#>yK~=!o5m{*qhMMeCT>I%HSlm7XYtB3B8ib5NQFK55T+ zJ($oi|2s39`KZq;G__s|%`LV;mAT1w=8R`eanwvyW7`*)9q;}JK~V+uH*rpQ{btPc zT{q``sBMB~B&3k-n+Adj)l@Vq70Ge{#~0LPb! z9{8pV<=V`~e#D^0EbBmLn?$%mAg*(HoL~KLzB3xv3Hhzrp(8gNfVv2AvPeT#rT`tv zB6VbH1fj?hAF!b{BSv9aq>8$_*l9BNu3uk%_cu(@y_6uQq;elSppMG3aEQ}K$#d9S zbF)cZR+|!XU&IpoESn6_4K2=_n(uxU6K}?Nd5%~;ba-0p0x*{|!Sz?qMLK;k9eWXj1BqNO%5siHFv2#&Ah#uvW zR{TD3^<+hMvxCz}K46|tM9yU9mOAk^UqHtT$gkCJh&-Jgo)+9~k2uG~#kCf=-n4e) zg&ahs1>^@T$Ad_|kle3o7&H?)65|!NjG3-2Z0yZ(jhCXFDkS|`>kmm53rR5m8R%d! z>8K{Y9y{3gB)+xgGUH(%lGolCUQ`Y?qOM}n4!EInk4b%84aXEryI3bjsWE9a0g<=* znqq2kLYwdy2bKc}n8_*om5`!kN7bm5o8f-*?y-LMfVs0+92nA`64n5&qVGz`i{J_> zDACf>@-qU>RvBN`HY$K&d#d3{us65 z>;EVvzr+tqAcH^T)Fnfuq&`bzRFT%>&_9xjaE{;Y7#&ya{ ztMtz7{^Fv?yxNb%Q$Bq?MF9>&>zVO8kILf5p9Ia~NuDTw!&iAZ`PIJ9n(rj}w@K`5 zs{yl^axZ^K(twulylRn_2JaJOnYv5J1hAxt5tGI!s>*tt9 zwn38v@p;RaCw7e15xfC*#=G6r54yRiY0^4E#}f75NSaKGecR?o1V#$wbru z#&t3=!o}fM*!$8E3aUvRjSpbGkZ&E)9zLHJ2`e{f#Mo6-x1?0;gL!MjNUnx7)BxXz zvu)fYEx}f`IInwEH{(|HD*OQaaV2hJB9j_&&vG%gHdj0UVe9(X$rH@|&=lvAq27QG zF^z1LQ-cHa8+XmBC3OxR#z4Ob$E6o7?V(kG@hQx_pPdmIcodH?5nF>My(+5MOxshh z(44!EQohDe-=?wlEWg?Ke=twm(!FnuK1li&LyKHS4AhBtmlJW=l$F+KC5;s#*KV^SxodwpYgulS;eR-rTT zl~Iq^GQHM0kyCEBJb6ur#1)PAUxyS#M`8nM-7#QYWOw695r=OSIFs*I(t7_1?z9Gk zci)YZ47%BapN)n+XI_n!x<<5OaBG6s%i!+&jvyNK)nShezLV(Ilh0(-jUuPVURn)3 zkHBNzbHC>i;2Jda4E%srG-FR8Zl8XFa>7s%cIr+pFKfKU+M9SYijq^!qzVAPqF-9b zy#{zeVj^xuCMJYL;AXx@;#A9ZiQ8kgRP;sR!-K^or5l*?=7`e9hLK)bjEws5RWiNu z{%GSf@}1?-SV8=_bGE6(+sP&!_l2rLlB~k>3#4H5(=%z2+pI4t^3NLU_D#)O&eSJd zuMZ83?bcq6OTmz5WHJY)?ZcMxdF$Jdg^+bCxsC%_P&A1WTS;5K$S>oW#MSfhT`?2? z&~Z5M(M&E>(~I>&A3Z16e+YLR6=e+G^BRkpO~!4*iQuAJc2lm-wFBnz?j5 z_vi5q(Z1b{12A7fR2J(v^J2s`bvu(j6y5Q>splq?*PXn?LK)A=0``Z}Y1_47{r^aM zR4hHh2SZ4{9S71kHeu3^10a^e0`ig`NzDM|yn(4u?r5l;G-N|JW$YI^NM%;&dUUXZ z6kQWdk0m}U%?L>aOzeHW zVWGPXCl#UXC^~xdS>QTmXuf@Zu=P5p9`c|OQtFf@)H-5Od`ZBw)Q2J1^S3O{j!*P8 zjziIxV%Ns((CEyhNKc$)N}lHzPrXQkjeCu1qn^JSObCv`m2G&(K;46N?o#dr&d3w+&WhOh)(S0l&bCh&9B?C<~MO(v<<%~kxTKY=679+X< z<2?VeaHQFD+!~I{iP|2`1wVV(6}6vn2pcW+8ouekLl;Dg`F$M^>?aq`GEtK3q{r6d z0|?Afs+)NGp}3-UEG1>c?ydt)@nSptvwGvIF<2NFT$_-0t8~5|t_V~q^NH^CF6Di< z7ZrDrU*QT}*iG(ZX)l+Ubd!sK%YQgJTscya1wT5gA-VLD%*OR|Lt3z7PiS*JuHLN* z(>==;Lwp)=T-@J>9gxW7iTA4!{|B>4fa$6BcoZL)4h{AiVH0xb!`aall-x%?Ru?-@ z42+ih+z5}yjX_tZ_U7!w5T5l4Bnh z0zN7lAdQyC;%xnKdemTQJi_5((Z~6E-r{Y1`%r~?i1Y?=e)`l9eK|+@I`iv zr~7kHJWSO1pxv|Z=rji7RohN=2D{wO-oqsIEoFJ+`P@>%3O?=?zU^Ddazl`$)QY^e6GR?!A7L+8+WK`|PHHx*OvS8!`A*-n|F4k88)U$XwzE z60(!VA~#|1P{62LfQ`L9zPI52B-7pNrCY}qOe&(@p{}{VE#O zzg6qG&=7_#BQWdvP_*6MNh!Fp!tVBbaC5RZIyOS?VyT=*o+H@sw4taYBKFRZ{cIm# zGRuA4nk7AhxF=fiaNN~#;8oQ)t}h-Yw%-}6&xc`3qNsGI#)=zx-VF2Frn)$-&!-7~ zyh41p;aOOH;zC3eZow|P);{ZhlmWM{7&Tm+8gz`T8g>4WX{!&L$xfTN{sHFXUS3&6 zO^SaEF3tjX_RLgOAuvYxh`kGOqW=-H^q3|+Na$-`bBO*VPjru{&A)@ z_r`YSeM zH{OVw$>}x$na<@8r{RZxNOO*gQS#z4EXUehj~tw6K7W^aFxOb=)?V%Yrf54lM(T)< zVhZJ+R*sKGlibE|OTQ|zv3zJeU0Su-KWM7&f1O$IGxH$PZ7y~&mASmDSIEK!?c$`;g=Mj!u zi=NNjDm+Ggq)@bFocu~8&dTd>3h9=F;izF9X#1)$b;t+yDT!;kTD^VmXEouv+-fYo z-|NOEkV%9t?wd;<<&^%JhunsNb1j>&B|*d9hw+;XnC?h?*q7 z&M5l_E0DQaY~@MbekquPsZJ4Y@&C^og;9*SHhaah9c z)et?L#E}~4X`sbPau3V*0(yUnRNpA7@htCgN{EYBW*DR(g-*@k>RtN~>YpRq)Wy}|VRn9T^FW0|ifB;BxHoYw|wdsL3&YD84%|9h+5N z{rG%$RcPcmFgS-c`N=8!CQ+0e;c`~`D9h*`--pyaQLJBjU*N65-k2<$jE|-EC1>Q$ zFGwHTsGCZk54zqIdW?CH6LUMoH6?oyGw$CMT$G=m5sE7TNkMFF!^^ztMIcE4)R*$$ zn1roB(cgTUG=QcabW{$ze#ksow9iRys&`Kz?)i6=9-hhI29mHS$f7bgW1 zyT;$JbI~)@!9FphW62TUBk&5l6*SV3C_Rt9K1b;oNRPTlLvPP7X0WaY&NgEGOO|FLA37*8!`Vf3&-2=(z~S35v37RRY3G>Su+B=4;?WkMCNVfq@i*@` z`o9`x@Sj^n-Q8ueOYPR7_yM1?p~aEL1_!KYHPwYS4{|G`^KjsJVH=oHoa2J;^0)?4 zo3vPVdn7q&lwIg2hIbbq7ob}nHkypXXq}Z?VyT?^x$(S*wWU>W5Rm6_IbA(0AfI^W$Qw8NqPH<| z19s&LQx)CCxMHsHxp%{3AvKrHq%BSRzC0>7MEY>ml>XZnMWQ7wXX#UH&?fo7 zl-~K(!8KGVSV3r=Pi1~Se@SQxIs9dQyy`!>0$r*Myu+;d+1&UtWYgcNQI=+xmQm$tX9{0O53%(*KTCYBssY6E_;MVDB8 zM3-0@XTUzOiK9ntp=yC1p?gG+;9oX7eahIva?J$#vyeUj9-x9k`rRXQ8bUpTjRso{ zwi|5a9bTicj%t!;cmnMM0egR}JGOnd3}YeCqng1nV(o4_V%ahHOvLDIHZa)C`I_2A zwSbMp=93!<;r@f4ojCgWhbIm}F*;mC9~bItvwyLK4ZDHvp3O4L95}k1FRATR2iUOZ zsm!tsD|e%^B6AUIz}NsA768N1KLya;U19-lAI0BR=PCg@m5x2=}~He*c8L(}@3=z63r(j*sd0 zaTZwkm|n{k`ax$j@|f2A(u7_kw^CM47gF=`3@so{uvFlMuPKIFz+#nCV0b1pu?Tns zRN@ItXlgly+c9eTw33F_w{jGZdJT>V<2-1{?{a@M zyL1UAq1&aj?zPmf;q6V75*30KfmTxDZP-ZM0?LGS_i`6{-F`N~+x-69emg{8*4M938gsBmDQvs*1fS=9)05&`N7IjFT6 zhUpNeV3z^V7b#pcK7Hb6Gjr3^`WMYkqc6&64dqMwRm_b~{b*tiA90B*P|FKH^<-B@ z>+o-{WUiW+TMD5>8Kx={#=Klb-VnocM}=jy_}XE}hg1@mfdaTQ5MDBZa+|R3(prBS zsa!lQV5oa|B63Q~u;2u7|Ly81*i*{X1E5ZDmDC|z!xiwT6rf7UU$M|W#w*;(74WH4 zph74KMii+NCr!fE@~@g)65t05wS83J#VZ!)Pr+VO!g#MbSFoH?c?dQUDoUG(vrw$g zSeTlaT;(aE&?mIkjur0#MS_Av7}w&Q{%JV+D^Mcj1TxBmJ`{XQWCNZtm)N{JnxmmW z<#3s+0$Co<4mRtesVDRrtbfbP>E&$2HBf+dm(%aA&Ge_#sS=>Fj=>sq`SSToXZ0=% ze&0-~VW+Z8MbYG{@nti$QWS`weQ2Pb!}D<5FPkH zEg8e8PAOb9Cty~4F zmkUeL$CdO7Ad7yiq*n`u)p;w_d5P*O#=^_SmgnGR$ecfAY${x51Vb5L67nM6*WGTgX*c#@210xVJgo?q?Igy59<)KAidI#=uz`y; zWD2N2>V2-M-X$}50_jxI8o&}AtfF-{Z!}V|I49sz*g>#4r{SR=xL7q`14zl4T;d$y z2sNw~7?yxzatS~#pR!eeXHjGotz*cTQRhuf1T&vvGsI8FLU)S2`NY1-1C#>g0<=_Q zPoB}=X9~|n5^g||l0R)?J%l~K3UPy@!ajFiZQ2$oRMR_Gd~ODeuz7o9{ik_VN4OUH zCrx4LA;K5i23O4qovxn$I@2(1iD4EMDO| zUl9q*-X*s1Y*g^FB!YK|)e7&zEk813sk`)+Auu0)GV|GSpaUK?LBZLZ} zjJcVm`4!%e%Xx;&v5F7X&>v~Y{sIl;m5PaUpmr&lPwZFwOp{a0-E465oEjH>UQ2HW z$B}a_EmYe3zRE9_0u`zNs89+g&ES2MQA_V$@zO^_|MKZG0wt*p614UnLA)HEXem%; z%bkTQkjhi~V-SIUcuKFQ#8%QM*0&pZJ*8K#?T>;HO4u6f0go$x87q&*N{$LP#0ET$ zA_(AKGQMmIbJ4S>^tW;Wd$8WNDL^Z3amkeb@U1qe@*TQi}Szby<%Uy4BbrS_^^LHnyI6AUgPh@I;x-{f9i^brP)Ox zuYNn$n+fbgWY3(|KY#J8K#_U{6!CMkzwE~@aT@z4?wZ5ImWxw(L1%!f&c>B>D=1BB z4zH#fj1aI*F2NgX*(Z$Qs2z`HNdQD=96k=PLeVvP|#X)E$$3=yTcXn znz&(Al!JlZtMyHdfBO}$*bNA$9FbcCt*6Rb&C9@kTaog?wm`w@mEaS28C5pWnyWuu zCAhhY_h>!a+>*DrQX0kl!A8xG^$S?sn~+&2Fo#eHF^#moGHct~g{^t(*+OI9x~*zc zJowT89mXfPzWcyxywc%7X{9f6X{5!PX8KV-t<$99AmalBs#`>YFn#E&$2C8F{t|RV zqm8s^zlI^(*mU=H0%u)`U^}7v(RPB_u6NGl7kJok-!_8UO5Fk5KK+qkc3|LTp1Y1sPqo14T-3niQMqHBnle^K_U=vhE*-i8^umv?X(T9Kl37hFpz$SF5 znKlN$psHs2pR5rP`lN;42TCO#E%fIyAX?J>oQ?pXOme-Qc8~!9NU@u~4pNYRH@#Nb z#G1m71_CwCIlWujnEmQ*T77NnL&5~E*bbA{5XMk*2O(5zxT-i zYQCh`ZKS<$aBNp(4hUpn>PNf*{Aw+Zsq!2}h5OjocLGCgirBj6x-M6q>QaQ6$nqt9 zSWJC`Q@^R*L@(ILrjD%rvw`RXN{qshD<^-2!fiZ#bFKhV{XmUNnj8Pf`+h5qs{?>x zGZ$e=El?G#6~l{n2}P)h6nbb4I=~wS>S*i2?jvYR4}Bcupc_53Ht*eZVip_l8o}ia z*hkuZCin-+>!JC;6gBtIhZNo1SD!Nx9{U7qkre}fLk7L{HCE42l-x_}0{r4vFD(G> zXttOB2arb}_R;UMW*_4ICH?+2o*UcJ3|jdSkwDivg|R$+{>&M0m)b-{VRGxW?0xMi z{`pImCTC5|*N^Xl{=2ACS4?^Lf5Mg>4YsV4#o_6c{w9GY6@w+Ec6_H3^)3|)Rxn#H zo0yyWUS#xymc~EANo%3d)a=q(q2>9DJfoxR%jRnLPp%BwOg@CVrDMfvRMy~JW^Zd z3cp2p{a9~PTv&$_u1n`nndn)X>G3)% z)DE8KIUghzzRCKkfeCRzjCQ04>Xvbh<~l4xWw zN`Jj}^gF^>3($mc{T)A;EmkqHz*T}bFbH!cPJmLb*%iwZYNN*J?kKIXX8EPPzPM`j z1IogUmRHO#SqS%j4u{VRqL1?u_reGoC)8NkMn~!O-%XrYa}Q7OOCGkhE9ZH=N7-hV z1Z$*42HZ`gx4j1iO*%7`+Ajgi6L}OT(3opBTU%IpXx%=EK-a%KkXFxF+Y37f_IG} zs&RpaWA6zK{Zkeef-SiJpv2Za1tI!+lGf0ATn9bm!8Wd}`Q?jHqJo$9DfVQHb~H{7 z`@E1h9*(bbmr`P61iBJwR=o^26!a;c`4u%KR6j}Y-oA7PyGk}k0jCL_KmmLH&pr_X zr2}WU0u5Y0s1d60mI-lU)4^@sLN3*<#H|~G?fYEB%R_xr^eW(s6kgFMcb>N;PVfGq7#rstxIoY_6L%uuE+zPzCpH9S zCk53nSMF3I7CWv`oU3L~(Fspv34Euu4aK~oO~FH?GEKYg*zL@|VzK?^?~Fc9XS{J^ ziBjYA5f*vngbz^SYnojW{%n4pw?`iC`IJYQaLq26=z(Kc$PLptQ!PQOW@tU|Av!!m zs{n0uW`;(BAQK`9+@b`B%;1Gap385%w(-7yTAzgNo=AO`{z)ah3`m8NhTS*=opfQr zyF3~N&C>6IKTy*w{j&n`Pu>FtV-$0isU@NB=4f5*(LV?wyl`IHtODwChMe`PZa7$1 z@ZioN%JkPu@Mm;;j&_$NF34?#8R&y~?EKfFujlCvT5b=+jNh}+KXrN6&Jzaun|5py zC{t~D%LLyy62@xlQ20E~*?mycJkAylptTG1`>dWyWU@ftV7>SaO)bz@WP@XfU*JdR z@*=IN=-)PbPD7Eh!taX;DEKJ~TBJAaJJqK4$`Pn)ZdyAl&|s+R%FH_gIjv6>uuGd& z!7VrLT8{?eBHW!oI0ID;TD*7v#~*%r2nzw?>Pwj*aYsgRiPqY7`bX@&@7%?xwn~IM zSk6{DrKR%=p~u;dK|iY!9@z76*S6ke2%aDs+RMUi z^6y=**`!4j4SIkfUdgVv6tDEo=J&|(AT{G3t`DvDvle5;FV{kh{vbGMtTLD}o z!^TP<2tFz5{7&-#clmmmK!pQDAU*`g@vGb{ZT?9D_ld&44%tKyhMZ08+I#w60ycmB zkqv-h9cR;o_SZz~o)g5Ub;N4vB^Yb(Np$6RrE{$4_a$w=D;)#tq(4KX-uv-0o*4hS zjdUXj;=@a)O@7()`fXdYkqi+<$QA_AQ%4+xDU4Kb5}2T|mWaO4fMic}?kKkS=MxrZmpR z`zkvnAq#`Y9F(r(-EWT4v#7{XY3DUtF44+cA@`O2^h{T2L_`dmiR}q%4}R2Eu6leq zCE)=%@ol#*2fu)q;k%ghk;286nz|PY@T%PD@S{8|{nl;4WhvM@#57V3*-s6dH-Ft}A`d!jIf_ zTvyU!fqMuzDXFrI`w-tr>7trAYP!j{7AP`u`_P$IN0SyzwNN#md@${Qc*oP`^m!J)xBP ze}3%;|KiU|ytIG)eJu1oCtQs#98g&=b3lnk)*q^M#* ze=%gz6zx{0X&1)FBy|7m#EBsYpl1mB+`XqQ$S~Y{&5#yzkyf5i2Yw`}*n8Hd-eICw zZ*4lmq(%LfXYkm*z)1bAB?@gluxLl#8dovTmcN!%&N8au_ zya;N9)3)fK4heC` zq7dHIp-)ALws3}`W_NJu=>}jFWN7et|9!)bkd<@hN$e&6jS7~ZCPbHXHgiV zqm)36=-ZMU#fcK-be=@gBxXmU2NPFh4=%EecgeKr#(0+ek6IMRQkHaYh-iU>c>KM* z0vAa{4_uLhL1Cm6p8Fd7l2UwlI7h~_MO!qVgMP7GRoJx+f8=0`7_OPrj@!o|5azA@ zuUb;YY+ihNPNi;;hFhRvLA?_N6~7kLASUvZ z@gVNcL(hLpWy9-5QMC&v9?L_A8Gz6JL&@dh)*QgQpyJg93h;*ms2DS7*Isz3qPMJW gz*&QK`S&tDGaxC&@RtEQ=mYh@I7C{ycLBxx3r1~`H~;_u From b9e6bfbcada080b6547a9d172433c5a15bd16a92 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 11:47:54 -0700 Subject: [PATCH 5/8] Add last update timestamp to chocolate cake recipe This seems like a good idea since there have been times where something new has been discovered (rare but it has happened) or some clarification has been added (it is, as originally noted, a very complicated recipe). The date has been backdated to when I last updated it. --- 2020/ferguson1/chocolate-cake.html | 3 ++- 2020/ferguson1/chocolate-cake.md | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/2020/ferguson1/chocolate-cake.html b/2020/ferguson1/chocolate-cake.html index e3f7587d4..39e1bbac5 100644 --- a/2020/ferguson1/chocolate-cake.html +++ b/2020/ferguson1/chocolate-cake.html @@ -384,6 +384,7 @@

    Double-layered Chocolate Fudge Cake

    +

    Last updated Tue 26 Mar 16:28:01 2024 UTC

    Here’s a delicious double-layered chocolate fudge cake that is something of my mum’s speciality. It’s complicated and I should warn that nobody has seemed to get it down as well as she has but it’s well worth the effort if @@ -394,7 +395,7 @@ feeble attempt at drawing IOCCC into the cake before icing, a diffe The picture below was taken for my birthday (14 February) in 2022 as it’s the best one I have:

    photograth of a delicious double-layered chocolate fudge cake

    There are two sets of ingredients and instructions; the cake and the icing. In addition there are some VERY IMPORTANT NOTES to pay attention to; some will diff --git a/2020/ferguson1/chocolate-cake.md b/2020/ferguson1/chocolate-cake.md index 933b781e9..f27dc3690 100644 --- a/2020/ferguson1/chocolate-cake.md +++ b/2020/ferguson1/chocolate-cake.md @@ -1,5 +1,7 @@ # Double-layered Chocolate Fudge Cake +## Last updated Tue 26 Mar 16:28:01 2024 UTC + Here's a delicious double-layered chocolate fudge cake that is something of my mum's speciality. It's complicated and I should warn that nobody has seemed to get it down as well as she has but it's well worth the effort if @@ -12,7 +14,7 @@ The picture below was taken for my birthday (14 February) in 2022 as it's the best one I have: photograth of a delicious double-layered chocolate fudge cake There are two sets of ingredients and instructions; the cake and the icing. In From a2c0e79bda170c60d7513a2a3b1c615d512e61db Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 12:23:08 -0700 Subject: [PATCH 6/8] chmod +x 2018/burton2/tokcount.sh --- 2018/burton2/tokcount.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 2018/burton2/tokcount.sh diff --git a/2018/burton2/tokcount.sh b/2018/burton2/tokcount.sh old mode 100644 new mode 100755 From faa9dcbc176ecd1e4c14048c91acfd0ad4f97c0e Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 12:41:17 -0700 Subject: [PATCH 7/8] Fix stray partial link in 2019/dogon/README.md This was at the top of the file on the same line as '## To build:' and it caused strange output in the index.html file (and was incorrect in any case). --- 2019/dogon/README.md | 2 +- 2019/dogon/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2019/dogon/README.md b/2019/dogon/README.md index d3837b518..58dc94528 100644 --- a/2019/dogon/README.md +++ b/2019/dogon/README.md @@ -1,4 +1,4 @@ -%%REPO_URL%%/2019/lynn/## To build: +## To build: ``` make diff --git a/2019/dogon/index.html b/2019/dogon/index.html index 2ae5a2171..7e6dddf24 100644 --- a/2019/dogon/index.html +++ b/2019/dogon/index.html @@ -401,7 +401,7 @@ Location: IL - State of Israel ( -

    https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/## To build:

    +

    To build:

        make

    Bugs and (Mis)features:

    The current status of this entry is:

    From 1396743e669006014f8fde7672710bcafbd13018 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 1 Jun 2024 13:16:28 -0700 Subject: [PATCH 8/8] Finish fixing links etc. in thanks file It is possible that I missed a link here and there but the vast majority have been checked and fixed. Other fixes were made too. --- thanks-for-help.html | 279 ++++++++++++++++++------------------------- thanks-for-help.md | 214 ++++++++++++--------------------- 2 files changed, 194 insertions(+), 299 deletions(-) diff --git a/thanks-for-help.html b/thanks-for-help.html index 71db37463..0b68d21c0 100644 --- a/thanks-for-help.html +++ b/thanks-for-help.html @@ -1942,7 +1942,7 @@ was not a char **. InsteadO5()(which wasmain()vi its own function which main() calls with the right parameters.

    Later Cody fixed it again to look much more like the original where only a single line is added, that of main(), which calls O5(). This was done through --include stdio.h at the compiler (in the Makefile) and by removing the O3 +-include stdio.h at the compiler (in the Makefile) and by removing the O3 variable (an int) at the top of the file, instead making it a char ** inmain()(O5()had three args) but then passing in0toO5()` for the third arg (as it was 0 at file scope already this is perfectly fine and it means there’s no need to cast it to an int in the function call though that would also @@ -2912,10 +2912,11 @@ index.html for details.

    Winning entry: 2001/westley

    Winning entry source code: westley.c

    -

    Cody added the script try.sh to automate a heap of commands -that we, the IOCCC judges, suggested, as well as some additional ones that he -thought would be fun. He also provided the sort and punch card versions, -described in the index.html, based on the author’s remarks.

    +

    Cody added the script try.sh to +automate a heap of commands that we, the IOCCC judges, suggested, as well as +some additional ones that he thought would be fun. He also provided the sort +and punch card versions, described in the index.html, based on the author’s +remarks, through Makefile rules that generate the files by default with make all.

    @@ -3742,13 +3743,18 @@ version that does this.

    Winning entry: 2012/zeitak

    Winning entry source code: zeitak.c

    -

    Cody added the test.sh script and the make test rule -that uses the script along with a number of files that will correctly be flagged -as incorrect (including a text file and a java file, with a joke, to show that -it’s not that it parses C but rather just matching pairs though that’s probably -obvious) and some correctly nested files were also added including -1984/anonymous (as the author explicitly mentioned -it) and a java file as well with another joke.

    +

    Cody added the try.sh script and the +make test rule that uses the script along with a number of files that will +correctly be flagged as incorrect (including a text file and a Java file, with a +joke, to show that it’s not that it parses C but rather just matching pairs +though that’s probably obvious) and some correctly nested files were also added +including 1984/anonymous (as the +author explicitly mentioned it), both the original +version (.alt.c) and the +modified version that works with macOS +as well, and a Java file as well with another joke. Those C files had to be +added because each entry has its own tarball and without the files it would +break the script.

    A problem was later fixed in the Makefile by Cody, a typo in the CSILENCE variable that prevented compilation.

    A minor point is that the author noted that one should @@ -3767,18 +3773,18 @@ the same) so that as long as it runs to completion the terminal will be sane and the cursor will be visible. Using atexit(3) will not work if the program is killed, signals are ugly and these would be messing with the entry too much so these were not done.

    -

    Cody also added the alt version that lets one control how fast the painting is -done, based on the author’s recommendations, except that Cody made it -configurable at compile time. The Makefile was modified in such a way as to make -it very easy to redefine it at compile time.

    +

    Cody also added the alternate version +that lets one control how fast the painting is done, based on the author’s +recommendations, except that Cody made it configurable at compile time. The +Makefile was modified in such a way as to make it very easy to redefine it at +compile time.

    Cody also added the try.sh script for the entry and the try.alt.sh script for the alternate code.

    Winning entry: 2013/cable1

    Winning entry source code: cable1.c

    -

    Cody added the try.sh script which also has an -joke Easter egg in it based on the judges’ remarks.

    +

    Cody added the try.sh script.

    Winning entry: 2013/cable2

    Winning entry source code: cable2.c

    @@ -3789,14 +3795,15 @@ joke Easter egg in it based on the judges’ remarks.

    Winning entry source code: cable3.c

    Cody fixed this to compile with modern systems. The problems were that -localtime() is used differently and time.h being included (with +localtime() is used differently and with time.h being included (with SDL2 in macOS - but see below) there was a conflicting function type. This appeared to be a problem with macOS and only when SDL2 was included (but which as noted next it cannot be).

    The other problem is that this entry uses SDL functions that were removed from SDL2 so the Makefile has to use sdl-config and not sdl2-config. This meant that at one point to be strictly technical, the removal of -localtime() wasn’t necessary but this change was left in place anyway.

    +localtime() wasn’t necessary but this change was left in place anyway (but see +below again).

    Later on in an updated macOS (problem discovered in macOS Sonoma) the entry failed to compile again also due to localtime() so he removed the prototype entirely to solve the problem.

    @@ -3810,11 +3817,9 @@ Studio. This is done by in the compile line undefining KB (-U the source code defining KB to what the author suggested, (kb=H(8),kbhit())&&(r[1190]=getch(),H(7)). It need hardly be mentioned that this will not link in Unix systems (including macOS).

    -

    Clang required a -Wno- option as well.

    Finally Cody provided the bios.asm that the author referred to, found at the GitHub repo for the -entry, and the ‘ready-made -40MB hard disk image containing a whole bunch of software’ in hd.img that the +entry, and the ready-made 40MB hard disk image containing a whole bunch of software in hd.img that the author linked to at https://bitly.com/1bU8URK.

    Winning entry: 2013/dlowe

    @@ -3849,16 +3854,13 @@ commands to try that he suggested to see how different lengths look.

    Ruby and ImageMagick are installed before trying to run the ruby script. To be more technically correct: it checks that the convert tool of ImageMagick is available (via type -P) -because convert is part of the ImageMagick suite.

    -

    This is useful because the Ruby script tries to run (via IO.popen()) the +because convert is part of the ImageMagick suite. The rule will report the +tools not installed and where to find them, if they are not installed, and after +checking these requirements it will exit if either is not found.

    +

    The checks are useful because the Ruby script tries to run (via IO.popen()) the convert tool but without ImageMagick being installed, if one is unaware of where it comes from it will appear to be an error in the Ruby script (it might -also appear to be an issue with the script even if you know of convert: it was -another day that Cody remembered it and why it wasn’t installed on his MacBook -Pro even though in the past it had been and is indeed now).

    -

    The rule will report the tools not installed and where to find them, if they are -not installed, and after checking these requirements it will exit if either is -not found.

    +also appear to be an issue with the script even if you know of convert).

    The entry can still be enjoyed if you do not have these tools, however.

    Winning entry: 2013/endoh3

    @@ -3905,7 +3907,7 @@ does not).

    rule in the Makefile was originally removed as part of the above but it was restored so that one can see what the author is talking about.

    Further, after the file 2013/hou/doc/example.markdown was moved to -2013/hou/doc/example.html to match the rest of the repo +2013/hou/doc/example.md to match the rest of the repo this broke make which Cody also fixed.

    Cody also added the try.sh script.

    @@ -3914,8 +3916,8 @@ this broke make which Cody also fixed.

    Cody fixed this so that the server would not refuse the connection after the first call to close(2). The problem was that because the backlog to -listen(2) was 1 once the connection closed the server was essentially ‘dead’. -The backlog was changed to 10 and this solves the problem. It is not known if +listen(2) was 1, once the connection closed the server was essentially ‘dead’. +The backlog was changed to 10 and this solves the problem. It is not known if this was specific to macOS but it was not specific to a browser as Safari and Firefox both had the problem.

    @@ -3942,7 +3944,7 @@ implicitly (Linux doesn’t seem to but macOS does).

    Winning entry: 2014/birken

    Winning entry source code: prog.c

    -

    Cody provided the alternate +

    Cody provided the alternate code that lets one redefine the port to bind to in case there is a firewall issue or there is some other reason to not have the default port. Remember that ports < 1024 are privileged. It also lets @@ -3954,7 +3956,7 @@ redefine the port and timing constant.

    Winning entry source code: prog.c

    Cody added alternate code that lets -one (via the Makefile) reconfigure the coordinates but instead of being a +one (via the Makefile) reconfigure the coordinates but instead of being a modified version of the entry it is the version the author provided which would be what the program would look like if, as the author put it:

    @@ -3962,7 +3964,7 @@ be what the program would look like if, as the author put it:

    application source code is intentionally kept to a bare minimum.

    .. was not true.

    -

    This alt version did not originally compile because a value was left off the +

    This alternate version did not originally compile because a value was left off the return statement (this might have been fixed in the index.html file too) so that was fixed and it also has #include <stdio.h> for putchar(3). The #ifndef..#define..#endif was not part of the original alternate code, of course.

    @@ -3998,8 +4000,8 @@ it is a file with spoilers (and too close to index.html?).

    Winning entry: 2014/maffiodo1

    Winning entry source code: prog.c

    -

    Cody fixed the build for this entry: it does not require -SDL2 but SDL1 so there were linking errors.

    +

    Cody fixed the Makefile for this entry: it does not require +SDL2 but SDL1 so there were linking errors.

    Cody also added the mario.sh and giana.sh scripts which play, respectively, Super Mario Bros and one of The @@ -4010,7 +4012,7 @@ which let one configure the width and height of the game.

    Winning entry source code: prog.c

    Cody added the try.sh script.

    -

    He also added the alternate code +

    Cody also added the alternate code provided by the author.

    Winning entry: 2014/morgan

    @@ -4023,11 +4025,11 @@ provided by the author.

    Cody fixed the code so that the game can play automatically like it once did. The problem is that it expects a certain file name which was -sinon.c. The code now refers to prog.c.

    +sinon.c. The code now refers to prog.c (it cannot as easily use __FILE__).

    Cody also fixed the scripts glock.sh and -hecate.sh which did not work after running either once -as they compile run.c and then do ./run | tee run.c which overwrites it with -output that is not code.

    +hecate.sh which did not work after running +either of them once as they compile run.c and then do ./run | tee run.c +which overwrites it with output that is not code.

    Cody also added the try.sh script that will first (if perl is installed) run the demo mode and then after that it will run the above noted scripts in a loop until the user says they do not want to try again (or they @@ -4064,9 +4066,9 @@ that would break it we do not know.

    Cody added the try.sh script which is based on the command to try in the ‘try’ section but improved so one can more easily -specify what ident tool they want to use and also change which sed to use, +specify what indent tool they want to use and also change which sed(1) to use, should they want to. It also checks that both of these two tools exist and are -executable and it pipes it through less as it’s longer than a page worth of +executable and it pipes it through less(1) as it’s longer than a page worth of output.

    2015 - The 24th IOCCC

    @@ -4106,9 +4108,9 @@ add a ./ to the commands in the man page/index.html.

    Cody improved the Makefile so that one can easily change the dimensions at compilation time via make(1).

    -

    Cody also added alternate code that is based on the author’s remarks, suggesting that -one change the value of q to a different number, in order to see a bug that -they avoided.

    +

    Cody also added alternate code that is +based on the author’s remarks, suggesting that one change the value of q to a +different number, in order to see a bug that they avoided.

    Winning entry: 2015/duble

    Winning entry source code: prog.c

    @@ -4126,11 +4128,11 @@ they avoided.

    Cody fixed this to compile with Linux which was having a problem with duplicate symbols of main(). The fix is through the compiler option -fcommon which will let it compile like it does with macOS.

    -

    Cody also added the try.sh script which makes use of the -make rule he added (to enjoy the theme of the entry, Back to the +

    Cody also added the try.sh script which makes +use of the make rule he added (to enjoy the theme of the entry, Back to the Future using this entry by -simply typing make back_to or make mullender) and then runs the famous -1984/mullender.c.

    +simply typing make back_to, make future or make mullender) and then runs +the famous 1984/mullender.c.

    Winning entry: 2015/endoh4

    Winning entry source code: prog.c

    @@ -4161,11 +4163,7 @@ resulted in standard input errors in piping to bc(1)) and added the

    Winning entry source code: prog.c

    Cody added the try.sh script which changes the -parameters to what we had in the judges’ remarks to make it easier (he only died -when he tried to mark a reminder complete on the other side of the screen at the -same time and he almost survived that, scoring at that point over 90 - but this -also involves good eye-hand coordination and playing games like this in the -past).

    +parameters to what we had in the judges’ remarks to make it easier.

    Winning entry: 2015/mills2

    Winning entry source code: prog.c

    @@ -4222,7 +4220,7 @@ Why was arg count and/or type changed in main() in some older entries? for more details.

    Cody also added explicit linking of libm (-lm) for systems that do not do this (Linux doesn’t seem to but macOS does).

    -

    Cody also added alternate code that should +

    Cody also added alternate code that should work for Windows, based on the author’s remarks. The same thing with the number of args to main() that was done in the original entry was done with this version as well.

    @@ -4240,7 +4238,7 @@ GitHub as far as downloading/displaying goes.

    Winning entry source code: prog.c

    Cody fixed the make test rule: it tried to run tac(1) (in systems -that have that command) rather than the entry itself which is called tac and +that have that command) rather than the entry itself which is called tac. Also the runtest script (which he renamed to runtest.sh for download/browser display purposes) was not executable.

    Cody also renamed manpage to manpage.sh for download/browser purposes and he @@ -4251,7 +4249,7 @@ did the same with tokenfix to tokenfix.sh as well as < file tac.1.

    Cody also renamed discrepancies to discrepancies.html and made it markdown format.

    -

    Cody added the tokcount.sh script which was +

    Cody also added the tokcount.sh script which was included in the remarks of the author but not an included file.

    Finally Cody added the try.sh script.

    @@ -4271,7 +4269,7 @@ input files one at a time and after each one is shown, it feeds it to the program, redirecting the output to the respective GIF file. It then will inform the user they should open it in a GIF viewer that can show animation in animated GIF files. It offers an example command for macOS like the judges did in their -remarks. The input files offered includes the prog.c as the author, +remarks. The input files offered includes the prog.c as the author, Yusuke, suggested that it too has a secret.

    Winning entry: 2018/endoh2

    @@ -4285,28 +4283,16 @@ three of the other scripts but each allows one to send an interrupt in the loops and still continue to the next script (if one does it when not in a loop it will exit the script). The make python and make python3 rules in the Makefile now run the respective scripts.

    -
    -

    Winning entry: 2018/ferguson

    -

    Winning entry source code: prog.c

    -
    -

    Cody, with irony well intended :-), fixed the test.sh -script for portability, shellcheck, making it executable -and other things, fixed dead links in the man page, updated the test-strings.txt -file and other things as well (like adding the try.sh -and try.alt.sh scripts).

    -

    Landon notes that Cody will probably never finish changes in his entries and -that’s probably true: let’s just say that for the IOCCC I’m (Cody) a weasel! :-) -(but isn’t that kind of the point ? :-) )

    Winning entry: 2018/hou

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added explicit linking of libm (-lm) for systems that do not do this (Linux doesn’t seem to but macOS does).

    Cody also added the try.sh script.

    Winning entry: 2018/mills

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody, based on the author’s remarks, made it possible to save state between runs of the program so that one can resume where they left off. It @@ -4314,11 +4300,11 @@ should be noted that there is a bug in the entry (irrespective of save state option) where running ./prog twice in a row involves having to hit (the second run) enter and then exit and then start the program again. Also if you do add a file you should run sync prior to exiting or else the file might not exist or -it might be corrupt. See 2018/mills in bugs.html for more +it might be corrupt. See 2018/mills in bugs.html for more details on the bug.

    Winning entry: 2018/poikola

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the missing docs rule to the Makefile that forms a PDF file. The rule requires the tool pdflatex.

    @@ -4329,12 +4315,12 @@ We added some additional notes on what might happen (it varies depending on configuration).

    Winning entry: 2018/vokes

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2018/yang

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script. This script will ask if the user wants to see some of the spoilers and only show them if they type @@ -4344,14 +4330,14 @@ if the user wants to see some of the spoilers and only show them if they type

    Winning entry: 2019/adamovsky

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script and the Unlambda file crash.unl which is in the judges’ remarks as to what can crash it - but it’s not a bug, it’s a feature.

    Winning entry: 2019/burton

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed the Makefile which had a bad character, a ‘%’ instead of a ‘$’ which caused a rule to fail.

    @@ -4361,7 +4347,7 @@ running make test.

    Cody also fixed the script check.sh (renamed from check) in case x is specified and is not executable and also made it satisfy ShellCheck. He also made ShellCheck not be a cow and/or (to use Bart Simpson’s -advice :-) ) ‘not have a cow’ about certain things (including one thing it was +advice :-) ) 'not have a cow about certain things (including one thing it was wrong about) in cow.sh (which was renamed from cow) mootoo.

    Cody also renamed the file on.one.liners to @@ -4369,12 +4355,12 @@ wrong about) in

    Winning entry: 2019/ciura

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed an invalid bytes error in tr in the scripts. This does not -mean that they will produce any output, though, as they provide expect all +mean that they will produce any output, though, as they expect all letters and that makes it harder to form perfect pangrams. On the subject of -German umlauts and Eszett (ß) see the entry in bugs.html.

    +German umlauts and Eszett (ß) see the 2019/ciura in bugs.html.

    Cody also fixed the Makefile so that the alternate code would be built when running make alt.

    Cody converted the PS file linked to by the author to a PDF, @@ -4383,21 +4369,21 @@ website.

    Cody also added the try.sh and try.alt.sh scripts.

    Finally he added the scripts for the different languages that use the alternate -version but with the caveat that only English appears to work. See the entry in +version but with the caveat that only English appears to work. Again, see 2019/ciura in bugs.html for more details.

    Winning entry: 2019/diels-grabsch1

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added the file Shakespeare.txt from 2019/mills (after running make) so that one can not worry about having the entire IOCCC winning entry tree (or at least the 2019 tree each -entry in a subdirectory). This is more important as there is discussion of -having tarballs for each individual entry as a convenience.

    +entry in a subdirectory). This was important as we now have tarballs for each +entry by themselves.

    Winning entry: 2019/diels-grabsch2

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script. This script will try and show the difference (i.e. the same output) between the @@ -4406,26 +4392,26 @@ tools can be found but otherwise it’ll just run the program itself, showing it own sha512sum value.

    Winning entry: 2019/dogon

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added explicit linking of libm (-lm) for systems that do not do this (Linux does not seem to but macOS does).

    He also fixed the Makefile so that it compiles with clang in Linux.

    He also added the try.sh script.

    He also made it possible to easily redefine the memory macro Z at compilation -time by modifying the Makefile.

    +time by improving the Makefile.

    He fixed a link in the spoiler source code. As a spoiler it felt more important that this was done (some typos were fixed as well but only some - the purpose was to only correct spelling and only some, not to change wording or anything else).

    Winning entry: 2019/duble

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody made the make fullscreen more portable by not relying on stty(1) and sed(1) but rather it just uses tput(1). He also made it so that if tput(1) is not found it tells the user an easier way to compile the full -screen size rather than having to modify the Makefile. This done with a script, +screen size rather than having to modify the Makefile. This is done with a script, fullscreen.sh, to simplify the Makefile and provide an easy way to tell the user how to compile it, assuming that the environmental variables LINES and COLUMNS are set. But even if they’re not set it explains @@ -4433,12 +4419,12 @@ how to easily compile the program to a specific size. Note that LINESCOLUMNS is not available to scripts so it can’t make use of them that way.

    Winning entry: 2019/endoh

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    As this is a backtrace quine having the optimiser enabled is not a good idea so Cody disabled it. For this same reason he also added the -g flag to the compilation as debugging symbols might just be useful for an entry that’s -supposed to segfault :-)

    +supposed to segfault (and which you’re supposed to inspect the core file) :-)

    Cody also added the simple ascii.c that (while it has an arg) prints out the character of the ASCII value (uses isascii(3) first). This combined with the try.sh script that he added allows one @@ -4446,23 +4432,22 @@ to easily reconstruct the source code through GDB by the fact it’s a backtrace quine.

    Winning entry: 2019/giles

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2019/karns

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    -

    Cody reported that with -O level > 0 this program segfaults (sometimes?). He’s -not sure why as it worked fine before on the same systems tested but -O0 -appears to fix the problem in both macOS and Linux. Perhaps this is the problem +

    Cody forced the Makefile to use -O0 as he discovered that an +optimiser level > 0 causes a segfault (sometimes?). (Perhaps this is the problem that the author reported where it sometimes segfaults but Cody did not try -debugging it since it works with -O0.

    +debugging it since it works with -O0.)

    He also added the script try.sh to showcase the entry a bit more easily.

    Winning entry: 2019/lynn

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added the example-1.txt and @@ -4471,17 +4456,18 @@ bit more easily.

    entry existing.

    Winning entry: 2019/mills

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2019/poikola

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the missing docs rule to the Makefile that forms a PDF file. The rule requires the tool pdflatex.

    -

    Cody also added the alternate code.

    +

    Cody also added the alternate code which +adds a newline after each number for parsing in additional ways.

    Cody also added the try.sh and try.alt.sh scripts.

    Cody also disabled the optimiser because the author stated that for clang the @@ -4492,7 +4478,7 @@ tested: gnu17 was not tested but gnu11 was so the stan gnu11.

    Winning entry: 2019/yang

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script which also involved slightly updating the sample_input.txt file @@ -4503,7 +4489,7 @@ shouldn’t) and adding the ioccc.txt file.

    Winning entry: 2020/burton

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed the script check_be.sh: it assumed that prog_be was in PATH which is unlikely so it was changed to @@ -4514,7 +4500,7 @@ showing nothing at all.

    Cody also added the try.sh script.

    Winning entry: 2020/carlini

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script which although at first glance might not appear to have a point, it actually does, namely showing @@ -4522,15 +4508,15 @@ how you can automate play and then reminding you to actually play for real, with a friend, whether that’s real or imagined.

    Winning entry: 2020/endoh2

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    -

    Cody copied the files from the spoiler.zip file (from his copy during +

    Cody copied the files from the spoiler.zip file (from his copy during the preview period) that was password protected with a password that was no -longer known.

    +longer known (but fortunately was already extracted).

    He also added the try.sh script.

    Winning entry: 2020/endoh3

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed the script run_clock.sh which gave a funny error when running it:

    @@ -4548,50 +4534,21 @@ first.

    point?) like macOS the use of make clock would not work due possibly to a timing issue so Yusuke changed it to compile clock.c file directly (this might have been fixed in the -Makefile later on but it doesn’t hurt to keep it in and this way it isn’t a -problem in any system). How Cody remembers this minor detail more than three -years ago is something that many people might wonder but he also once told us -that if someone moves something of his even a millimetre from where it was he -knows it so he might be called unusual (and he argues, with pride, eccentric :-) -) :-)

    +Makefile later on but it doesn’t hurt to keep it in and this way it isn’t a +problem in any system).

    Cody also added the run_clock.alt.sh script which is analogous to the run_clock.sh but for the alternate code provided by the author, Yusuke.

    Winning entry: 2020/ferguson1

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    -

    Cody, with intentional irony here :-), fixed formatting, links and typos in -various files.

    -

    He improved the termcaps.c test utility, bug fixed -play.sh, fixed other scripts and the Makefile, changed -some files to be markdown (and fixed problems that he caused in doing so :-) ), -fixed typos and formatting and he also fixed some issues that occurred when -files were renamed to .html from .markdown.

    -

    Most importantly he also added some corrections to the vital Double -layered chocolate fudge cake recipe :-)

    -
    -

    Winning entry: 2020/ferguson2

    -

    Winning entry source code: prog.c

    -
    -

    Cody, with intentional irony here :-), fixed formatting, links and typos in -various files.

    -

    He also added the try.sh script.

    -

    He also added the alternate code and the -try.alt.sh script.

    -

    The try scripts involved the addition of a text file, -key.txt which has the key of the file the judges -added in try.this.txt which itself was based on -something the author (Cody :-) ) submitted in the first place.

    -

    He also fixed some issues that occurred when files were renamed to .html from -.markdown.

    -

    Yes the irony here is as rich as the chocolate cake: the question is do you know -how rich it is? If not and you like chocolate I (that is Cody :-) ) highly -recommend you give it a go! :-) You’re welcome to ask me questions if you wish -and I encourage you to do so as the cake is quite picky!

    +

    Just for awareness, here: Cody made some corrections to the vital Double +layered chocolate fudge cake recipe :-) +Other fixes were made but as it’s his entry it’s not worth noting.

    Winning entry: 2020/giles

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script. This script does the conversion of pi.wav (showing the digits) and also converts the number for @@ -4604,12 +4561,12 @@ and tells them they will have to play the WAV files manually. Otherwise it’ll use the program to play the WAV files (and in one case stdout).

    Winning entry: 2020/kurdyukov1

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2020/kurdyukov2

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added -L/-I paths to the Makefile to let this compile more easily if @@ -4617,13 +4574,13 @@ the user has installed the appropriate library with MacPorts (with the default MacPorts prefix /opt/local).

    Cody also fixed the script makegif.sh in a variety -of ways: shellcheck(1), make sure the program is compiled first (allowing one to +of ways: shellcheck(1), make sure the program is compiled first (allowing one to specify which compiler to use with CC=foo ./makegif.sh ...), checking that convert(1) is found and that it worked properly (linking to the proper FAQ entry if not installed or it fails).

    Winning entry: 2020/kurdyukov3

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    He also added a link that has much more details about this phenomenon to the @@ -4631,7 +4588,7 @@ index.html. Naturally he’s one of the ones who can read text even if it’s ev more jumbled but we know of others too.

    Winning entry: 2020/kurdyukov4

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added from 2019/mills the text file @@ -4648,7 +4605,7 @@ and literary executor and heir to

    Winning entry: 2020/otterness

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the MIDI files cvikl.mid and entertainer.mid from the URLs we suggested so @@ -4657,14 +4614,14 @@ even if the domain or link goes dead.

    Cody also added the try.sh script.

    Winning entry: 2020/tsoj

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added alternate code that will feel more at home for vi users. One might still end up cursing (see the index.html file) but probably a lot less :-)

    Winning entry: 2020/yang

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added a make rule (make cppp) for the author’s provided C++ code @@ -4704,17 +4661,17 @@ in fact different names especially if one installs them from something like (though that usually does not mean it is worth a thank you note it might be worth noting in this case). Other times it was enabling or disabling the optimiser to fix an entry, sometimes causing other problems that also had to be -fixed, a good example being 1986/marshall (see the +fixed, a good example being 1986/marshall (see the compilers.html for the amusing details and all that had to be done to fix it).

    There was a ‘problem’ where ${MAKE} was $(MAKE): this doesn’t break anything but it is inconsistent with the rest of the ${foo} tools even if by tradition it is $(MAKE).

    Cody also added missing variables like BASH and PDFLATEX to the -var.mk file and removed another that was deemed problematic or +var.mk file and removed another that was deemed problematic or undesired. Other variable names had typos in them.

    In at least one case, like the top level Makefile, where raw -commands that are in var.mk were used, Cody updated them to use the +commands that are in var.mk were used, Cody updated them to use the variables.

    A comment was missing for the diff_alt_orig rule in all the Makefiles and this, along with many other fixes and changes to the Makefiles were made by diff --git a/thanks-for-help.md b/thanks-for-help.md index 23d2db993..412fc70a3 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -2216,7 +2216,7 @@ its own function which main() calls with the right parameters. Later Cody fixed it again to look much more like the original where only a single line is added, that of `main()`, which calls `O5()`. This was done through -`-include stdio.h` at the compiler (in the Makefile) and by removing the `O3` +`-include stdio.h` at the compiler (in the `Makefile`) and by removing the `O3` variable (an int) at the top of the file, instead making it a `char ** in `main()` (`O5()` had three args) but then passing in `0` to `O5()` for the third arg (as it was 0 at file scope already this is perfectly fine and it means @@ -3578,10 +3578,12 @@ Cody also added the [try.sh](%%REPO_URL%%/2001/schweikh/try.sh) script. ### Winning entry source code: [westley.c](%%REPO_URL%%/2001/westley//westley.c) -[Cody](#cody) added the script [try.sh](%%REPO_URL%%/2001/westley/try.sh) to automate a heap of commands -that we, the IOCCC judges, suggested, as well as some additional ones that he -thought would be fun. He also provided the sort and punch card versions, -described in the index.html, based on the author's remarks. +[Cody](#cody) added the script [try.sh](%%REPO_URL%%/2001/westley/try.sh) to +automate a heap of commands that we, the IOCCC judges, suggested, as well as +some additional ones that he thought would be fun. He also provided the sort +and punch card versions, described in the index.html, based on the author's +remarks, through `Makefile` rules that generate the files by default with `make +all`.

    @@ -4783,10 +4785,11 @@ the cursor will be visible. Using `atexit(3)` will not work if the program is killed, signals are ugly and these would be messing with the entry too much so these were not done. -Cody also added the alt version that lets one control how fast the painting is -done, based on the author's recommendations, except that Cody made it -configurable at compile time. The `Makefile` was modified in such a way as to make -it very easy to redefine it at compile time. +Cody also added the [alternate version](%%REPO_URL%%/2013/birken/birken.alt.c) +that lets one control how fast the painting is done, based on the author's +recommendations, except that Cody made it configurable at compile time. The +`Makefile` was modified in such a way as to make it very easy to redefine it at +compile time. Cody also added the [try.sh](%%REPO_URL%%/2013/birken/try.sh) script for the entry and the [try.alt.sh](%%REPO_URL%%/2013/birken/try.alt.sh) script for the alternate code. @@ -4797,8 +4800,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/birken/try.sh) script for the ent ### Winning entry source code: [cable1.c](%%REPO_URL%%/2013/cable1//cable1.c)
    -[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/cable1/try.sh) script which also has an -joke Easter egg in it based on the judges' remarks. +[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/cable1/try.sh) script.
    @@ -4815,7 +4817,7 @@ joke Easter egg in it based on the judges' remarks.
    [Cody](#cody) fixed this to compile with modern systems. The problems were that -`localtime()` is used differently and `time.h` being included (with +`localtime()` is used differently and with `time.h` being included (with [SDL2](https://www.libsdl.org) in macOS - but see below) there was a conflicting function type. This appeared to be a problem with macOS and only when SDL2 was included (but which as noted next it cannot be). @@ -4823,7 +4825,8 @@ included (but which as noted next it cannot be). The other problem is that this entry uses SDL functions that were removed from SDL2 so the `Makefile` has to use `sdl-config` and not `sdl2-config`. This meant that at one point to be strictly technical, the removal of -`localtime()` wasn't necessary but this change was left in place anyway. +`localtime()` wasn't necessary but this change was left in place anyway (but see +below again). Later on in an updated macOS (problem discovered in macOS Sonoma) the entry failed to compile again also due to `localtime()` so he removed the prototype @@ -4842,12 +4845,11 @@ the source code defining `KB` to what the author suggested, `(kb=H(8),kbhit())&&(r[1190]=getch(),H(7))`. It need hardly be mentioned that this will not link in Unix systems (including macOS). -`Clang` required a `-Wno-` option as well. Finally Cody provided the [bios.asm](%%REPO_URL%%/2013/cable3/bios.asm) that the author referred to, found at the [GitHub repo for the -entry](https://github.com/adriancable/8086tiny/tree/master), and the 'ready-made -40MB hard disk image containing a whole bunch of software' in `hd.img` that the +entry](https://github.com/adriancable/8086tiny/tree/master), and the `ready-made +40MB hard disk image containing a whole bunch of software` in `hd.img` that the author linked to at `https://bitly.com/1bU8URK`. @@ -4896,18 +4898,14 @@ commands to try that he suggested to see how different lengths look. [Ruby](https://www.ruby-lang.org) and [ImageMagick](https://imagemagick.org) are installed before trying to run the ruby script. To be more technically correct: it checks that the `convert` tool of ImageMagick is available (via `type -P`) -because `convert` is part of the ImageMagick suite. +because `convert` is part of the ImageMagick suite. The rule will report the +tools not installed and where to find them, if they are not installed, and after +checking these requirements it will exit if either is not found. -This is useful because the Ruby script tries to run (via `IO.popen()`) the +The checks are useful because the Ruby script tries to run (via `IO.popen()`) the `convert` tool but without ImageMagick being installed, if one is unaware of where it comes from it will appear to be an error in the Ruby script (it might -also appear to be an issue with the script even if you know of `convert`: it was -another day that Cody remembered it and why it wasn't installed on his MacBook -Pro even though in the past it had been and is indeed now). - -The rule will report the tools not installed and where to find them, if they are -not installed, and after checking these requirements it will exit if either is -not found. +also appear to be an issue with the script even if you know of `convert`). The entry can still be enjoyed if you do not have these tools, however. @@ -4980,7 +4978,7 @@ rule in the `Makefile` was originally removed as part of the above but it was restored so that one can see what the author is talking about. Further, after the file `2013/hou/doc/example.markdown` was moved to -[2013/hou/doc/example.html](2013/hou/doc/example.html) to match the rest of the repo +[2013/hou/doc/example.md](%%REPO_URL%%/2013/hou/doc/example.md) to match the rest of the repo this broke `make` which Cody also fixed. Cody also added the [try.sh](%%REPO_URL%%/2013/hou/try.sh) script. @@ -4993,8 +4991,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/hou/try.sh) script. [Cody](#cody) fixed this so that the server would not refuse the connection after the first call to `close(2)`. The problem was that because the backlog to -`listen(2)` was 1 once the connection closed the server was essentially 'dead'. -The backlog was changed to 10 and this solves the problem. It is not known if +`listen(2)` was `1`, once the connection closed the server was essentially 'dead'. +The backlog was changed to `10` and this solves the problem. It is not known if this was specific to macOS but it was not specific to a browser as Safari and Firefox both had the problem. @@ -5037,7 +5035,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/morgan1/try.sh) script. [Cody](#cody) provided the [alternate -code](2014/birken/index.html#alternate-code) that lets one redefine the port to +code](%%REPO_URL%%/2014/birken/prog.alt.c) that lets one redefine the port to bind to in case there is a firewall issue or there is some other reason to not have the default port. Remember that ports < 1024 are privileged. It also lets you redefine the timing constant `STARDATE` (see the author's remarks for more @@ -5051,7 +5049,7 @@ redefine the port and timing constant. [Cody](#cody) added [alternate code](2014/deak/index.html#alternate-code) that lets -one (via the Makefile) reconfigure the coordinates but instead of being a +one (via the `Makefile`) reconfigure the coordinates but instead of being a modified version of the entry it is the version the author provided which would be what the program would look like if, as the author put it: @@ -5060,7 +5058,7 @@ application source code is intentionally kept to a bare minimum. .. was not true. -This alt version did not originally compile because a value was left off the +This alternate version did not originally compile because a value was left off the `return` statement (this might have been fixed in the index.html file too) so that was fixed and it also has `#include ` for `putchar(3)`. The `#ifndef..#define..#endif` was not part of the original alternate code, of course. @@ -5110,8 +5108,8 @@ it is a file with spoilers (and too close to index.html?). ### Winning entry source code: [prog.c](%%REPO_URL%%/2014/maffiodo1//prog.c) -[Cody](#cody) fixed the build for this entry: it does not require -[SDL2](https://www.libsdl.org) but SDL1 so there were linking errors. +[Cody](#cody) fixed the `Makefile` for this entry: it does not require +`SDL2` but `SDL1` so there were linking errors. Cody also added the [mario.sh](%%REPO_URL%%/2014/maffiodo1/mario.sh) and [giana.sh](%%REPO_URL%%/2014/maffiodo1/giana.sh) scripts which play, respectively, [Super @@ -5127,7 +5125,7 @@ which let one configure the width and height of the game. [Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/maffiodo2/try.sh) script. -He also added the [alternate code](2014/maffiodo2/index.html#alternate-code) +Cody also added the [alternate code](%%REPO_URL%%/2014/maffiodo2/prog.alt.c) provided by the author. @@ -5146,12 +5144,12 @@ provided by the author. [Cody](#cody) fixed the code so that the game can play automatically like it once did. The problem is that it expects a certain file name which was -`sinon.c`. The code now refers to `prog.c`. +`sinon.c`. The code now refers to `prog.c` (it cannot as easily use `__FILE__`). Cody also fixed the scripts [glock.sh](%%REPO_URL%%/2014/sinon/glock.sh) and -[hecate.sh](%%REPO_URL%%/2014/sinon/hecate.sh) which did not work after running either once -as they compile `run.c` and then do `./run | tee run.c` which overwrites it with -output that is not code. +[hecate.sh](%%REPO_URL%%/2014/sinon/hecate.sh) which did not work after running +either of them once as they compile `run.c` and then do `./run | tee run.c` +which overwrites it with output that is not code. Cody also added the [try.sh](%%REPO_URL%%/2014/sinon/try.sh) script that will first (if perl is installed) run the demo mode and then after that it will run the above noted @@ -5202,9 +5200,9 @@ that would break it we do not know. [Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/wiedijk/try.sh) script which is based on the command to try in the 'try' section but improved so one can more easily -specify what ident tool they want to use and also change which sed to use, +specify what `indent` tool they want to use and also change which `sed(1)` to use, should they want to. It also checks that both of these two tools exist and are -executable and it pipes it through less as it's longer than a page worth of +executable and it pipes it through `less(1)` as it's longer than a page worth of output. @@ -5265,9 +5263,9 @@ add a `./` to the commands in the man page/index.html. [Cody](#cody) improved the `Makefile` so that one can easily change the dimensions at compilation time via `make(1)`. -Cody also added alternate code that is based on the author's remarks, suggesting that -one change the value of `q` to a different number, in order to see a bug that -they avoided. +Cody also added [alternate code](%%REPO_URL%%/2015/dogon/prog.alt.c) that is +based on the author's remarks, suggesting that one change the value of `q` to a +different number, in order to see a bug that they avoided.
    @@ -5295,11 +5293,11 @@ they avoided. symbols of `main()`. The fix is through the compiler option `-fcommon` which will let it compile like it does with macOS. -Cody also added the [try.sh](%%REPO_URL%%/2015/endoh3/try.sh) script which makes use of the -make rule he added (to enjoy the theme of the entry, [Back to the +Cody also added the [try.sh](%%REPO_URL%%/2015/endoh3/try.sh) script which makes +use of the make rule he added (to enjoy the theme of the entry, [Back to the Future](https://en.wikipedia.org/wiki/Back_to_the_Future) using this entry by -simply typing `make back_to` or `make mullender`) and then runs the famous -[1984/mullender.c](%%REPO_URL%%/1984/mullender/mullender.c). +simply typing `make back_to`, `make future` or `make mullender`) and then runs +the famous [1984/mullender.c](%%REPO_URL%%/1984/mullender/mullender.c).
    @@ -5344,11 +5342,7 @@ resulted in standard input errors in piping to `bc(1)`) and added the
    [Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/mills1/try.sh) script which changes the -parameters to what we had in the judges' remarks to make it easier (he only died -when he tried to mark a reminder complete on the other side of the screen at the -same time and he almost survived that, scoring at that point over 90 - but this -also involves good eye-hand coordination and playing games like this in the -past). +parameters to what we had in the judges' remarks to make it easier.
    @@ -5436,7 +5430,7 @@ entries?](faq.html#faq4_6) for more details. Cody also added explicit linking of libm (`-lm`) for systems that do not do this (Linux doesn't seem to but macOS does). -Cody also added [alternate code](2018/bellard/index.html#alternate-code) that should +Cody also added [alternate code](%%REPO_URL%%/2018/bellard/prog.alt.c) that should work for Windows, based on the author's remarks. The same thing with the number of args to `main()` that was done in the original entry was done with this version as well. @@ -5461,7 +5455,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2018/burton1/try.sh) script which also
    [Cody](#cody) fixed the `make test` rule: it tried to run `tac(1)` (in systems -that have that command) rather than the entry itself which is called `tac` and +that have that command) rather than the entry itself which is called `tac`. Also the `runtest` script (which he renamed to `runtest.sh` for download/browser display purposes) was not executable. @@ -5476,7 +5470,7 @@ file `tac.1`. Cody also renamed `discrepancies` to `discrepancies.html` and made it markdown format. -Cody added the [tokcount.sh](%%REPO_URL%%/2018/burton2/tokcount.sh) script which was +Cody also added the [tokcount.sh](%%REPO_URL%%/2018/burton2/tokcount.sh) script which was included in the remarks of the author but not an included file. Finally Cody added the [try.sh](%%REPO_URL%%/2018/burton2/try.sh) script. @@ -5503,7 +5497,7 @@ input files one at a time and after each one is shown, it feeds it to the program, redirecting the output to the respective GIF file. It then will inform the user they should open it in a GIF viewer that can show animation in animated GIF files. It offers an example command for macOS like the judges did in their -remarks. The input files offered includes the prog.c as the author, +remarks. The input files offered includes the `prog.c` as the author, [Yusuke](#yusuke), suggested that it too has a secret. @@ -5522,22 +5516,6 @@ exit the script). The `make python` and `make python3` rules in the `Makefile` n run the respective scripts. -
    -## Winning entry: [2018/ferguson](2018/ferguson/index.html) -### Winning entry source code: [prog.c](%%REPO_URL%%/2018/ferguson//prog.c) -
    - -[Cody](#cody), with irony well intended :-), fixed the [test.sh -script](%%REPO_URL%%/2018/ferguson/test.sh) for portability, shellcheck, making it executable -and other things, fixed dead links in the man page, updated the test-strings.txt -file and other things as well (like adding the [try.sh](%%REPO_URL%%/2018/ferguson/try.sh) -and [try.alt.sh](%%REPO_URL%%/2018/ferguson/try.alt.sh) scripts). - -Landon notes that Cody will probably never finish changes in his entries and -that's probably true: let's just say that for the IOCCC I'm (Cody) a weasel! :-) -(but isn't that kind of the point ? :-) ) - -
    ## Winning entry: [2018/hou](2018/hou/index.html) ### Winning entry source code: [prog.c](%%REPO_URL%%/2018/hou//prog.c) @@ -5560,7 +5538,7 @@ should be noted that there is a bug in the entry (irrespective of save state option) where running `./prog` twice in a row involves having to hit (the second run) enter and then exit and then start the program again. Also if you do add a file you should run `sync` prior to exiting or else the file might not exist or -it might be corrupt. See [2018/mills in bugs.html](bugs.html#2018-mills) for more +it might be corrupt. See [2018/mills in bugs.html](bugs.html#2018_mills) for more details on the bug. @@ -5629,7 +5607,7 @@ running `make test`. Cody also fixed the script [check.sh](%%REPO_URL%%/2019/burton/check.sh) (renamed from `check`) in case `x` is specified and is not executable and also made it satisfy ShellCheck. He also made ShellCheck not be a cow and/or (to use Bart Simpson's -advice :-) ) 'not have a cow' about certain things (including one thing it was +advice :-) ) `'not have a cow` about certain things (including one thing it was wrong about) in [cow.sh](%%REPO_URL%%/2019/burton/cow.sh) (which was renamed from `cow`) mootoo. @@ -5644,9 +5622,9 @@ browsers/GitHub.
    [Cody](#cody) fixed an invalid bytes error in `tr` in the scripts. This does not -mean that they will produce any output, though, as they provide expect all +mean that they will produce any output, though, as they expect all letters and that makes it harder to form perfect pangrams. On the subject of -German umlauts and Eszett (ß) see the [entry in bugs.html](bugs.html#2019-ciura). +German umlauts and Eszett (ß) see the [2019/ciura in bugs.html](bugs.html#2019_ciura). Cody also fixed the `Makefile` so that the alternate code would be built when running `make alt`. @@ -5659,8 +5637,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2019/ciura/try.sh) and [try.alt.sh](%%REPO_URL%%/2019/ciura/try.alt.sh) scripts. Finally he added the scripts for the different languages that use the alternate -version but with the caveat that only English appears to work. See the [entry in -bugs.html](bugs.html#2019-ciura) for more details. +version but with the caveat that only English appears to work. Again, see [2019/ciura in +bugs.html](bugs.html#2019_ciura) for more details. @@ -5674,8 +5652,8 @@ bugs.html](bugs.html#2019-ciura) for more details. Cody also added the file [Shakespeare.txt](2019/diels-grabsch1/Shakespeare.txt) from [2019/mills](2019/mills/index.html) (after running `make`) so that one can not worry about having the entire IOCCC winning entry tree (or at least the 2019 tree each -entry in a subdirectory). This is more important as there is discussion of -having tarballs for each individual entry as a convenience. +entry in a subdirectory). This was important as we now have tarballs for each +entry by themselves.
    @@ -5703,7 +5681,7 @@ He also fixed the `Makefile` so that it compiles with `clang` in Linux. He also added the [try.sh](%%REPO_URL%%/2019/dogon/try.sh) script. He also made it possible to easily redefine the memory macro `Z` at compilation -time by modifying the Makefile. +time by improving the `Makefile`. He fixed a link in the spoiler source code. As a spoiler it felt more important that this was done (some typos were fixed as well but only some - the purpose @@ -5719,7 +5697,7 @@ else). [Cody](#cody) made the `make fullscreen` more portable by not relying on `stty(1)` and `sed(1)` but rather it just uses `tput(1)`. He also made it so that if `tput(1)` is not found it tells the user an easier way to compile the full -screen size rather than having to modify the Makefile. This done with a script, +screen size rather than having to modify the `Makefile`. This is done with a script, [fullscreen.sh](%%REPO_URL%%/2019/duble/fullscreen.sh), to simplify the `Makefile` and provide an easy way to tell the user how to compile it, assuming that the environmental variables `LINES` and `COLUMNS` are set. But even if they're not set it explains @@ -5735,7 +5713,7 @@ how to easily compile the program to a specific size. Note that `LINES` and As this is a backtrace quine having the optimiser enabled is not a good idea so [Cody](#cody) disabled it. For this same reason he also added the `-g` flag to the compilation as debugging symbols might just be useful for an entry that's -supposed to segfault :-) +supposed to segfault (and which you're supposed to inspect the core file) :-) Cody also added the simple [ascii.c](%%REPO_URL%%/2019/endoh/ascii.c) that (while it has an arg) prints out the character of the ASCII value (uses `isascii(3)` first). This @@ -5757,11 +5735,10 @@ quine. ### Winning entry source code: [prog.c](%%REPO_URL%%/2019/karns//prog.c)
    -[Cody](#cody) reported that with `-O` level > 0 this program segfaults (sometimes?). He's -not sure why as it worked fine before on the same systems tested but `-O0` -appears to fix the problem in both macOS and Linux. Perhaps this is the problem +[Cody](#cody) forced the `Makefile` to use `-O0` as he discovered that an +optimiser level > 0 causes a segfault (sometimes?). (Perhaps this is the problem that the author reported where it sometimes segfaults but Cody did not try -debugging it since it works with `-O0`. +debugging it since it works with `-O0`.) He also added the script [try.sh](%%REPO_URL%%/2019/karns/try.sh) to showcase the entry a bit more easily. @@ -5797,7 +5774,8 @@ entry existing. file. The rule requires the tool [pdflatex](https://tug.org/applications/pdftex/index.html). -Cody also added the [alternate code](2019/poikola/index.html#alternate-code). +Cody also added the [alternate code](%%REPO_URL%%/2019/poikola/prog.alt.c) which +adds a newline after each number for parsing in additional ways. Cody also added the [try.sh](%%REPO_URL%%/2019/poikola/try.sh) and [try.alt.sh](%%REPO_URL%%/2019/poikola/try.alt.sh) scripts. @@ -5858,9 +5836,9 @@ a friend, whether that's real or imagined. ### Winning entry source code: [prog.c](%%REPO_URL%%/2020/endoh2//prog.c)
    -[Cody](#cody) copied the files from the spoiler.zip file (from his copy during +[Cody](#cody) copied the files from the `spoiler.zip` file (from his copy during the preview period) that was password protected with a password that was no -longer known. +longer known (but fortunately was already extracted). He also added the [try.sh](%%REPO_URL%%/2020/endoh2/try.sh) script. @@ -5897,12 +5875,8 @@ Cody also reported (during the preview period of 2020) for some systems (at some point?) like macOS the use of `make clock` would not work due possibly to a timing issue so [Yusuke](#yusuke) changed it to compile `clock.c` file directly (this might have been fixed in the -Makefile later on but it doesn't hurt to keep it in and this way it isn't a -problem in any system). How Cody remembers this minor detail more than three -years ago is something that many people might wonder but he also once told us -that if someone moves something of his even a millimetre from where it was he -knows it so he might be called unusual (and he argues, with pride, eccentric :-) -) :-) +`Makefile` later on but it doesn't hurt to keep it in and this way it isn't a +problem in any system). Cody also added the [run_clock.alt.sh](%%REPO_URL%%/2020/endoh3/run_clock.alt.sh) script which is analogous to the [run_clock.sh](%%REPO_URL%%/2020/endoh3/run_clock.sh) but for the @@ -5914,45 +5888,9 @@ alternate code provided by the author, Yusuke. ### Winning entry source code: [prog.c](%%REPO_URL%%/2020/ferguson1//prog.c) -[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in -various files. - -He improved the [termcaps.c test utility](%%REPO_URL%%/2020/ferguson1/termcaps.c), bug fixed -[play.sh](%%REPO_URL%%/2020/ferguson1/play.sh), fixed other scripts and the Makefile, changed -some files to be markdown (and fixed problems that he caused in doing so :-) ), -fixed typos and formatting and he also fixed some issues that occurred when -files were renamed to `.html` from `.markdown`. - -Most importantly he also added some corrections to the vital [Double +Just for awareness, here: [Cody](#cody) made some corrections to the vital [Double layered chocolate fudge cake recipe](2020/ferguson1/chocolate-cake.html) :-) - - - -
    -## Winning entry: [2020/ferguson2](2020/ferguson2/index.html) -### Winning entry source code: [prog.c](%%REPO_URL%%/2020/ferguson2//prog.c) -
    - -[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in -various files. - -He also added the [try.sh](%%REPO_URL%%/2020/ferguson2/try.sh) script. - -He also added the [alternate code](2020/ferguson2/index.html#alternate-code) and the -[try.alt.sh](%%REPO_URL%%/2020/ferguson2/try.alt.sh) script. - -The try scripts involved the addition of a text file, -[key.txt](2020/ferguson2/key.txt) which has the key of the file the judges -added in [try.this.txt](2020/ferguson2/try.this.txt) which itself was based on -something the author (Cody :-) ) submitted in the first place. - -He also fixed some issues that occurred when files were renamed to `.html` from -`.markdown`. - -Yes the irony here is as rich as the chocolate cake: the question is do you know -how rich it is? If not and you like chocolate I (that is Cody :-) ) highly -recommend you give it a go! :-) You're welcome to ask me questions if you wish -and I encourage you to do so as the cake is quite picky! +Other fixes were made but as it's his entry it's not worth noting.
    @@ -5993,7 +5931,7 @@ the user has installed the appropriate library with `/opt/local`). Cody also fixed the script [makegif.sh](%%REPO_URL%%/2020/kurdyukov2/makegif.sh) in a variety -of ways: shellcheck(1), make sure the program is compiled first (allowing one to +of ways: `shellcheck(1)`, make sure the program is compiled first (allowing one to specify which compiler to use with `CC=foo ./makegif.sh ...`), checking that `convert(1)` is found and that it worked properly (linking to the proper FAQ entry if not installed or it fails). @@ -6113,7 +6051,7 @@ There were some other fixes as well including mass typo fixes in the Makefiles (though that usually does not mean it is worth a thank you note it might be worth noting in this case). Other times it was enabling or disabling the optimiser to fix an entry, sometimes causing other problems that also had to be -fixed, a good example being [1986/marshall](#1986marshall-readmemd) (see the +fixed, a good example being [1986/marshall](#1986_marshall) (see the [compilers.html](1986/marshall/compilers.html) for the amusing details and all that had to be done to fix it). @@ -6122,11 +6060,11 @@ but it is inconsistent with the rest of the `${foo}` tools even if by tradition it is `$(MAKE)`. Cody also added missing variables like `BASH` and `PDFLATEX` to the -[var.mk](var.mk) file and removed another that was deemed problematic or +[var.mk](%%REPO_URL%%/var.mk) file and removed another that was deemed problematic or undesired. Other variable names had typos in them. In at least one case, like the [top level Makefile](%%REPO_URL%%/Makefile), where raw -commands that are in [var.mk](var.mk) were used, Cody updated them to use the +commands that are in [var.mk](%%REPO_URL%%/var.mk) were used, Cody updated them to use the variables. A comment was missing for the `diff_alt_orig` rule in all the Makefiles and