commit a5d0c8b589848182b98762256116dd1ffd85ee58 Author: main Date: Fri Jul 26 07:28:48 2024 -0700 finally make a stupid repository for this diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..feaea70 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.pem +*.py* +test.sh +log +graph* +__pycache__/ diff --git a/changelog b/changelog new file mode 100644 index 0000000..a7f4f38 --- /dev/null +++ b/changelog @@ -0,0 +1,21 @@ +2024-02-18: Cleaned up header css, added changelog. +2024-02-24: Made dir_index.html slightly less cursed server side +2024-04-10: Fix albert hacking my website by rewriting the entire backend (lol) +2024-04-12: Add "natalie-sightings.html" +2024-04-14: Add "cool-sites.html", update home.html to actually be html compliant, updated comment system, add 88x31 collection, minor modification to "natalie-info.html". +2024-04-25: Move hosting to server taken from school basement, (somewhat notable) +2024-04-26: Updated server-migration.html, site-info.html. +2024-05-03: Added link to blog page in home.html, added random statement to home page upon each load +2024-05-11: Rewrote the webserver code, again. Fixed a few things in home.html. +2024-05-19: update theme to be in compliance with new laptop. depricate laptop page +2024-07-06: Now supports http and https. This creates a race condition in theory. Don't care +2024-07-09: updated natalie-info.html at the request of cinnabar, who was annoyed at the small number of incorrect things +2024-07-18: create & add header to all pages, changes to css so as to scale with vw +2024-07-24: Append to list of interesting sights, add page complaining about discord +2024-07-24: add thoughts page in /html/, update natalie info page +2024-07-24: updated wording in site-info.html, add /stats/ routes, update home.html to make filetree hidden by default because it is big +2024-07-25: rewrite css because winter told me to. Now has dark mode based on a media query. +2025-07-25: add subdomain proxying with nginx. +2025-07-26: add git.natalieee.net +2025-07-26: update site-info.html +2025-07-26: I have a dns server now. oops. there go my sleeping plans. email me if you want to use it for some insane reason. diff --git a/dir_index.html b/dir_index.html new file mode 100644 index 0000000..9d6accd --- /dev/null +++ b/dir_index.html @@ -0,0 +1,22 @@ + + + + + Index of {path} + + + + + $[python3 -u -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

Index of {path}

+ + + + $[for file in $(ls {path}); do echo ""; done | sed 's/\/\//\//g'] + + +

Name

Last modified

Creation Date

Size


$file$(stat -c %y "{path}/$file" | head -c 16)

$(stat -c %y "{path}/$file" | head -c 10)

$(numfmt --to=iec --suffix=B $(stat -c %s "{path}/$file"))

