Fixed broken links. Restored text that was accidentally removed during the emergency recovery of guidelines some days back. Moved some text that was in the wrong place. The formatting of the markdown files was changed for shorter lines (for those viewing the markdown in a viewer rather than a web browser). Added a <div id> to 2024/index.html so the guidelines (or maybe rules) could link to the important note from the judges in IOCCC28. Restore rewording of rule 2b done by @SirWumpus.
897 lines
42 KiB
HTML
897 lines
42 KiB
HTML
<!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 -->
|
||
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../ioccc.css">
|
||
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap" rel="stylesheet">
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>2024 - The 28th IOCCC</title>
|
||
<link rel="icon" type="image/x-icon" href="../favicon.ico">
|
||
<meta name="description" content="IOCCC Year 2024">
|
||
<meta name="keywords" content="IOCCC, 2024, IOCCC 2024, IOCCC entry, The 28th IOCCC">
|
||
</head>
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- END: this line ends content from: inc/head.default.html -->
|
||
|
||
<!-- -->
|
||
<!-- This web page was formed via the tool: bin/gen-year-index.sh -->
|
||
<!-- The content of main section of this web page came from: 2024/README.md -->
|
||
<!-- -->
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 2024/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 2024/README.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 2024/README.md !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content from: inc/body.default.html -->
|
||
|
||
<body>
|
||
|
||
<!-- END: this line ends content from: inc/body.default.html -->
|
||
<!-- START: this line starts content from: inc/topbar.default.html -->
|
||
|
||
<div class="theader">
|
||
<nav class="topbar">
|
||
<div class="container">
|
||
<div class="logo">
|
||
<a href="../index.html" class="logo-link">
|
||
IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="topbar-items">
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Entries
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../years.html" class="sub-item-link">
|
||
Winning entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../authors.html" class="sub-item-link">
|
||
Winning authors
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../location.html" class="sub-item-link">
|
||
Location of authors
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../bugs.html" class="sub-item-link">
|
||
Bugs and (mis)features
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#fix_an_entry" class="sub-item-link">
|
||
Fixing entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#fix_author" class="sub-item-link">
|
||
Updating author info
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Status
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../news.html" class="sub-item-link">
|
||
News
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../status.html" class="sub-item-link">
|
||
Contest status
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../next/rules.html" class="sub-item-link">
|
||
IOCCC rules
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../next/guidelines.html" class="sub-item-link">
|
||
IOCCC guidelines
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../markdown.html" class="sub-item-link">
|
||
Markdown guidelines
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../SECURITY.html" class="sub-item-link">
|
||
Security policy
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
FAQ
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html" class="sub-item-link">
|
||
Frequently asked questions
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../quick-start.html#enter" class="sub-item-link">
|
||
Enter the IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#compiling" class="sub-item-link">
|
||
Compiling entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#running_entries" class="sub-item-link">
|
||
Running entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#help" class="sub-item-link">
|
||
How to help
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
About
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../index.html" class="sub-item-link">
|
||
Home page
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../social.html" class="sub-item-link">
|
||
IOCCC social media
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../about.html" class="sub-item-link">
|
||
About the IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../judges.html" class="sub-item-link">
|
||
The judges
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../thanks-for-help.html" class="sub-item-link">
|
||
Thanks for the help
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../contact.html" class="sub-item-link">
|
||
Contact us
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<div class="header-mobile-menu">
|
||
<noscript>
|
||
<a href="../nojs-menu.html" class="topbar-js-label">
|
||
Please Enable JavaScript
|
||
</a>
|
||
</noscript>
|
||
|
||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||
<img
|
||
src="../png/hamburger-icon-open.png"
|
||
alt="hamburger style menu icon - open state"
|
||
width=48
|
||
height=48>
|
||
</button>
|
||
|
||
<button id="header-close-menu-button" class="hide-content">
|
||
<img
|
||
src="../png/hamburger-icon-closed.png"
|
||
alt="hamburger style menu icon - closed state"
|
||
width=48
|
||
height=48>
|
||
</button>
|
||
|
||
<div id="mobile-menu-panel" class="hide-content">
|
||
<div class="mobile-menu-container">
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
<div class="mobile-menu-item">
|
||
Entries
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../years.html">
|
||
Winning entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../authors.html">
|
||
Winning authors
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../location.html">
|
||
Location of authors
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../bugs.html">
|
||
Bugs and (mis)features
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_an_entry">
|
||
Fixing entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_author">
|
||
Updating author info
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../thanks-for-help.html">
|
||
Thanks for the help
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
|
||
<div class="mobile-menu-item">
|
||
Status
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../news.html">
|
||
News
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../status.html">
|
||
Contest status
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../next/rules.html">
|
||
IOCCC rules
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../next/guidelines.html">
|
||
IOCCC guidelines
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../markdown.html">
|
||
Markdown guidelines
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../SECURITY.html">
|
||
Security policy
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
<div class="mobile-menu-item">
|
||
FAQ
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html">
|
||
Frequently asked questions
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../quick-start.html#enter">
|
||
Enter the IOCCC
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#compiling">
|
||
Compiling entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#running_entries">
|
||
Running entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#help">
|
||
How to help
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
<div class="mobile-menu-item">
|
||
About
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../index.html">
|
||
Home page
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../social.html">
|
||
IOCCC social media
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../about.html">
|
||
About the IOCCC
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../judges.html">
|
||
The judges
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../contact.html">
|
||
Contact us
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<script>
|
||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||
|
||
headerOpenMenuButton.addEventListener("click", () => {
|
||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||
headerOpenMenuButton.classList.add("hide-content");
|
||
|
||
headerCloseMenuButton.classList.remove("hide-content");
|
||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||
|
||
mobileMenuPanel.classList.remove("hide-content");
|
||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||
});
|
||
|
||
headerCloseMenuButton.addEventListener("click", () => {
|
||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||
headerCloseMenuButton.classList.add("hide-content");
|
||
|
||
mobileMenuPanel.classList.add("hide-content");
|
||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||
|
||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||
headerOpenMenuButton.classList.remove("hide-content");
|
||
});
|
||
</script>
|
||
|
||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||
<!-- START: this line starts content from: inc/header.default.html -->
|
||
|
||
<div class="header">
|
||
<a href="../2011/zucker/index.html">
|
||
<img src="../png/ioccc.png"
|
||
alt="IOCCC image by Matt Zucker"
|
||
width=300
|
||
height=110>
|
||
</a>
|
||
<h1>The International Obfuscated C Code Contest</h1>
|
||
<h2>2024 - The 28th IOCCC</h2>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/header.default.html -->
|
||
<!-- START: this line starts content from: inc/navbar.year.last.html -->
|
||
|
||
<div class="navbar">
|
||
<a class="Left" href="../2020/index.html">← 2020</a>
|
||
<a class="Left" href="../years.html">↑ top ↑</a>
|
||
<a class="Left Disabled" href="#">No next</a>
|
||
<a class="Right" href="#inventory">Inventory</a>
|
||
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.ioccc.org%2F2024%2Findex.html">✓</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/navbar.year.last.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<div class="content" id="content">
|
||
|
||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
|
||
<!-- BEFORE: 1st line of markdown file: 2024/README.md -->
|
||
<h1 id="twenty-eighth-international-obfuscated-c-code-contest">Twenty Eighth International Obfuscated C Code Contest</h1>
|
||
<h2 id="where-to-start">Where to start</h2>
|
||
<p>See below for links to the <a href="#inventory">2024 winning IOCCC entries</a>.</p>
|
||
<p>Check out the <code>index.html</code> web pages for each winning entry. They have
|
||
most of the information you need to compile and run the winning program.
|
||
Take a look at the winning source code and try to figure out how it works.
|
||
You might also want to check out the author’s remarks for even more details.</p>
|
||
<p>You may <a href="2024.tar.bz2">download all winning entries</a> in the form
|
||
of a compressed tarball, for this year’s contest.</p>
|
||
<h2 id="general-remarks-on-this-contest">General remarks on this contest</h2>
|
||
<p>This year marked the <a href="../faq.html#ioccc_start">40th anniversary of the IOCCC</a>.
|
||
The <strong>IOCCC28</strong> opened submissions from <strong>2025-03-05 23:19:17.131107 UTC</strong> to <strong>2025-06-05
|
||
04:03:02.010099 UTC</strong> after a 4 year pause.</p>
|
||
<p>A significant portion of those 4 years was an effort by a <a href="../thanks-for-help.html">number of people</a>,
|
||
with over 6168+ commits, to rebuild the <a href="../index.html">Official IOCCC website</a>
|
||
in what became known as the <strong>Great Fork Merge</strong>.</p>
|
||
<p>Another portion of those 4 years went into retooling the IOCCC, including the creation of
|
||
the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>, a new
|
||
<a href="../next/register.html">IOCCC registration process</a>, and a new
|
||
<a href="https://submit.ioccc.org/">IOCCC submit server</a> (which may not be up if the contest is closed).</p>
|
||
<p>The <strong>major motivation</strong> for the above was to:</p>
|
||
<ul>
|
||
<li><p>Present <a href="../years.html">IOCCC winners</a> that that honors the contributions of all of the <a href="../authors.html">winning authors</a> from <a href="../location.html">around the world</a>,</p></li>
|
||
<li><p>Reduce the administrative effort required by the <a href="../judges.html">IOCCC Judges</a> to run the contest, and</p></li>
|
||
<li><p>Minimize the time between when the winners of the IOCCC are selected and when the source is made available.</p></li>
|
||
</ul>
|
||
<p>On the last point, for <strong>IOCCC28</strong> the Judging started on <strong>2025-06-05 04:03:02.010099 UTC</strong> and then the winners were selected by the <a href="../judges.html">IOCCC Judges</a> on <strong>2025-07-07 20:05:07.000000 UTC</strong>:</p>
|
||
<ul>
|
||
<li><p>Winners were announced during a live show that started on <strong>2025-08-02 18:00:00.000000 UTC</strong>
|
||
on the <a href="https://www.youtube.com/@OurFavoriteUniverse">Our Favorite Universe</a>
|
||
YouTube Channel.</p></li>
|
||
<li><p>At about 03h:42m:03s mark in the 04h:30m:35s <a href="https://www.youtube.com/live/UDzGwTalVAc">YouTube
|
||
show</a>, the <strong>source code</strong> of the
|
||
<a href="#inventory">IOCCC28 winning entries</a> was published on <a href="https://github.com/ioccc-src/winner">IOCCC GitHub winner
|
||
repo</a> and on the <a href="../index.html">Official IOCCC
|
||
website</a>.</p></li>
|
||
</ul>
|
||
<p><strong>No longer will there be many months</strong> between when the winners are
|
||
announced and their source code is made available. For <strong>IOCCC28</strong>
|
||
the time was <strong>less than 2 hours</strong>. :-)</p>
|
||
<h3 id="increased-submission-quantity-and-quality">Increased submission quantity and quality</h3>
|
||
<p>The submissions to <strong>IOCCC28</strong> were remarkable when compared with previous contests, in both the
|
||
<strong>increased quantity and quality</strong> of the submissions. As a result the judging process for <strong>IOCCC28</strong>
|
||
was more challenging and required greater effort. Thankfully due to the above mentioned improvements,
|
||
the judging process <strong>took only 33 days</strong>. Under the previous system it <strong>would have taken much longer</strong>!</p>
|
||
<p>One thing that began to emerge after we exited the early rounds of judging and entered the middle rounds
|
||
of judging was that we were very likely to have more winning entries than in previous contests.
|
||
Even so, the final rounds of judging required more rounds and took longer than any previous IOCCC.</p>
|
||
<p>At the end of the final round of the final rounds of judging, we had a record <strong>23 winners of IOCCC28</strong>,
|
||
eclipsing the record of 15 winners!</p>
|
||
<p>While we suspect that the 4 year gap between <strong>IOCCC27</strong> and <strong>IOCCC28</strong> allowed
|
||
people extra time to improve their submissions, we also believe that people
|
||
submitting to the IOCCC have become more adept in obfuscation and have
|
||
become more skilled in the programming in the C language.</p>
|
||
<div id="rule2">
|
||
<h3 id="code-size-and-rule-2">Code size and Rule 2</h3>
|
||
</div>
|
||
<p>We were pleased to observe that while the <a href="../faq.html#size_rule_history">IOCCC size limit</a>
|
||
increased by about 21%, we received many submissions that were well under the new
|
||
<a href="rules.html#rule2">Rule 2</a> including a fair number of quality
|
||
small and medium sized submissions. Half of the <strong>IOCCC28 winners</strong> were less than
|
||
<em>2/3 of the size limit</em>, and 10 of the <strong>IOCCC28 winners</strong> were less than
|
||
<em>1/2 of the size limit</em>!</p>
|
||
<p><strong>IMPORTANT NOTE</strong>: The <a href="../faq.html#size_rule_history">IOCCC size limit</a> increase for <strong>IOCCC28</strong>
|
||
was the first size increase in over 10 years. Given the quality of submissions we received
|
||
that were well under the limit, we do <strong>NOT</strong> expect to change the
|
||
<a href="rules.html#rule2">Rule 2</a> for <strong>at least another 10 years</strong> (and likely longer).</p>
|
||
<p><strong>IMPORTANT HINT</strong>: Only 3 of the 23 <strong>IOCCC28 winners</strong> came close to the <a href="rules.html#rule2">Rule
|
||
2</a>. Large code size isn’t everything. :-)
|
||
Those submitting to future contents should <strong>take a careful note</strong> of that fact.</p>
|
||
<h3 id="rules-and-guidelines-for-this-contest">Rules and Guidelines for this contest</h3>
|
||
<p>Here are the final versions of the IOCCC rules and guidelines that were in
|
||
effect for this contest:</p>
|
||
<ul>
|
||
<li><a href="rules.html">2024 rules</a> version <strong>28.30 2025-03-03</strong></li>
|
||
<li><a href="guidelines.html">2024 guidelines</a> version <strong>28.47 2025-03-15</strong></li>
|
||
</ul>
|
||
<h3 id="looking-forward-to-the-next-contest">Looking forward to the next contest</h3>
|
||
<p>The <a href="../judges.html">IOCCC Judges</a> realize that the <a href="../next/rules.html">IOCCC rules</a> and
|
||
the <a href="../next/guidelines.html">IOCCC guidelines</a> need to be <strong>greatly improved and streamlined</strong>.
|
||
We decided to not overhaul them for <strong>IOCCC28</strong> so as to <strong>NOT</strong> delay the opening of the contest.</p>
|
||
<p>After the <a href="../judges.html">IOCCC Judges</a> take a short <em>IOCCC Vacation</em> (we have been working solid
|
||
on <strong>IOCCC28</strong> since <strong>2020 Dec 30</strong>), we plan to update, improve and streamline the
|
||
<a href="../next/rules.html">IOCCC rules</a> and the <a href="../next/guidelines.html">IOCCC guidelines</a> for <strong>IOCCC29</strong>.
|
||
Then we will address whatever bug fixes in the form of GitHub Pull Requests to both the
|
||
<a href="https://github.com/ioccc-src/winner">IOCCC GitHub winner repo</a> and the
|
||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit repo</a> that may be pending.</p>
|
||
<p>Once we are all caught up, we will set the opening date for <strong>IOCCC29</strong>. It is our plan
|
||
to open <strong>IOCCC29</strong> sometime in <strong>2025 December</strong>.</p>
|
||
<h2 id="remarks-on-some-of-the-winning-entries">Remarks on some of the winning entries</h2>
|
||
<p>There were a number of remarkable winning entries for <strong>IOCCC28</strong>. We wish to call
|
||
attention to a few of them:</p>
|
||
<ul>
|
||
<li><a href="kurdyukov1/index.html">2024/kurdyukov1</a></li>
|
||
</ul>
|
||
<p>This entry is a fun revisit of the theme of <a href="../2000/natori/index.html">2000/natori</a>,
|
||
only better and without using any floating point arithmetic. You are invited
|
||
to try and understand why the constant <code>2551443</code> is common to both entries.</p>
|
||
<ul>
|
||
<li><a href="cable1/index.html">2024/cable1</a></li>
|
||
</ul>
|
||
<p>This entry claims to be “<em>the world’s smallest LLM (large language
|
||
model) inference engine</em>”: running open-source model based on Meta’s
|
||
LLaMA 2 with 7 billion parameters. After downloading the model via the
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/cable1/get_model.sh">2024/cable1/get_model.sh</a> script,
|
||
we invite you explore this <strong>ChatIOCCC</strong> tool. While not super fast,
|
||
the tool’s output can be amusing.</p>
|
||
<p>You might wish to ask <strong>ChatIOCCC</strong>: “<em>Why did this entry win IOCCC28?</em>”?</p>
|
||
<p>We encourage you to read and understand the
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/cable1/prog.c">2024/cable1/prog.c source code</a>. Then see
|
||
if the <strong>ChatIOCCC</strong> tool can offer any new, or even correct insights
|
||
into the code’s obfuscation. :-)</p>
|
||
<ul>
|
||
<li><a href="howe/index.html">2024/howe</a></li>
|
||
</ul>
|
||
<p>“<em>Eh</em>”? The source code, with its UTF-8 conforming accent gives you a
|
||
polite editor that is more functional than <code>ed(1)</code>.</p>
|
||
<p>We invite you to use the program to view the UTF-8 fun in the
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/howe/prog.c">2024/howe/prog.c source code</a>.</p>
|
||
<p><strong>HINT to emacs users</strong>: type <strong>Q</strong> or press <strong>CTRL+C</strong> to exit. 🤓</p>
|
||
<ul>
|
||
<li><a href="stedolan/index.html">2024/stedolan</a></li>
|
||
</ul>
|
||
<p>When you view the <a href="https://github.com/ioccc-src/winner/blob/master/2024/stedolan/prog.c">prog.c source code</a>,
|
||
notice magic numbers. This <strong>one liner</strong> packs a significant amount
|
||
of obfuscation in only 135 bytes!</p>
|
||
<p>Try giving 10 hex digits to standard input of the program. Then try a
|
||
different hex digits value. Then feed the MD5 hash of the
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/stedolan/prog.c">2024/stedolan/prog.c source code</a> and
|
||
“<em>C</em>” what happens. :-)</p>
|
||
<ul>
|
||
<li><a href="endoh1/index.html">2024/endoh1</a></li>
|
||
</ul>
|
||
<p>The <a href="https://github.com/ioccc-src/winner/blob/master/2024/endoh1/try.sh">2024/endoh1/try.sh</a> will carry you on
|
||
a journey that tests your patience as well as the patience of the C-preprocessor.</p>
|
||
<p>Building a 8x8 image requires an order of 20 seconds of C-preprocessor
|
||
time, when running 6 jobs on 4 CPU cores in parallel. Unfortunately,
|
||
with such a tiny image, it is hard to appreciate the image being rendered.</p>
|
||
<p>So you might try building a 32x32 form of the image, invoking the
|
||
C-preprocessor 1024 times. When using 6 jobs on 4 CPU cores in parallel,
|
||
this might take about 5.5 minutes to complete. However, the small image
|
||
only gives you a hint of the image being rendered.</p>
|
||
<p>If you have the time you might try building a 128x128 image, invoking
|
||
the C-preprocessor 16384 times. With 6 jobs on 4 CPU cores in parallel,
|
||
this will take about 1.5 hours. At this scale you might consider it
|
||
worthwhile to render a more detailed image.</p>
|
||
<p>Using 6 jobs on 4 CPU cores in parallel, to build a 512x512 image invoking
|
||
the C-preprocessor 262144 times over a period of about 23.5 hours, you
|
||
will be given an image with a reasonable amount of detail to appreciate
|
||
what is being rendered.</p>
|
||
<p>One fun aspect of the <a href="https://github.com/ioccc-src/winner/blob/master/2024/endoh1/prog.c">2024/endoh1/prog.c source code</a>
|
||
is that when it is compiled and executed, the program outputs C code.
|
||
That C code, called <code>rt.c</code>, will fail to compile! But that is OK because the C-preprocessor
|
||
has enough work to do without bothering the C compiler. :-)</p>
|
||
<p>We plan to recognise those who report that they <a href="endoh1/index.html#larger">rendered a new record sized image</a>.</p>
|
||
<ul>
|
||
<li><a href="weaver/index.html">2024/weaver</a></li>
|
||
</ul>
|
||
<p>As the expression goes, “Seeing (and hearing) is believing”: or at least can lead to better understanding of the code. :o)</p>
|
||
<p>After studying the <a href="https://github.com/ioccc-src/winner/blob/master/2024/weaver/prog.c">2024/weaver/prog.c source code</a>,
|
||
we suggest you compile and run the program for more information.</p>
|
||
<ul>
|
||
<li><a href="mills/index.html">2024/mills</a></li>
|
||
</ul>
|
||
<p>This won the “<strong>Prize in ℤ₃</strong>”, but what does that mean? Well,
|
||
the “<em>double-struck Z</em>” is <strong>NOT</strong> a reference to a set of integers,
|
||
nor is the “<em>double-struck Z subscript 3</em>” a reference to a ring of
|
||
3-adic integers. Instead, it is a reference to the 3rd version of a
|
||
<a href="https://en.wikipedia.org/wiki/Z-machine">certain virtual machine</a>.</p>
|
||
<p>If you use the <a href="https://github.com/ioccc-src/winner/blob/master/2024/mills/try.sh">2024/mills/try.sh</a> script, you will first be given
|
||
an opportunity to view the <a href="https://github.com/ioccc-src/winner/blob/master/2024/mills/prog.c">2024/mills/prog.c source code</a>.
|
||
Then you will be given 10 choices to play.</p>
|
||
<p><strong>HINT</strong>: If you select <strong>0</strong>: Try to not be eaten by a Grue when
|
||
reading/navigating the twisty mazes of this source code! :-)</p>
|
||
<ul>
|
||
<li><a href="codemeow/index.html">2024/codemeow</a></li>
|
||
</ul>
|
||
<p>As you study the <a href="https://github.com/ioccc-src/winner/blob/master/2024/codemeow/prog.c">2024/codemeow/prog.c source code</a>,
|
||
try not to lose track of the forest of obfuscation while tracking down the execution path trees.</p>
|
||
<p>We think this code will “grow on you” as the C expression goes just as compiled C code “<em>grows on parse trees</em>”. :-)</p>
|
||
<ul>
|
||
<li><a href="kurdyukov2/index.html">2024/kurdyukov2</a></li>
|
||
</ul>
|
||
<p>If seeing is believing, and you believe you understand the
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/kurdyukov2/prog.c">2024/kurdyukov2/prog.c source code</a>,
|
||
then you might be able to see how the code words.</p>
|
||
<p><strong>QUESTION</strong>: How many of the “<em>magic numbers</em>” in the program do you understand?</p>
|
||
<ul>
|
||
<li><a href="kurdyukov3/index.html">2024/kurdyukov3</a></li>
|
||
</ul>
|
||
<p>The prize, “<strong>virtual quietus</strong>”, is a virtual reference to the doom that awaits you when
|
||
you run this code: let alone when your try to figure out how the author was able to
|
||
encode the virtual machine in under <strong>2.5K bytes</strong> of <a href="https://github.com/ioccc-src/winner/blob/master/2024/kurdyukov3/prog.c">prog.c source code</a>!</p>
|
||
<p><strong>NOTE</strong>: The implementation runs without sound or mouse
|
||
input. You will need to rely on your keyboard skills. The
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/kurdyukov3/try.sh">2024/kurdyukov3/try.sh</a>
|
||
demonstration script will give you some useful keyboard hints.</p>
|
||
<ul>
|
||
<li><a href="cable2/index.html">2024/cable2</a></li>
|
||
</ul>
|
||
<p>Those who follow the concept of “<em>seeing is believing</em>” will very
|
||
likely be “<em>deceived</em>” when they try to see the source in terminal window:</p>
|
||
<pre><code> cat 2024/cable2/prog.c</code></pre>
|
||
<p>Viewing the <a href="https://github.com/ioccc-src/winner/blob/master/2024/cable2/prog.c">prog.c source code</a> in most editors
|
||
might suggest that there is something fishy 🐠 with the code.</p>
|
||
<ul>
|
||
<li><a href="macke/index.html">2024/macke</a></li>
|
||
</ul>
|
||
<p>Have you ever wondered what would would happen if you recursively removed
|
||
files starting from the root directory? Are you curious what happens when
|
||
you launch a <a href="https://en.wikipedia.org/wiki/Fork_bomb">fork bomb</a>?
|
||
You can safely give those and other scenarios under this virtual machine.</p>
|
||
<p>We invite you to explore the <a href="https://github.com/ioccc-src/winner/blob/master/2024/macke/prog.c">prog.c source code</a>
|
||
to explore this interesting virtual machine implementation. And as a bonus, a
|
||
full-fledged C64 emulator is included!</p>
|
||
<ul>
|
||
<li><a href="ferguson2/index.html">2024/ferguson2</a></li>
|
||
</ul>
|
||
<p>The “<strong>Prize in yil-tas</strong>” provides a hint as to what this marvelous
|
||
winning entry is doing, provided that you are someone familiar in at
|
||
least 3 languages (<strong>hint</strong>: One of them is C, another is English).</p>
|
||
<p>The IOCCC is honored to present this entry for your enjoyment and for you to
|
||
ponder the <a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson2/prog.c">prog.c source code</a>.</p>
|
||
<ul>
|
||
<li><a href="carlini/index.html">2024/carlini</a></li>
|
||
</ul>
|
||
<p>The IOCCC has seen a number of winning entries that allow code designed to
|
||
run on early Intel processors, however none of them emulate a processor as
|
||
early as the <a href="https://en.wikipedia.org/wiki/Intel_4004">Intel 4004</a>.
|
||
Launched in 1971, the 4004 was the core of the first commercially marketed
|
||
microprocessor chipset.</p>
|
||
<p>The <a href="https://github.com/ioccc-src/winner/blob/master/2024/carlini/prog.c">2024/carlini/prog.c</a>
|
||
code runs rather slow, so patience is required to watch
|
||
<a href="https://en.wikipedia.org/wiki/Intel_4004#/media/File:Intel_C4004.jpg">4004</a>
|
||
code run. This is very understandable when you realize that the
|
||
<a href="https://github.com/ioccc-src/winner/blob/master/2024/carlini/prog.c">2024/carlini/prog.c</a> is actually
|
||
emulating the entire
|
||
<a href="https://en.wikipedia.org/wiki/Intel_4004#/media/File:Chip_layout_from_the_development_phase_of_the_Intel_4004_from_1971,_the_first_microprocessor_of_the_world_(cropped_and_edited_image).jpg">4004 chip circuit</a>
|
||
by computing the output of each gate in a loop, effectively running the CPU and associated RAM/ROM chips!</p>
|
||
<h3 id="remarks-on-some-of-submissions-that-did-not-win">Remarks on some of submissions that did not win</h3>
|
||
<ul>
|
||
<li><p>Depending on the address of a variable as the single source of
|
||
pseudo-randomness isn’t a good idea, as not all platforms support
|
||
<a href="https://en.wikipedia.org/wiki/Address_space_layout_randomization">ASLR</a>.
|
||
It’s much better to mix in other sources of variability (e.g. time, process
|
||
ID, etc.) so that subsequent runs will behave differently.</p></li>
|
||
<li><p>If a submission’s obfuscation strongly resembles a past IOCCC winning
|
||
entry, and the submission’s obfuscation is mainly in the C code source,
|
||
then the submission is likely to not make it into the final rounds of judging.</p></li>
|
||
<li><p>When working with modern C compilers, it’s crucial to explicitly
|
||
declare variable and function types. Don’t assume they’ll
|
||
automatically default to an <code>int</code>.</p></li>
|
||
<li><p>Sadly, K&C-style C code does not compile well under modern C compilers.</p></li>
|
||
<li><p>A submission that only works under gcc or clang does not work as well
|
||
as submissions that can work under either compiler.</p></li>
|
||
<li><p>Shrinking an existing open-source program to meet rule 2 size might
|
||
be an impressive feat of code shrinking, but it might not be enough to
|
||
make it into the final rounds of judging. Originality is key, and this
|
||
might not be the most innovative approach.</p></li>
|
||
<li><p>If your submission relies on mathematical algorithms, be sure that the
|
||
C code that implements the mathematics is well obfuscated.</p></li>
|
||
<li><p>Just a friendly reminder that before you upload your submissions,
|
||
uncompress the compressed tarball into a different directory and verify
|
||
everything is in order. This way, you can be sure you didn’t miss uploading any
|
||
important files!</p></li>
|
||
<li><p>Using a lot of goto statements to make your code harder to understand
|
||
might not help it pass the final rounds of judging.</p></li>
|
||
</ul>
|
||
<h3 id="encouragement-for-those-who-did-not-win-this-year">Encouragement for those who did not win this year</h3>
|
||
<p>We know many of you that submitted to the IOCCC put in a ton of effort
|
||
into your submissions for this year’s IOCCC. We can’t just give out
|
||
awards to everyone. That would mean taking away from the submissions
|
||
that we think are the best and deserve to win.</p>
|
||
<p>Sometimes, a final round submission might be good enough to be a
|
||
winning IOCCC entry, only to be beaten by a similar, but slightly better
|
||
submission. If you think this happened with your submission, consider
|
||
submitting an enhanced version to the next IOCCC.</p>
|
||
<p><strong>PLEASE DO NOT</strong> give up hope! There are some submissions that have been
|
||
submitted with revisions multiple times before rising to the level of
|
||
a winning IOCCC entry. You might also want to try with a different type
|
||
of submission altogether for the next IOCCC.</p>
|
||
<p>If you’re not planning to improve and resubmit your non-winning entry
|
||
for the next IOCCC, you’re welcome to publish it.</p>
|
||
<h2 id="on-compiling-and-running-winning-entries">On Compiling and running winning entries</h2>
|
||
<p>Some C compilers aren’t as great as they could be. If yours isn’t
|
||
working well, you might want to try compiling with an updated version
|
||
of clang and/or gcc instead.</p>
|
||
<p>If you encounter problems in compiling and/or running the winning entries, see
|
||
the FAQs on:</p>
|
||
<ul>
|
||
<li><a href="../faq.html#compiling">Compiling IOCCC entries</a></li>
|
||
<li><a href="../faq.html#dependencies">IOCCC entry dependencies</a></li>
|
||
<li><a href="../faq.html#compile_problems">Problems compiling entries</a></li>
|
||
<li><a href="../faq.html#running_entries">Running IOCCC entries</a></li>
|
||
</ul>
|
||
<p>For additional information on how to submit fixes, see the FAQs on:</p>
|
||
<ul>
|
||
<li><a href="../faq.html#fix_an_entry">How to submit a fix</a> - how to submit a fix to an entry</li>
|
||
<li><a href="../faq.html#fix_author">Update author information</a> - how to correct or update an IOCCC author’s information</li>
|
||
</ul>
|
||
<h3 id="for-even-more-information">For even more information</h3>
|
||
<ul>
|
||
<li><a href="../faq.html#report_website_problem">Reporting an IOCCC website problem</a></li>
|
||
<li><a href="../faq.html#fix_website">Submitting a fix to the IOCCC website</a></li>
|
||
<li><a href="../contact.html">How to contact the IOCCC</a> - up to date contact details</li>
|
||
<li><a href="../faq.html">IOCCC FAQ</a> - additional information on the IOCCC</li>
|
||
<li><a href="https://www.ioccc.org">www.ioccc.org</a> - the primary IOCCC website</li>
|
||
</ul>
|
||
<!--
|
||
|
||
Copyright © 1984-2025 by Landon Curt Noll and Leonid A. Broukhis. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
<!-- AFTER: last line of markdown file: 2024/README.md -->
|
||
|
||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 22 by: bin/output-year-index.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-year-index.sh -->
|
||
|
||
<div id="inventory">
|
||
<div id="2024">
|
||
<h1 id="winning-entries-of-2024---the-28th-ioccc">Winning Entries of 2024 - The 28th IOCCC</h1>
|
||
</div>
|
||
</div>
|
||
<p><a href="2024.tar.bz2"><strong>Download all winning entries from 2024</strong></a></p>
|
||
<ul>
|
||
<li><a href="burton/index.html"><strong>2024/burton</strong></a> - <strong>Prize in pentagrammatology</strong></li>
|
||
<li><a href="cable1/index.html"><strong>2024/cable1</strong></a> - <strong>Prize in bot talk</strong></li>
|
||
<li><a href="cable2/index.html"><strong>2024/cable2</strong></a> - <strong>Prize in murky waters</strong></li>
|
||
<li><a href="carlini/index.html"><strong>2024/carlini</strong></a> - <strong>Prize in perfect timing</strong></li>
|
||
<li><a href="codemeow/index.html"><strong>2024/codemeow</strong></a> - <strong>Prize in tray planting</strong></li>
|
||
<li><a href="endoh1/index.html"><strong>2024/endoh1</strong></a> - <strong>Prize in patient pointillism</strong></li>
|
||
<li><a href="endoh2/index.html"><strong>2024/endoh2</strong></a> - <strong>Prize in solid body physics</strong></li>
|
||
<li><a href="ferguson1/index.html"><strong>2024/ferguson1</strong></a> - <strong>Prize in diabolical logistics</strong></li>
|
||
<li><a href="ferguson2/index.html"><strong>2024/ferguson2</strong></a> - <strong>Prize in yil-tas</strong></li>
|
||
<li><a href="howe/index.html"><strong>2024/howe</strong></a> - <strong>Nice accent eh-ward</strong></li>
|
||
<li><a href="kramer/index.html"><strong>2024/kramer</strong></a> - <strong>Prize in linguistic arithmetic</strong></li>
|
||
<li><a href="kurdyukov1/index.html"><strong>2024/kurdyukov1</strong></a> - <strong>Prize in phased periodicity</strong></li>
|
||
<li><a href="kurdyukov2/index.html"><strong>2024/kurdyukov2</strong></a> - <strong>Prize in art restoration</strong></li>
|
||
<li><a href="kurdyukov3/index.html"><strong>2024/kurdyukov3</strong></a> - <strong>Prize in virtual quietus</strong></li>
|
||
<li><a href="kurdyukov4/index.html"><strong>2024/kurdyukov4</strong></a> - <strong>Prize in embiggening</strong></li>
|
||
<li><a href="macke/index.html"><strong>2024/macke</strong></a> - <strong>Prize in imitative rebooting</strong></li>
|
||
<li><a href="maffiodo/index.html"><strong>2024/maffiodo</strong></a> - <strong>Prize in creative interpretation</strong></li>
|
||
<li><a href="mills/index.html"><strong>2024/mills</strong></a> - <strong>Prize in ℤ₃</strong></li>
|
||
<li><a href="stedolan/index.html"><strong>2024/stedolan</strong></a> - <strong>Best one liner</strong></li>
|
||
<li><a href="straadt/index.html"><strong>2024/straadt</strong></a> - <strong>Prize in sound coding</strong></li>
|
||
<li><a href="tmarrec/index.html"><strong>2024/tmarrec</strong></a> - <strong>Prize in cyclonic coding</strong></li>
|
||
<li><a href="tompng/index.html"><strong>2024/tompng</strong></a> - <strong>Prize in quasi bijection</strong></li>
|
||
<li><a href="weaver/index.html"><strong>2024/weaver</strong></a> - <strong>Sur prize</strong></li>
|
||
</ul>
|
||
<hr style="width:10%;text-align:left;margin-left:0">
|
||
<h4>
|
||
Jump to: <a href="#">top</a>
|
||
</h4>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-year-index.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 22 by: bin/output-year-index.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.inventory.html -->
|
||
|
||
<!--
|
||
|
||
Copyright © 1984-2025 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<div class="footer">
|
||
|
||
<div id="copyright"><h3>Copyright © 1984-2025 by Landon Curt Noll:
|
||
<a href="https://creativecommons.org/faq/#what-does-some-rights-reserved-mean"
|
||
target="_blank"
|
||
rel="license noopener noreferrer">Some Rights Reserved</a></h3>
|
||
<p>
|
||
This work is <b>licensed by Landon Curt Noll</b> under
|
||
<b><a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1"
|
||
target="_blank"
|
||
rel="license noopener noreferrer"
|
||
style="display:inline-block;">CC BY-SA 4.0</a></b>.
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../png/cc.png"
|
||
alt="cc inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../png/by.png"
|
||
alt="person inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../png/sa.png"
|
||
alt="arrow looping back on itself inside circle symbol"><br>
|
||
You should <b>carefully review</b> the
|
||
<b><a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en"
|
||
target="_blank"
|
||
rel="license noopener noreferrer">CC BY-SA 4.0 LEGAL CODE</a></b>
|
||
before using the licensed material.<br>
|
||
You may wish to review the
|
||
<b><a href="../license.html"
|
||
target="_blank"
|
||
rel="license noopener noreferrer">highlights of some of the key features and terms</a></b>
|
||
of <b>CC BY-SA 4.0</b>.<br>
|
||
</p>
|
||
</div>
|
||
|
||
<div id="coda"><h3>Coda</h3>
|
||
<p>
|
||
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.ioccc.org%2F2024%2Findex.html" rel="nofollow">Nu HTML check this web page</a><br>
|
||
<a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a><br>
|
||
</p>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/footer.inventory.html -->
|
||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||
|
||
</body>
|
||
</html>
|
||
|
||
<!-- END: this line ends content from: inc/bottom.default.html -->
|