build index.html for all winners

Updated manifest as per recent file changes.

Updated winner `.winner.json` to reflect the manifest changes.

Added [bin/all_run.sh](bin/all_run.sh) tool to run a command over
all winning entries.

These tools had slight improvements in the help usage message:

* bin/gen-author.sh VERSION="1.3.1 2024-01-16"
* bin/gen-inventory.sh VERSION="1.0.1 2024-01-16"
* bin/pandoc_wrapper.sh VERSION="1.3.1 2024-01-16"
* bin/subst.default.sh VERSION="1.1.1 2024-01-16"
* bin/subst.winner-index.sh VERSION="1.1.1 2024-01-16"

The `bin/readme2index.sh` tool was improved so that
if the `index.html` file exists and the tool forms
the exact same content, then the file `index.html`
file is NOT touched.

* bin/readme2index.sh VERSION="1.1 2024-01-16"

We used the following command to generate `index.html` files
for all winning entries:

```sh
bin/all_run.sh -v 3 bin/readme2index.sh
```

NOTE: We have not (yet) built HTML files above the winner directory
level (e.g., no year level nor top level HTML), nor have be built
non-index HTML files for winners.

NOTE: By default we are running `pandoc(1)` with:

```
--fail-if-warnings=true
```

This means that any problems with markdown to HTML
generates an error.  This is done to be sure that
the HTML conversion is clean.

We had to fix the following `README.md` files:

* `2000/rince/README.md`

The reference [^2] was never used.  We made a guess that [^2] applies
to the same spot as [^1].  Perhaps there is a better spot where
[^2] applies?

NOTE: For every reference, there MUST be some place where that
reference is used.

* 2012/vik/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

* 2018/burton1/README.md

The reference [2] was duplicated.  We changed the
second [2] to [3].

NOTE: Every reference needs to have a unique number.

* 2020/carlini/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

We also found 2 errors in the `author/author_handle.json` file set:

* author/Anonymous_2001.json

The `author/Anonymous_2001.json` file was missing.

* author/Jari_Arkko.json

The winner ID for `1989_jar.1` had a typo.
This commit is contained in:
Landon Curt Noll committed 2024-01-17 00:32:39 -08:00
1 parent 893cd915b6
commit c1466f5165
350 files changed
+95242 -4217

No files matched your search