+ + diff --git a/files/88x31/I-hate-squarspace.jpg b/files/88x31/I-hate-squarspace.jpg new file mode 100644 index 0000000..20a11e4 Binary files /dev/null and b/files/88x31/I-hate-squarspace.jpg differ diff --git a/files/88x31/acab.gif b/files/88x31/acab.gif new file mode 100644 index 0000000..c86ff0e Binary files /dev/null and b/files/88x31/acab.gif differ diff --git a/files/88x31/asexuals.gif b/files/88x31/asexuals.gif new file mode 100644 index 0000000..7642e36 Binary files /dev/null and b/files/88x31/asexuals.gif differ diff --git a/files/88x31/bad-apple-looping.apng b/files/88x31/bad-apple-looping.apng new file mode 100644 index 0000000..9b375dc Binary files /dev/null and b/files/88x31/bad-apple-looping.apng differ diff --git a/files/88x31/best-viewed-with-eyes.gif b/files/88x31/best-viewed-with-eyes.gif new file mode 100644 index 0000000..27581b7 Binary files /dev/null and b/files/88x31/best-viewed-with-eyes.gif differ diff --git a/files/88x31/catscapemeow.png b/files/88x31/catscapemeow.png new file mode 100644 index 0000000..fb1b718 Binary files /dev/null and b/files/88x31/catscapemeow.png differ diff --git a/files/88x31/gnu-lesbian.html b/files/88x31/gnu-lesbian.html new file mode 100644 index 0000000..07450e3 --- /dev/null +++ b/files/88x31/gnu-lesbian.html @@ -0,0 +1 @@ + diff --git a/files/88x31/love-vim.gif b/files/88x31/love-vim.gif new file mode 100644 index 0000000..7a00d7f Binary files /dev/null and b/files/88x31/love-vim.gif differ diff --git a/files/88x31/no-js.jpg b/files/88x31/no-js.jpg new file mode 100644 index 0000000..8ec28ec Binary files /dev/null and b/files/88x31/no-js.jpg differ diff --git a/files/88x31/powered-by-estrogen.gif b/files/88x31/powered-by-estrogen.gif new file mode 100644 index 0000000..4c965dd Binary files /dev/null and b/files/88x31/powered-by-estrogen.gif differ diff --git a/files/88x31/transgender-looping.apng b/files/88x31/transgender-looping.apng new file mode 100644 index 0000000..3888511 Binary files /dev/null and b/files/88x31/transgender-looping.apng differ diff --git a/files/blog-files/pictures/kingwood-bad-contactor.jpg b/files/blog-files/pictures/kingwood-bad-contactor.jpg new file mode 100644 index 0000000..174b7a3 Binary files /dev/null and b/files/blog-files/pictures/kingwood-bad-contactor.jpg differ diff --git a/files/blog-files/pictures/kingwood-wiring-mess.jpg b/files/blog-files/pictures/kingwood-wiring-mess.jpg new file mode 100644 index 0000000..85fb9a1 Binary files /dev/null and b/files/blog-files/pictures/kingwood-wiring-mess.jpg differ diff --git a/files/blog-files/pictures/natalie-kingwood.jpg b/files/blog-files/pictures/natalie-kingwood.jpg new file mode 100644 index 0000000..0a88fa1 Binary files /dev/null and b/files/blog-files/pictures/natalie-kingwood.jpg differ diff --git a/files/dean-email-why-it-matters.png b/files/dean-email-why-it-matters.png new file mode 100644 index 0000000..be7a66f Binary files /dev/null and b/files/dean-email-why-it-matters.png differ diff --git a/files/deep-rock.mp4 b/files/deep-rock.mp4 new file mode 100644 index 0000000..0ea60a6 Binary files /dev/null and b/files/deep-rock.mp4 differ diff --git a/files/dir_index.html b/files/dir_index.html new file mode 100644 index 0000000..720da2b --- /dev/null +++ b/files/dir_index.html @@ -0,0 +1,96 @@ + + + + +~/mnt/home/main/site/dir_index.html.html + + + + + + + + + + +
+ 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+ 2 <html>
+ 3     <head>
+ 4         <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <!-- lol -->
+ 5         <title>Index of {}</title>
+ 6         <link href="data:text/css,%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ddg-runtime-checks%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20" rel="stylesheet" type="text/css">
+ 7         <style>
+ 8             $[cat style.css]
+ 9         </style>
+10     </head>
+11     <body>
+12         <h1>Index of {}</h1>
+13         <table>
+14             <tbody><tr><th><p>Name</p></th><th><p>Last modified</p></th><th><p>Creation Date</p></th><th><p>Size</p></th></tr>
+15                 <tr><th colspan="4"><hr></th></tr>
+16                 $[for file in $(ls {}); do echo "<tr><td><a href=\"/{}/$file\">$file</a></td><td>$(stat -c %y "{}/$file" | head -c 16)</td><td><p>$(stat -c %y {}/$file | head -c 10)</p></td><td align=\"right\">$(numfmt --to=iec --suffix=B $(stat -c %s "{}/$file"))</td></tr>"; done]
+17                 <tr><th colspan="4"><hr></th></tr>
+18             </tbody>
+19         </table>
+20     </body>
+21 </html>
+
+ + + diff --git a/files/fw16-new-colorscheme.png b/files/fw16-new-colorscheme.png new file mode 100644 index 0000000..8baec13 Binary files /dev/null and b/files/fw16-new-colorscheme.png differ diff --git a/files/fw16-new-new-colorscheme.png b/files/fw16-new-new-colorscheme.png new file mode 100644 index 0000000..7861827 Binary files /dev/null and b/files/fw16-new-new-colorscheme.png differ diff --git a/files/home_visit_counter b/files/home_visit_counter new file mode 100644 index 0000000..d35b639 --- /dev/null +++ b/files/home_visit_counter @@ -0,0 +1,2889 @@ +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit +visit diff --git a/files/homepage-statements/1 b/files/homepage-statements/1 new file mode 100644 index 0000000..6ec5ba4 --- /dev/null +++ b/files/homepage-statements/1 @@ -0,0 +1 @@ +I hate computers diff --git a/files/homepage-statements/10 b/files/homepage-statements/10 new file mode 100644 index 0000000..0c90cff --- /dev/null +++ b/files/homepage-statements/10 @@ -0,0 +1,13 @@ +
+     /\__/\
+    /`    '\
+  === 0  0 ===
+    \  --  /
+   /        \
+  /          \
+ |            |
+  \  ||  ||  /
+   \_oo__oo_/#######o
+(portrait of Natalie[ee])
+-- albert
+
diff --git a/files/homepage-statements/11 b/files/homepage-statements/11 new file mode 100644 index 0000000..d2a6cdb --- /dev/null +++ b/files/homepage-statements/11 @@ -0,0 +1 @@ +by viewing this website you agree to give me no less than two hundred dollars diff --git a/files/homepage-statements/12 b/files/homepage-statements/12 new file mode 100644 index 0000000..2bd681e --- /dev/null +++ b/files/homepage-statements/12 @@ -0,0 +1 @@ +by viewing this website, you agree to the terms & conditionss diff --git a/files/homepage-statements/2 b/files/homepage-statements/2 new file mode 100644 index 0000000..f94ab13 --- /dev/null +++ b/files/homepage-statements/2 @@ -0,0 +1 @@ +meow :3 diff --git a/files/homepage-statements/3 b/files/homepage-statements/3 new file mode 100644 index 0000000..7b1bead --- /dev/null +++ b/files/homepage-statements/3 @@ -0,0 +1 @@ +apparently I am like a ferret? diff --git a/files/homepage-statements/4 b/files/homepage-statements/4 new file mode 100644 index 0000000..601f1d9 --- /dev/null +++ b/files/homepage-statements/4 @@ -0,0 +1 @@ +so called "functional human" diff --git a/files/homepage-statements/5 b/files/homepage-statements/5 new file mode 100644 index 0000000..a5c1f09 --- /dev/null +++ b/files/homepage-statements/5 @@ -0,0 +1 @@ +one of the good ones diff --git a/files/homepage-statements/6 b/files/homepage-statements/6 new file mode 100644 index 0000000..3cd12ac --- /dev/null +++ b/files/homepage-statements/6 @@ -0,0 +1 @@ +ray blanchard kinnie diff --git a/files/homepage-statements/7 b/files/homepage-statements/7 new file mode 100644 index 0000000..0ba51bd --- /dev/null +++ b/files/homepage-statements/7 @@ -0,0 +1 @@ +not a catgirl but genuinely diff --git a/files/homepage-statements/8 b/files/homepage-statements/8 new file mode 100644 index 0000000..ba1698e --- /dev/null +++ b/files/homepage-statements/8 @@ -0,0 +1 @@ +actively confusing to perceive diff --git a/files/homepage-statements/9 b/files/homepage-statements/9 new file mode 100644 index 0000000..fa8131e --- /dev/null +++ b/files/homepage-statements/9 @@ -0,0 +1 @@ +[eeeeeeeeeeeeeeeeeeeeee] diff --git a/files/html5.png b/files/html5.png new file mode 100644 index 0000000..36c23e6 Binary files /dev/null and b/files/html5.png differ diff --git a/files/keybinds_graph.png b/files/keybinds_graph.png new file mode 100644 index 0000000..dc8eea6 Binary files /dev/null and b/files/keybinds_graph.png differ diff --git a/files/laptop-charger-barrel.jpg b/files/laptop-charger-barrel.jpg new file mode 100644 index 0000000..d002e8f Binary files /dev/null and b/files/laptop-charger-barrel.jpg differ diff --git a/files/laptop-keyboard.png b/files/laptop-keyboard.png new file mode 100644 index 0000000..b64efe4 Binary files /dev/null and b/files/laptop-keyboard.png differ diff --git a/files/laptop-radio.jpg b/files/laptop-radio.jpg new file mode 100644 index 0000000..81bceb8 Binary files /dev/null and b/files/laptop-radio.jpg differ diff --git a/files/laptop-xkb-geometry.png b/files/laptop-xkb-geometry.png new file mode 100644 index 0000000..cc8a54f Binary files /dev/null and b/files/laptop-xkb-geometry.png differ diff --git a/files/my-laptop.png b/files/my-laptop.png new file mode 100644 index 0000000..e6b186f Binary files /dev/null and b/files/my-laptop.png differ diff --git a/files/natalie-holding-server.png b/files/natalie-holding-server.png new file mode 100644 index 0000000..f6613ec Binary files /dev/null and b/files/natalie-holding-server.png differ diff --git a/files/natalie-sightings/bad-front-camera.jpg b/files/natalie-sightings/bad-front-camera.jpg new file mode 100644 index 0000000..b18d957 Binary files /dev/null and b/files/natalie-sightings/bad-front-camera.jpg differ diff --git a/files/natalie-sightings/fixing-kingwood-beltsander.jpg b/files/natalie-sightings/fixing-kingwood-beltsander.jpg new file mode 100644 index 0000000..0a88fa1 Binary files /dev/null and b/files/natalie-sightings/fixing-kingwood-beltsander.jpg differ diff --git a/files/natalie-sightings/narrow-gauge-falling-over.jpg b/files/natalie-sightings/narrow-gauge-falling-over.jpg new file mode 100644 index 0000000..47af976 Binary files /dev/null and b/files/natalie-sightings/narrow-gauge-falling-over.jpg differ diff --git a/files/natalie-sightings/newport-for-research-vessel-tour.jpg b/files/natalie-sightings/newport-for-research-vessel-tour.jpg new file mode 100644 index 0000000..884a514 Binary files /dev/null and b/files/natalie-sightings/newport-for-research-vessel-tour.jpg differ diff --git a/files/natalie-sightings/normal-headphones.jpg b/files/natalie-sightings/normal-headphones.jpg new file mode 100644 index 0000000..db7b13f Binary files /dev/null and b/files/natalie-sightings/normal-headphones.jpg differ diff --git a/files/natalie-sightings/not-on-a-crane.jpg b/files/natalie-sightings/not-on-a-crane.jpg new file mode 100644 index 0000000..9b4debb Binary files /dev/null and b/files/natalie-sightings/not-on-a-crane.jpg differ diff --git a/files/natalie-sightings/on-a-crane.jpg b/files/natalie-sightings/on-a-crane.jpg new file mode 100644 index 0000000..8a4312f Binary files /dev/null and b/files/natalie-sightings/on-a-crane.jpg differ diff --git a/files/natalie-sightings/static-hair.jpg b/files/natalie-sightings/static-hair.jpg new file mode 100644 index 0000000..518912e Binary files /dev/null and b/files/natalie-sightings/static-hair.jpg differ diff --git a/files/natalie-sightings/wall-time.png b/files/natalie-sightings/wall-time.png new file mode 100644 index 0000000..b5076e5 Binary files /dev/null and b/files/natalie-sightings/wall-time.png differ diff --git a/files/natalie-sightings/wave-measuring-radar-I-think.jpg b/files/natalie-sightings/wave-measuring-radar-I-think.jpg new file mode 100644 index 0000000..21bee1d Binary files /dev/null and b/files/natalie-sightings/wave-measuring-radar-I-think.jpg differ diff --git a/files/posts-to-homepage/post_2024-01-15_12:44:10-740.txt b/files/posts-to-homepage/post_2024-01-15_12:44:10-740.txt new file mode 100644 index 0000000..8fd7323 --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_12:44:10-740.txt @@ -0,0 +1 @@ +natalie@2024-01-15_12:44:10-740
this is a test 2

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_12:44:18-939.txt b/files/posts-to-homepage/post_2024-01-15_12:44:18-939.txt new file mode 100644 index 0000000..ff2ceaa --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_12:44:18-939.txt @@ -0,0 +1 @@ +natalie@2024-01-15_12:44:18-939
this is a test 2

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_12:44:46-863.txt b/files/posts-to-homepage/post_2024-01-15_12:44:46-863.txt new file mode 100644 index 0000000..8a31162 --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_12:44:46-863.txt @@ -0,0 +1 @@ +natalie@2024-01-15_12:44:46-863
ok great it works

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_12:47:50-503.txt b/files/posts-to-homepage/post_2024-01-15_12:47:50-503.txt new file mode 100644 index 0000000..21f1fcd --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_12:47:50-503.txt @@ -0,0 +1 @@ +natalie@2024-01-15_12:47:50-503
and it displays in chronological order

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_14:01:16-657.txt b/files/posts-to-homepage/post_2024-01-15_14:01:16-657.txt new file mode 100644 index 0000000..801ede3 --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_14:01:16-657.txt @@ -0,0 +1 @@ +Odette@2024-01-15_14:01:16-657
this is very cool

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_14:01:32-242.txt b/files/posts-to-homepage/post_2024-01-15_14:01:32-242.txt new file mode 100644 index 0000000..d6335ab --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_14:01:32-242.txt @@ -0,0 +1 @@ +estelle@2024-01-15_14:01:32-242
full bridge rectifier

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_14:01:56-977.txt b/files/posts-to-homepage/post_2024-01-15_14:01:56-977.txt new file mode 100644 index 0000000..8ab59cb --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_14:01:56-977.txt @@ -0,0 +1 @@ +Odette@2024-01-15_14:01:56-977
this is very cool

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-01-15_15:28:37-735.txt b/files/posts-to-homepage/post_2024-01-15_15:28:37-735.txt new file mode 100644 index 0000000..b2ce130 --- /dev/null +++ b/files/posts-to-homepage/post_2024-01-15_15:28:37-735.txt @@ -0,0 +1 @@ +natalie@2024-01-15_15:28:37-735
test backend change

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-02-16_12:39:24-502.txt b/files/posts-to-homepage/post_2024-02-16_12:39:24-502.txt new file mode 100644 index 0000000..d3946b6 --- /dev/null +++ b/files/posts-to-homepage/post_2024-02-16_12:39:24-502.txt @@ -0,0 +1 @@ +cecilie @2024-02-16_12:39:24-502
you should read gideon the ninth

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-02-26_22:35:03-603.txt b/files/posts-to-homepage/post_2024-02-26_22:35:03-603.txt new file mode 100644 index 0000000..87cc08e --- /dev/null +++ b/files/posts-to-homepage/post_2024-02-26_22:35:03-603.txt @@ -0,0 +1 @@ +Harvey @2024-02-26_22:35:03-603
wowzers

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-09_18:16:23-175.txt b/files/posts-to-homepage/post_2024-04-09_18:16:23-175.txt new file mode 100644 index 0000000..1294135 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-09_18:16:23-175.txt @@ -0,0 +1 @@ +samwich@2024-04-09_18:16:23-175
what about gideon the first and gideon the second and gideon the third and gideon the fourth and gideon the fifth and gideon the sixth and gideon the seventh and gideon the eighth

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-09_18:19:51-247.txt b/files/posts-to-homepage/post_2024-04-09_18:19:51-247.txt new file mode 100644 index 0000000..64e57d4 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-09_18:19:51-247.txt @@ -0,0 +1 @@ +BNYG1RL@2024-04-09_18:19:51-247
WHAT IF GIRLS COULD KISS OTHER GIRLS??? HUGE IF TRUE. CHAT. THIS IS PAWSOME

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_14:34:08-940.txt b/files/posts-to-homepage/post_2024-04-10_14:34:08-940.txt new file mode 100644 index 0000000..e8f042e --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_14:34:08-940.txt @@ -0,0 +1 @@ +PUPYG1RL@2024-04-10_14:34:08-940
this would be incredible if BNYG1RL is right

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_14:36:58-000.txt b/files/posts-to-homepage/post_2024-04-10_14:36:58-000.txt new file mode 100644 index 0000000..86e434a --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_14:36:58-000.txt @@ -0,0 +1 @@ +PUPYG1RL@2024-04-10_14:36:58-000
pawsome indeed

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_15:40:01-996.txt b/files/posts-to-homepage/post_2024-04-10_15:40:01-996.txt new file mode 100644 index 0000000..e92345a --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:40:01-996.txt @@ -0,0 +1 @@ +gexfan1997@2024-04-10_15:40:01-996
$[echo "more like gecko"]

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_15:51:25-822.txt b/files/posts-to-homepage/post_2024-04-10_15:51:25-822.txt new file mode 100644 index 0000000..e3a6aa1 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:51:25-822.txt @@ -0,0 +1 @@ +sanitization tester@2024-04-10_15:51:25-822
)marquee

diff --git a/files/posts-to-homepage/post_2024-04-10_15:51:43-966.txt b/files/posts-to-homepage/post_2024-04-10_15:51:43-966.txt new file mode 100644 index 0000000..5f37eab --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:51:43-966.txt @@ -0,0 +1 @@ +gexfan1997@2024-04-10_15:51:43-966
i am not quite sure what i have just witnessed.

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_15:53:19-027.txt b/files/posts-to-homepage/post_2024-04-10_15:53:19-027.txt new file mode 100644 index 0000000..ee31e1e --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:53:19-027.txt @@ -0,0 +1 @@ +gexfan1997@2024-04-10_15:53:19-027
<b>bold test ?</b>

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_15:53:30-295.txt b/files/posts-to-homepage/post_2024-04-10_15:53:30-295.txt new file mode 100644 index 0000000..7a265f7 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:53:30-295.txt @@ -0,0 +1 @@ +gexfan1997@2024-04-10_15:53:30-295
darn

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_15:54:07-529.txt b/files/posts-to-homepage/post_2024-04-10_15:54:07-529.txt new file mode 100644 index 0000000..b79dab5 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:54:07-529.txt @@ -0,0 +1 @@ +sanitization tester@2024-04-10_15:54:07-529
you have just whitnessed a lack of sanitization

diff --git a/files/posts-to-homepage/post_2024-04-10_15:55:53-767.txt b/files/posts-to-homepage/post_2024-04-10_15:55:53-767.txt new file mode 100644 index 0000000..d959668 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_15:55:53-767.txt @@ -0,0 +1 @@ +gexfan1997@2024-04-10_15:55:53-767
i have just witnessed some bash related funny business with an ssh key and then the removal of said ssh key

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_16:00:09-689.txt b/files/posts-to-homepage/post_2024-04-10_16:00:09-689.txt new file mode 100644 index 0000000..70a5ae3 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_16:00:09-689.txt @@ -0,0 +1 @@ +sanitization tester@2024-04-10_16:00:09-689
well yes, but the removal was me just deleting the ssh key messages, I don't love leaving random public ssh keys publically accessible

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_16:08:47-051.txt b/files/posts-to-homepage/post_2024-04-10_16:08:47-051.txt new file mode 100644 index 0000000..9380964 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_16:08:47-051.txt @@ -0,0 +1 @@ +sanitization tester@2024-04-10_16:08:47-051
I can just add raw html now lol


diff --git a/files/posts-to-homepage/post_2024-04-10_16:11:34-637.txt b/files/posts-to-homepage/post_2024-04-10_16:11:34-637.txt new file mode 100644 index 0000000..70ce02e --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_16:11:34-637.txt @@ -0,0 +1 @@ +gexfan1997@2024-04-10_16:11:34-637
wait i thought you were the site owner are you not...

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_16:39:32-933.txt b/files/posts-to-homepage/post_2024-04-10_16:39:32-933.txt new file mode 100644 index 0000000..47bb45d --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_16:39:32-933.txt @@ -0,0 +1 @@ +sanitization tester@2024-04-10_16:39:32-933
nope, natalie will rewrite the server code to fix this soon

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_17:31:12-327.txt b/files/posts-to-homepage/post_2024-04-10_17:31:12-327.txt new file mode 100644 index 0000000..1eed64f --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_17:31:12-327.txt @@ -0,0 +1 @@ +natalie@2024-04-10_17:31:12-327
dammit albert

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-10_22:17:12-309.txt b/files/posts-to-homepage/post_2024-04-10_22:17:12-309.txt new file mode 100644 index 0000000..e000e14 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-10_22:17:12-309.txt @@ -0,0 +1 @@ +sanitization tester@2024-04-10_22:17:12-309
lol

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-26_14:43:47-369.txt b/files/posts-to-homepage/post_2024-04-26_14:43:47-369.txt new file mode 100644 index 0000000..2c672a1 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-26_14:43:47-369.txt @@ -0,0 +1 @@ +test@2024-04-26_14:43:47-369
<scirpt>alert('hi')</script>

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-26_14:44:27-701.txt b/files/posts-to-homepage/post_2024-04-26_14:44:27-701.txt new file mode 100644 index 0000000..593a900 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-26_14:44:27-701.txt @@ -0,0 +1 @@ +test@2024-04-26_14:44:27-701
<script>alert('hi')</script>

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-26_14:44:37-280.txt b/files/posts-to-homepage/post_2024-04-26_14:44:37-280.txt new file mode 100644 index 0000000..d243dc2 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-26_14:44:37-280.txt @@ -0,0 +1 @@ +test@2024-04-26_14:44:37-280
<script>alert('hi')</script>

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-04-26_15:27:32-592.txt b/files/posts-to-homepage/post_2024-04-26_15:27:32-592.txt new file mode 100644 index 0000000..46a4041 --- /dev/null +++ b/files/posts-to-homepage/post_2024-04-26_15:27:32-592.txt @@ -0,0 +1 @@ +Nat@2024-04-26_15:27:32-592
lol nice try

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_18:23:45-362.txt b/files/posts-to-homepage/post_2024-05-03_18:23:45-362.txt new file mode 100644 index 0000000..ec41cd5 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_18:23:45-362.txt @@ -0,0 +1 @@ +more of said test ‮and some more text@2024-05-03_18:23:45-362
just a test ‮aoeu

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_18:26:19-741.txt b/files/posts-to-homepage/post_2024-05-03_18:26:19-741.txt new file mode 100644 index 0000000..e2a9943 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_18:26:19-741.txt @@ -0,0 +1 @@ +@2024-05-03_18:26:19-741
hey check out the date this was posted

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_19:39:50-803.txt b/files/posts-to-homepage/post_2024-05-03_19:39:50-803.txt new file mode 100644 index 0000000..2b919d2 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_19:39:50-803.txt @@ -0,0 +1 @@ +cecilie@2024-05-03_19:39:50-803
🟥

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_20:14:04-519.txt b/files/posts-to-homepage/post_2024-05-03_20:14:04-519.txt new file mode 100644 index 0000000..ea40d3f --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_20:14:04-519.txt @@ -0,0 +1 @@ +cecilie@2024-05-03_20:14:04-519
🟥

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_22:07:28-694.txt b/files/posts-to-homepage/post_2024-05-03_22:07:28-694.txt new file mode 100644 index 0000000..fc56d9b --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_22:07:28-694.txt @@ -0,0 +1 @@ +test�@2024-05-03_22:07:28-694
test�

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_22:13:53-986.txt b/files/posts-to-homepage/post_2024-05-03_22:13:53-986.txt new file mode 100644 index 0000000..a1e8350 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_22:13:53-986.txt @@ -0,0 +1,3 @@ +sanitization tester@2024-05-03_22:13:53-986
testab?c?d?e?f?g?h?i?j k +l?m?n +o?p?q?r?s?t?u?v?w?x?y?z?A?B?C?D?E?F?G

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_22:28:16-811.txt b/files/posts-to-homepage/post_2024-05-03_22:28:16-811.txt new file mode 100644 index 0000000..8cf7de8 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_22:28:16-811.txt @@ -0,0 +1 @@ +sanitization tester@2024-05-03_22:28:16-811
lol 7f80�81�82�83�84�85�86�87�88�89�8a�8b�8c�8d�8e�8f�90�91�92�93�94�95�96�97�98�99�9a�9b�9c�9d�9e�9f�a0�a1�a2�a3�a4�a5�a6�a7�a8�a9�aa�ab�ac�ad�ae�af�b0�b1�b2�b3�b4�b5�b6�b7�b8�b9�ba�bb�bc�bd�be�bf�c0�c1�c2�c3�c4�c5�c6�c7�c8�c9�ca�cb�cc�cd�ce�cf�d0�d1�d2�d3�d4�d5�d6�d7�d8�d9�da�db�dc�dd�de�df�e0�e1�e2�e3�e4�e5�e6�e7�e8�e9�ea�eb�ec�ed�ee�ef�f0�f1�f2�f3�f4�f5�f6�f7�f8�f9�fa�fb�fc�fd�fe�ff�done

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_22:48:15-132.txt b/files/posts-to-homepage/post_2024-05-03_22:48:15-132.txt new file mode 100644 index 0000000..3a212e6 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_22:48:15-132.txt @@ -0,0 +1 @@ +sanitization tester@2024-05-03_22:48:15-132
��This is a test of utf 16. .tset - test ?�?�?�?� end

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-03_23:02:59-957.txt b/files/posts-to-homepage/post_2024-05-03_23:02:59-957.txt new file mode 100644 index 0000000..77104e5 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-03_23:02:59-957.txt @@ -0,0 +1 @@ +sanitization tester@2024-05-03_23:02:59-957
conclusion: there are still more things to test but there is a reasonably adequate amount of sanitization. Sorry about the random garbage clogging up your screen for the next few messages.

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-05-17_10:09:26-633.txt b/files/posts-to-homepage/post_2024-05-17_10:09:26-633.txt new file mode 100644 index 0000000..45b51b9 --- /dev/null +++ b/files/posts-to-homepage/post_2024-05-17_10:09:26-633.txt @@ -0,0 +1 @@ +PUPYG1RL@2024-05-17_10:09:26-633
arbitrary data

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-06-01_07:30:39-709.txt b/files/posts-to-homepage/post_2024-06-01_07:30:39-709.txt new file mode 100644 index 0000000..dafecb0 --- /dev/null +++ b/files/posts-to-homepage/post_2024-06-01_07:30:39-709.txt @@ -0,0 +1 @@ +samwich@2024-06-01_07:30:39-709
woah new theme also nice 88x31s

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-06-01_07:30:48-909.txt b/files/posts-to-homepage/post_2024-06-01_07:30:48-909.txt new file mode 100644 index 0000000..a793247 --- /dev/null +++ b/files/posts-to-homepage/post_2024-06-01_07:30:48-909.txt @@ -0,0 +1 @@ +samwich@2024-06-01_07:30:48-909
woah new theme also nice 88x31s

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-06-01_07:30:56-153.txt b/files/posts-to-homepage/post_2024-06-01_07:30:56-153.txt new file mode 100644 index 0000000..346797c --- /dev/null +++ b/files/posts-to-homepage/post_2024-06-01_07:30:56-153.txt @@ -0,0 +1 @@ +samwich@2024-06-01_07:30:56-153
woah new theme also nice 88x31s

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_02:43:16-916.txt b/files/posts-to-homepage/post_2024-07-07_02:43:16-916.txt new file mode 100644 index 0000000..a0ed7aa --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_02:43:16-916.txt @@ -0,0 +1 @@ +iris@2024-07-07_02:43:16-916
meow :3

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_02:44:09-894.txt b/files/posts-to-homepage/post_2024-07-07_02:44:09-894.txt new file mode 100644 index 0000000..c8d8582 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_02:44:09-894.txt @@ -0,0 +1 @@ +Stellan@2024-07-07_02:44:09-894
Eating macking cheese from the michael wave

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:38:29-881.txt b/files/posts-to-homepage/post_2024-07-07_04:38:29-881.txt new file mode 100644 index 0000000..eea2a3f --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:38:29-881.txt @@ -0,0 +1 @@ +samwich@2024-07-07_04:38:29-881
grrrrr update name font to not be scientifica it is not defined with @font-face grrrrrrrr

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:38:46-629.txt b/files/posts-to-homepage/post_2024-07-07_04:38:46-629.txt new file mode 100644 index 0000000..73b65ad --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:38:46-629.txt @@ -0,0 +1 @@ +samwich@2024-07-07_04:38:46-629
grrrrr update name font to not be scientifica it is not defined with @font-face grrrrrrrr

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:47:40-613.txt b/files/posts-to-homepage/post_2024-07-07_04:47:40-613.txt new file mode 100644 index 0000000..55a182d --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:47:40-613.txt @@ -0,0 +1 @@ +samwich@2024-07-07_04:47:40-613
grrrrr update name font to not be scientifica it is not defined with @font-face grrrrrrrr

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:48:34-488.txt b/files/posts-to-homepage/post_2024-07-07_04:48:34-488.txt new file mode 100644 index 0000000..41c1246 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:48:34-488.txt @@ -0,0 +1 @@ +samwich@2024-07-07_04:48:34-488
WHY DOES THIS SITE HATE ME I ONLY SENT IT ONCE...

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:48:35-488.txt b/files/posts-to-homepage/post_2024-07-07_04:48:35-488.txt new file mode 100644 index 0000000..41c1246 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:48:35-488.txt @@ -0,0 +1 @@ +samwich@2024-07-07_04:48:34-488
WHY DOES THIS SITE HATE ME I ONLY SENT IT ONCE...

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:48:38-488.txt b/files/posts-to-homepage/post_2024-07-07_04:48:38-488.txt new file mode 100644 index 0000000..41c1246 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:48:38-488.txt @@ -0,0 +1 @@ +samwich@2024-07-07_04:48:34-488
WHY DOES THIS SITE HATE ME I ONLY SENT IT ONCE...

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:54:26-562.txt b/files/posts-to-homepage/post_2024-07-07_04:54:26-562.txt new file mode 100644 index 0000000..45a28eb --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:54:26-562.txt @@ -0,0 +1 @@ +sanitization tester@2024-07-07_04:54:26-562
the @ symbol looks fine and significantly less like an amogus than ඞ

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:54:34-333.txt b/files/posts-to-homepage/post_2024-07-07_04:54:34-333.txt new file mode 100644 index 0000000..9868435 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:54:34-333.txt @@ -0,0 +1 @@ +Nat@2024-07-07_04:54:34-333
lol

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_04:55:51-947.txt b/files/posts-to-homepage/post_2024-07-07_04:55:51-947.txt new file mode 100644 index 0000000..e43238d --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_04:55:51-947.txt @@ -0,0 +1 @@ +sanitization tester@2024-07-07_04:55:51-947
to be clear that is not sarcasm I thought samwich had posted about hating the @ before this point

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-07_05:00:37-462.txt b/files/posts-to-homepage/post_2024-07-07_05:00:37-462.txt new file mode 100644 index 0000000..ffd54bc --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-07_05:00:37-462.txt @@ -0,0 +1 @@ +beetles juice@2024-07-07_05:00:37-462
juice

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-24_20:51:50-094.txt b/files/posts-to-homepage/post_2024-07-24_20:51:50-094.txt new file mode 100644 index 0000000..2662719 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-24_20:51:50-094.txt @@ -0,0 +1 @@ +gnat@2024-07-24_20:51:50-094
response to samwich@2024-07-07_04:47:40-613: yeah ok sure.

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_03:25:57-261.txt b/files/posts-to-homepage/post_2024-07-25_03:25:57-261.txt new file mode 100644 index 0000000..1245d51 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_03:25:57-261.txt @@ -0,0 +1 @@ +bunbun@2024-07-25_03:25:57-261
have some pi↵

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_03:43:54-147.txt b/files/posts-to-homepage/post_2024-07-25_03:43:54-147.txt new file mode 100644 index 0000000..cb1533c --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_03:43:54-147.txt @@ -0,0 +1 @@ +bunbun2@2024-07-25_03:43:54-147
lemme try that again

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_04:10:10-690.txt b/files/posts-to-homepage/post_2024-07-25_04:10:10-690.txt new file mode 100644 index 0000000..fb0461c --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_04:10:10-690.txt @@ -0,0 +1 @@ +bunbun@2024-07-25_04:10:10-690
i'm gonna kill natalie

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_04:14:10-633.txt b/files/posts-to-homepage/post_2024-07-25_04:14:10-633.txt new file mode 100644 index 0000000..b658b76 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_04:14:10-633.txt @@ -0,0 +1 @@ +bunbun@2024-07-25_04:14:10-633
foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_04:14:50-077.txt b/files/posts-to-homepage/post_2024-07-25_04:14:50-077.txt new file mode 100644 index 0000000..5f74e2c --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_04:14:50-077.txt @@ -0,0 +1 @@ +bunbun@2024-07-25_04:14:50-077
foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_04:15:24-217.txt b/files/posts-to-homepage/post_2024-07-25_04:15:24-217.txt new file mode 100644 index 0000000..1aaba12 --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_04:15:24-217.txt @@ -0,0 +1 @@ +bunbun@2024-07-25_04:15:24-217
foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar

\ No newline at end of file diff --git a/files/posts-to-homepage/post_2024-07-25_04:15:44-463.txt b/files/posts-to-homepage/post_2024-07-25_04:15:44-463.txt new file mode 100644 index 0000000..4b4098d --- /dev/null +++ b/files/posts-to-homepage/post_2024-07-25_04:15:44-463.txt @@ -0,0 +1 @@ +bunbun@2024-07-25_04:15:44-463
foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar

\ No newline at end of file diff --git a/files/stats/heartbeat b/files/stats/heartbeat new file mode 100644 index 0000000..d616f59 --- /dev/null +++ b/files/stats/heartbeat @@ -0,0 +1 @@ +heartbeat diff --git a/files/stats/song b/files/stats/song new file mode 100644 index 0000000..311adc4 --- /dev/null +++ b/files/stats/song @@ -0,0 +1 @@ +Reliqa - Cave diff --git a/files/temp/example_of_prompt_weirdness.mp4 b/files/temp/example_of_prompt_weirdness.mp4 new file mode 100644 index 0000000..358ede9 Binary files /dev/null and b/files/temp/example_of_prompt_weirdness.mp4 differ diff --git a/font/MapleMono.ttf b/font/MapleMono.ttf new file mode 100644 index 0000000..fda293b Binary files /dev/null and b/font/MapleMono.ttf differ diff --git a/font/MapleMonoItalic.ttf b/font/MapleMonoItalic.ttf new file mode 100644 index 0000000..65d222d Binary files /dev/null and b/font/MapleMonoItalic.ttf differ diff --git a/font/scientifica.ttf b/font/scientifica.ttf new file mode 100644 index 0000000..1753d31 Binary files /dev/null and b/font/scientifica.ttf differ diff --git a/font/scientificaItalic.ttf b/font/scientificaItalic.ttf new file mode 100644 index 0000000..ef29a47 Binary files /dev/null and b/font/scientificaItalic.ttf differ diff --git a/home.html b/home.html new file mode 100644 index 0000000..eba2c81 --- /dev/null +++ b/home.html @@ -0,0 +1,80 @@ +$[echo visit >> files/home_visit_counter] + + + + + + Natalie website + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

+ I'm Natalie[ee].
+ $[find files/homepage-statements/* | shuf -n1 | xargs -I % cat %]
+ home.html was last modified on $[stat -c %y ./home.html | head -c 10].
+ I am not sure what I am going to use this site for, it only exists because I was procrastinating my calculus homework bored one day.
+ Website homepage visit counter: $[cat files/home_visit_counter | wc -l] +

+ + W3C HTML5 + +
+

Particularly noteable pages

+ Information about this website
+ Information about me
+ There is also a blog. I do not use it frequently.
+ There are also random natalie thoughts. sometimes they might be interesting +
+

Directories

+ $[find -maxdepth 1 -type d | sed 1d | xargs -I% echo '%' | sed 's/\.\///g' | grep -v pycache | grep -v .git] +
+

Changelog

+
$[cat changelog]
+
+

Site file tree

+
+ File tree hidden for brevity + $[tree . | sed 's/^\./site/; s/─/-/g; s/├/|/g; s/└/\\/g; s/│/|/g' | sed '1i\
' | sed '$a\
'] +
+
+

Autistic collection of 88x31s

+ $[for file in ./files/88x31/*; do (file -i "$file" | grep -qE 'image/') && echo "" || cat "$file"; done | shuf] +
+

Post arbitrary data to my website to be displayed here

+ Yes, I do sanitize this. (No you don't --sanitization tester) Yes, I do. +
+ + + + + +
+ $[ls -r ./files/posts-to-homepage/* | xargs cat] + + diff --git a/html/I-dont-like-IT.html b/html/I-dont-like-IT.html new file mode 100644 index 0000000..65a2aa6 --- /dev/null +++ b/html/I-dont-like-IT.html @@ -0,0 +1,111 @@ + + + Not a fan of IT + + + +
+ $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

My school district's IT is mean :(

+ My school district has a very silly IT department. I am reasonably annoyed by this and have thus decided to tell whoever looks at my website about it.
+ I-dont-like-IT.html was last modified on $[stat -c %y ./html/I-dont-like-IT.html | head -c 10].
+

"""Cuban malware""" incident

+

+ It is really going to sound like I am exaggerating or making things up here. I am not, PPS IT is really like this. + Last year, the school district accused me of installing what they claimed was "Cuban malware" that had been "used in attacks against the FBI and the LA school district" on a school laptop that I fixed for a teacher. + While it was technically against IT policy to repair the laptop, I could do it in 10 minutes (the battery connector had just popped out of the connector for it on the mainboard), whereas IT would have taken like a week through the power of beaurocracy. + I of course, did not install any malware on this computer, that would be mean. The fact that I did not install malware on that computer did not stop IT from persecuting me, nor did the fact that there were not in fact any viruses on the computer I repaired.
+ This occurrence is primarily funny due to how they went about investigating me for whatever it was they thought I did. +


+

+ I will provide an approximate list of events because—as mentioned on the natalie info page—I am really bad at writing. +

+ Unfortunately, while Oregon is a two party consent state for recording conversations and I would never think to violate the law, this interaction occured before the dean failed to file the paperwork to keep the kid that sent me unwanted sexual messages and followed me home away from me. + While I would never think to record conversations with someone without their consent of course, failing to file paperwork that is arguably required for my safety and then denying the meeting in which one stated they would file paperwork is certainly the sort of thing that would prompt me to begin recording all conversations I had with someone, were I the type of person to break the law of course.
+ I really wish I had a recording of the IT security lady saying the cuban malware line. alas. +

+
+

Leaking the wifi creds

+

+ To be fair, this one is my fault. + For context, during the summer of 2022, the IT department set up a new secure network. + Previously, there was pps-wifi and pps-wifi-guest. + pps-wifi used boring old wpa2 and every student ever knew the password. + The new network, pps-wireless, used MSCHAPv2 PEAP certificate based authentication. + It should be noted that this took place before any negative interactions I had with IT. + I was aware that the IT department used to offer summer jobs/internships to students, and, given I am reasonably interested in enterprise networks, emailed some guy at the IT department inquiring about the way they were setting up their new network. + Rather rudely, in his response he stated he was disappointed in me (I am not sure why he said this). + This of course prompted the completely reasonable response of deciding I would gain unauthorized access to the new network out of spite. + I will not go in to detail about how this was achieved, but I will state that I genuinely actually seriously (this comes off as sarcastic maybe, I am actually being serious though.) did not commit any crimes in doing so. + I was successful in getting credentials to the network, of course. +

+

+ Now, this year, I was following my standard practice of paying little attention in class and instead working on some random computer thing. + IT had, for whatever reason, blocked the documentation on zsh. + I thought this was stupid and dumb and out of sheer boredom posted the credentials for pps-wireless in a school discord server. + Should I have done this? No, it was fully stupid, but oh well. + Anyways, I got interviewed by the dean and cybersecurity lady from IT. + For whatever reason, the dean said the word "human" 9 times in the interview, 6 of these times were consecutively. + The dean also kept talking down to me, which is probably because I'm autistic or something so naturally I mustn't understand anything ever. +

+

+ Now then, funny part: They decided to suspend me for one day, which like sure, whatever, I'm fine with that, I did break the rules and actions like that do generally have consequences. + They did not however revoke the network certificate I had used and posted. I have no idea why they did not do this and thus given my previous encounters with IT, I must assume incompetence. + If my understanding of their network is correct (which is reasonably likely), they would have very easily been able to revoke the leaked cert and issue a new one. No clue why they didn't. + Anyways, the important part is I received this email: +

+ +

+ Problems with this email:

+ Ridiculous email, 10/10, made me laugh.

+

+
+

Misc

+ +
+ + diff --git a/html/albert-hack-1.html b/html/albert-hack-1.html new file mode 100644 index 0000000..6dc6570 --- /dev/null +++ b/html/albert-hack-1.html @@ -0,0 +1,27 @@ + + + Not a fan of IT + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +
+

Friend hacked my website lol

+

But how?

+
+

+ Prior to me rewriting the backend of my website, there was a bug that would allow a bash command in a comment inside $[echo \$\[\]] and not containing < or &rt; to be executed if you querried the url /html/%2e%2e/files/posts-to-homepage/{post file}. + This was due to any url beginning with '/html/' being unconditionally put through parse_file(), which generates static content from the embedded bash in the html (see ). + In addition to this, the source code of the server could be attained via a similar method, requesting the path of the file, but with /files/ or /html/ in front of it, followed by %2e%2e. +

+

+ Albert was able to exploit this by first getting the source code of the webserver via the second method discussed above, examining it, and deducing the first vulnerability mentioned above. + Upon discovering the RCE available via the comment untrusted command evaluation, they were able to add an ssh key to my server and thus gain a shell. + Amazingly, at the same time that they did this, my other friend's girlfriend (appearing in the comments as gexfan) was halfheartedly trying to mess with my site. + This ended with around 15 messages on discord telling me my site had been hacked, only around two of which were from albert. +

+
+ + diff --git a/html/blanchard.html b/html/blanchard.html new file mode 100644 index 0000000..263b64c --- /dev/null +++ b/html/blanchard.html @@ -0,0 +1,167 @@ + + +Generated by libcaca 0.99.beta20 + +
+;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Xt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:;;;;;;;;;;t;;;S88@%%SSSSSSXSXXXXX@X@X@X@@@@@@@@@@@@@@@@@X@XXXXXXXXXXXXSXSSSSSSSS%%%%%%%%%%%%
+;:;:;;:;;;::;:;;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;;:t;;;;;;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;;:;;;;;:;:;:;;;;;S88S%%SSSSSSXXS8%8S8%S%@8S8S8SS%8S8X@8S@X@888888888@88X88X88S88S8@SSSS%S%%%%%%
+;;:;:;;;;;;;:;;:;;;:;;;:;;:;;:;;;:;;:;;:;;;:;;:;;:;;;;;;;;;;;;t:;:;;:;;;:;;:;;:;;;:;;:;;:;;;:;;:;;:;;;:;;:;;;;;:;:;;;;;;;;%888%8@S8888888@88888@@888888@S888@@88@@@888@88888888888@88@88X8888SS8@%S8@%S%
+;;;:;:;;;;;;;:;;;:;;:;:;;:;;:;;:;;:;;:;;:;:;;:;;:;;:;:t;;;;;;;t;:;:;;:;:;;:;;:;;:;;:;;:;;:;:;;:;;:;;:;;:;:;t;;:;:;:8 8 ;;;%888X@SX@@@@8@8@8888888888888888888888888888888888888888888888888888X@88X@S888
+;;;;:;:;;;;;t::;:;;:;;;:;;;:;;:;;:;;;;:;;;;:;;;:;;:;;:;t;;;;;;;;:;;:;;;;:;;;:;;:;;:;;;;:;;;;:;;;:;;:;;:;:tt;;:;;:;. : ;;%tSXX8@S8888888888@8888888888888888888888888888888888888888888888888888888888@88
+t;;8 :;:;:;;;t;:;;:;;:;;;:;;;:;;:;;:;;;:;:;;;:;;;:;;:;:t;;;;;t;;::;;:;:;;;:;;;:;;:;;:;;;:;:;;;:;;;;;;:;:tt;;:;:;;8 ;;tt88.;tX88@@X8@888888888888888888888888888888888888888888888888888888888@8888888888
+tt: S :;:;;;;;t;::;;:;;:;;:;;;:;;;:;:;;;;;:;:;;:;;;:;;:;;t;t;;;:;:;;;;;:;:;;:;;;:;;:;:;;;;;:;:;;:;:;:;;tt;:;;:;:. ;;tt; :;;;X8S8888888888888888888888888888888888888888888888888888888888888888888888888
+%t8  :8 :;:;:;;tt::;;;:;;;;:;;;:;;;;;:;:;;;;;:;;:;;;:;::;;;;;;:;:;:;:;:;;;:;;:;;;:;;;;:;:;;;;;:;;:;;;ttt:;;:;;;88;tttS 8%;;t8@X8@888888888888888.8888888888888S888 88888 8888888888888888888888888888888
+%t:;t8 8 :;:;;;%;::;;;:;;;:;:;;:;:;;;;:;:;:;;;;:;;;:;::;;;:;:;:;;:;;;;:;;;:;;:;;;:;;:;;:;:;;;;;tt%tt;;t;t;;88:%%S8:;Xt;;;X@8888888888888.8.8.8888.888 88888.88 888:888888 88 888888 888888888888888888
+XS8:%%;8t.S tttt;t%%%%t;;;:;;;;;:;:;;:;:;;;:;;:;:;:;;;;:;::;:;::;:;;:;:;;;:;;;:;;:;;::;:t%%%%%%%%%t;;t;tt%%8 ;8;S:%SS%%St;t@@88888t88t8 88888:88:8888 888888888888.888 888888888888888888888888888888888
+@8;@XX8%8.:8;S.%%ttt;ttt%t%%%t%t;:;::;;;:;:;;:;;;;;:;:;;:;::;:;:;:;;;;;:;:;;:;;:;;;:;:;;tt;:::;;;;;;;;tttt8%88%ttXSSX8888SSXX888t88888888.8S888:888S888888888%888888888 88 88888888888888888888888888888
+@S8%XS%%%S%8%:t%tt;;;;;;:;:;;;;t;;:;;:;;;;;:;;;:;:;;;;:;;:;:;:;;:;;:;:;;;;:;;:;;;:;;:;:;t;;;;:;;;;;;t;88t%%t:S%8@SXX@88@X88@88888888t88t88888%88;8:888:8888888 8 88.888888888888888888888888888888888888
+@8;88@XSS%SS%%t%;t;;;;::;;;;;;;;;:;:;;:;:;;;:;;;:;;:;:;;:;:;:;:;;:;;:;;:;;;:;;:;;;:;;:;tt;;:;:;;;;;;t;:%%%8X%88XSSX88X88@8X8888888t88888888%88888t888888 88888888888888888888888888888888888888888888888
+XSSS@SSSS%%%t8St;;;8t:;;:;;;:;;;;;:;:;;;;:;:;;:;;;:;;;:;;;;;:;;:;;:;;;:;:;:;;;;:;:;;;;:;t;;:;;;;88%%t%SSXX8XX@SX88@8888888@8888888888%88S8888;8888;888888888888:8888888888888888888888888888888888888888
+XXSSSSSS%8X8X%t;;;t;;:;;;;:;;;;t;::;;:;:;;:;;:;;:;;:;;;:;:;:;;:;;:;;:;;;;;;:;:;;;;:;::;tt;:;;;88;SXXSXXXSXX888888@8888888@888888888888888888888.888.8888.88888888 88888888888888888888888888888888888888
+XXSS8@S88SSSttt;;8t:;;:;;;;;;;;;;;::;;;;:;;;:;;:;;:;;:;;;;;;:;;:;;;:;;:;:;;;:;;::;;;%SSt;tt%88%X@@@@@@@88888888888888888888888888888888888%88:88888888888888888 8888888888888888888888888888888888888888
+XS8%@SSX%%ttt;;8%;;:;:;;;;;;;;t;;:;:;:;:;;:;;;:;;:;;:;;:;:;;;:;;;:;;;:;;;:;:;:;;%SSS%%SSXX8SX8@8888888888888888888888888888888888888888888888888%8:88888;8.88 88888888888888888888888888888888888888@888
+X%8@%8@%8Xt8%;tt;;:;;;;;;;;;;;;;;::;:;;;:;;:;;;:;;;:;;:;;;:;:;;:;;:;:;;:;tSSSXXXXX@@8888SX88@8888888888888888t8888888888888888888888888888;88t888888888888888888 888888888888888888888888888888888X8888X
+S@XSXX%SSt%%t8t;:;:;:;;:;;;;t;;;;:;:;;:;;:;;:;;;:;;;:;;;:;;:;;:;;;;;;:;SXSSXSX@888888888888%8@8S8S88S88888888888888%88%8888888888@888888888888:8888888 8888888888888888 888888888888888888888888@8888888
+SSS8@%8X%8S;tt;;;:;;;;;;;;;;;;t;:;:;:;;:;;;:;;:;;:;;;:;:;;:;;;;:;:;:;tX%t%XX@@8888888S88S8t888;8S8S88;8%888%888888888888 8888888@888888888888888888888888888888888888888888888888888888888888888X8@8X8X8
+SS8%SSX%%%t8%;;;;8t:;;;;;;;;;;;;:;:;:;;;:;;;:;;:;;:;;;;;;;;;:;;;;:;%XS%X@@88888888%S88:8%8%8.888.8;88:88%8888888888%88888888888@8888@88888888888888888888888.8888888888888888888888888888@8888X8X88X8X8S
+S%t8@%8Xtttt;;8t;;;;:;;;;;t;t;;;::;:;:;;;:;;;:;;;:;;:;:;:::;;::;:%X%%S@@888888888t8888.8:8:888 88 88%888888 88888888888888888888888@8888888888S8888.8888888888888888888888888888888888888888X8X88@8S8S8@
+S8tX%SSt8St;8%;;:;:;;;;;;;;;;;;:;::;;;:;:;:;:;;:;;;:;:;;;:;:;;%X@XXX@88888%888.8:8 8 888.8 8 8 8 888 8 8 888 888%88 888 8888 8888888@88888888888888888888888888888888888888888888888888888X8X88@8S8S8X8S
+StSS8@%%St8%t;;:;;;;;:;;;;;;;t;:;;:;:;;:;;;;;;:;;:;;t%SS%ttSSSSXX@@88888%8.8 88 8 88  8S8 8 888X8 8 8 8 8  8888 888888888 88888888888888888888888888888888888:8888.888888888888888888@8@8X8X8X8S8S@X8SX@
+SSSSX%t8Sttt;;:;:;:;;;;;;t;;;;:;::;:;:;;;:;:;:;X888@XXS%%%SSSSX@888888t8 8:88 8 8 8S8X 88    8S  8 8 8%8 8888 888S8 888 88 8 8 88888888888S888.888888888888888888888888888888888888888@8X8X8S8X8S8X8S8X@
+SS%%%%%Stt;;;;;:;:;;;:;;;;;t;;;:;:;:;;;:;:;t@88888@@@@X@@@@@88888%8S8%888S8 8 8 8 8S 8X 8 8 8 8S8%8888%88S 8%8S8S888 888 888888S88888 888888888888888888888888888888888888888888888@8@8X88X88X8S@X@S@X8t
+SSS%8Xt8St8%;8t;:8t;;;;t;;;;;;:;:;;;:;:%@8888888888S888888888888888888%8 888 88888S8S 8S   8S8S 88SS  8S888%8S888 8S8 8S8888 8 8 88888S888 8888888.88%8888 8888888888888888888888@88@8X8X88X@S@S@S@S@SX@
+SS%XX%%Stt%;;t::;t;;;:;;;t;;;:;:;;;tS8@8@8@8S888S8888888;8888t8 8888888888 8S8 8  888S 8888  88 %X 8S  88%S 888  8%888 8S8 88 888 8 8S8S8888 8888888888888888888888888888888888888@88@88X8X8X8S8S@X@S8X@
+SSS8X%8St8%;;;;;:;:;;;;;;;;t;:;;%X@@@88888X8SS8888888 888 8 8 88888 8888S8S8 888 8S8X 88S 8XSX %  8XS 8X %888  8@ 88888S8X8%8 8S8 8 8 8888 8888 88 888.88888.88888888888888888888@8@88@8S8S@S@S@S@S@S@St
+S%SX%%St%%;8%;8t:;;:;;;;;;;;;;%S%SXSX8S8;t%88888S88 88 8 88 88 8 8S8888 8888  8X8S8    8 S@@X8S8SXX8 XS8  S88 8X 8S 8S 8S8X8S8S8 8S8S888S88 88888888S888 8888888888888888888888888@8@8S8X8S@S@S@S@S@XX8X
+SS%8X%8St8St;t;;;:;;;;:;;;;t;t;;;%X8%888S8;8 8 88888 8888 88S888 8 888S8S8%88 S 8   888S XSSSSS @SSXXS  S XXSS 8% 8 SS8 8@8S88 8X 88 8% 8888 8888888888888%88888888888888888888@8@8X8X8X8S8X@X8S8S@X8X@%
+S%SX%SSt%%t;;;;:;8;;:;;;;;;;;;;;tS88t8.8S88 88888 8 888 8S 8%8S88S88S8   XX88@X  SS  8XXXS8@ @ SXSS8S X XSS8  X SX X%S S      888S8 888  88888%888 88 888888888888888888888888888X8S8S8S@S@S@SX@S8S@@X
+SSS8X%8Xtt8%;8%;;;;:;;;;;;:;:;;%S@8%8 888 888 8 88888S888S8 8XS SX SS888 SSX8X88 8SS X @S8@8@XS@8@SX8SSS%@S XS@8S X X S 8 8S88S:  8X 8X88 8 8 88888 888888888888888888888888@88@8X8X8S8S@S@SXX@S@X@X8%
+SSSX%SS%8X%t%t;8t;:;:;:;;;;;;%8X8888 8%8  8 % 8 8S 888X8 %S888  8  888 %8X8S@XSX S@ @X@XSXSSXXX8X8XXX@%@X8X SS 8@@8SSS X@XXXX8%  % 8S 888S8 8888888888888 888888888888888888888@8X8X88X8X8S8X8X@S@X8X8@@
+S8;S%%8@St%t8%tt;;:8 :;;:;;S8888XS8.8 8S88 8S8S8 888 8%X X XXX8XXS  8%SXS8@8X@X8@ SX@@XS@@X@XX @X888X8@888@S @XX8@XXX8X8X @X  S S S 8   %  8%8 8 888888 8888888888888888888888@8@8X8@8S8S8S@S@S@X@SX8X8S
+StSSSSX%%8S%%t;;;88;:;;;88X8888888 8 S  S%8S8X8 8X  S%8X8 XXSX 8X8%88S8 8XXX@ @S@@@8X8@8@@XX8S88S@88XX8@S8S@8X8@@8@@8@SX XS @X SSS % 8X8 8888888 888 888S88888888888888888888@88@8X8X8S@S8S@X8S@8X8@8@
+S8;S8@S8@Xt%t8S;tt;;;;:;::;S@8888.88S  8X 8X % % SSX8S@ SSXX S 8X8X8 8%XS@S XX8@SX@@X@X@@@8SXXX@X88XXS8X@8XXSXX8@8SX8X8S@X@ @@ SX8 SS8X@S   S  8S8 8X888%88888 88888888888888888888X8X8S8X8X8X8X@X8X8@8S
+S%XXX%SX%%8X%%t8%;;;;;;;;S t888;88  8S S8X 8S   S @S 8@S@88 8X8@8@888@888 XSS@@@@8@8@XX@8XX @8SX@@8X8@X8XS@8X8S@8SSX@XXSS8X@8 8SXXSXSS88 SS  8 S888X8X88888888888888888888888888X8@8X8S8X8X8X8X8X8X8@888
+XSSSS8@%8@S%t8X%t8%;t:.t. t8@8888 88 8 8S88@X 8X8@8XS 8@@XX@@% X X%8S8XX@8%8@S@8SXSX@@X8X@8XXX@8X@XXXXXX@8@8XX8@X8@8@X8XXX8%@S8S @SS8@@ @S@S%X   8S8 8888888888888888888888888@88@8X8X8X8S8X8X8X8X8@88@8
+XSXSX@S88S%8@S%t%%t;;tt;;88SS888 88 88  8@ S  SSX@8@@8888@@S XS888SX@@ @SX@XSX@SXS@XX@@8XXSXXXSX88@XXXX@88S@8@SX@X8XX@8@@8X88XXX@XX8@8S XS@8SS8 8S888 88 88 888888888888888888888X88@8X8X8X8X8X8X8@8@888
+S8tXSSX@S88X%%8Xtt8%t;ttt:S@88888888%8 8 8X SS X@8@88888XSSS8 8%8X@XSSX XSXX@XSX@XSXXXX@X@@@XXX@@@@8XX@88@8@88XX88XX8X@X@8X@X8XS888@8@XX  8X8%SX S 8S8888 88 88888888888888888888@8@88X88@8X88@88@88@888
+X%SSX88SX@SS8@S%8XStttt8S%@8X8888 8 8S8 SS X 8@ XXX8@@XXX X  8S88 %SSS8XS8SXSXX@SX@X@S@@@@@@8@X@@8@XXX8888@8@8@88@88X8X8XX8@@X888@@8XX8X 888XSS S 8X88 88888888888 88888888888888888@8@8@8X8@88888888888
+X8%XX@S88%88XS%SS%tt8S%%%S888888 888S8@SS X @ X@SSSX@@XXSS%8S8888S 8X88 @XXS@@@X@XXSXX@@@88@XXXX@8@@@8888@XX88@888@8XX8@8@@88888888@@@@X 88888XX @SS88 888888888 888888888888888888@88@88888@88888888888
+X8tXXX@@88@SS8@8@%8@S%t%888@88 888 8S% S SS8 @8X888@8@@XSS%8888%8 XX888@@@@@XX@XX@8@XX@@88@XSXXX8X8@8888@@8@@@@8888888@@8888888888@888XS 888888XXXS S 8 888%88888888888888888888888888888888888888888888
+X%S;X88@8S88XXXXSSX%%8XS@@88:888 8S8 8   S SS%X8X8@88@@S% 8%88 888S8@@X @X@@X@8@X88X@@@@@@@@XSXXXXX8@8888@@888888888888888888888888888@@X 8%8888 SSX 888 S 888 88%88888888888888888888888888888888888888
+XS%@@8X88@@88S88S8@SSXS88@888X 888 8S  8@S@ S8XX8@8@@XXXX S8X8888S8X@XXXX@XX@@X@8@X@@@@X@XXXXXX@8@X@@8@8888@@8888888888888t8888888.888888XS88 888XXX@ 8 8S88888 888 88888%88%888888888888888888888888888
+X8%XXX@8X888S@@88@S8@SX888%8S 8%8 8 8 8S S @S@88@@@@SSS8XS 8888X88.XS%XSS8@@@@@8X@@X8@X@XXXX@@@X@@X888@8@@8X8@8@8@88@888888888888%888888SS@@ 8 @8 XSS8 S8X 888888%88 888888888 888888888888888888888888S
+@8%St88888@X88@@S88@S8888S:.8888 8 888  S XSX8@X@@@@XSXSS.8888S8S S S @@@8%@@@X@@@88@X@X@XXX@@8@SX@@@88@8@@@@88X@@@8@@888888888888S88888@88@8@8 88SSSXX S8888888888888 8888 8888888 8 88888S8888888 8888
+@8t%8888@888888X@@X8888tS888 8 888  8X  SS@@@@@@8@XX8X@X@XXXX8S@XSSSS8 SXS@XX@8X@88XXX@X@X@X@@8@@8@XX@888@8@8X@@8XX@@@8@88888888XS88888888888@S8 8 @SS   88  88 8%888888888888888888888888 888 888888 8S
+@8SXX88@888888X88888@888:8 88 8  8 8@.8 SSSXX@88@@@@@@@@XXSX@XXX8X8 S 8SXXS8S@XX8@XX@X@@XX@X@X@88@@88@@@8X8@@@8XXX8888@8888888888:8;88888888:8XX8X8X@ S 8 88888888888S8 8888 888888 8 88 8888 888 888888
+@S@@8888888@8888@8@X88t88 8 888%888S.8  S SX@88888@8@@8@@SX%XSX@@XX8XX@@X @XXSX@8XX@@@@XX@8@@X@@@@8XXXX@X8@XX8XXX@@8XXX8@@8888t8888S8.8SX 8:8S888X88 X S 8X8 8 8888 888888888 8 888888%88 8 88 8 88 888.
+@8S@@@88888888888@8888.:88 8 8S 8 8S S S @X@8@88888@8X8@X@SX@@%SS@@@ 8 @X@XXXX@@@X@XSX@S@8@@8XX@@8@XX8@@@SXSSSS8SSXS8S8@8@@88@X8888888888888:88@88X88@S @   88888%88 88888%888888 8S888 88888 888 88 %8S
+88S@@8@@8888888888888;88888 8S8%888 8S  X @88888888@@@@@@X@88S@X@S@X@X8XXX8X@S8X8@XXXSX8X8X8X8SSX88X@XXX8S8 @8 X%@SXS8@X8X8@88@888%@8SX888 X8:88%888@8 X X 8 88S88S88 88S8 8SX@S8888888% t8.88X%@;%S%X8X
+@88888@888888888888888t8S.8X  %8 8 S 8X S @88@@@88888888@88888@X@8S@@8@X@8XXS8X@@XXXX8@88@888XS8X8S@8S8S%X8X%8S8S8S@XX@8XX@8@888888888888.8 8888 888t88 SSXX8t888X8SX888 88 X@@88888X8@888@X8XX;t%Xt@XX@
+8%888@8888888888888S8888 8X  88 8888   S@S@8@@X@8888888X8888888@88@X@@8@@XX@8X8X@@SX8@888@8XS@SSS888X@%@@XSX@ @SS88X8S8X8X8@888@888888%@8t888888;8888 @X%SS@8:S@SStX;t.8 8@8%S8@8XX@@X@@8@88XXXSSXXXS@8t
+88S%888888888888888888.88 8X  88S8S 8S@XX S8@8888888@88@@@888888888@@@@XX8XX@SX88XS@XX8SX@S8X8SS@@S888@SXX8S88 @X8XX@8@@8XX8@88@@88@88888888888.S8;.8@8@8 XX8.:t St88X  8   ;@t@ @ 8@8888@888@8888X@8@8:
+8tS8X8888888X8888%88t88 8 S 8S 8X 8% X%X X XX8888%S8888888888888888@8@X@8XX@X@8X@8SSX8SXXSSSX @%X@X8@8X8XXX@@XSXX8S8@88@8@XX888@88;S8;%8:%888888.8t@ t888@ @X@888.@;X:X;8:SSS8@%;:88%88888888888S@888XX8
+88@@8888888888S88888888.88  S8X 8XS SSX S X@88888X888888888888888888888@@@XXX@XSSXX%XS@8XSXSX@8S@X@@X8@SX8@88@X@XXX@@XX8@@888@888888@88%X8888@888 ::888%X88SXS8X8 8:ttS.Xt;%88tt:@;@@88X8:8888888%88888S
+8@8XXXX:X  88888888888X  8S  X S  8 %S %X@XXXX8X@888S@88@@88888888888888888@XXX@@XX8S X@@@X@XSSSX8S8XSS XSX@X@XXSSSX8X@8@8@@8888888S8888888888:XX:8888;88SS@8X.88 S;%;.S;SS8tXt :;@S@S%XXXX8888X8.X88@
+8S88@88;;S88888888Xt8; S8S8X S %   X  SS8SXX@ @X@8%t8888888888888888888888888@SX@8X@S@8@@@@@XXX X @ X XS@S@88XX@8S8 @X88@8@@@888888888888888X88X%88888 .88X888888 .SS@StS%St@:XS8.XX888@@888@X888888t8SS
+8:88X8;:%tS..8:   X:88X  8X  S S%XS SSX %8SS S8@@8@8888%S@8t;88888888888888@@8@@S8X@8XX8XXX@S8X@%X X%S%88@X@8SX@@@X@8XX@8XSSXS@X@88@8888%;88;888XX88888;8%88888@X.8St% X:%S%XS@t;X8.888@8@8S8@S@88888@8X
+SX888% %X888@S@8@8888@S:8 8S S S@SXSX  SSX8@  X@S88888888888888888888@8888@@88@XX88X88XX8SXXXX8S88@ X8X@@@@8XSX@X@XSX8@SX8X8XX8@8@88888888S8888@.888;888888@@888:@t@;t8S%@;% @@%%; ;S@@XX8S88XX8888@8888
+88X8.X88:@8X8@XSXX@S% 8S 8XX8%@ X S%S SX8S X8X@8@888t@888888888888888888@888X@@8X@X@88X@8XX8S@@XXX X8XX8XSXSSXS@@8888SX88X@@X8X88@88888888888888 8X88888%S88888S:;tS.;S::X%tt@%8X88%%S8ttt%XXX88888@
+SX@88@StS8X8XX@@@XX@XSX@S8S S SSS@XSSX  S@X% S XX@8S888888888t8S@888@8888@8@@@@@XX8@8XX@S@@ 8XSS@@S@8S8XXSSXX@XSSX@SX8SS8@8SSS@XX@8@888888t8X8888888S;:8t@8S88;88S:;ttS.8 ;XttSttS.8.SS@XXSt%8X@8t888@88
+S:88X8.%;8@@8@8@XX@@XXXXX    SXS S X   X888 S X@X88@88888@8;%888888@8888@@88888XX@X8XXS@8@ @ @SX SXS%X8%S888X@@XS@8XSX8S%XX@8S8XSXX88@88XX888.8.88 888S.88S@88888@ 8%%%;.@.StX8@;;8:tXt888;%X;@XX8888888
+SX888X;X%8X8X@8XSSXXXXXX@S 8 %  @X@  % @88 SSXS88@@888@8@8888888888888888888@@XX@SS8S8@8 @X%S X XSS SS@X88XX8@SSXX%XS@@ XS@XS8SSX8@X8@88@8%88888.8.8t.88;8S@;888@ :t@;%8X;S.S:X@%tS; :X@88tXt@tXX8X88@88
+SS88SXtSS.8@88@@XXXXSXXS X    8 S8 % % @@8X S8S%8@888888@8888tX8;S888888888@@X@XS8S88X@@SS%XSXXX%8X@S@S@8@88SXX8X8XX8@S8X8SXX@8S8S@@@@8888888888888 888888S88888SXX.X:;tS;X ;S%Xtt8: ;S88888@@XSSt%%%ttt
+SX:8@XXt;8S8@@@@8@XXX@XX%  8    S   X SS8@8S  XX@X888%88888S@888888888888@@@@@8X8X@%8@8%S X%@ X SS@@8S@XX@S8 8@8 XS@888X8X8@@88XS8@XX8@8888888.8.88888 8888S8@88@S8@X;tX:@:X ;tt%ttSXt;:;;;;;;;:;tS@t@XX
+S:8888tS;8S@XX@@XXX8888@@%8  8X8X8% S  X@SX@  SSX@8S88888%S888888t88;X88XXX8@XXXS8%@X@S8SSS%8X XX8X XSX 8SXX88@X%@@X88S@S8@S@@@8S@X8X8888888888888X888t888@XS;:;..::tttS;S;S%@:XX888@8@S%SSSt;..    @   
+SX:888SSXt8888X@888;S888@% S  @S@XS X X88@@ S X88888888;X888tS888888.t%@SX8@@XXS SSSXSS S%SX8@XS@  X@@@8@ @S@S@8S8X@@88XXXS@X@8@XX8S8@8888888X88@%88888888@88@XXSSt%:..tX%%:X :;%88888X8@8@8SS%;:. ..Xt 
+S:8;88S%.8S@X@888;X8888@@@   SS8@ @S8X X@8SSSX88@8888;S888;X88%@888t88@XX8@XSSSSX XX8S8X XS8@SX@8@ XSX8@SSXXSXSSS@S8@XSS8XSX8X@XXSXX8@X8888S@8X8888888888@.888X88@8XS%.@% X;S%@ X@X@X%@ XS @S @SXS 8S @%
+%XS888%S.88888888@8@88X888   XSXX8X8 8S X8 S8 888.88888@8888X88888X@888@X@XS XS8SSX@@SX8S X XS 8 S %S8@8X8X@XSXX@S@8SX8@@X%X8@@8@S%@@8@@8888888.t88888888888tS S X%@ 8S@S;X S:SXX X X S%S X; XtStSS;S%X;
+%;8XX.X%XX8 8t8%888@XX8@8X8X S%8X8XSSX@ @S@ SX88888888888%8888X88888@8SXSSX8XXX XSX  @X XSS@ SS@SXX@S SX8@ SS@X @ @ @S@@@@SX@8@88S8S@@@88t8X@8%8888X888:88888 %%XtX@X%X8XSSSX:S S;%XSXX%X%SS StS%S%XS8t@
+%X888.X:X88  ;;;t%t%%SSSSt8SX XXXSXSXS8XXSXX XX88888888888t88X888888@X@%SSX@8X8X8SXS S X SXSXXS@S SXSSXSSSSX88S SS@XS8888XS@XX88S  8X8888@88X8888S8t8888 8@@8 :S:S%XSS%XtXtXtS.S St@@8@8@@SSS@St@X8X8S8S
+tS88S%8%8;;8%8@88X@88888.@88S X8XXX888S@8X8XX8@888888888;S@88@88@88@@@%X @SSS8S8@8@88S@SXSX XX8X% S8@@X@X@@8XX X @ XX8@88 X XXX888X@88888%8888@8 8.%%888:;t:t8.:S.S%XSX%X%X;S%XtS%X @tX @ X @:SS;@SSS8S8
+tSS8X8888@8888@XSSS%%. @8%8S8@SX@8XXX88X8XS8@X@88888S888888888888888XSX 8SXSXX8@88S@ S @S%8@S@ @ 8 SSSXS@X8%SS@X8X8SXX888X S@X@S8XS@888@88t888888888:8888.;8%8;S.;%XXtStS  StX;X;X%X%@%@%Xt@:X%X%;%%8 @S
+t; ;S%SX%t;.::.   .  tS 88X8S:888X%S888S@X8X8X@88888:88%8@88888@88@@XSXX8S@S@8 8 XSXS 8 8@8S@@XS8@8SS@SSSS   S@S8X@X@888@S@S8888SX88888 888S8X88;:888.888;88t8 .S;S  XSX%X %tStSSX X S S X S X % XS8 X @
+%S%@ XtS%S%S%S%S@X;StS;:8;X88X 8@X@8888888888@X8888:8888S%88888@@@@X@XX%X8@@XXXX888@ @SX8X @@X@88XS888SSS@88%@SX@8@@88: @X88@88888@888S88%8:: 8:%X%8:88 %8S88@X :X.X;S S  StX X @tXtXtXt@;X;X:X;XS8%@:X 
+SSSSXSSXXXSSXSS8SSXSXSSS8888X88t8X88888888888@X@88.888888888888@8@X@8@SX88%XX8%88X88@ @S @% X88XX88S8888%8@88@@8@X@X%@X8@8888888;88@S88S8t.S .8t888888 ::;;X.t8X: StS%XS@SXtXtSSX S X SS XS8%8S8S8S8%8 X
+@XXX@@@X@S8X@@@X@@XXXS@X@88888;X %88XS.8X888@@8X888888888888@88@8X@@88XX888@888@88888SSXX8@@8@888@@@S88 88S888@88@8888XX@8@88888X. 88 t;888X@8X88@888:888@St%8.:@.S:S S S X S X  X;X X  XS X X XS 8 @t@t
+XS@X@XX@@@X@XX@XS@@S@@X%;@@8%8X .8X8 88888@@XXXX@88888888@@88X@8XXS888888888%@@88@@@X X8@X  SS@88X@88888%X8t888t8888@SX@88XX@88888tS%8@88 XXX888X:88@%88X8%8@% X.S S;StXtXtX;X;@%;@S@;@S;SS @ @SX XS @S:
+XXXXXSXS@XXS@XX@@X@XX@XSS:88888S88888X8888@SX@S SS8888@88@@@88@SSXX@@@@8888888888@88XSSX  @%S@@X@@X@88%8 8888X88X88@88888XXXX8888.88@88@8%8S8S@%%t888@X88X@;XXX.S:;X S S S S%X%S;@%8%@%X S X%@%8t8:XS..@
+XSXXXXXXXXX@XXXXXXXXXXXXS%88t8;8X888888:88S SSX SX8888888@@@X@@8X8X@@@@8888.888@88@88@SX@X@88X88:88888888888888X8S8888SSSXX@8888:8X8X88XX8888%%S8@X88888@8X SX;S;X;S;X%@S @%@%8S8S XS XS @S @t@.:8S:
+XSXXXX@XXXXXXSXXXSXXSXXSX;@@XX88888S888S:8%  @ S X8888888@X@@@X@XS8@@@@8888888888@XSS88888@@X88@ %8:888;%888;88888888888 @ XX88888888X::.;tSSt:.:;8%8@X@8@X;:%;S.X XtX% X%8SX%@S @S8%X%SXS  @t@ XSS:@.X.
+SXXSSSSSXSSSXXXSSSSSXSSSSS 8888 8S88S8@ t.@  % S SS@X8@88@XXSS@SX@X8@X8@X8@X8888@8888@888%Xt;88X @@@888888S8888@888888X@S S 8S88X %;;t%;. ;:   88888tt%t@X.;Xt S:S;X St@%8%8%8% @S @S%@S%XSSS.XS%X @S;XX
+SSSXSSSSXSSSSXSSSSSS%SS%St; 888%8888;@S8@.X   S %%X@8@@@@@@XX@SXXS88X@X8888X@X@@8888.:@@@8t@888%8888%8:88%8%X8SX8888888X@  SX@888X@. 888888 8:8:X8888%:;:%8; X.S X X X XS @ @%XS% 8S@SS@StXt:@t@S%S.XS.X
+%X%S@tX%%X%SS%%%X%%Xt%X%%S%%@888S8888 88888 S 8S  X8888X@X8@88 X @@@8@@88X8X@8888@8.@@8;8 %SSXX.88888X88888888@XX8%XS88@ XSSSXS8888888:.88888888 S8;888t888%;.S.S%@%@ X% @S8SXS@XS @S@S%@S 8S%S;X;@S.@S 
+%%XttStS%tXt%XtStSttSttXt%X@8888888%tXt@@  88%SS@@8888@@X8@8888@S X@888%@88888 X88@8X%% 8@88888;8X8%8888S888X8X8888;888SSS8X8@8;@X@X88:@t8888 888888 88tt%S S X% X%@%8S%SS @SSX @S X 8t@StX;@S%S:@S.@.
+%%S;St%tXttXttStttX;tX;tX;tSX888X@%S88%@8@SS . SX8888@XX@@XS XSX88;X@8%8@@8888@@@8X8XX%XXX@@888;X@888%888;88@X8X8X8@88XSX8 XS88:XX8%:;8;@88888@8888:%Xt88@ S StX;XS @SXSX @S@ XS .@ @ @t@S @:X:@S.@S 8
+tS;ttX;S;SttX;;S;S:S:;S;;S;;t%:@88@@8S8S;88@X %8S  888@@8X@@SX@@%SS%@@8888S8888@8@8@S8SX %@@SS@88X@@@@8@%888S88@@88888;8@@SX@ @S@88;SX8888:8888.@ 88888:8t88 X.S X%%X% @ @ X @ @  8 @ XSSS XS @ @ @S @.:
+ttS;X:ttS;S;;S;;S:;;S;;X:;X;S:t:X@8888888XX8X . 88 @8888@8@XX8@88@XSSSX@XXX@888@X8S8@S8XXX8XXS88@S@@t@8@8t88 SXX@8888@8;88X S  XS888S%8888t88@%%88888888S88@ :X;X%XSt @ X X%8 @%8 @ @S%Xt@ X 8 8 @ @X:8;
+ttS;;StX:;;X;;X:;S;S:S:;S:;S:tX  8@@888888S 8@ % % 8888@@@XXXSXXX8@@@@XX8X@@@@@ @88X S%8 XS888888888888888@ SX8XX88@@888; X  XS@8888S888888%888 88@888S%8 8tX;SS.XtXX @ XS @ X 8 @ @ X @ @ @S 8 8.@.@X;8
+t %X;tS:tX;;X::S;;S:;;X.;X.;S.;S S@X88X8X8t888 8  S%888888@XX@SS S S  S%XSSSXXX@8888888X@88@@@@88888@%8@S SS@XX8S%XXX@888X XXSX8SX8888%S88@88888888888:8;8. S S X @tX X%t.8 X @ @ @ @ 8 8 @ @ @.@X:@:X;;
+tS;;X:;S;;S;;S;;X:;S;S.S::X.;S.:;.X@@8X8 @@8@@ S   XX888888@XXX@88888S@8XX S S SS@ @8888%;8@@8888888SXS@S @%S@8@SX@@888S8X@ S%XX88@X8;;8X88@88888888t8S8888;S;S X X @S%@X @ @ XS @ @ @ 8 @ @ 8.8 X:@;@@t
+;;X.;S:;S;;S;;S:;X:;S.;:S.:S::S:X  S8888XS888@  8S   8888888@@88888XSX S  SS8X@S8X888@8@8888@88888XSSX % @ @@8@XSX@8@888X XXS  X@8@@88; @88X8@@X888888 S8;8X S:@ @ @%X  @ @ XS X @ @ @ @ @.@.@.@:@:@;X;@
+; ;X.;X:;S:;X:;X.;S::%;S.%::X.:S ;% X888X@@8X@ %   88@8888888@88@8 SX8SS8%XX8S8 XSSX@8XS888XX88@XSSSS S@8X@S8SXS@S888888X@ X 88  SS88 XS88@8XX88S@@@8888.888%S;S X% @ 8 @ X  @ @ @ @ 8 @.@.:8.8:@:8:8:8;
+;S::S.:S:;S.:S.:S.;S.:S ::@ .X :S .  S8@8XSX%%   88  S8@888@SXXX@88@88 @S@ 8 S @SS SSSS%@S XS@@@XSXS@@SSX8X888@XS@X8XX8X8 X88XSX8@S888;8888@@XX@@S8@8%88 X888SS @%@ X X .8 8 @ @ @ 8 @ 8.@:8.@.@:@:@:8;8
+: S.:S.:S.:S.:S :S :S .S.X::S S :X X  X88888:8S  %.8SX@888@@@@X@8XSXSXX%@8SX@SS%SS@XSX X S X@8@%@ SS S@ X@888@X8%88S@ @SXSS% 88888@S8%88X88@8@%@SSX@@8888t:88;S% @ @ @ 8..@ @ @ 8 8 8 8.8.8.8:@:@;8;8t8%
+: % S.%.:S .S .S  S  S  S:SS;XS S S@@X88888S 8  S @@888@@XXX%S%SS SXS@SX@%888X8XX %XS8X8X  SXSSS8SS@@S%@S@X@@X@S@X X X S88@X@@X@@8S8%@888X@ @S8X888888.88S X X  @ :@.@ .@ .8 @ 8 :;8.;;8;;t8;t8t@%%%
+  S% S % .S .S  % .SX S@t8888X..S.S888888@  8S S 8888S@XXS@S8 X8 %XXXXXS@%S8@888  SSXXS XX XS8 SSX 8 8SX@X8 @@88@SS 88@S  SSXS888:%:X8X@8X @X8@8%888@8. S X 8 .8.:8.8.:8..8 :.88::8;8:8;8;8tt8%8%8
+ S;@t  S;S.S: S: S:.S:. .X;XX88X8XS:X.:8@88@X@8X  S    X8XX@8@@8%S88 S8 8SX88@XSS@8S 888888XSS88XXSX@@8888888888@@8X88SSSX 8  888@SS888;@X.S8@@@@SX@888S888.8@St.@ 8 @:@ :@:8.8..8:8.;8:8:;8;@;t@t8t%8%%
+  SS@% S :S %..S .S..XS:X;@;:S8X@@.8 @SS8 8X@@@@%8  88S8@8@8@X@%X@@ 8 SX%XSXS8  88S 888S8888X8888S888S8X88%888888@8XX8@S8XS 88:S%S S @8X 888888@8@8;88;:8t8XSX X .8 @.8..8.:8.8:8:8:;8:8:;8;8tt8t8tt8%
+  St  X.X @tS888t :%%:X8SX@88@@8888888@@XXX@@X@@S  8S XXS@X@@@XSS @@SS@8 8 SXSS88 S88X8S888S888SS%X8X8888.8%8X.X@S X88@@SS88X % S8% X @8:;88 X8%888%@888%8;88  X.X 8.@.:@.8.8::8:;;8:8:;;8;8;tt8tt8t8%8%
+%SS8S88@SS%%%tSS888SSt;;;;X%X@@S8888888@@@S8888X@   %    @%@XXX@SXS8 X XX 8 888 888 S8888 8%8 S SX8@8X%88@ 88S. @X8X88@88@@8@88888  SSS888 8.8:8S888S88888%;XSStX 8 ;:8::8:;;8;;8t8;;;8;8:t;8t8t8%t8%%8%
+;;t@%8S8@8@@88888888888888XX@@888S88S@SS8@t 88XX8 %    @S  % @@@X@X88 8 8 888X 8888888 8 88888888@8S8888;8t8@  @S@S8S@X8XX@%X 888 888X@88;888888%X.S@;;8;.888 S:X..8:8:8;;@;8;t8t;t8t8;t;8t8ttt8t8%%8%%%
+8888888888@@8@@X@@@@@8@@88@S@@XSX8@8@@@8S88ttX888  8X S@S  @8%XX@@8 XX S%8 8SS8 8XS88 8 888S8XX88@8888@8:888SS  SXSX8 @@8XS S8:888888 X@8t;tt:88888%X8%8:8t8 @;X:8::8;;;8;t8;t8tt8%t8t%8tt8t%8t%%%8%%8%8
+8888888888888@@@@8@8@8@@@88%@@@X;X@@@S8S88t%8.8 8.%  XS8 8XSS @SX@S8%SXX SX X%888X8  888%S8SX88X8@888X@@8t @%S888S@SSS @SXSX 8@S  88S8888@%XX;:t8 88 8St%%8S St;X;;8;t8tt8tt8%t8%%8%%8%t8S%8%t8t8t%8%%8:
+888888888@8@@888X@@@88@@@@8:@@X;tStS88%X88;.8;8::;.8S@   S X%8@X88X @S88S8 8%S 888XS888S888X X@ @8SSSX%:X88X8 S%X88SX@ S S88XS888 XSX88%t@t@8%  :t::88888%XSXtt8ttt8%%8%%%t8%%8%%8%%%S%8SS8%t%t8 %8%%S
+8888@8@88@8888@@@8X8X8@8888:@@@%;tS8t8S8%8S;8S8S88  SX@ %8S X@8XS@8S@X@@@XX 8SX 888  8X8S8@ 8%@888S@XS% X88t@888@@88 X X@S 8 @S888   SXS88:%8tt.8 .@8888.8@S%t%8%tt8t%%8S%8%%%8%%8%%8S8S888@SS @::8.%8.%
+888@8@8X8X8X8@88X8X8XX@@@88t@@XX.tSSS8;;8:88 S@:S % @@   %8X%@X8XS 8 @SXXX@X@SS8 XX888@8 8 SX88888XXX8SX X8@8888888S8 %XSSS SS8 8 888XS@88% %X :8.888888@8@t@%@%t8%t%8%%%8S8S8S%8S%8SS;XXSXS t.t8 :%8:8S
+88@8@8@8X8X8X8@8X@8S8888888S@@XttS8S8S8t88S 888t888S@ S% % 8XS8@ @SS@SX@SXS8 8XX8 8 888 @S8S@S8;t8@X@ 8SXS8S88@88@@SX8; @@@8 S8888888 8X888%@ .;8 X8S:.8 X%8%%%8%%8%%%S8S%S%%S8S%8S88@@8tS%%8 :%8.%S%S
+88888@8@8X8@@88X8@8@8@88@@88@@@%;.:8:8;8%8X88@8@@t8  X  SS8@@S SS XS8SX@XXSS@S8S8XS8%8@8S@ :8888888X@XXS8@@8XSX@@@X88XS8XS  8 S8%8%8888888.%S  ;888888888@XtX%8S%%S8S8SS8S8S8SS88@8SSXSt%t8;:%8;:8S8S%
+888@8@8@88@88888X8X8@88888@.8@@%;ttt8S888@X@8@@@S.8S   XX  X   X @8SX@@8888@XX@8SS%SX888@888888@X8X@XSS@8@@88@888XSS%XX@8@8 S88888@@X88S@8%S t8:8888%888X@%XSSS%8S%%SS%SS%S8S.X8tSXSt%%8S%%8%%%8S%%S8S
+8888@8@8@8@@888@8X8@88888@8.8X@SS8%8%8 8S 8@@X%8%8    @%@%SSXX X8X@XX8@888888@8@X@X@88%888t88@8X888% X@ SS88S@8.8%@@S X888888XX 888X@SXX8;..  88888 8X88@SX%S8SSS8S8S8S8S88SS8SSSt%%%8%%8S8S8S8S%8S8%S
+88888@88888888@8@88@8@8@888t@X@S;;8%8 8 %S@8%Xt@8@:8  S % X X%8 8@XX88888 88tX8888888888;@88S8XS8888S88@88888888S8S@8XX8.8t8@8@S8888888t  8  8888X8888@8S%@XtSS8S%8@SSS t@ttS;88t%%%8%%%8%%8X8 S%;t;S%8X
+888@88@8@8@8@8888X88X@88888%SX@%S:.  8    X88St8X@88 S   SX8X8 XXXS8888@@8888@8888888@8:88 8 X8@@@8tX88%8888888 8SX@S S@S8@888t8:@8S8;888.:; 88XX888888X8@X.SS8t@8%8X@S%%8.t8@:t@SSX@8@88888888S@@X8888@
+8888@88@8888888@88@8@X@8888St@X8t888;8 8   8@88SS888%  8%SX S @S@8SXXX@888t8888888@8888888SX@8@SX8:S@88;8888888X88;X S S@@@S8888@88888:;8 8:888@8888S 8X.88 X:% 888SS;;tS88t%S8SXtt8t8@X888XXSX8SXS@X%SS
+8888888888888888@88@88888888SXXS8S8X 8  88 S8tS@888@S SS8 @XS@S@@XS@%8@X8@X@XX8X88X@X88888 X8X88 888:888.88X88 S8S@ %@  @SS888S@X88t:888888888888X88.@@@8X8@8S%SSX8@SX:S;:;X%@@8 %8X@X@X88X8X@8SXXSSX%8S
+888888888888@8@88@8888888888XXXS%:XSX XS  % @8%88ttt88XSSS888@ @S888 X88XSSX8SS8S8@%8X8 SXX@X8S88X88X88888888 @ 8  X 8%   XX  888@888888:8t8 88@8888@S@@X88@;XX@8@SSX@8@@%t%Xttt8;%ttX8XX88%X%%@tSSSS8XS
+8888888888888888888888888888;XXXXXX8XXS8% S%S8@88Xt888S%X%@8XX 88@8X%8@X 8XX@ 8%@SX@88XX S888@X8888S88888X88% S %888      S%8 X88888888888X8 88888XS%%S;tt;;;;:..t;:;:;ttt;;tt;t%%tXS8888SSX8@SXX8@X%S
+8888888888888@88@8@888888888:X@S%:X8XS@X@@XXX%88@8@88:t XS SX@ S88X SS@8@8 8XS 8XSX8S%@8S%.8@@88X88X;8.8XS8S@8 888SS %    SX8888t8.888888@8 8X8 %;;tt;tt;t;ttt;;;tt;;;t%ttt%ttttS;t@88888X@@%SS%XXSXXX
+8888@88888888888888888888888:SXSS; 8@%8888 @ S S:8@888888 XX XSX8S88 SX8S88XS8X@8S@ S @X8888S8X8@@@8@88S88S@.888 X@888X8 8S8 8:8.88.8:.888@8 8888St8X;tt;;%;t%ttttttttttt%t%tt%ttt;ttS8S88S88X8@S88@8X8@
+8@888@@@88888888888888888888SS%%SS  XS8@@@X X8 %  8@88888@X S  XX888 S8@@@@8@8S8 X @ SS@X@88@X%8@S@8888X8S@XS8888@ 8888%8 88%88888t8:8888@888888:8%%tt%S%t%S%%Stt%%St;t;t%;;%ttttttStS@S8S@@88SS8S8X8@@8
+8888@@8@8888X@S8@8S8SXX8X8@@S8888SX @8X888@8 X8 S .%88@S888X %S X8@X8SS@SX8@8% S8SSSSX@X 8888@@8S@S8@88@@XS @XX@X@@8888S88888888@8888888@88X@88 X88X88%XSX%@%S;@8tXt%tS;;;%tt%tt%ttt%SXXS@X@88@8@X8X@@X8
+X@XSSSS@X8S8X88@888888@8@8@888. SSX8SXX8888X X S S .88@S8888XSX S  X S X@X%X% SSXXXS@S@SX%S@8SX@XS@88@@88@XXSS@ S@X%X@@ @@8888@88X:8.@:@S 8@88S8X8XS8;SS%;tt;t%;;tt%t%tt%%tS%@8tX8;tt@tS@SX%88X88X8@88@8
+S8@888@8X88@@88888@88S8%XXX888%X X88%%;8.88@8SS XS@ S 8@@8888@S%S X@X 8S@SXXX  8@XS@X8XSS @S@%X88@@@@@X88@S8X8S8S@X8X8@S8S8888888S 88888X888::8X%t8tt;tt%%t%%%tt%%X8%88tt88 S:@S8 t%%@SX:;tt%SS%%%;:;:::
+@88888@@S88%8S@S@@XX%@%X;;:St8SXS88SX888.X8SS%SX8  S88@8@8%8@@ @XX@% @8 8X8 %%XS@SS SS@8S8 S@SX@@888888XXS88XS 88S8 S8X8888888888888@@8 88@8;88%@X%8%8S%@tt%%%S;;.8@8;XS@ t8 8:8ttS8888888X88@8888@8S8
+XS8%XSX%Xt%XtS;XtS%X@  ;;%S.t:X8 X8888SS8t88X@8 XXXS8 S%88@88.8SS S   X@8X   S % S   X   8%SSXS@X8@@88888@88@8X@X @XS  @8;88888@8S@@8 888@ t:t888t S8XS88;t%t%ttttt88%@t8@:.@X;t8@;t8@SSS8X88888@XSS%%8:
+;%tStStXt@tXXSXt8:8 ttXS%@ X   @%8@8S8.S .8888@XS88SSX8%t:.@88SSX     X@@  % SSS %XX   @   SSS8SX%@@8@@88888888X@8S88  @8888@8.88.8@88 88 @88XS. tXX 8@8;@88ttttttt;tttt::;St8;@8@;8 @@SX8:S88t88888:X88
+t8S8@@XS@%8t@8;:.X%:SX@S@ :XX 88SX88%88 88X8XS8SX@X@8@@X::S@SSXXS 8@X@ .  8 % S   %   @ %SS8X@% SX XSXX88;S@88@@88X 8888SX8@88X8:888X@ 8.888@8;88@.ttt @ @8;;ttttXX@888@XS@t%XS::t.8t8:.%%%8888X8X8888
+S%SX%@Xt8@X :;tS:XtS888888X :X888X88888888@88.@%S@@X@88888X  .@88:S%X @  S%  SX  X @  % @ SS@XS@X@88S@8XX@t8@8888888888@8:888888@X8 888 .:S8;.88888@ S:%%t8:;%XXtXX888S%%S888888SX;t@::8@8SSS888S8%t88
+X@t88X8 %%X SSS@@8X8888X  @8S8@8@88X@;;@8888X8S@8X@88X8X   .S888 S     XX8 %  X    8%SX@8SS@8@ S8X8@@88@8;S8:888X.S;88888.8888: 888S8:::8; 88888XXXS%XS ::.;:t8t8t8t88;8t@@%88@8SS888888@888S88888
+X@X8 t%S.X X XX@8@8t88 X@X8X S888@88.8:8:888888XX8X8@X8XS@SS S  8 888S @X8@8SX8@S  S%X   S@  S XXS.X8888@X8888 ;%8   ;t.88.88..888888%SS88::.888888.8888  S@@S@SS ::@888X88:8ttt@StS.;8888888888888SX8
+;SSS.X SSS@SS8X88 8888@@888@8@X@@8.S.8888t8@8888@X8XX@S8X8 XX@8S S8S88X@8S88 X@S8%%@8 SS8  %   %XX 8888XX8t8XS;%8%:88;%888:.8:t.8:88t888  ;.S888t;888888@S  S8@8XXXX8 @8888888 888888X@8@88S8@8@@@S 88
+t;S:S S S@XX8 @@8888;88@88888@88@8;8XXX88888@888@8@X88X8SSX@XX@8@8  8%88@8@X8X8 SS8 8  SS   SSS 8   8.@ % S8S 8%@88@ %888S%.888:88888t88.SS  @8888:88888888X  @8;8X  XX%888@8X88SX8XX8XX888@@@@@@@888@
+::%  S@ @ S S@8 .X@8888888.8888  XSX88SX. 888888;S8888X88XXSS8 8X8SX@8 X8@.888X8X @S8  S@     %S  8S X@X@X  8888X8888X;S8SX8.888;;88::%8%@ @8@ @8888888:88888%8  @8;888  SS 8X@888888;888888  888888888S
+::%S8SSSS@XX8X88t8:88888t@8888X XX@S88;:.88888  @8S888888XS8SS8SXS8@XX  :88.8.888888888 X%S     XSX8  X8     888S8tSX :8::%8  8.888:8. .X888XX@.8888.8888;8 8@S @8888888@% @@888X@S8SX8@S888@88888@@@8
+.S  SS S@8888888@88888.;8888S8S SS8 @8X88888888;888S 88@8 @S8S8XS8%%S@@8@8888@888S888.@XSSS %     8X @ @ X   888S:;t  88;.8888S;::: S%  8t 88888 @:88888888 8.@888 S88...888@@ X8 ;8;%%tt%ttttt;:t%t;t%%
+;@@8S@X;88 @.88@88 88888;8888@ X S XXS8@88@888888%88:.88SX88X@@@XSSS@8;888:8:S8@8S@88888@88 S S  SXX  X88    8 8888 888;.88X88; ; .88SSS@888888X .88@..8.888..888X8@8888.8@88  %@88t8S@X%8SSt%%XtSXtSS
+SX88X %8@X@88888888888t;88@@8X8SSSSX8SXX@@8888888888@%t88S8S8@8888S 888X88@8 88.X  8888X888888X@88S@ 8 S8      S8@XX8888:8t8::;%:ttS8 8%88.@88@8XS8  ;.8%8%Xt88888@@8:8.888888@ %:8:@ X;@tXt@XttXt%@tt
+t;X888@88888888S8@8@88888S X8SXX8 XXS@@8X88888888888 8@.X8SSS8XS888X 8  S88%t8 SS8X8tt%:St:88888888@8XX X @XS X@8888888t88t8:.; 8 t@@:;%XX@88@8X@@8@ :.888;tXSX%;.8888X8.8.88888@88S 8t@8@8tSXtSXtS%StXt
+X8  @ 8S88@88;888888.888@8SSX@@@@XS8 @XX8X88888X%8; X@8:.8X@X@S@@888888XX;SSX%@X8@;@;@88@8%8.8;:8888X@8S@X88SX8888888@@Xt.88:..SX@8t;S8SX;88@@@8XX8@8S8t; ::t@8@X;.8.88S888:888.88888@8888888tX%SXt%%X;S
+;t S88888%8 ;888X888 8;8X XS8@8S@@XS8SXX@8@@8@8X8:8888@St;8888@88888.88X8@. 8. 8@%8;tX888X@88%88X 888@88888X@X888888X88@:8.@88X%;@8;88@88S%88:.8888@XS@;:.::;X8@%%;.;888@8888;;8.8888888;.t ::8XStXXt%X;
+SX S X888:8.88888@88.888@XXXSXXX8@8SXX8X8XXX8X88 88t;XS8%X;8@@8888888:8S8S:S@8%8:S;;X@@8@ St :@X8 88X@@@@@888.@ 88;;8@8%St8;8@@S;XSS8tS@@SX% %88888888%8;:.ttSXS%8%t.:.88888:8.888888X888;8;8XSXt@tX%X;%
+XX XXXSS8888:8;8888888888S8SX8XX@SX8X@XS@@X8S@888:@St8%;@Xt;8@888888:8 88%8%:88@.; ::88 ;S@;888S8888X888888:@8.888t888@8S.   :8;;888XSt@X%S88.88888S8t.:;%S@XXSX;;: 88888 8t;8:888@%88:;%888@8@%XtXt
+88888@8S 88:88X88888888888XX8XSXS@X8XS8X@@8X88S8@8%8X@8t8@Xt8888888888 8888888S@X.t;8 :;X88%@8t 88t888888 SS;8888:88;88tSS88@S%S  t@X8S  :8St.8XS@88888S8....:%SSSS%X;;8888X888%.:8;88888 88X888@:@%S%Xt
+888888X8@XX8 88888.888 888@8X@SXX88@@SX@S8S8XX@X8@8:88 .@@8@.888888 88@tX.88.X@8X;t.SX@88@8S:%;88X@8;%S8:S888888.8SX8S8X@XX@8888X.  ::: @X8XXXX. XX8@8XXXX8. .tSt%S%S@;:t.88888; .;..8@888X;8%8888S8tXtS
+8S88888@@8XX8888:8888.@88X@@88X88@8@X8@@@XXS8X@@X888;8@%t8SSt888.88:8 :88 88 :;;. :@@8XXS@X@S@@8 88X%S8.;8 88%@;@8888888@@@8X888X.@S  :S X88X@S;. SS8S@8888::..;%S%X@@S%%::8.88888t;88888@88@X%888XtXt
+8888888@888888888t8 8;8888@@8S8X88@X8S8@8XSXX@X8X@8X8%@t;8888%888888X@88888S8t;%%@@8;X8@@8X8.;:;8XXSX;888%8%%8;8.8X8S@88X8@S88888 @t;  X.@88@8Xt;:8SX@8X8888;..;t%8XS%X%;t;;88888;.:..:8.8888%S8S88S%StX
+@:88888@8888@X8S888.8888888XSXSSX8@@SSSXX8S@8X@S8X8X8X;8@%;888@ 8888 88SX88XX;:.t888;@@@@%88@: XS@S@@88@@88888S8888t888X@8@X8S88.88  8.S;@@@@8@%X:.888S8@88:....;tSX%S8X%t%%%:8:88;:888.88888.%X@t888t.S
+@88:8888888888@8888888t88@8S8SS@XSS8XS@8XS@88@@@8XX8@88888;S888X 888X88888 %S%;.t8@t%S%8@%@X@SS@.% 8@X@tt88888888@;tX@@X@888S88.88 @S.@SS@@8@XS;;.88888@@8: ...ttXSX@%SSSt:;.8888:;88 88:888SX8S:888t8
+X:888888888888@@88888888888XXX8X8S8X@88XX8X8@@88XS@88@888SX%S88SXS88 X.X :S@ 8tXtt@tX888XXSS88 S t.8;X;8X@8888X%8 ;88888X8@X 8;   88;@S@X@888t. .8888 888t.;%%t%S%SSXt%:; 8888   8:88888:S@8;88X@X
+ 88888888888@88@8@88:8888@8XXX@X8X888XX@XS8XXX8@X@X8XX@88X888Xt888S8888888;S8. X8S;ttt;SX:. X8 %;:8 X%88:8X8 . t88X88XX8@X.S.:.8.@  SX8@@88S8;88888 8%;.:;:ttSSSS%tX;t .;.888;.8.88 88 ;88;.88@8
+ 888888888888888@88888888@X8XX@8X@XS8@8@8@X8@888888@@88888:@8@Xt;;SXXS88888XSX:8@8.t888@S8;....;8.8@t%.t88888t88888%88888X8.X SS.... .8:8  XS8@@8XS%%:8 8t8t8t. . .:tt8t%%8%S.;8888;88.:.888;88%8XX.8888
+.t88888.888@8888@88888;88888X8@8X@@X@88@8@888888 8888888X88.%8% @%8tttXt8.8S888.t .;S%%S@X%X;X.@@%@@t..:.8;;t8888;S88@8888  S@;S:  @;@.8 :8@X@888Xt888 8;8:  ...;SS8XXX8%t;:8.88@8:8;88:@8@t8888
+ .8 88@8 @88888888888X88888X8X8@@@888888888888@8@8888888888@8%:8X8;XXS@8 8:8.8S8t@X S   % . :. 8@;:%;: .. 88888.8:t8X888X@ S8%  . .   8%S:8S%8@@@@8@S;.8:88 8;8;  %: %%XX@SS%%Xt: 8.8:88  8:8.  %8@.8888
+ 8:888 8@88888888888888::8@8888888888888888.8.88888888888X888@:88;@@X8XttS %t8:88 :::S8@.  8.X 88 @t:..t.8S:8S88888X8888 S8@@;  ; . 8;: ..8;XS88@88X%%S.8.88.  8;:: .;S%SXXS8@@S..8;888888t8.8. :88%t.88
+ % 8.888888888888 888@@888:888.888888.888.88;8t8.8;88888@8@8@8X 8St;8X@@X;XtS:S88 :%S@@t:%X;;t:.;S .....;tt:.88.;888@8S 8tXS;:  . .::SX88t:SSSX8@8@@XS;;.88888;.8: ::;;%t%SX@SS%t: 888 :8.8;88;..@@t..;t
+.:8;8.8.@888888888@88888X.;8.88888:8:8:888;88t8888888888@8888888 8.;tXX@. SXSSXS@;:.;:X8XStt;;X%Xt:.  88t;;:: 8%8S88@SS8X888%  ;S%    8..%..S 8@X88XSS;:.:8.8;8::  . :;;%SXXXSSSt;;88:8;:8 8t8;.;X@t;;:t
+ ;888 8.8.88.888888888888X8888888.888;88:8.8888;:88888888888888@88%;:X@  ;t;;XS%SX@SX:..XSttXXXS;S;;tt;.;.:.:8;8888@8S;S@XS;  .tS:.888 8:%;SX888@%t;t 88 8.:8:;. ..::t%%XSSX%; 8t888.8.88;8.tXXStS;X
+
diff --git a/html/blog/index.html b/html/blog/index.html new file mode 100644 index 0000000..804b3b8 --- /dev/null +++ b/html/blog/index.html @@ -0,0 +1,19 @@ + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

Blog? Thing

+

I don't know if I will use this, but I am bored and thus making a blog system.

+
+

Posts

+ + + + $[for file in $(ls html/blog/posts); do echo ""; done | sed 's/\/\//\//g'] + + +

Title

Editted

Posted

Size


$file$(stat -c %y "html/blog/posts/$file" | head -c 16)

$(stat -c %y html/blog/posts/$file | head -c 10)

$(numfmt --to=iec --suffix=B $(stat -c %s "html/blog/posts/$file"))

+ + diff --git a/html/blog/posts/2024-05-03-kingwood-maintenance.html b/html/blog/posts/2024-05-03-kingwood-maintenance.html new file mode 100644 index 0000000..81630b1 --- /dev/null +++ b/html/blog/posts/2024-05-03-kingwood-maintenance.html @@ -0,0 +1,40 @@ + + + Belt sander maintenance + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

I fixed cool equipment my school has

+

That is neat, I guess. I should start using the blog feature of my site more.

+
+

+ My school has a big wide belt sander in the wood shop, it is fancy and has electronic controls and whatnot. + There are two contactors that control the movement of the table, one for up, one for down. + The contactor to move the table down has failed twice, once due to general lack of maintenance, and once because the person that replaced it the first time damaged the new contactor during the replacement. + Luckily, for whatever reason the person that replaced the contactor for whatever reason replaced both the up and down contactor, only one of which was bad. + Because of this there was a spare contactor that was good lying around somewhere in the wood shop, thus I was able to replace the damaged replacement contactor. +

+
+ + +
The damaged "table down" contactor in the kingwood belt sander.
+
+ + +
Unexpected photograph of me my friend took while fixing the belt sander.
+
+ + +
Contactor spaghetti.
+
+
+ + diff --git a/html/blog/posts/new-laptop.html b/html/blog/posts/new-laptop.html new file mode 100644 index 0000000..09a9406 --- /dev/null +++ b/html/blog/posts/new-laptop.html @@ -0,0 +1,22 @@ + + + My Framework 16 arrived :) + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

I got my Framework 16.

+

+ Her name is Lavinia, which is a stupid reference probably 2 people who see this website will get. + I love her so. +

+
+

+ My website looks different now. Lavinia has a new colorscheme and thus so does my website. + new colorscheme for my framework + Now (2024-07-06) it has a different colorscheme: + new new colorscheme for my framework + I'm not going to update the website's colorscheme because I am lazy. +

+ + diff --git a/html/blog/posts/test-post.html b/html/blog/posts/test-post.html new file mode 100644 index 0000000..58a3fc8 --- /dev/null +++ b/html/blog/posts/test-post.html @@ -0,0 +1,11 @@ + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] + Wowee! a blogpost


+
+ aoeu + + diff --git a/html/cool-sites.html b/html/cool-sites.html new file mode 100644 index 0000000..32246e0 --- /dev/null +++ b/html/cool-sites.html @@ -0,0 +1,39 @@ + + + + Neat/odd/cool/relatively unknown/other adjective websites + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

Websites that I think are interesting or just odd, with varying obscurity and in no particular order

+
+
+ +
+ This web page compelled me to put it somewhere: + +

entities I sometimes interact with physically

+ winter: bunbun.dev
+ odette: puppygirl.systems (nothing is there yet)
+ albert: iso-9995-9.com (down? dns issue maybe)
+ diff --git a/html/discord.html b/html/discord.html new file mode 100644 index 0000000..6226fe7 --- /dev/null +++ b/html/discord.html @@ -0,0 +1,15 @@ + + + Natalie information + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

Discord

+ As one who is not particularly partial to internet centralization, and seeing as I have had discord accounts get banned for seemingly nothing in the past, I am not particularly fond of using discord. + Unfortunately, humans that I like speaking to use discord in large enough volumes that it is likely to be rather challenging to convince all of the ones I particularly care about to migrate to some other platform. + This is not a very nice state of things. + + diff --git a/html/header.html b/html/header.html new file mode 100644 index 0000000..78fdab7 --- /dev/null +++ b/html/header.html @@ -0,0 +1,8 @@ +
+

$[(for i in {0..10}; do echo Natalieee.net; done; echo Catalieee.net) | shuf -n1]

+ home + back + site info + natalie info +
+

diff --git a/html/my-laptop.html b/html/my-laptop.html new file mode 100644 index 0000000..f921b94 --- /dev/null +++ b/html/my-laptop.html @@ -0,0 +1,136 @@ + + +laptop + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +
+

DEPRECATED My laptop

+

see blog post +

+ Currently, I am using a T530 that has been heavily modified. + I used to use a W530, but I fucked it up trying to get tianocore on it and haven't bothered fixing the bios on it yet. + I have preordered a Framework 16 because I am the definition of their target audience. + Since W530s and T530s are basically identical baring the mainboard, there is no external difference between my W530 and T530 because I just yoinked all the parts from the W530.
+ my-laptop.html was last modified on $[stat -c %y ./html/my-laptop.html | head -c 10].
+


+ + + + + photograph of my laptops keyboard, which is blank because I sanded it. +

photograph of my laptops keyboard, which is blank because I sanded it.

+
+ + The software defined radio that goes in my laptop's disc drive. +

The software defined radio that goes in my laptop's disc drive.

+
+ + Graph of my keybindings (good luck). +

Graph of my keybinds (good luck).

+
+ + charger bodge. +

charger bodge.

+
+ +
+ +

I have put an unreasonable amount of time in to messing with my laptop and as such am equally unreasonably proud of it.

+

Hardware modifications I have made to my laptop:

+

+

    +
  • Installed an older model's keyboard
  • +
  • Sanded the keyboard such that it is blank.
  • +
  • Upgraded most of its parts.
  • +
  • Put an SDR in its disc drive
  • +
  • Replaced the charging barrel with a worst bodge ever contest finalist because I left my charger at school for a weekend once and wanted to use my laptop.
  • +
+ Additionally, I have written a custom xkb file. Unfortunately the geometry file hasn't been updated since I modded in the new keyboard, but here it is anyways:
+

+ +
+

my xkb geometry file compiled to a pdf

+
+

+ Disregard the fucked up escape key, I was messing with it earlier. My keyboard isn't that notable beyond binding control to caps lock and binding the old control key to mode_switch. + Additionally, when mode_switch is pressed while an alphabetic key is pressed, it types a greek letter instead. +

+

+ I run artix (for the anti systemd meme), though upon getting my framework I intend to switch to gentoo. + I use i3 as my window manager with a somewhat cursed script to programatically generate it's config from a yaml file. + This script is vaguely necessary because

    +
  • I wanted a (programatically generated) graph of all my keybinds as leaf nodes with different modes as trunk nodes and individual keys as edges
  • +
  • I wanted to easily nest an arbitrarily large number of modes without it being a hassle
  • +

+ an example of the function of this script is something like

+
+
+

Input (yaml):

+

+keybinds:
+a: !Mode
+    name: a
+    keybinds:
+        b: !Mode
+            name: b
+            keybinds: ...
+                            
+
+
+

Output (i3config):

+

+mode a {
+bindsym b mode b 
+}
+
+mode b {
+bindsym ... ...
+}
+
+bindsym a mode a
+                            
+
+
+ From the yaml config, my python script can parse it either in to a (really bad) graph of keybinds (using the graphviz library or something like that) or in to a valid i3 config file. + In my real config, I have a mode 'base' which is the default mode with no keybinds other than mod4+space, followed by a mode 'space' reached by pressing mod4+space. + From 'space' mode, other modes may be accessed, such as 'workspaces or windows' mode, bound under w. + This gets rather absurd (intentionally so) very quickly. + The combination to move to workspace 0 while in 'base' mode is to press mod4+space ('space' mode), w ('workspaces_or_windows' mode), s ('workspaces'), g ('workspaces_goto'), 0 (move to workspace 0). +

+

+ This system results in horrible user experience (but I don't care), great security (close to least intuitive setup possible), and—most importantly—an incredibly stupid graph of keybinds. + I find this unreasonably amusing. +

+
+
+
+ + diff --git a/html/natalie-info.html b/html/natalie-info.html new file mode 100644 index 0000000..1a88c2b --- /dev/null +++ b/html/natalie-info.html @@ -0,0 +1,68 @@ + + + Natalie information + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +
+

What is a "natalie?"

+ natalie is an entity that has been observed to be called natalie.
+ it is known to be referred to as a "she" or an "it."
+ it is frequently told it is "cat brained" by humans it associates with.
+ natalie-info.html was last modified on $[stat -c %y ./html/natalie-info.html | head -c 10].
+

Timezone (this is currently broken? I don't know why. The correct time is PDT or the other one)

+ its really quite odd, the commands run to generate this section are just date "+%Z (UTC%z)" and date +%T. When I run these in an ssh session, they give expected output, but when the server executes them, it thinks its in UTC. baffling. + Timezone I am in: $[date "+%Z (UTC%z)"]
+ The local time as of this page being requested was: $[date +%T]
+

Other online presence

+ Discord: _natalieeee_
+ Email: natalie@natalieee.net
+

Other things

+ I will probably include information about myself that is vaguely identifiable. + This is a bad idea, but I don't think anyone actually cares about messing with me enough to do anything bad with whatever information is available here. + I am comically bad at writing about myself, so I will disguise my shortcomings by making a list. + +
+

Vaguely funny things I have done (Don't read this if you are employed by Portland public schools)

+ +
+

Music I listen to (you should too)

+ I am going to use this as a means by which I can impose music recommendations upon whoever reads this page. + According to a hacky script I wrote that tracks what songs I listen to with mpd, here are artists I like:
+ place playcount artist
+ 1 1935 Black Dresses
+ 2 745 Ada Rook
+ 3 425 Angel Electronics
+ 4 419 rook&nomie
+ 5 360 Reliqa
+ 6 282 Destroy Boys
+ 7 238 Rachel Rose Mitchell
+ 8 221 Cellar Darling
+ 9 218 Florence + The Machine
+ 10 193 Spiritbox
+ 11 141 Inferiority Complex
+ 12 111 Ignea
+ 13 101 Ada Rook/ASH NERVE
+ 14 97 Ada Rook/Sunrise Transparence
+ 15 80 Penelope Scott
+ 16 71 Seas on the Moon/Lena Scissorhands
+ 17 61 Ada Rook/Ash Nerve/Sunrise Transparence/Stephen Spies
+ 18 60 Seas on the Moon
+ 19 52 girl in red
+ 20 50 Cassyette
+
+ + diff --git a/html/natalie-sightings.html b/html/natalie-sightings.html new file mode 100644 index 0000000..eca9120 --- /dev/null +++ b/html/natalie-sightings.html @@ -0,0 +1,15 @@ + + + + Natalie sightings + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

Natalie Sightings

+

They are reasonably rare.
These photographs are uneditted, my various cameras are just fucked up. Ignore the annoying aspect ratio.

+
+ $[for file in files/natalie-sightings/*; do echo ""; done] + + diff --git a/html/random-thoughts.html b/html/random-thoughts.html new file mode 100644 index 0000000..e94fe5a --- /dev/null +++ b/html/random-thoughts.html @@ -0,0 +1,44 @@ + + + Natalie information + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

arbitrary thoughts generated by natalie

+ I am bad at thinking of things to make blog posts for. this webpage might contain things that I would put in a blog post if I was more proficient at writing filler. It might also contain other things. +
+ $[stat -c "%W %n" ./html/thoughts/* | sort -n --reverse | cut -d ' ' -f2- | while read -r file; do echo "
$(stat -c'%w' $file | cut -d '.' -f1): $(grep '^$//')
"; done] + + diff --git a/html/server-migration.html b/html/server-migration.html new file mode 100644 index 0000000..6ad384d --- /dev/null +++ b/html/server-migration.html @@ -0,0 +1,39 @@ + + + server migration + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

This website runs on a big server now.

+

It used to run on a dell optiplex 3040 I had laying around, but I got a server from the school basement (you can just take them, apparently).

+
+ + + + me holding a server +

The server in question.

+
+ + +

Why do I have a server from my schools basement?

+

+ My school is currently at a temporary campus while our regular campus is being renovated. + I hope this means there will be less lead in the water when they are done, but given how the district is, who knows. + The current campus is notably smaller than the regular campus, thus a large amount of things are in storage. + The man who is in charge of the storage and moving stored items back to the new campus does not like moving items. + For this reason, when I ask him to let me in to the school's basement to just take random cool things, he says yes. +

+

It's actually kind of horrible that I have this server.

+

+ This server used to be part of the district's network infrastructure. + When I got it, it had an unencrypted raid array on the disks that contained district information. + It should not have been stored like this, and I definitely should not have been allowed to take it. + I did of course wipe the drives and didn't even look at what was on them beyond identifying that it was from the district because I am not evil. +

+
+
+ + diff --git a/html/site-info.html b/html/site-info.html new file mode 100644 index 0000000..e260009 --- /dev/null +++ b/html/site-info.html @@ -0,0 +1,45 @@ + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\$PREV_URL\$/"{prev}"/'] +

Information about this website

+ site-info.html was last modified on $[stat -c %y ./html/site-info.html | head -c 10].
+
+ This page remains (somewhat) in the style of my website prior to getting my new laptop. + The theme of my website has obviously changed since the creation of this page. See blog post. +
+

+ This website is really weird from a technical standpoint. + Firstly, I have nginx operating as a proxy service for my subdomains. + I am not going to talk about my subdomains here because they will all probably be utterly self-explanatory, or have their own about section. + Following this, I have a simple python script running a webserver that serves html documents and other files, as you would expect. + The weirdness comes from the cursed custom """parser""" and syntax for the html documents. + Any html documents in the sites files may contain an expression like "$[echo \$\[...]]" where ... is bash code. + Upon being requested by a browser, the web server executes each instance of one of these expressions and replaces the expression with the executed expression's output. + In addition to this, upon being requested, each instance of "{}" in a page is replaced with an arbitrary value provided by the webserver and specified by its index in the list of all "{}"s in the file. +

+

+ In short, I generate static content for the pages (I am unwilling to use javascript because javascript) not through any standard means but through hacky and stupid bash scripts. + There is not a particular reason for me to do it this way, I was just bored. + A sort of neat example of this system is the html for the directory index page (like here). +

+
+

dir_index.html

+ $[cat files/dir_index.html] +
+

+ + At the moment, this site is running on some dell optiplex 3040 (I think?) I have in my basement. + In the future, I would like to get this running on the server that I took from the basement of my school (with permission of an employee who I am pretty sure did not have the authority to allow me to do this, but I'm not complaining). + + I have moved this site to the server. See server-migration.html +


+

+ This website is designed to look reasonably similar to my laptop: + + *My laptop no longer looks like this. +

+ + diff --git a/html/stats.html b/html/stats.html new file mode 100644 index 0000000..e41d810 --- /dev/null +++ b/html/stats.html @@ -0,0 +1,15 @@ + + + woah, data + + + + $[python3 -c 'import utils; print(utils.parse_file("html/header.html"))' | sed 's/\\$PREV_URL\\$/".."/'] +

Stats! Data! Wow!

+ Boring information about me and my computers, delivered right to your web browser (or terminal)!
+ Why collect information about your users when your users could collect information about you? +
+

Currently available information:

+ $[for line in $(cat main.py | grep Route -A1 | grep '/stats/' | sed "s/'//g; s/,//g"); do echo "$(make-link $line)
"; done] + + diff --git a/html/thoughts/audio-is-bad b/html/thoughts/audio-is-bad new file mode 100644 index 0000000..050636e --- /dev/null +++ b/html/thoughts/audio-is-bad @@ -0,0 +1,7 @@ + + +While I was making $[make-link /stats/what-song-is-it-listening-to], specifically while I was writing the service that would send song updates to the server from my laptop, I decided to make mpd started by my init system (openrc). +This quickly devolved in to also making pipewire start from my init system. Prior to now, it was start by my compositor, which would run unfuck audio. For some reason, likely due to the fact that I use seatd instead of elogind for session management on this laptop, the default artix init scripts for all pipewire related services and mpd did not work. +I spent like two hours hacking on these, and now have arrived at a system which vaguely works. Both mpd and {pipewire,pipewire-pulse,wireplumber} are started by my init, however, for some reason which is entirely obscure to me, pipewire does not recognize anything other than my bluetooth headphones. +This doesn't actually matter, because I functionally never use the speakers in this laptop, but it is still quite stupid.

+I hate computers. I should get back to making random information about me available on the internet. diff --git a/html/thoughts/dns b/html/thoughts/dns new file mode 100644 index 0000000..b307716 --- /dev/null +++ b/html/thoughts/dns @@ -0,0 +1,7 @@ + + +Odette, one of my meat friends (not computer friends) (though she is a computery friend) just bought a domain. Apparently the registrar she bought it from didn't have an api, which was problematic because she doesn't have a static ip. +Because I am a reasonable person, I decided to start hosting dns for her. Now I know (some) things about dns! +I like learning things. +

+As stated in the changelog, should any random website tourist wish to use my dns setup for their own website (I do not recomend this, nor do I know why you would want to do this.) you can email me. I might even respond. diff --git a/html/thoughts/fonts??? b/html/thoughts/fonts??? new file mode 100644 index 0000000..06b6a92 --- /dev/null +++ b/html/thoughts/fonts??? @@ -0,0 +1,6 @@ + + +I am unsure as to what is going on?
+on $[make-link /html/natalie-sightings.html], the font never loads. I have failed to ascertain why it is that this occurs, as this has only become an issue today and no edits have been made to that page remotely recently. What on earth.

+ +I have an unfortunate habit of accruing computer ghosts that break things in horribly unclear ways. diff --git a/html/thoughts/technical-debt b/html/thoughts/technical-debt new file mode 100644 index 0000000..1bb7d67 --- /dev/null +++ b/html/thoughts/technical-debt @@ -0,0 +1,17 @@ + + +This is horrible and bad. The html of just about every webpage is utter garbage because I am me. +Rewriting everything is going to be such a task, a task that I really should do. +

+Woo! +

+I should really unbodge the css at some point, too. Also, I need to remember to add a license and probably also a footer at some point. +

+I have at the very least fixed some of the horrendous practices seen on this website by the implementation of nginx as a proxy service. +Now, when not having a valid ssl cert (for a good reason, this will be fixed when there ceases to be a good reason) breaks my webserver (for some reason), not everything breaks! +hooray. +

+I need to stop using an iframe for these, this page was designed prior to caving to my friends demand that I make my website "have" "consistent styling" and also "not use the whole page width for text," +thus it used to be that these posts would take up the entire body width, but now there are just two margins. +

+I should probably update site-info.html now. diff --git a/html/thoughts/this-is-a-thought b/html/thoughts/this-is-a-thought new file mode 100644 index 0000000..5f6758e --- /dev/null +++ b/html/thoughts/this-is-a-thought @@ -0,0 +1,15 @@ + + +This post is confusing and might be a marginally abnormal quine. in html*. Have fun.
+This is a thing that works now. +The format in which I can write these posts as well as how they work is reasonably interesting. +I am most displeased due to my inability to figure out a reasonable means of having iframes such that their height is that of their respective content. +below you will find the code for this web page. it is interesting, especially if you haven't read the site info page. +
$[cat ./html/random-thoughts.html]
+
+you may ask: natalie[ee], why are you using iframes?
+the answer to such a question would of course be "by using iframes, I may make a post contain bash commands as detailed on the site info page while also being arbitrarily invalid html. Plain text would make a valid thought post. +
+an example of such, this post: +
$[cat ./html/thoughts/this-is-a-thought | sed 's/&/\&/g; s//\>/g']
+As can be observed, the title is set via a rather kludgy comment in the post file. This allows for filenames that differ from titles, which I implemented for no particular reason. diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..cd5e00d --- /dev/null +++ b/shell.nix @@ -0,0 +1,16 @@ +{ pkgs ? import {} }: + +pkgs.mkShell { + buildInputs = [ + pkgs.python312 + pkgs.python312Packages.networkx + pkgs.python312Packages.matplotlib + pkgs.python312Packages.requests + pkgs.python312Packages.bleach + pkgs.python312Packages.beautifulsoup4 + pkgs.python312Packages.pygraphviz + ]; + shellHook = '' + python main.py + ''; +} diff --git a/style.css b/style.css new file mode 100644 index 0000000..204616b --- /dev/null +++ b/style.css @@ -0,0 +1,290 @@ +@font-face { + font-family: 'MapleMono'; + src: url('/font/MapleMono.ttf') format('truetype'); +} + +@font-face { + font-family: 'MapleMonoItalic'; + src: url('/font/MapleMonoItalic.ttf') format('truetype'); +} + +@media (max-width: 615px) { + body { + margin: 0; + } + + header { + display: block; + } +} + +@media (max-width: 615px) { + body { + margin: 0; + } + + header { + display: none; + } +} + +@media (min-width: 730px) and (max-width: 799px) { + body { + margin: 0 0; + min-width: 100% + } + + header { + display: block; + } +} + +@media (min-width: 1000px) and (max-width: 1299px) { + body { + margin: 0 10%; + min-width: 80% + } + + li > p { + width: 70%; + } + + header { + display: block; + } +} + +@media (min-width: 1300px) { + body { + margin: 0 20%; + min-width: 60%; + } + + li > p { + width: 60%; + } + + header { + display: block; + } +} + +:root { + --bg: #F2F4F8; + --alt-bg: #dde1e6; + --fg: #161616; + --link: #0f62fe; + --visited-link: #673ab7; + --highlight: #0f62fe; + --gray: #525252; + background: var(--bg); + background-image: radial-gradient(var(--gray) 2px, var(--alt-bg) 2px); + background-size: 1vw 1vh; + display: flex; + justify-content: center; + align-items: center; +} + +@media (prefers-color-scheme: dark) { + :root { + --bg: #161616; + --alt-bg: #262626; + --fg: #f2f4f8; + --link: #33b1ff; + --visited-link: #be95ff; + --highlight: #33b1ff; + --gray: #393939; + } +} + +body { + text-wrap: wrap; + max-width: 100%; + min-height: 100vh; + background-color: var(--bg); + color: var(--fg); + overflow: auto; + word-wrap: break-word; + overflow-wrap: break-word; + padding: 0 10px; + padding-bottom: 10px; +} + +header { + padding-top: 10px; + position: -webkit-sticky; + position: sticky; + background-color: var(--bg); + top: 0; + transform: translateX(-10px); + display: absolute; + width: calc(100% + 20px); + z-index: 100000; + + h1 { + background: var(--bg); + padding-left: 10px; + display: inline; + font-size: 26px; + } +} + +* { + font-family: 'MapleMono'; + font-size: 16.5px; + text-wrap: wrap; +} + +table { + width: auto; + border-collapse: collapse; +} + +th, td { + padding-left: 10px; + padding-right: 10px; + text-align: left; +} + +th:first-child, td:first-child { + width: 20%; +} + +th:last-child, td:last-child { + width: 20%; +} + +tr.rowhighlight { + background-color: var(--fg); +} + +iframe { + border: none; + padding: 0; + margin: 0; + width: 100%; + overflow: hidden; +} + +h1 { + font-size: 33px; + font-weight: normal; +} + +h2 { + font-size: 22px; + font-family: 'MapleMonoItalic'; + font-weight: normal; +} + +h3 { + font-size: 18px; + font-weight: bold; +} + +img { + max-width: 100%; + height: auto; +} + +::-webkit-scrollbar { + width: 0px; + height: 0px; +} + +.italic { + font-family: 'MapleMonoItalic' !important; +} + +code, pre { + background: var(--alt-bg) +} + +a { + color: var(--link); +} + +a:visited { + color: var(--visited-link); +} + +::selection { + background: var(--highlight) +} + +captioned-image { + max-width: 33%; + display: flex; + flex-direction: column; + + > img { + height: auto; + } + + > * { + width: 100%; + border: 5px solid var(--alt-bg); + background: var(--alt-bg); + } + + > p { + text-align: center; + position: relative; + top: -20px; + } + + margin-right: 15px; +} + +image-column-container { + min-width: 100%; + display: flex; + flex-direction: row; +} + +image-container { + display: flex; + margin-right: 5px; + flex: 1; + width: 33%; + height: auto; +} + +flex-column { + display: flex; + flex-direction: column; + + > captioned-image { + max-width: 100%; + } +} + +image-column img { + width: 100%; + height: auto; +} + +flex-grid { + display: flex; + flex-wrap: wrap; +} + +flex-grid-item { + flex: 1 0 200px; /* Flex grow, flex shrink, flex basis */ + margin: 5px; + overflow: hidden; + position: relative; +} + +flex-grid-item > img { + max-width: 110%; + height: auto; + display: block; +} + +@media (max-width: 700px) { + image-container {display: inline-block; min-width: 100% !important} + captioned-image {min-width: 100%; margin-right: 0;} + text-column {display: inline-block} + image-column-container {flex-direction: column;} +}