move fix thanks a file, update top level html links, rename CONTRIBUTING.md
The fix thank you's have been moved from `README.md` to `thanks-for-fixes.md`. **WARNING**: Some mistakes may have been made in doing this. We presume later changes by others will correct any issues. The `CONTRIBUTING.md` was renamed `how-to-enter.md`. A 3rd line of links was added to top level html such as `contact.html`, `index.html`, `judges.html`, `winners.html`, and `years.html`. Improved blank line use in a number (but not all) `README.md` files.
This commit is contained in:
1 parent
23f7ac0a49
commit
ac41f07a83
92 files changed
+1326
-761
No files matched your search
@@ -3,75 +3,21 @@
|
||||
The author wishes to remain anonymous
|
||||
Great Britain
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./anonymous x86_program
|
||||
```
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed both the
|
||||
supplementary program and the program itself (both of which segfaulted and once
|
||||
that was fixed only the binary was modified; it was not run but according to the
|
||||
author's remarks it should be executed). He managed to do this with linux
|
||||
but it will not work with macOS (see [bugs.md](/bugs.md) for why this is); _this
|
||||
is not a bug, it's a feature_ inherent in what it does!
|
||||
|
||||
The following had to be done in order to get this to work:
|
||||
|
||||
- `#include <sys/mman.h>` for `mmap()` and `munmap()`.
|
||||
- have `main()` call another function which is no longer a recursive function;
|
||||
this prevented `main()` from entering an infinite recursive loop.
|
||||
|
||||
Without either of these it would crash and prevent modification of the 32-bit
|
||||
[ELF](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) (not elf :-) )
|
||||
binary. But again see [bugs.md](/bugs.md) here.
|
||||
|
||||
The following change was also made to be more portable, in case the constants
|
||||
`PROT_READ` and/or `PROT_WRITE` are not standardised:
|
||||
|
||||
Change `3` in the call to `mmap()` to be `PROT_READ|PROT_WRITE`: just in case
|
||||
`PROT_READ|PROT_WRITE` does not equal 3 (though it seems to be equal in both
|
||||
macOS and linux).
|
||||
|
||||
There was one other thing that had to be done though. Since the program used to
|
||||
recursively call (infinite recursion, seemingly) `main()` and since that cannot
|
||||
be done what had to be done instead is after the new function (`pain()` since it
|
||||
was a pain to fix :-) ) returns to first call `munmap()` and `close()` (else one
|
||||
would get text file busy error) and then the program can call `execv()` again
|
||||
like the function `pain()` (was in `main()`) did but with a slight change. See
|
||||
commit `2159caec4677e0f25ad704a74e04c8196fd6c343` for more details.
|
||||
|
||||
Notice that the location of the calls to `munmap()` and `close()` followed by
|
||||
`execv()` _does matter_!
|
||||
|
||||
NOTE: there might be educational value to see the progress of this fix; if you
|
||||
wish to see, try:
|
||||
|
||||
```sh
|
||||
git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..93aa8d79f208dcccc3c5a2370a727b5cf64e9c53 anonymous.c
|
||||
git diff 93aa8d79f208dcccc3c5a2370a727b5cf64e9c53..c48629017117379a52b1a512ef8f2593ca9569c8 anonymous.c
|
||||
git diff c48629017117379a52b1a512ef8f2593ca9569c8..efdee208a2bc650256637b9357ddfd0de82d2f41 anonymous.c
|
||||
git diff efdee208a2bc650256637b9357ddfd0de82d2f41..e9a3f77ea3b209e63ac3f9c06bb84ad86e5ea706 anonymous.c
|
||||
git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..2159caec4677e0f25ad704a74e04c8196fd6c343 anonymous.c
|
||||
git diff 2159caec4677e0f25ad704a74e04c8196fd6c343..4bc03de321612869aebf855850c6500df95cb6ef anonymous.c
|
||||
```
|
||||
|
||||
Finally to see from start to finish:
|
||||
|
||||
```sh
|
||||
git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..4bc03de321612869aebf855850c6500df95cb6ef anonymous.c
|
||||
```
|
||||
|
||||
Cody also added a [program](anonymous.bed.c) like [anonymous.ten.c](anonymous.ten.c)
|
||||
[Ten Green Bottles](https://en.wikipedia.org/wiki/Ten_Green_Bottles) but which
|
||||
sings [Ten in the Bed](https://allnurseryrhymes.com/ten-in-the-bed/). Why? For
|
||||
fun and so that there's another program that is a bit different (it uses a `char
|
||||
For fun and so that there's another program that is a bit different (it uses a `char
|
||||
*[]` array for example) that this program will still work on. To use:
|
||||
|
||||
```sh
|
||||
@@ -82,7 +28,6 @@ make anonymous.bed.64 # if unable to use -m32
|
||||
./anonymous.bed.64
|
||||
```
|
||||
|
||||
Thank you Cody for your assistance!
|
||||
|
||||
## Try:
|
||||
|
||||
@@ -102,6 +47,7 @@ program successfully after it without recompiling?
|
||||
NOTE: if the 32-bit version cannot be compiled the script will at least run the
|
||||
alternate version of the [anonymous.ten](anonymous.ten.c) program.
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
Is emulation the sincerest form of flattery? This small program does
|
||||
@@ -121,9 +67,9 @@ the program will fail to execute it and might not even touch it.
|
||||
### WARNING on note from the author
|
||||
|
||||
The author suggested that this will somewhat destroy the binaries this touches
|
||||
but Cody did not observe this. It does indeed modify the files as the script
|
||||
but others did not observe this. It does indeed modify the files as the script
|
||||
below will show you (though not all files are modified: can you figure out why
|
||||
that is?) but Cody did not notice any problems in using them. Perhaps it's
|
||||
that is?) but others did not notice any problems in using them. Perhaps it's
|
||||
something he's not aware of possibly including the fact that the modification
|
||||
might or might not be complete. If you follow the try commands below you will
|
||||
notice that although the binaries do differ it's not many differences and the
|
||||
@@ -262,6 +208,7 @@ just C programs that generate C code as their output.
|
||||
|
||||
Enjoy and thanks!
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+5
-31
@@ -6,49 +6,20 @@ Fabrice Bellard
|
||||
France
|
||||
<https://bellard.org>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./bellard file
|
||||
```
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) partially fixed this
|
||||
but he notes that this will not work without (according to the author) i386
|
||||
linux or else some skill in resolving the portability issues. As it is it
|
||||
segfaults in 64-bit linux (and as expected macOS). He fixed an earlier segfault
|
||||
so that at least the file can be opened (but perhaps that will be wrong in i386
|
||||
linux?) and he also changed some of the macro used to what they evaluate to but
|
||||
mostly he kept it the same.
|
||||
|
||||
Cody also fixed [bellard.otccex.c](bellard.otccex.c) so it does not segfault and
|
||||
seemingly works okay (it did not work at all). The main problem was that some
|
||||
ints were being used as pointers. Also the Fibonacci sequence (`fib()`) will
|
||||
overflow at `n > 48` so this is checked prior to running the function. Either
|
||||
way unfortunately this entry seems to not work in 64-bit linux or macOS. See
|
||||
below portability notes. Thank you Cody for your assistance!
|
||||
|
||||
|
||||
### Portability notes:
|
||||
|
||||
With a tip from [Yusuke Endoh](/winners.html#Yusuke_Endoh) we rediscovered the
|
||||
author's [web page for this program](https://bellard.org/otcc/) where it is
|
||||
stated that this will only work in i386 linux. The author also stated in the
|
||||
remarks in this document that they used [gcc
|
||||
2.95.2](https://ftp.gnu.org/gnu/gcc/gcc-2.95.2/gcc-everything-2.95.2.tar.gz) but
|
||||
we don't know if that's relevant or not.
|
||||
|
||||
Yusuke offered a modification which is not needed with gcc but with some
|
||||
versions of `clang` it is. With `gcc` we can get away with `-rdynamic -fno-pie
|
||||
-Wl,-z,execstack` which solves the problem of execution in memory but any
|
||||
compiler that does not support this would not work. Thus we use the modification
|
||||
by Yusuke. Thank you Yusuke!
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
@@ -56,10 +27,12 @@ by Yusuke. Thank you Yusuke!
|
||||
./bellard bellard.otccex.c
|
||||
```
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
`<JUDGES_COMMENTS>` :-)
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
`OTCC` is an Obfuscated Tiny C Compiler for i386-linux. It generates
|
||||
@@ -183,6 +156,7 @@ and some functions are used before being defined. `OTCC` uses the
|
||||
dynamic linker to resolve symbols with `dlsym()`, so `-ldl` must
|
||||
be used when you compile and link it.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
@@ -4,19 +4,13 @@ Raymond Cheong
|
||||
US
|
||||
<http://www.raymondcheong.com/index.html>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to work with
|
||||
clang by adding another function that is allowed to have a third arg as an int,
|
||||
not a `char **`. He chose pain() because it's a four letter word that would
|
||||
match the format and because it's pain that clang forces this. :-) This fix
|
||||
makes a point of the author's notes on portability no longer valid, btw. Thank
|
||||
you Cody for your assistance!
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
@@ -37,6 +31,7 @@ This program will very likely crash or do something different without an arg.
|
||||
./cheong 05305265226926441255040573044986873789
|
||||
```
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
Be sure to give an even number of digits in the argument. Add a
|
||||
@@ -45,6 +40,7 @@ leading 0 if needed.
|
||||
The source code is nice, compact, and self documenting
|
||||
as all good programs should be! :-)
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
### Operation
|
||||
@@ -109,6 +105,7 @@ with fixed-width font)
|
||||
Thanks goes out to Bobby Rohde for numerous suggestions on how to shorten
|
||||
the program.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
@@ -7,18 +7,21 @@ ATTN : Pierre-Philippe Coupard
|
||||
Lindon, UT 84042
|
||||
US
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./coupard
|
||||
```
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
@@ -35,8 +38,6 @@ something like:
|
||||
./coupard | sox -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio
|
||||
```
|
||||
|
||||
Thanks go to [Yusuke Endoh](/winners.html#Yusuke_Endoh) for providing a proper
|
||||
command line (see [/2013/endoh3/README.md](2013/endoh3/README.md).
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
@@ -44,6 +45,7 @@ You may need to run this a few times to understand exactly what is
|
||||
being said. You might even need to look somewhere on your desktop,
|
||||
your arm or the wall for confirmation.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
Past years' IOCCC entries do many marvellous things in small packages,
|
||||
@@ -159,6 +161,7 @@ When linting the program with `lclint`, it complains about a huge list
|
||||
of things that, if corrected to make lint happy, would probably double
|
||||
the size of the source code.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+5
-4
@@ -5,22 +5,20 @@ Chris King
|
||||
Foster, RI, 02825
|
||||
US
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./ctk
|
||||
```
|
||||
|
||||
The ANSI escape codes were no longer valid but [Yusuke
|
||||
Endoh](/winners.html#Yusuke_Endoh) provided a patch to fix the ANSI escape
|
||||
codes. This works with macOS as well. Thank you Yusuke!
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
@@ -31,6 +29,7 @@ echo "Do or do not. There is no try."
|
||||
Make sure to hit `q` to exit or else your terminal will be messed up (to restore
|
||||
it you can try `stty sane` or `reset`).
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
No matter how careful you are, this guy eventually crashes. Most people
|
||||
@@ -38,6 +37,7 @@ can make at least one successful road trip without crashing.
|
||||
|
||||
This is, of course, another of the retro games.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
This is a game based on an Apple ][ Print Shop Companion [Easter
|
||||
@@ -57,6 +57,7 @@ vertically!).
|
||||
|
||||
[1]: https://en.wikipedia.org/wiki/Easter_egg_(media)#In_computing
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+10
-5
@@ -6,25 +6,27 @@ Southern Adventist University
|
||||
Cleveland, TN 37312
|
||||
US
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./dgbeards
|
||||
```
|
||||
|
||||
|
||||
### Alternate code:
|
||||
|
||||
The author provided a way to speed it up a bit and also how to make it so it
|
||||
doesn't crash on losing. [Cody Boone
|
||||
Ferguson](/winners.html#Cody_Boone_Ferguson) made this alternate version with
|
||||
the former change (the idea of crashing when losing is too good to fix in his
|
||||
opinion). To compile:
|
||||
doesn't crash on losing.
|
||||
|
||||
To compile:
|
||||
|
||||
```sh
|
||||
make alt
|
||||
@@ -33,16 +35,17 @@ make alt
|
||||
Use `dgbeards.alt` as you would `dgbeards` above. Can you find a flaw in this
|
||||
version that the author did not note?
|
||||
|
||||
|
||||
## INABIAF - it's not a bug it's a feature! :-)
|
||||
|
||||
This game crashes if it loses.
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
See if you can figure out how to make the computer always lose. It's a very
|
||||
simple thing to do. Read the author's remarks for clues.
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
This is probably the worst AI we've ever seen. So, then, why did
|
||||
@@ -57,6 +60,7 @@ I appreciate the realism.
|
||||
BTW: if your goal is to lose and you do does that mean you win? :-) What does
|
||||
winning mean in a game you're supposed to lose at?
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
### FAQ
|
||||
@@ -244,6 +248,7 @@ This bug can be fixed in a number of ways, but there is a way that adds only one
|
||||
byte to the source code. In the statement `s=(e=-V(n-1,o))>s?Y=G,e:s;` change
|
||||
the `>` to a `>=` and the bug will be gone.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
@@ -4,22 +4,13 @@ Immanuel Herrmann
|
||||
Germany
|
||||
<https://web.archive.org/web/20071018081145/http://pcpool.mathematik.uni-freiburg.de/~immi/>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to work with
|
||||
both 64-bit and 32-bit compiles by changing most of the `int`s (all but that in
|
||||
`main`) to `long`s. He also fixed it to compile with clang by changing the args
|
||||
of main to be `int` and `char **` respectively and changing specific references
|
||||
to the `argv` arg, casting to `long` (was `int` but the 64-bit fix requires
|
||||
`long`) which was its old type. The original file, used for demonstration
|
||||
purposes, as well as if you want to see if your system works with the original
|
||||
code (in which case see below Alternate code section), is in
|
||||
[herrmann2.alt.c](herrmann2.alt.c). Thank you Cody for your assistance!
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
@@ -93,6 +84,7 @@ make alt
|
||||
|
||||
Use `herrmann2.alt` as you would `herrmann2` above.
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
Be careful when staring at the source code - your eyes might cross, but
|
||||
@@ -264,6 +256,7 @@ the include files has to be provided. In the build script, I
|
||||
assume that the path is `/usr/include`, but this can easily be
|
||||
adapted.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+9
-8
@@ -5,12 +5,14 @@ Australia<br>
|
||||
<http://www.kev.pulo.com.au/><br>
|
||||
Mastodon: <https://fosstodon.org/@devkev>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
@@ -21,10 +23,8 @@ make
|
||||
|
||||
NOTE: each player's paddle is at the bottom and the opponent at the top.
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) slowed down the ball
|
||||
just a tad as it went too fast for the speed at which the paddles move even when
|
||||
holding down the movement keys. If you need to change the speed you can
|
||||
reconfigure it like (say for over a network and not the same host):
|
||||
If you need to change the speed you can reconfigure it like (say
|
||||
for over a network and not the same host):
|
||||
|
||||
```sh
|
||||
make clobber SPEED=50 all # default value which is very fast
|
||||
@@ -33,6 +33,7 @@ make clobber SPEED=50 all # default value which is very fast
|
||||
There is an alternate version which lets you use the arrow keys to control your
|
||||
paddle. See below Alternate code.
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
@@ -40,11 +41,10 @@ paddle. See below Alternate code.
|
||||
./kev localhost
|
||||
```
|
||||
|
||||
|
||||
### Alternate code:
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) provided an alternate
|
||||
version which lets you use the arrow keys on your keyboard instead of the more
|
||||
awkward ',' and '.'. To use:
|
||||
To use:
|
||||
|
||||
```sh
|
||||
make alt
|
||||
@@ -55,7 +55,6 @@ Use `kev.alt` as you would `kev`.
|
||||
What happens if you use both, one in one terminal and the other in another
|
||||
terminal?
|
||||
|
||||
Thank you Cody!
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
@@ -67,6 +66,7 @@ How many games come out at $50 and still require you to wait for a patch
|
||||
to come out before you can play multiplayer? This one works out of the
|
||||
box.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
|
||||
@@ -214,6 +214,7 @@ architectures need to have the same character systems (i.e. don't
|
||||
try mixing ASCII and EBCDIC). It is independent of endianness
|
||||
though.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
@@ -4,30 +4,28 @@ Brian Westley
|
||||
US
|
||||
<http://www.westley.org>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## To run:
|
||||
|
||||
```sh
|
||||
./westley
|
||||
```
|
||||
|
||||
## Try:
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) added the script
|
||||
[westley.sh](westley.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.
|
||||
These include the below sort and punch card versions that he added, described
|
||||
below, based on the author's remarks. Thank you Cody!
|
||||
## Try:
|
||||
|
||||
```sh
|
||||
./westley.sh
|
||||
```
|
||||
|
||||
|
||||
### Alternate code:
|
||||
|
||||
An alternate version of this entry, [westley.alt.c](westley.alt.c), is provided.
|
||||
@@ -51,8 +49,8 @@ Use `westley.sort` as you would `westley` above.
|
||||
### Punch card code:
|
||||
|
||||
The author also stated that if you just sort the code you'll get the with
|
||||
`sort`) version that just prints out the punch card. Cody put this in
|
||||
[westley.punch.c](westley.punch.c) specifically so that Westley can punch
|
||||
`sort`) version that just prints out the punch card. The
|
||||
[westley.punch.c](westley.punch.c) code specifically so that Westley can punch
|
||||
everyone in the face! :-) This is also compiled by default.
|
||||
|
||||
To use, try:
|
||||
@@ -61,6 +59,7 @@ To use, try:
|
||||
echo 'Brian Westley does it again!' | ./westley.punch 2>/dev/null
|
||||
```
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
Try copying the source to a new file and changing around the
|
||||
@@ -76,6 +75,7 @@ We find it amazing that with just 28 lines of code (not counting comments and
|
||||
blank lines) there are `28!` or ``304,888,344,611,713,860,501,504,000,000``
|
||||
versions of the program, all valid C!
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
[Punch cards](https://en.wikipedia.org/wiki/Punched_card), or Hollerith cards,
|
||||
@@ -206,6 +206,7 @@ all legal C.
|
||||
|
||||
\*\* all cards must be face down, nine-edge first, of course.
|
||||
|
||||
|
||||
## Copyright and CC BY-SA 4.0 License:
|
||||
|
||||
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
Reference in new issue
Block a user