diff --git a/changelog b/changelog index e5e5262..f9100cd 100644 --- a/changelog +++ b/changelog @@ -31,3 +31,4 @@ 2024-08-19: rewrite .*-info pages, add footer, update home.html, make all* images links 2024-08-20: update my-laptop.html, create my-old-laptop.html 2024-08-27: test new home.html compiled from lisp code. +2024-09-01: switch to for content diff --git a/home.html b/home.html deleted file mode 100644 index 274c3bd..0000000 --- a/home.html +++ /dev/null @@ -1,269 +0,0 @@ - -home -
-

I'm natalie[ee]
$[find files/homepage-statements/* | shuf -n1 | xargs -I % cat %]
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: $[echo visit >> files/home_visit_counter; wc -l files/home_visit_counter]

particularly notable pages

information about this websiteinformation about this nataliethere is a blog. I do not frequently use it.arbitrary natalie thoughts. they are interesting, sometimesother webloci
-

directories

-files -font -html -scripts -
-

changelog

-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.
-2024-07-25: add subdomain proxying with nginx.
-2024-07-26: add git.natalieee.net
-2024-07-26: update site-info.html
-2024-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.
-2024-07-27: Update style on non blog posts
-2024-07-27: modernize /html/site-info.html, finally
-2024-07-27: improve image accessibility, update blog posts to be compliant with new style
-2024-07-28: add support for planned footer in all relevant html documents, simplify inclusion of other documents in a document using include script
-2024-08-05: add 88x31s, clean up css
-2024-08-06: rewrote entire backend, website now supports uwu mode
-2024-08-09: tidy server directory, fix back button
-2024-08-09: fix css issue on homepage
-2024-08-09: fix thoughts not displaying in correct order
-2024-08-19: rewrite .*-info pages, add footer, update home.html, make all* images links
-2024-08-20: update my-laptop.html, create my-old-laptop.html
-2024-08-27: test new home.html compiled from lisp code.
-
-

site file tree

(as of last build)

-file tree hidden for brevity
-site
-|-- __pycache__
-|   \-- utils.cpython-312.pyc
-|-- changelog
-|-- dir_index.html
-|-- files
-|   |-- 88x31
-|   |   |-- I-hate-squarspace.jpg
-|   |   |-- acab.gif
-|   |   |-- asexuals.gif
-|   |   |-- bad-apple-looping.apng
-|   |   |-- best-viewed-with-eyes.gif
-|   |   |-- bunbun.dev.html
-|   |   |-- catscapemeow.png
-|   |   |-- gnu-lesbian.html
-|   |   |-- hellzone.html
-|   |   |-- love-vim.gif
-|   |   |-- luxen.neocities.html
-|   |   |-- natalieee.net.html
-|   |   |-- no-js.jpg
-|   |   |-- powered-by-estrogen.gif
-|   |   \-- trans.png
-|   |-- blog-files
-|   |   \-- pictures
-|   |       |-- kingwood-bad-contactor.jpg
-|   |       |-- kingwood-wiring-mess.jpg
-|   |       \-- natalie-kingwood.jpg
-|   |-- dean-email-why-it-matters.png
-|   |-- deep-rock.mp4
-|   |-- dir_index.html
-|   |-- fw16-new-colorscheme.png
-|   |-- fw16-new-new-colorscheme.png
-|   |-- home_visit_counter
-|   |-- homepage-statements
-|   |   |-- 1
-|   |   |-- 10
-|   |   |-- 11
-|   |   |-- 12
-|   |   |-- 2
-|   |   |-- 3
-|   |   |-- 4
-|   |   |-- 5
-|   |   |-- 6
-|   |   |-- 7
-|   |   |-- 8
-|   |   \-- 9
-|   |-- html5.png
-|   |-- keybinds_graph.png
-|   |-- laptop-charger-barrel.jpg
-|   |-- laptop-keyboard.png
-|   |-- laptop-radio.jpg
-|   |-- laptop-xkb-geometry.png
-|   |-- my-laptop.png
-|   |-- natalie-holding-server.png
-|   |-- natalie-sightings
-|   |   |-- bad-front-camera.jpg
-|   |   |-- fixing-kingwood-beltsander.jpg
-|   |   |-- narrow-gauge-falling-over.jpg
-|   |   |-- newport-for-research-vessel-tour.jpg
-|   |   |-- normal-headphones.jpg
-|   |   |-- not-on-a-crane.jpg
-|   |   |-- on-a-crane.jpg
-|   |   |-- static-hair.jpg
-|   |   |-- wall-time.png
-|   |   \-- wave-measuring-radar-I-think.jpg
-|   |-- niri-dev-keybind-graph.png
-|   |-- posts-to-homepage
-|   |   |-- post_2024-01-15_12:44:10-740.txt
-|   |   |-- post_2024-01-15_12:44:18-939.txt
-|   |   |-- post_2024-01-15_12:44:46-863.txt
-|   |   |-- post_2024-01-15_12:47:50-503.txt
-|   |   |-- post_2024-01-15_14:01:16-657.txt
-|   |   |-- post_2024-01-15_14:01:32-242.txt
-|   |   |-- post_2024-01-15_14:01:56-977.txt
-|   |   |-- post_2024-01-15_15:28:37-735.txt
-|   |   |-- post_2024-02-16_12:39:24-502.txt
-|   |   |-- post_2024-02-26_22:35:03-603.txt
-|   |   |-- post_2024-04-09_18:16:23-175.txt
-|   |   |-- post_2024-04-09_18:19:51-247.txt
-|   |   |-- post_2024-04-10_14:34:08-940.txt
-|   |   |-- post_2024-04-10_14:36:58-000.txt
-|   |   |-- post_2024-04-10_15:40:01-996.txt
-|   |   |-- post_2024-04-10_15:51:25-822.txt
-|   |   |-- post_2024-04-10_15:51:43-966.txt
-|   |   |-- post_2024-04-10_15:53:19-027.txt
-|   |   |-- post_2024-04-10_15:53:30-295.txt
-|   |   |-- post_2024-04-10_15:54:07-529.txt
-|   |   |-- post_2024-04-10_15:55:53-767.txt
-|   |   |-- post_2024-04-10_16:00:09-689.txt
-|   |   |-- post_2024-04-10_16:08:47-051.txt
-|   |   |-- post_2024-04-10_16:11:34-637.txt
-|   |   |-- post_2024-04-10_16:39:32-933.txt
-|   |   |-- post_2024-04-10_17:31:12-327.txt
-|   |   |-- post_2024-04-10_22:17:12-309.txt
-|   |   |-- post_2024-04-26_14:43:47-369.txt
-|   |   |-- post_2024-04-26_14:44:27-701.txt
-|   |   |-- post_2024-04-26_14:44:37-280.txt
-|   |   |-- post_2024-04-26_15:27:32-592.txt
-|   |   |-- post_2024-05-03_18:23:45-362.txt
-|   |   |-- post_2024-05-03_18:26:19-741.txt
-|   |   |-- post_2024-05-03_19:39:50-803.txt
-|   |   |-- post_2024-05-03_20:14:04-519.txt
-|   |   |-- post_2024-05-03_22:07:28-694.txt
-|   |   |-- post_2024-05-03_22:13:53-986.txt
-|   |   |-- post_2024-05-03_22:28:16-811.txt
-|   |   |-- post_2024-05-03_22:48:15-132.txt
-|   |   |-- post_2024-05-03_23:02:59-957.txt
-|   |   |-- post_2024-05-17_10:09:26-633.txt
-|   |   |-- post_2024-06-01_07:30:39-709.txt
-|   |   |-- post_2024-06-01_07:30:48-909.txt
-|   |   |-- post_2024-06-01_07:30:56-153.txt
-|   |   |-- post_2024-07-07_02:43:16-916.txt
-|   |   |-- post_2024-07-07_02:44:09-894.txt
-|   |   |-- post_2024-07-07_04:38:29-881.txt
-|   |   |-- post_2024-07-07_04:38:46-629.txt
-|   |   |-- post_2024-07-07_04:47:40-613.txt
-|   |   |-- post_2024-07-07_04:48:34-488.txt
-|   |   |-- post_2024-07-07_04:48:35-488.txt
-|   |   |-- post_2024-07-07_04:48:38-488.txt
-|   |   |-- post_2024-07-07_04:54:26-562.txt
-|   |   |-- post_2024-07-07_04:54:34-333.txt
-|   |   |-- post_2024-07-07_04:55:51-947.txt
-|   |   |-- post_2024-07-07_05:00:37-462.txt
-|   |   |-- post_2024-07-24_20:51:50-094.txt
-|   |   |-- post_2024-07-25_03:25:57-261.txt
-|   |   |-- post_2024-07-25_03:43:54-147.txt
-|   |   |-- post_2024-07-25_04:10:10-690.txt
-|   |   |-- post_2024-07-25_04:14:10-633.txt
-|   |   |-- post_2024-07-25_04:14:50-077.txt
-|   |   |-- post_2024-07-25_04:15:24-217.txt
-|   |   |-- post_2024-07-25_04:15:44-463.txt
-|   |   |-- post_2024-08-06_15:39:44-327.txt
-|   |   |-- post_2024-08-06_15:40:22-506.txt
-|   |   |-- post_2024-08-06_15:41:20-035.txt
-|   |   |-- post_2024-08-06_15:41:53-278.txt
-|   |   \-- post_2024-08-27_21:40:41-120.txt
-|   |-- stats
-|   |   |-- heartbeat
-|   |   \-- song
-|   |-- temp
-|   |   \-- example_of_prompt_weirdness.mp4
-|   \-- thoughts
-|       |-- talgo-shirt-back.jpg
-|       \-- talgo-shirt-front.jpg
-|-- font
-|   |-- MapleMono.ttf
-|   |-- MapleMonoItalic.ttf
-|   |-- scientifica.ttf
-|   \-- scientificaItalic.ttf
-|-- home.html
-|-- html
-|   |-- I-dont-like-IT-old.html
-|   |-- I-dont-like-IT.html
-|   |-- albert-hack-1-old.html
-|   |-- albert-hack-1.html
-|   |-- blanchard.html
-|   |-- blog
-|   |   |-- index.html
-|   |   \-- posts
-|   |       |-- 2024-05-03-kingwood-maintenance.html
-|   |       |-- new-laptop.html
-|   |       \-- test-post.html
-|   |-- cool-sites-old.html
-|   |-- cool-sites.html
-|   |-- discord.html
-|   |-- footer.html
-|   |-- header.html
-|   |-- my-laptop.html
-|   |-- my-old-laptop.html
-|   |-- natalie-info-old.html
-|   |-- natalie-info.html
-|   |-- natalie-sightings.html
-|   |-- random-thoughts-old.html
-|   |-- random-thoughts.html
-|   |-- server-migration.html
-|   |-- site-info.html
-|   |-- stats.html
-|   \-- thoughts
-|       |-- audio-is-bad
-|       |-- dns
-|       |-- fonts???
-|       |-- less-technical-debt
-|       |-- re-previous-font-post
-|       |-- talgo-shirt
-|       |-- technical-debt
-|       |-- things-I-should-do
-|       |-- this-is-a-thought
-|       |-- website-concept
-|       \-- wireless-headphones
-|-- log
-|-- scripts
-|   |-- img-caption
-|   |-- include
-|   |-- make-link
-|   \-- make-link-2
-|-- shell.nix
-|-- sludge -> ../sludge
-\-- style.css
-
-19 directories, 179 files
-
-
-

88x31 collection

- -bunbun.dev - - - - - - - - - - - - - - -

post arbitrary data to be displayed here

yes, I do sanitize this(No you don't --sanitization tester)yes I do
$[ls -r ./files/posts-to-homepage | while read -r file; do echo "
$(cat files/posts-to-homepage/${file})
"; done]
\ No newline at end of file diff --git a/html/I-dont-like-IT.html b/html/I-dont-like-IT.html deleted file mode 100644 index 57d2948..0000000 --- a/html/I-dont-like-IT.html +++ /dev/null @@ -1,119 +0,0 @@ - - - Not a fan of IT - - - - - $[include html/header.html] -
-
-

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: -

- $[img-caption "/files/dean-email-why-it-matters.png" "Email to my parents from the dean of students where she blatantly lies"] -

- Problems with this email:

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

-

-
-
-

Misc

- -
-
- $[include html/footer.html] - - diff --git a/html/albert-hack-1.html b/html/albert-hack-1.html deleted file mode 100644 index 8bb13af..0000000 --- a/html/albert-hack-1.html +++ /dev/null @@ -1,32 +0,0 @@ - - - Albert - - - - - $[include html/header.html] -
-
-

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. -

-
-
- $[include html/footer.html] - - diff --git a/html/blanchard.html b/html/blanchard.html deleted file mode 100644 index 263b64c..0000000 --- a/html/blanchard.html +++ /dev/null @@ -1,167 +0,0 @@ - - -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 deleted file mode 100644 index f0645f8..0000000 --- a/html/blog/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - Subunit of the blogosphere - - - - - $[include html/header.html] -
-
-

My subunit of the blogosphere

-

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 --time=creation); 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"))

-
-
- $[include html/footer.html] - - diff --git a/html/blog/posts/2024-05-03-kingwood-maintenance.html b/html/blog/posts/2024-05-03-kingwood-maintenance.html deleted file mode 100644 index da88512..0000000 --- a/html/blog/posts/2024-05-03-kingwood-maintenance.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - Belt sander maintenance - - - $[include html/header.html] -
-
-

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. -

-
-
- - - $[img-caption "/files/blog-files/pictures/kingwood-bad-contactor.jpg" "The damaged \"table down\" contactor in the kingwood belt sander."] - - - $[img-caption "/files/blog-files/pictures/natalie-kingwood.jpg" "Unexpected photograph of me my friend took while fixing the belt sander."] - - - $[img-caption "/files/blog-files/pictures/kingwood-wiring-mess.jpg" "Contactor spaghetti."] - - -
-
- $[include html/footer.html] - - diff --git a/html/blog/posts/new-laptop.html b/html/blog/posts/new-laptop.html deleted file mode 100644 index b221dd8..0000000 --- a/html/blog/posts/new-laptop.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - My Framework 16 arrived :) - - - $[include html/header.html] -
-
-

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. - $[img-caption "/files/fw16-new-colorscheme.png" "new colorscheme for my framework"] - Now (2024-07-06) it has a different colorscheme: - $[img-caption "/files/fw16-new-new-colorscheme.png" "new new colorscheme for my framework"] - I'm not going to update the website's colorscheme because I am lazy.
- as of 2024-07-27, I have made a media query that will use a dark colorscheme matching my laptop should you have a dark browser theme set. -

-
-
- $[include html/footer.html] - - diff --git a/html/blog/posts/test-post.html b/html/blog/posts/test-post.html deleted file mode 100644 index 5511798..0000000 --- a/html/blog/posts/test-post.html +++ /dev/null @@ -1,19 +0,0 @@ - - - aoeu - - - - - $[include html/header.html] -
-
-

Wowee! a blogpost

- aoeu -
-
- $[include html/footer.html] - - diff --git a/html/cool-sites.html b/html/cool-sites.html deleted file mode 100644 index cdd97f8..0000000 --- a/html/cool-sites.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - Neat/odd/cool/relatively unknown/other adjective websites - - - - $[include html/header.html] -
-
-

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 Semi functional now - albert: iso-9995-9.com (down? dns issue maybe) - sam: hellzone.org -
-
- $[include html/footer.html] - - diff --git a/html/discord.html b/html/discord.html deleted file mode 100644 index 059b378..0000000 --- a/html/discord.html +++ /dev/null @@ -1,21 +0,0 @@ - - - Discord - - - - - $[include html/header.html] -
-
-

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. -
-
- $[include html/footer.html] - - diff --git a/html/footer.html b/html/footer.html deleted file mode 100644 index edc0570..0000000 --- a/html/footer.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/html/header.html b/html/header.html deleted file mode 100644 index d2d6b8b..0000000 --- a/html/header.html +++ /dev/null @@ -1,11 +0,0 @@ -
- -
diff --git a/html/my-laptop.html b/html/my-laptop.html deleted file mode 100644 index b2964b6..0000000 --- a/html/my-laptop.html +++ /dev/null @@ -1,100 +0,0 @@ - - - laptop - - - - - $[include html/header.html] -
-
-

my laptop is rather haunted

- I am bad at using technology.
- this is not due to lack of technical ability, but instead due to the accumulation of unreasonable quirks over time in every computer I exert any degree of control over. -
-
-

booting and the operating system

-

- I do not use a bootloader. - instead, I have a custom kernel build based off the arch kernel with filesystem and compression drivers such that I can boot straight from my kernel. - I also do not have an initramfs. -

-

- technically, I don't use arch linux. - I use [a custom build of] the arch kernel and arch package repos, but actually run artix. - a function of this is that instead of systemd, I use openrc. -

-
-
-

seat management and hardware issue mitigation

-

- I once thought it would be entertaining to remove elogind from my system. - of course, I still needed it installed as a library, but disabling it was trivial. - it was replaced with seatd for seat management and acpid to suspend my computer when I close the lid. - this worked for a time, however after a couple months of this setup, elogind inexplicably began to be started by my init system. - I do not know how or why, I did not change anything, nor is there anything matching 'elogind' in /etc/init.d/. - this was bad because it would interfere with acpid. -

-

the solution

-
-~ λ cat /etc/acpi/lid.sh
-#!/bin/sh
-cat /proc/acpi/button/lid/LID0/state | grep open && (modprobe i2c_hid_acpi) || (
-    killall elogind-daemon
-    rmmod i2c_hid_acpi
-    (test -e /home/catalie/.should-power-off) && s2ram
-)               
-

- I overcame this issue simply by attempting to kill elogind every time I close the lid of my computer. -

-

- you may wonder, why is it running rmmod i2c_hid_acpi every time it close its laptop's lid. - you see, the framework 16 has an issue in which the trackpad and keyboard are not properly barred from waking the computer from suspend while the lid is closed. - in addition to this, the screen can flex just enough to press a key or bump the trackpad. - this causes the laptop to wake in my bag and attempt to boil the contents of my backpack. - the keyboard waking the computer from suspend can be ammended by running -

sudo acpitool -w | grep enabled | awk '{print $1}' | sed 's/\.//' | xargs -I{} sudo acpitool -W {}
- however, the trackpad is not in the list of acpi wakeup devices for whatever reason. - thus, upon the lid being closed, I simply unload the kernel module the trackpad requires and load it again upon opening the lid. -

-
-
-

environment

-

- I use wayland, specifically hyprland. - this is unfortunate because it is bad software (this will be elaborated upon), but I like the special workspace system. - my status bar and notification system are written in gjs with ags. I resent this because it involves javascript, but oh well. - when libastal gets documentation, I will probably rewrite my ui in that. - my terminal emulator is my own build of st. - I have yet to find a good terminal that supports all the things I want for wayland, so xwayland it is. -

-
-
-

keyboard

-

- unlike my previous laptop, I had the option to buy this laptop such that it came with a blank keyboard. - in accordance with this, I have not sanded my keyboard. - the framework 16 keyboard runs qmk, this is very nice. - the keyboard firmware is now hardcoded to be dvorak instead of using a custom console and xkb map. - on one hand this is nice because it means I do not need to edit xkb files to remap caps lock to control, but on the other hand if I plug an external keyboard in to my laptop, it will be qwerty and I will have to load my xkb map or type in qwerty. I can probably type in qwerty. - I need to remember to finish my keyboard config at some point. also, I should make the button that breaks the keyboard until I remove it and put it back in harder to press. -

-
-
-

irregular bugs

- -
-
- $[include html/footer.html] - - diff --git a/html/my-old-laptop.html b/html/my-old-laptop.html deleted file mode 100644 index 7560820..0000000 --- a/html/my-old-laptop.html +++ /dev/null @@ -1,105 +0,0 @@ - - - laptop - - - - - $[include html/header.html] -
-
-

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].
-

-
-
- - - - $[img-caption "/files/laptop-keyboard.png" "photograph of my laptops keyboard, which is blank because I sanded it."] - $[img-caption "/files/laptop-radio.jpg" "The software defined radio that goes in my laptop's disc drive."] - $[img-caption "/files/keybinds_graph.png" "Graph of my keybindings, they are hard to see"] - $[img-caption "/files/laptop-charger-barrel.jpg" "charger barrel size adapter sticking out the back of my laptop"] - - - -

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:
-

- $[img-caption "/files/laptop-xkb-geometry.png" "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. -

-

to my endless amusement, I may be partially to blame for the niri compositor having keybinding modes

- $[img-caption /files/niri-dev-keybind-graph.png 'YaLTeR, the niri dev, seeing my keybind graph and deciding to implement keybinding modes'] -
-
-
-
- $[include html/footer.html] - - diff --git a/html/natalie-info.html b/html/natalie-info.html deleted file mode 100644 index d50e086..0000000 --- a/html/natalie-info.html +++ /dev/null @@ -1,63 +0,0 @@ - - - Natalie information - - - - - $[include html/header.html] -
-
-

what is a "natalie?"

- I am natalie. obviously. -

- words are not a thing I am good at. this is exacerbaited when the words are about myself. - despite this, I shall attempt a suitable description of myself. -

-
- ideally, I am to be referred to as an "it" or a "she". the former is preferred to some degree.
- timezone I am in: $[date "+%Z (UTC%z)"].
- age: $[echo $(( $(date +%s) - $(date -d "2007-04-01" +%s) ))] seconds. that is $[echo "scale=8; ($(date +%s) - $(date -d '2007-04-01' +%s)) / (365.25*24*3600)" | bc] [earth] years.
- I am kind of a college student. it is complicated. I will be a college student with less complications by fall of 2025.
- I like systems. particularly ones that have reasonably consistent behavior based on a set of rules. this is omnipresent in my interests. -
- list of interests: - things that I enjoy: - things I find displeasing: -
-
-

somewhat irregular natalie facts

- -
-
-

contact information

- Discord: _natalieeee_ - email: natalie at natalieee.net
- xmpp: nat@natalieee.net -
-
- $[include html/footer.html] - - diff --git a/html/natalie-sightings.html b/html/natalie-sightings.html deleted file mode 100644 index 3efd7c3..0000000 --- a/html/natalie-sightings.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - Natalie sightings - - - - $[include html/header.html] -
-
-

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 "$(img-caption "/$file")"; done] -
-
- $[include html/footer.html] - - diff --git a/html/random-thoughts.html b/html/random-thoughts.html deleted file mode 100644 index 438ed0e..0000000 --- a/html/random-thoughts.html +++ /dev/null @@ -1,20 +0,0 @@ - - - Natalie "thoughts" - - - - - $[include html/header.html] -
-
-

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. -
- $[for file in ./html/thoughts/*; do echo $(grep DATE $file | awk '{print $3 $4}') $file; done | sort -k1,1 -r | cut -d' ' -f2 | while read -r file; do echo "
$(grep '^$//'): $(grep '^$//')
$(include $file)
"; done] -
- $[include html/footer.html] - - diff --git a/html/server-migration.html b/html/server-migration.html deleted file mode 100644 index 3dad3f2..0000000 --- a/html/server-migration.html +++ /dev/null @@ -1,45 +0,0 @@ - - - server migration - - - - - $[include html/header.html] -
-
-

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).

-
-
- - - - $[img-caption "/files/natalie-holding-server.png" "me holding the server I got from the school basement"] - - - -

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. -

-
-
-
-
- $[include html/footer.html] - - diff --git a/html/site-info.html b/html/site-info.html deleted file mode 100644 index 35f8056..0000000 --- a/html/site-info.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - $[include html/header.html] -
-
-

Information about this website

- site-info.html was last modified on $[stat -c %y ./html/site-info.html | head -c 10].
-
-
-

/(.*\.)?natalieee.net/

-

why?

-

- I was displeased with my former status of not having a website -

-

how?

-

- requests to /(.*\.)?natalieee.net/ get routed to nginx, which acts as a proxy for my subdomains. - nginx routes requests requests to /^natalieee.net/ to this webserver, which is named sludge. - requests to /.*\.natalieee.net/ are routed according to the /.*\.natalieee.net/ section. -

-
-
-

/^natalieee.net/

-

- the root domain of this website, which you are currently observing, is running sludge. - the colors of both the light and dark mode are based off of the colorscheme of my laptop. -

-
-
-

sludge

-

what is a sludge?

-

s[ite][k]ludge is my from-scratch webserver. it has features.

-

why?

-

I dislike "web development". also, I was bored.

-

what does sludge do?

- -

how does sludge?

-

- sludge receives requests for paths. if these paths are in the routing table, it determines what it should respond with. generally, if the path starts with /html/, it will read an html document from the filesystem. - following this, it will locate any instance of "{key}" and replace these instances with a value determined by a function associated to the route being requested in the routing table. - after substituting these values, it will find any instances of the pattern "$[echo \$\[...]]", where ... is a valid bash expression. for each match, it replaces the original matching text with the output of said text executed in bash. - this functions as a static sight generator. an example of this is the headers on this site, which are included via the following expression: "$[echo \$\[include ./html/header.html]]" -

-

- sludge also has the ability to apply arbitrary edits to outgoing data prior to said data being sent, but after it has been generated. you may observe this here. -

-
-
-

/.*\.natalieee.net/

- -
-
- $[include html/footer.html] - - diff --git a/html/stats.html b/html/stats.html deleted file mode 100644 index d8e2cbc..0000000 --- a/html/stats.html +++ /dev/null @@ -1,22 +0,0 @@ - - - woah, data - - - - - $[include html/header.html] -
-
-

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 sludge/src/lib/router.py | grep Route -A1 | grep '/stats/' | sed "s/'//g; s/,//g" | cut -d= -f3); do echo "$(make-link $line)"; done] -
-
- $[include html/footer.html] - - diff --git a/html/thoughts/this-is-a-thought b/html/thoughts/this-is-a-thought index a9b944a..6f9f067 100644 --- a/html/thoughts/this-is-a-thought +++ b/html/thoughts/this-is-a-thought @@ -1,15 +1,20 @@ +this post has been edited to remove behavior that would cause breakage at compile time in compliance with changes to site archetucture discussed in "2024-08-21 00:25:12: this site serves pages slowly and with asymetric lag times" and the following post.
+you may think: "but posts don't get compiled". you are correct, however they get included in documents at the compile time of those documents.
+this caused behavior where every time the /html/random-thoughts.html page was rendered, it would render approximately 8 times the content. not ideal.
+instead of fixing the issue with the lisp to html converter (dubiously possible) I have simply escaped the commands in this post. use your imagination if you are really that curious as to how it originally looked. +


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]
+
$[echo "\$\[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']
+
$[echo "\$\[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/scripts/include b/scripts/include index 268d937..29dd87e 100755 --- a/scripts/include +++ b/scripts/include @@ -1,3 +1,8 @@ #!/bin/sh -python3 -u -c "import sludge.src.lib.content; print(sludge.src.lib.content.parse_file('$1'))" +output="$(python3 -u -c "import sludge.src.lib.content; print(sludge.src.lib.content.parse_file('$1'))")" +if [ -z "${2}" ]; then + echo "${output}" | sed "${2}" +else + echo "${output}" +fi