+347 -13
View File
@@ -1,4 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- START: two lines up starts content from: inc/top.default.html -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
@@ -6,27 +8,359 @@
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- -->
<!-- file: 1998/schweikh2/index.html created by: fake.gen_index.sh version: 1.0.5 2023-10-31 -->
<html lang="en">
<!-- END: this line ends content from: inc/top.default.html -->
<!-- -->
<!-- This file was formed by the tool: bin/readme2index.sh version: 1.1 2024-01-16 -->
<!-- -->
<!-- START: this line starts content from: inc/head.default.html -->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1998 schweikh2</title>
<meta name="description" content="IOCCC year: 1998 IOCCC winner: schweikh2 winner index page">
<meta name="keywords" content="IOCCC,1998,schweikh2,winner index page">
<link rel="stylesheet" href="/temp-test-ioccc/ioccc.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>1998/schweikh2</title>
<meta name="description" content="1998 IOCCC winner schweikh2">
<meta name="keywords" content="IOCCC, 1998, IOCCC 1998, IOCCC winner, schweikh2">
</head>
<!-- END: this line ends content from: inc/head.default.html -->
<!-- START: this line starts content from: inc/body.default.html -->
<body>
<h1>1998 schweikh2</h1>
<!-- END: this line ends content from: inc/body.default.html -->
<!-- START: this line starts content from: inc/header.default.html -->
<p>XXX - fake content until readme2index is working - XXX</p>
<div class="header">
<img src="/temp-test-ioccc/png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
<h1>The International Obfuscated C Code Contest</h1>
<h2>1998/schweikh2</h2>
</div>
<hr style="width:50%;text-align:left;margin-left:0">
<!-- END: this line ends content from: inc/header.default.html -->
<!-- START: this line starts content from: inc/topnav.mid.html -->
<!-- Start Nu Html Checker -->
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1998%2Fschweikh2%2Findex.html">Nu Html check https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh2/index.html</a></p>
<!-- End Nu Html Checker -->
<div class="topnav">
<a class="Left" href="../schweikh1/index.html">&larr; schweikh1</a>
<a class="Left" href="../index.html">&uarr; 1998 &uarr;</a>
<a class="Left" href="../schweikh3/index.html">schweikh3 &rarr;</a>
<a class="Right" href="#inventory">Inventory</a>
</div>
<!-- END: this line ends content from: inc/topnav.mid.html -->
<!-- START: this line starts content from: inc/begin-row.default.html -->
<div class="row">
<!-- END: this line ends content from: inc/begin-row.default.html -->
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
<div class="leftcolumn">
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/sidenav.default.html -->
<div class="sidenav">
<a href="#content">Jump to contents</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/index.html">IOCCC Home</a>
<a href="/temp-test-ioccc/years.html">Winning Entries</a>
<a href="/temp-test-ioccc/winners.html">People who have won</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/news.html">IOCCC News</a>
<a href="/temp-test-ioccc/faq.html#submit">How to enter the IOCCC</a>
<a href="/temp-test-ioccc/faq.html">FAQ</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/bugs.html">Bugs &amp; (mis)features</a>
<a href="/temp-test-ioccc/faq.html#fix_a_winner">Fixing IOCCC winners</a>
<a href="/temp-test-ioccc/faq.html#fix_web_site">Fixing the web site</a>
<a href="/temp-test-ioccc/faq.html#fix_author">Fixing winner info</a>
<a href="/temp-test-ioccc/thanks-for-help.html">Thanks for the help</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/judges.html">The IOCCC Judges</a>
<a href="/temp-test-ioccc/contact.html">Contacting the IOCCC</a>
</div>
<hr>
<div class="sidenav">
<a href="#top">Jump to top</a>
</div>
<!-- END: this line ends content from: inc/sidenav.default.html -->
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
<div class="rightcolumn">
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/before-content.default.html -->
<a name="content"></a>
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content generated by: bin/gen-author.sh -->
<p><a name="author"><strong>Author:</strong></a> <br><br>Name: <a
href="/temp-test-ioccc/winners.html#Jens_Schweikhardt">Jens
Schweikhardt</a><br> Location: <a
href="/temp-test-ioccc/location.html#DE">DE</a></p>
<!-- END: next line ends content generated by: bin/gen-author.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> all</span></code></pre></div>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./yarng</span></span></code></pre></div>
<p>or</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./yarng</span> integer_number</span></code></pre></div>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./yarng</span> 5</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./yarng</span></span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a><span class="co"># watch what it does</span></span></code></pre></div>
<p>What is the difference there?</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Run the program with a small argument, like 5 or 10, several times.
Are the results different? Why?</p>
<h3 id="historical-remarks">Historical remarks:</h3>
<p>At the time of judging, some non-gcc compilers that were not fully
ANSI standard did not compile this entry correctly. Also at that time,
some gcc and egcs implementations ran into a problem when building the
entry. Doing:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> schweikh2</span></code></pre></div>
<p>often produced an error of the form:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="at">-ansi</span> schweikh2.alt.c <span class="at">-o</span> schweikh2.alt</span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a><span class="ex">as:</span> Error: cca00NzV.s, line 58: Missing <span class="st">&quot; at end of string</span></span>
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a><span class="st"> &quot;</span></span>
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a><span class="ex">as:</span> Error: cca00NzV.s, line 58: malformed statement</span>
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a><span class="ex">***</span> Error code 1 <span class="er">(</span><span class="ex">bu21</span><span class="kw">)</span></span></code></pre></div>
<p>because the line:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#line 10 ONE(O(1,1,2,6,0,6))</span></span></code></pre></div>
<p>turned into the line:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="pp"># 9 &quot;01\012&quot;</span></span></code></pre></div>
<p>(note, though, how that line is on line 11) which caused gcc to give
to the assembler the following two lines:</p>
<div class="sourceCode" id="cb9"><pre
class="sourceCode asm"><code class="sourceCode fasm"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a>.stabs <span class="st">&quot;schweikh2.c</span></span>
<span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a>&quot;,132,0,0,Ltext1</span></code></pre></div>
<p>and the lone <code>"</code> after the <code>#.file</code> line
resulted in an assembly syntax error.</p>
<p>In some cases one had to compile using <code>gcc -g</code>:</p>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> schweikh2 CFLAGS=-g</span></code></pre></div>
<p>to trigger this error.</p>
<p>With the proper text beyond the <code>\012</code>, it was even
possible to have all kinds of fun adding inline assembly via
<code>#line</code> directives. :-)</p>
<h4 id="for-extra-fun-and-credit">For extra fun and credit:</h4>
<p>If your compiler had this bug, you could transform the line in the C
program to inject assembly instructions in such a way that the program
would compile.</p>
<p>If you were able to do that, you could have tried adding assembly
instructions so that it will compile, execute and do something
interesting (or uninteresting, for that matter :-) ).</p>
<p>If you succeeded in doing that (especially on FreeBSD, Linux or
SunOS/Solaris), you could have emailed the author for a free pat on the
back (and maybe you still can :-) ).</p>
<p>Because of this bug, the code was changed to be instead:</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#line 10 &quot;01\015&quot;</span></span></code></pre></div>
<p>However in 2023 it was observed that <em>it is gcc</em> (at least
some versions?) that has a problem with the compilation of the
<em>modified</em> program, giving an internal compiler error:</p>
<pre><code>:10:16: warning: type defaults to &#39;int&#39; in declaration of &#39;zero&#39; [-Wimplicit-int]
: In function &#39;main&#39;:
:12:1: warning: missing terminating &quot; character
:12:19: internal compiler error: invalid built-in macro &quot;__FILE__&quot;</code></pre>
<p>so the line:</p>
<div class="sourceCode" id="cb13"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#line 10 &quot;01\015&quot;</span></span></code></pre></div>
<p>was changed to:</p>
<div class="sourceCode" id="cb14"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#line 10 ONE(O(1,1,2,6,0,6))</span></span></code></pre></div>
<p>and now it works with both clang and gcc.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="what-this-program-does">What this program does</h3>
<p>My entry is a <code>yarng</code>, which stands for, you guessed it,
yet another random number generator, and is pronounced ‘yawn’ due to its
incredible speed. Seriously, it exploits the randomness of quantum
mechanical events that build up the hardware as well as some other
non-deterministic factors. Here’s how it works:</p>
<ol type="1">
<li>an alarm is scheduled to be delivered in a second</li>
<li>an infinite loop is entered that just increments a counter</li>
<li>on delivery of the alarm signal, the counter’s LSB is printed.</li>
<li>while some other counter is not zero, go to step (1)</li>
<li>exit</li>
</ol>
<p>The <code>yarng</code> therefore produces output at a rate of 1 baud.
The number of bits may be specified by an argument and defaults either
to <code>UINT_MAX</code> (least likely) or <code>UINT_MAX+1</code> (most
likely). Extra credit: why the different values? How long would you need
for an empirical test?</p>
<p>For example:</p>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./yarng 32</span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a><span class="ex">10111001010101110110010101001111</span></span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./yarng 5</span>
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a><span class="ex">10011</span></span></code></pre></div>
<h3 id="why-i-think-this-is-obfuscated">Why I think this is
obfuscated</h3>
<ul>
<li><p>Ever seen a ‘do for … while’ loop?</p></li>
<li><p>I avoided <code>int</code> like the plague. Instead I used
storage class specifiers (<code>register</code>, <code>auto</code>) to
get implicit <code>int</code>. The Standard allows implicit
<code>int</code> even in casts as you can see in
<code>(void(*)(register))main</code>. Where implicit <code>int</code> is
impossible, like in the <code>int main</code> declaration I have
<code>int</code> split across two lines. All indent programs I use
insert space at the beginning of the continuation line and thereby
introduce a syntax error.</p></li>
<li><p><code>main()</code> (ab)used as a signal handler. Shocking. Yeah,
this leads to undefined behaviour. I have yet to see a system where it
does not work. If it doesn’t work for you, I’d appreciate if you mail me
about it. Uh-oh, Schweikh did it, uttered “Works for me”. Don’t quote me
on that!</p></li>
<li><p>Even if you know how the program works, you just can’t predict
the output.</p></li>
<li><p>Chained use of token pasting operators <code>##</code> with
shuffled arguments.</p></li>
<li><p>So you think you can’t assign to <code>__LINE__</code> and
<code>__FILE__</code>? Not so. The <code>#line</code> preprocessor
directive does the trick. But saying <code>#line 10 "01\n"</code> is a
little lame and I came up with
<code>??=line 10 ONE(O(1,1,2,6,0,6))</code>.</p></li>
<li><p><code>__LINE__</code> is used as the signal number argument to
<code>signal()</code>. If indenting or other editing changes the number
of lines the program is likely to be killed after one second… Thanks to
POSIX for specifying <code>SIGALRM</code> as <code>14</code>. You’re SOL
if your system does not conform. Get a real OS.</p></li>
<li><p>All strings (or characters) needed are crammed into
<code>__FILE__</code> using octal notation and then extracted using
pointer + offset notation.</p></li>
<li><p>Use of a <code>#</code> (null) preprocessor directive (hidden as
a <code>%:</code> digraph) Delete this line and prepare for a core
dump.</p></li>
<li><p>Identifiers reused with different capitalization:
<code>one</code>, <code>One</code>, <code>ONE</code>, <code>zero</code>,
<code>Zero</code>. <code>ONE</code> is particularly nasty because it
appears as a macro taking an arg and as a plain identifier in
<code>main</code>’s parameters. The rule is that whenever
<code>ONE</code> is followed by <code>(</code> it must be the
macro.</p></li>
<li><p>A quote from Kernighan and Plauger, <em>The Elements of
Programming Style</em>, 2nd Ed., page 21:
<code>"A useful way to decide if some piece of code is clear or not is the 'telephone test.' If someone could understand your code when read aloud over the telephone, it's clear enough. If not then it needs rewriting."</code>
Now try the telephone test for ‘one = zero = atoi
(ONE[zero-1])’.</p></li>
<li><p>Don’t you love the aesthetics of symmetry:
<code>write (1, 1+__FILE__+1, 1)</code> (telephone test this as well; is
it 1, One, ONE, one? Maybe won?).</p></li>
</ul>
<h3 id="where-does-the-randomness-come-from">Where does the randomness
come from?</h3>
<p>Each bit obviously depends on the number of times the loop body is
executed between two calls of the signal handler. But what determines
this number?</p>
<ul>
<li>The accuracy of the clock driving the CPU.</li>
<li>The accuracy of the clock driving the timer responsible for alarm
signals.</li>
<li>On multitasking OSes: The total time the process is scheduled to run
between successive invocations of the signal handler.</li>
</ul>
<p>How about the randomness of the <code>yarng</code>? To measure these
properties I counted the number of bit sequences and compared them to
what I would expect from a generator with uniform distribution (all
sequences equally likely to occur).</p>
<p>It is interesting to note that <code>yarng</code>’s maximum
deviations are less than or equal to <code>rand(3)</code>’s. Randomness
however tends to degrade under high load averages on my system (Linux).
This could be avoided by allowing the process one second of execution
time instead of wall clock time (using the <code>SIGVTALRM</code> sent
by the virtual timer instead of <code>SIGALRM</code>).</p>
<p>I’m not surprised. <code>Yarng</code> in the end depends on
fluctuations of the electrical field and the heat distribution in the
oscillators, the implementation and state of the scheduling algorithm,
the system load, number and temporal distribution of asynchronous events
and last but not least the phase of the moon. God <em>does</em> play
dice. Type <code>yarng</code> and watch Him roll.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- START: this line starts content generated by: bin/gen-inventory.sh -->
<h1 id="inventory-for-1998schweikh2"><a name="inventory"></a>Inventory
for 1998/schweikh2</h1>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - winner home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh2/schweikh2.c">schweikh2.c</a>
- winning source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh2/Makefile">Makefile</a>
- winner Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh2/schweikh2.orig.c">schweikh2.orig.c</a>
- original source</li>
<li><a href="1998_schweikh2.tar.bz2">1998_schweikh2.tar.bz2</a> -
download winning source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh2/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh2/.winner.json">.winner.json</a>
- description of winner in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh2/README.md">README.md</a>
- markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/gen-inventory.sh -->
<!-- START: this line starts content from: inc/after-content.default.html -->
<!-- END: this line ends content from: inc/after-content.default.html -->
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/end-row.default.html -->
</div>
<!-- END: this line ends content from: inc/end-row.default.html -->
<!-- START: this line starts content from: inc/footer.default.html -->
<div class="footer">
<hr>
<h2>Coda</h2>
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1998%2Fschweikh2%2Findex.html">Nu HTML check this web page</a></p>
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
</div>
<!-- END: this line ends content from: inc/footer.default.html -->
<!-- START: this line starts content from: inc/bottom.default.html -->
</body>
</html>
<!-- END: this line ends content from: inc/bottom.default.html -->