<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://kb.xion.mt/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexander</id>
	<title>XionKB - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://kb.xion.mt/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexander"/>
	<link rel="alternate" type="text/html" href="https://kb.xion.mt/Special:Contributions/Alexander"/>
	<updated>2026-05-06T12:49:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=886</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=886"/>
		<updated>2026-02-13T01:25:01Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Add colours, tt, kbd and inline code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| No-op&lt;br /&gt;
| &amp;lt;tt&amp;gt;0000&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;0001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;0002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;0003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;0004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;0005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;0006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;0007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;0032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;0047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Page break to even&lt;br /&gt;
| &amp;lt;tt&amp;gt;0050&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Page break to odd&lt;br /&gt;
| &amp;lt;tt&amp;gt;0051&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of explicit teletype&lt;br /&gt;
| &amp;lt;tt&amp;gt;0052&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of explicit teletype&lt;br /&gt;
| &amp;lt;tt&amp;gt;0053&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of inline code&lt;br /&gt;
| &amp;lt;tt&amp;gt;0054&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of inline code&lt;br /&gt;
| &amp;lt;tt&amp;gt;0055&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of keyboard key&lt;br /&gt;
| &amp;lt;tt&amp;gt;0056&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of keyboard key&lt;br /&gt;
| &amp;lt;tt&amp;gt;0057&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of black text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0060&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of red text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0061&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of green text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0062&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of yellow text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0063&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of blue text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0064&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of purple text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0065&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of cyan text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0066&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of white text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0067&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of steel text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0070&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of brown text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0071&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Start of bright text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0072&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Return to normal text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0073&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:rgba(162,169,177,0.5);font-style:italic;font-size:90%;text-align:center&amp;quot; | &amp;lt;tt&amp;gt;0074&amp;lt;/tt&amp;gt;&amp;amp;ndash;&amp;lt;tt&amp;gt;0077&amp;lt;/tt&amp;gt; are undefined&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0101&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0102&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0103&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0104&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0105&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0106&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0107&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0110&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0111&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0112&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0113&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0114&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0115&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0116&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0117&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0120&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0121&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0122&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0123&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0124&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0125&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0126&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0127&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0130&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0131&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0132&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0133&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0134&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0135&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0136&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0137&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
===Figures===&lt;br /&gt;
The RFC format does not provide any direct means for embedding figure data (beyond the aforementioned ASCII tables which are not true &#039;figures&#039; anyway). However, it does provide a comprehensive command set for accommodating figures into the rigid and portable geometry of RFC documents. True figures could then be emplaced into this &#039;saved space&#039; in the course of the rendering process, or if such rendering is not practical, the space could be left empty in a visually acceptable way. Commands 0100-0137 are provisioned for this purpose and provide a simple matrix of figure sizes: line height may be 5, 10, 15, 20, 25, 30, 40 or 50 high and the figure may be &amp;amp;frac14; width (17 columns), &amp;amp;frac12; width (35 columns), &amp;amp;frac34; width (51 columns) or full width (68 columns). Figures are always centred, and in the case of &amp;amp;frac14; and &amp;amp;frac34; width figures will have their remainder column on the right, and their top is the line on which the figure command first appears. Rendering of the figure involves an implicit carriage return before centring and as usual must respect the overwriting behaviour of the [[TTY format]], making it possible to overlay text on top of figures directly in the document. Document authors should navigate as necessary around their inserted figure according to its prescribed size.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
Regardless of whether the target medium is print or digital, the RFC format is still meant to be a monospaced, paper-friendly medium that never exceeds 72 columns in width. Since RFC is page-aware, unlike TTY, it sets a maximum page height of 55 rows – this leaves 2 header rows with 1 spacer row and 1 footer row with 1 spacer row for 50 rows of content per page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Siriusdos.jpg&amp;diff=885</id>
		<title>File:Siriusdos.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Siriusdos.jpg&amp;diff=885"/>
		<updated>2025-08-03T01:05:23Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Alexander uploaded a new version of File:Siriusdos.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-copy-xionmt}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Milotix.jpg&amp;diff=884</id>
		<title>File:Milotix.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Milotix.jpg&amp;diff=884"/>
		<updated>2025-08-03T01:02:38Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Alexander uploaded a new version of File:Milotix.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-copy-xionmt}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Astar.jpg&amp;diff=883</id>
		<title>File:Astar.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Astar.jpg&amp;diff=883"/>
		<updated>2025-08-03T01:00:36Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Alexander uploaded a new version of File:Astar.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-copy-xionmt}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=Simbel&amp;diff=882</id>
		<title>Simbel</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=Simbel&amp;diff=882"/>
		<updated>2025-05-22T06:34:39Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Revisit the big picture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}{{infobox swproj&lt;br /&gt;
|name=Simbel&lt;br /&gt;
|image=Simbel.jpg&lt;br /&gt;
|by=Alexander Nicholi&lt;br /&gt;
|langs={{wp|C (programming language)|C}}, [[C*]]&lt;br /&gt;
|systems=[[Sirius DOS]]&lt;br /&gt;
|archs={{wp|Intel 80286|i286}}&lt;br /&gt;
|lic=[[Artisan Software Licence#ASL 1.1|ASL 1.1]]&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Simbel&#039;&#039;&#039; is a document generation tool that consumes several categories of input information to create an abstract document that can then be rendered logically into various publication mediums including XHTML, HTML5, and PDF (and therefore including print).&lt;br /&gt;
&lt;br /&gt;
==Conceptual overview==&lt;br /&gt;
The central object of Simbel is a &#039;&#039;&#039;schematic&#039;&#039;&#039; which references all of the input in their various forms, including details about their placement, weight, truncation and other context. This schematic can then be rendered into one of several output formats described below, &#039;&#039;or&#039;&#039; it may be finalised and compressed as-is in the Abu format for preservation or further processing by other tools. The schematic itself never contains the content, but is rather bundled with it, potentially in finalised Abu archives.&lt;br /&gt;
&lt;br /&gt;
===Forms of input===&lt;br /&gt;
Simbel ingests several forms of content input, including:&lt;br /&gt;
* Cliffdocs &amp;amp;mdash; a terse, source-embedded form of code documentation&lt;br /&gt;
** typically these include plain comments interspersed throughout implementations, not &amp;quot;doc comments&amp;quot; with Doxygen or the like&lt;br /&gt;
* Manual pages, or &amp;quot;manpages&amp;quot; &amp;amp;mdash; long-form literature text that explains code in-depth&lt;br /&gt;
* Diagrams &amp;amp;mdash; flowcharts and other easily vectorised technical graphics that aid explanation&lt;br /&gt;
* Photographs &amp;amp;mdash; {{wp|Discrete cosine transform|DCT}}-type raster images for more subjective illustrations&lt;br /&gt;
* Hypermedia &amp;amp;mdash; not a direct format but a property of the other input formats that is merged and collated&lt;br /&gt;
&lt;br /&gt;
===Canonical formats===&lt;br /&gt;
Simbel uses the [[RFC format]] as its chief medium of text storage. Figures are reserved space in the document flow and embedded programmatically by Simbel at render time according to the desired format&#039;s needs. Textual data is encoded in this format and thereby as a superset of the self-evident ASCII-compatible [[TTY format]]. RFC means that authors should expect 72-column lines and 50-line pages, excluding margins, headers and footers which are managed separately.&lt;br /&gt;
&lt;br /&gt;
===Further rendering===&lt;br /&gt;
Simbel targets the following formats for rasterization of its ADM:&lt;br /&gt;
* XHTML 1.0 (for reading on tablets and computers)&lt;br /&gt;
* LaTeX (to be translated into page description formats like PDF)&lt;br /&gt;
* Abu format (see below)&lt;br /&gt;
&lt;br /&gt;
==Abu format==&lt;br /&gt;
Simbel will provide a stabilised public ABI via a file format that contains all of the necessary data and metadata for output. This allows others to target new formats using nothing more than the knowledge of this file format, and it also allows dynamic rendering and navigation in the form of editor plugins. Abu also serves as the &amp;quot;intermediate representation&amp;quot; that Simbel uses to instantiate its templates for XHTML, HTML and LaTeX.&lt;br /&gt;
&lt;br /&gt;
This format is to be built on top of a DOS-compatible subset of the PKZIP archive format.&lt;br /&gt;
&lt;br /&gt;
==Interface==&lt;br /&gt;
; Program name&lt;br /&gt;
: &amp;lt;code&amp;gt;simbel&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;Unix&amp;lt;/sup&amp;gt; &amp;lt;code&amp;gt;SIMBEL.COM&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;DOS&amp;lt;/sup&amp;gt;&lt;br /&gt;
; Verbs&lt;br /&gt;
:; &amp;lt;code&amp;gt;check&amp;lt;/code&amp;gt; check a schematic for validation and resource satisfiability&lt;br /&gt;
:: &amp;lt;code&amp;gt;[schematic file]&amp;lt;/code&amp;gt; the schematic to check for validity&lt;br /&gt;
:: &amp;lt;code&amp;gt;--verbose&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; be verbose about the checking process&lt;br /&gt;
:; &amp;lt;code&amp;gt;graph&amp;lt;/code&amp;gt; graph a schematic&#039;s resource dependencies&lt;br /&gt;
:: &amp;lt;code&amp;gt;[schematic file]&amp;lt;/code&amp;gt; the schematic to graph&lt;br /&gt;
:: &amp;lt;code&amp;gt;--ascii&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; output in ASCII to &amp;lt;tt&amp;gt;stdout&amp;lt;/tt&amp;gt; (this is the default when no flag is given)&lt;br /&gt;
:: &amp;lt;code&amp;gt;--vector&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; output in vector graphics format to &amp;lt;tt&amp;gt;stdout&amp;lt;/tt&amp;gt;&lt;br /&gt;
:; &amp;lt;code&amp;gt;render&amp;lt;/code&amp;gt; render a schematic into a file&lt;br /&gt;
:: &amp;lt;code&amp;gt;[schematic file]&amp;lt;/code&amp;gt; the schematic to render from&lt;br /&gt;
:: &amp;lt;code&amp;gt;[output file]&amp;lt;/code&amp;gt; the output file to be rendered&lt;br /&gt;
:: &amp;lt;code&amp;gt;--guess&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; guess the output format from the file extension (this is the default when no flag is given)&lt;br /&gt;
:: &amp;lt;code&amp;gt;--xhtml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; output to XHTML 1.0&lt;br /&gt;
:: &amp;lt;code&amp;gt;--dvi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; output to DVI&lt;br /&gt;
:; &amp;lt;code&amp;gt;pack&amp;lt;/code&amp;gt; pack up a schematic for preservation or transmission&lt;br /&gt;
:: &amp;lt;code&amp;gt;[schematic file]&amp;lt;/code&amp;gt; the schematic to pack&lt;br /&gt;
:: &amp;lt;code&amp;gt;[abu archive file]&amp;lt;/code&amp;gt; the Abu-compatible archive file to output to&lt;br /&gt;
:: &amp;lt;code&amp;gt;--fat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; output a fat archive, embedding all resources (this is the default when no flag is given)&lt;br /&gt;
:: &amp;lt;code&amp;gt;--thin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-t&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; output a thin archive, only referencing all resources&lt;br /&gt;
:: &amp;lt;code&amp;gt;--lz4&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; compress the archive with LZ4&lt;br /&gt;
:: &amp;lt;code&amp;gt;--lzip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-L&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; compress the archive with Lzip&lt;br /&gt;
:: &amp;lt;code&amp;gt;--uncompressed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-u&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; do not compress the archive&lt;br /&gt;
:: &amp;lt;code&amp;gt;--normal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; use normal compression levels with LZ4/Lzip (this is the default when a bare compression flag is given)&lt;br /&gt;
:: &amp;lt;code&amp;gt;--max&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt; &amp;lt;sub&amp;gt;optional&amp;lt;/sub&amp;gt; use maximum compression levels with LZ4/Lzip&lt;br /&gt;
&lt;br /&gt;
[[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=Earthbound&amp;diff=881</id>
		<title>Earthbound</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=Earthbound&amp;diff=881"/>
		<updated>2025-04-13T10:55:08Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Configuration file */ add schema&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox swproj&lt;br /&gt;
|name=Earthbound&lt;br /&gt;
|image=Earthbound.jpg&lt;br /&gt;
|by=Alexander Nicholi&lt;br /&gt;
|langs={{wp|ANSI C}}, {{wp|Unix shell|POSIX &amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt;}} for bootstrapping&lt;br /&gt;
|lic=[//www.gnu.org/licenses/gpl-2.0.html GPLv2 only]&lt;br /&gt;
}}&#039;&#039;&#039;Earthbound&#039;&#039;&#039; is a network- and system-agnostic software procurement system, designed to obtain and consume software packages in various formats and manage them in concert together at once.&lt;br /&gt;
&lt;br /&gt;
==Background and purpose==&lt;br /&gt;
Earthbound is part of the &#039;&#039;&#039;developmental quartet&#039;&#039;&#039; alongside [[Inbound]], [[Outbound]] and [[Rebound]]. It arose out of the need to acquire and integrate upstream software sources in a way that presumes as little as practical about the file structure or network availability of the source. Initially, this meant upstream cryptography libraries for [[Hinterlib]] which cannot be brought in-tree since doing so would undermine the confidence of the routines&#039; security.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
Earthbound only concerns itself with what we will call &#039;&#039;&#039;files of interest&#039;&#039;&#039;. These are files, often source code, that may come in from anywhere over the network, that were selected by the downstream developer to contain in good faith the data they need. Earthbound keeps SHA-3 hashes of these files of interest and uses them to verify the files&#039; authenticity.&lt;br /&gt;
&lt;br /&gt;
Beyond acquisition, Earthbound has a know-nothing approach, giving developers total discretion on what to do with these files after they have been downloaded and verified. This is true to its purpose of software procurement, which exalts the Unix philosophy of doing one thing and doing it well.&lt;br /&gt;
&lt;br /&gt;
===Configuration file===&lt;br /&gt;
Earthbound uses an INI file structure to define a collection of files of interest along with their hashes and details on where they may be found. It uses the following [//gist.github.com/nicholatian/05cae747b0d3a8928c85c12d65187ff3 INI schema]:&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-code&amp;quot;&amp;gt;caseinsens&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;0&lt;br /&gt;
mscomments&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file+&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;val&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;^[A-Za-z0-9_][A-Za-z0-9_\-\+]*(\.[A-Za-z0-9_\-\+]+)?$&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file:sha2sum?&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;val&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;^[0-9A-Fa-f]{64}$&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file:sha3sum?&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;val&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;^[0-9A-Fa-f]{64}$&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file:source+&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;val&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;^(https?|scp|rsync)://([a-z0-9\-]+\.)+[a-z0-9\-]+/.*$&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example configuration that sources a single file from multiple potential mirrors called &amp;lt;code&amp;gt;file1.c&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-code&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# is used for comments, not ;&amp;lt;br/&amp;gt;# must be at the start of a logical line&amp;lt;br/&amp;gt;&amp;amp;#9;&amp;amp;nbsp;# leading space is OK though&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file1.c&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;sha2sum&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;70d181c0bebbac369cddb65e6304e55a8efdcef50589154faf30390fdc6a1427&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# at least one is required, but multiple may be given&amp;lt;br/&amp;gt;# if so, all hashes are checked&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;sha3sum&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;4e9e5320e30e44ff31463806d5578fbfdc9212f32d2e9dd41998d0a8aaf830c9&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# all of these URLs are candidates and may be tried in any order&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://www.example.com/file1.c&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://www.example.de/file.c&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;ftp&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://ftp.example.ch/srv/file_1.c&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# sourcing files in archives uses the # symbol like DOM IDs&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://cdn.example.com/package.tar.gz#/subdir/file.c&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Earthbound&#039;s INI files, the following schema rules apply:&lt;br /&gt;
# all key&amp;amp;ndash;value pairs must appear under a section heading (there is no &amp;quot;global section&amp;quot;)&lt;br /&gt;
# only ASCII is permitted, except within comments, where the high bit may be set to passively allow UTF-8&lt;br /&gt;
# all URIs must be valid UTF-8 and legalised into ASCII via {{wp|percent-encoding}}&lt;br /&gt;
# file names are specified as the contents of the section name in whole&lt;br /&gt;
# file names cannot constitute paths; no directory component is permitted&lt;br /&gt;
&lt;br /&gt;
Given an INI like the one above, Earthbound offers several benefits:&lt;br /&gt;
# it will select the source URL using arbitrary algorithms which take advantage of the lack of ordering or precedence to choose the best download site&lt;br /&gt;
# when multiple source files may download from the same URL sans the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; suffix, the package only needs to be downloaded once&lt;br /&gt;
&lt;br /&gt;
[[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=Earthbound&amp;diff=880</id>
		<title>Earthbound</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=Earthbound&amp;diff=880"/>
		<updated>2025-04-11T07:25:22Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Configuration file */ detail the features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox swproj&lt;br /&gt;
|name=Earthbound&lt;br /&gt;
|image=Earthbound.jpg&lt;br /&gt;
|by=Alexander Nicholi&lt;br /&gt;
|langs={{wp|Unix shell|POSIX &amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
|lic=[[Artisan Software Licence#ASL 1.1|ASL 1.1]]&lt;br /&gt;
}}&#039;&#039;&#039;Earthbound&#039;&#039;&#039; is a network- and system-agnostic software procurement system, designed to obtain and consume software packages in various formats and manage them in concert together at once.&lt;br /&gt;
&lt;br /&gt;
==Background and purpose==&lt;br /&gt;
Earthbound is part of the &#039;&#039;&#039;developmental quartet&#039;&#039;&#039; alongside [[Inbound]], [[Outbound]] and [[Rebound]]. It arose out of the need to acquire and integrate upstream software sources in a way that presumes as little as practical about the file structure or network availability of the source. Initially, this meant upstream cryptography libraries for [[Hinterlib]] which cannot be brought in-tree since doing so would undermine the confidence of the routines&#039; security.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
Earthbound only concerns itself with what we will call &#039;&#039;&#039;files of interest&#039;&#039;&#039;. These are files, often source code, that may come in from anywhere over the network, that were selected by the downstream developer to contain in good faith the data they need. Earthbound keeps SHA-3 hashes of these files of interest and uses them to verify the files&#039; authenticity.&lt;br /&gt;
&lt;br /&gt;
Beyond acquisition, Earthbound has a know-nothing approach, giving developers total discretion on what to do with these files after they have been downloaded and verified. This is true to its purpose of software procurement, which exalts the Unix philosophy of doing one thing and doing it well.&lt;br /&gt;
&lt;br /&gt;
===Configuration file===&lt;br /&gt;
Earthbound uses a simple INI file structure to define a collection of files of interest along with their hashes and details on where they may be found. Observe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-code&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# is used for comments, not ;&amp;lt;br/&amp;gt;# must be at the start of a logical line&amp;lt;br/&amp;gt;&amp;amp;#9;&amp;amp;nbsp;# leading space is OK though&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file1.c&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;sha2sum&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;70d181c0bebbac369cddb65e6304e55a8efdcef50589154faf30390fdc6a1427&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# at least one is required, but multiple may be given&amp;lt;br/&amp;gt;# if so, all hashes are checked&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;sha3sum&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;4e9e5320e30e44ff31463806d5578fbfdc9212f32d2e9dd41998d0a8aaf830c9&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# all of these URLs are candidates and may be tried in any order&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://www.example.com/file1.c&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://www.example.de/file.c&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;ftp&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://ftp.example.ch/srv/file_1.c&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# sourcing files in archives uses the # symbol like DOM IDs&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://cdn.example.com/package.tar.gz#/subdir/file.c&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Earthbound&#039;s INI files, the following schema rules apply:&lt;br /&gt;
# all key&amp;amp;ndash;value pairs must appear under a section heading (there is no &amp;quot;global section&amp;quot;)&lt;br /&gt;
# only ASCII is permitted, except within comments, where the high bit may be set to passively allow UTF-8&lt;br /&gt;
# all URIs must be valid UTF-8 and legalised into ASCII via {{wp|percent-encoding}}&lt;br /&gt;
# comments begin with the hash symbol &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, not the semicolon &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
# file names are specified as the contents of the section name in whole&lt;br /&gt;
# file names cannot constitute paths; no directory component is permitted&lt;br /&gt;
&lt;br /&gt;
Given an INI like the one above, Earthbound offers several benefits:&lt;br /&gt;
# it will select the source URL using arbitrary algorithms which take advantage of the lack of ordering or precedence to choose the best download site&lt;br /&gt;
# when multiple source files may download from the same URL sans the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; suffix, the package only needs to be downloaded once&lt;br /&gt;
&lt;br /&gt;
[[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=Earthbound&amp;diff=879</id>
		<title>Earthbound</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=Earthbound&amp;diff=879"/>
		<updated>2025-04-09T08:44:42Z</updated>

		<summary type="html">&lt;p&gt;Alexander: update page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox swproj&lt;br /&gt;
|name=Earthbound&lt;br /&gt;
|image=Earthbound.jpg&lt;br /&gt;
|by=Alexander Nicholi&lt;br /&gt;
|langs={{wp|Unix shell|POSIX &amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
|lic=[[Artisan Software Licence#ASL 1.1|ASL 1.1]]&lt;br /&gt;
}}&#039;&#039;&#039;Earthbound&#039;&#039;&#039; is a network- and system-agnostic software procurement system, designed to obtain and consume software packages in various formats and manage them in concert together at once.&lt;br /&gt;
&lt;br /&gt;
==Background and purpose==&lt;br /&gt;
Earthbound is part of the &#039;&#039;&#039;developmental quartet&#039;&#039;&#039; alongside [[Inbound]], [[Outbound]] and [[Rebound]]. It arose out of the need to acquire and integrate upstream software sources in a way that presumes as little as practical about the file structure or network availability of the source. Initially, this meant upstream cryptography libraries for [[Hinterlib]] which cannot be brought in-tree since doing so would undermine the confidence of the routines&#039; security.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
Earthbound only concerns itself with what we will call &#039;&#039;&#039;files of interest&#039;&#039;&#039;. These are files, often source code, that may come in from anywhere over the network, that were selected by the downstream developer to contain in good faith the data they need. Earthbound keeps SHA-3 hashes of these files of interest and uses them to verify the files&#039; authenticity.&lt;br /&gt;
&lt;br /&gt;
Beyond acquisition, Earthbound has a know-nothing approach, giving developers total discretion on what to do with these files after they have been downloaded and verified. This is true to its purpose of software procurement, which exalts the Unix philosophy of doing one thing and doing it well.&lt;br /&gt;
&lt;br /&gt;
===Configuration file===&lt;br /&gt;
Earthbound uses a simple INI file structure to define a collection of files of interest along with their hashes and details on where they may be found. Observe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-code&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# is used for comments, not ;&amp;lt;br/&amp;gt;# must be at the start of a logical line&amp;lt;br/&amp;gt;&amp;amp;#9;&amp;amp;nbsp;# leading space is OK though&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,55%,55%)&amp;quot;&amp;gt;file1.c&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:hsl(212,60%,40%)&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;sha2sum&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;70d181c0bebbac369cddb65e6304e55a8efdcef50589154faf30390fdc6a1427&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# at least one is required, but multiple may be given&amp;lt;br/&amp;gt;# if so, all hashes are checked&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;sha3sum&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;4e9e5320e30e44ff31463806d5578fbfdc9212f32d2e9dd41998d0a8aaf830c9&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.333)&amp;quot;&amp;gt;# all of these URLs are candidates and may be tried in any order&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://www.example.com/file1.c&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;https&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://www.example.de/file1.c&amp;lt;br/&amp;gt;source&amp;lt;span style=&amp;quot;color:rgba(24,24,24,0.667)&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;ftp&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;://ftp.example.ch/srv/file1.c&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Earthbound&#039;s INI files, the following schema rules apply:&lt;br /&gt;
# all key&amp;amp;ndash;value pairs must appear under a section heading (there is no &amp;quot;global section&amp;quot;)&lt;br /&gt;
# only ASCII is permitted, except within comments, where the high bit may be set to passively allow UTF-8&lt;br /&gt;
# all URIs must be valid UTF-8 and legalised into ASCII via {{wp|percent-encoding}}&lt;br /&gt;
# comments begin with the hash symbol &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, not the semicolon &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
# file names are specified as the contents of the section name in whole&lt;br /&gt;
# file names cannot constitute paths; no directory component is permitted&lt;br /&gt;
&lt;br /&gt;
[[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Earthbound.jpg&amp;diff=878</id>
		<title>File:Earthbound.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Earthbound.jpg&amp;diff=878"/>
		<updated>2025-04-09T08:07:29Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-copy-xionmt}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=877</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=877"/>
		<updated>2025-04-03T16:08:04Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* General formatting */ add page breaks to even and odd pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| No-op&lt;br /&gt;
| &amp;lt;tt&amp;gt;0000&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;0001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;0002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;0003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;0004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;0005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;0006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;0007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;0032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;0047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Page break to even&lt;br /&gt;
| &amp;lt;tt&amp;gt;0050&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Page break to odd&lt;br /&gt;
| &amp;lt;tt&amp;gt;0051&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:rgba(162,169,177,0.5);font-style:italic;font-size:90%;text-align:center&amp;quot; | &amp;lt;tt&amp;gt;0052&amp;lt;/tt&amp;gt;&amp;amp;ndash;&amp;lt;tt&amp;gt;0077&amp;lt;/tt&amp;gt; are undefined&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0101&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0102&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0103&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0104&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0105&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0106&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0107&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0110&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0111&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0112&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0113&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0114&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0115&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0116&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0117&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0120&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0121&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0122&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0123&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0124&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0125&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0126&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0127&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0130&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0131&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0132&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0133&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0134&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0135&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0136&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0137&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
===Figures===&lt;br /&gt;
The RFC format does not provide any direct means for embedding figure data (beyond the aforementioned ASCII tables which are not true &#039;figures&#039; anyway). However, it does provide a comprehensive command set for accommodating figures into the rigid and portable geometry of RFC documents. True figures could then be emplaced into this &#039;saved space&#039; in the course of the rendering process, or if such rendering is not practical, the space could be left empty in a visually acceptable way. Commands 0100-0137 are provisioned for this purpose and provide a simple matrix of figure sizes: line height may be 5, 10, 15, 20, 25, 30, 40 or 50 high and the figure may be &amp;amp;frac14; width (17 columns), &amp;amp;frac12; width (35 columns), &amp;amp;frac34; width (51 columns) or full width (68 columns). Figures are always centred, and in the case of &amp;amp;frac14; and &amp;amp;frac34; width figures will have their remainder column on the right, and their top is the line on which the figure command first appears. Rendering of the figure involves an implicit carriage return before centring and as usual must respect the overwriting behaviour of the [[TTY format]], making it possible to overlay text on top of figures directly in the document. Document authors should navigate as necessary around their inserted figure according to its prescribed size.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
Regardless of whether the target medium is print or digital, the RFC format is still meant to be a monospaced, paper-friendly medium that never exceeds 72 columns in width. Since RFC is page-aware, unlike TTY, it sets a maximum page height of 55 rows – this leaves 2 header rows with 1 spacer row and 1 footer row with 1 spacer row for 50 rows of content per page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=876</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=876"/>
		<updated>2025-03-03T06:17:20Z</updated>

		<summary type="html">&lt;p&gt;Alexander: rework the encoding format to be friendlier to combinatorial efficiency&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| No-op&lt;br /&gt;
| &amp;lt;tt&amp;gt;0000&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;0001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;0002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;0003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;0004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;0005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;0006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;0007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;0032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;0047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0101&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0102&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0103&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0104&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0105&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0106&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0107&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0110&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0111&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0112&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0113&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0114&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0115&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0116&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0117&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0120&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0121&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0122&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0123&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0124&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0125&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0126&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0127&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0130&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0131&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0132&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0133&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0134&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0135&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0136&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0137&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
===Figures===&lt;br /&gt;
The RFC format does not provide any direct means for embedding figure data (beyond the aforementioned ASCII tables which are not true &#039;figures&#039; anyway). However, it does provide a comprehensive command set for accommodating figures into the rigid and portable geometry of RFC documents. True figures could then be emplaced into this &#039;saved space&#039; in the course of the rendering process, or if such rendering is not practical, the space could be left empty in a visually acceptable way. Commands 0100-0137 are provisioned for this purpose and provide a simple matrix of figure sizes: line height may be 5, 10, 15, 20, 25, 30, 40 or 50 high and the figure may be &amp;amp;frac14; width (17 columns), &amp;amp;frac12; width (35 columns), &amp;amp;frac34; width (51 columns) or full width (68 columns). Figures are always centred, and in the case of &amp;amp;frac14; and &amp;amp;frac34; width figures will have their remainder column on the right, and their top is the line on which the figure command first appears. Rendering of the figure involves an implicit carriage return before centring and as usual must respect the overwriting behaviour of the [[TTY format]], making it possible to overlay text on top of figures directly in the document. Document authors should navigate as necessary around their inserted figure according to its prescribed size.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
Regardless of whether the target medium is print or digital, the RFC format is still meant to be a monospaced, paper-friendly medium that never exceeds 72 columns in width. Since RFC is page-aware, unlike TTY, it sets a maximum page height of 55 rows – this leaves 2 header rows with 1 spacer row and 1 footer row with 1 spacer row for 50 rows of content per page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=875</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=875"/>
		<updated>2025-03-03T06:02:19Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Figures */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| No-op&lt;br /&gt;
| &amp;lt;tt&amp;gt;0000&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;0001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;0002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;0003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;0004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;0005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;0006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;0007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;0011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;0013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;0015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;0017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;0025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;0032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;0036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;0040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;0042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;0044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;0046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;0047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0100&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0101&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0102&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0103&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0104&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0105&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0106&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac14; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0107&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0110&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0111&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0112&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0113&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0114&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0115&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0116&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac12; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0117&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0120&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0121&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0122&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0123&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0124&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0125&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0126&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, &amp;amp;frac34; width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0127&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 5 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0130&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 10 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0131&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 15 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0132&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 20 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0133&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 25 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0134&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 30 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0135&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 40 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0136&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Figure 50 lines, full width&lt;br /&gt;
| &amp;lt;tt&amp;gt;0137&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
===Figures===&lt;br /&gt;
The RFC format does not provide any direct means for embedding figure data (beyond the aforementioned ASCII tables which are not true &#039;figures&#039; anyway). However, it does provide a comprehensive command set for accommodating figures into the rigid and portable geometry of RFC documents. True figures could then be emplaced into this &#039;saved space&#039; in the course of the rendering process, or if such rendering is not practical, the space could be left empty in a visually acceptable way. Commands 0100-0137 are provisioned for this purpose and provide a simple matrix of figure sizes: line height may be 5, 10, 15, 20, 25, 30, 40 or 50 high and the figure may be &amp;amp;frac14; width (17 columns), &amp;amp;frac12; width (35 columns), &amp;amp;frac34; width (51 columns) or full width (68 columns). Figures are always centred, and in the case of &amp;amp;frac14; and &amp;amp;frac34; width figures will have their remainder column on the right, and their top is the line on which the figure command first appears. Rendering of the figure involves an implicit carriage return before centring and as usual must respect the overwriting behaviour of the [[TTY format]], making it possible to overlay text on top of figures directly in the document. Document authors should navigate as necessary around their inserted figure according to its prescribed size.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
Regardless of whether the target medium is print or digital, the RFC format is still meant to be a monospaced, paper-friendly medium that never exceeds 72 columns in width. Since RFC is page-aware, unlike TTY, it sets a maximum page height of 55 rows – this leaves 2 header rows with 1 spacer row and 1 footer row with 1 spacer row for 50 rows of content per page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=874</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=874"/>
		<updated>2025-02-21T13:54:40Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Rendering */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
Regardless of whether the target medium is print or digital, the RFC format is still meant to be a monospaced, paper-friendly medium that never exceeds 72 columns in width. Since RFC is page-aware, unlike TTY, it sets a maximum page height of 55 rows – this leaves 2 header rows with 1 spacer row and 1 footer row with 1 spacer row for 50 rows of content per page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=873</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=873"/>
		<updated>2025-02-21T09:17:19Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Rendering */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
Regardless of whether the target medium is print or digital, the RFC format is still meant to be a monospaced, paper-friendly medium that never exceeds 72 columns in width. Since RFC is page-aware, unlike TTY, it sets a maximum page height of 55 rows – this leaves 2 header rows with 1 spacer row and 1 footer row with 1 spacer row for 50 columns of content per page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=RFC_format&amp;diff=872</id>
		<title>RFC format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=RFC_format&amp;diff=872"/>
		<updated>2025-02-21T09:09:49Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;RFC format&amp;#039;&amp;#039;&amp;#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the TTY text format. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint o...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;RFC format&#039;&#039;&#039; is a renderer-agnostic structured document format built using ASCII C0 control codes as a superset of the [[TTY format|TTY text format]]. It uses other C0 control codes not employed by printers (and thereby not known to TTY) to create rich document structure otherwise attained with advanced systems such as Troff and LaTeX. The format does this instead of providing a meta syntax like Markdown, RTF or HTML so that it can satisfy its design constraint of being legible as TTY formatted ASCII text if all superset control codes are blindly (as in, without any parsing knowledge required) stripped out.&lt;br /&gt;
&lt;br /&gt;
The recommended file extension for these documents is &amp;lt;code&amp;gt;.rfc&amp;lt;/code&amp;gt;. The magic number all RFC files should begin with is, in hexadecimal, &amp;lt;code&amp;gt;06 15 06 15&amp;lt;/code&amp;gt;, representing two interleaved pairs of ASCII &amp;lt;tt&amp;gt;ACK&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;NAK&amp;lt;/tt&amp;gt; C0 control codes. The RFC format reserves all C0 control codes not used by the TTY format except for &amp;lt;tt&amp;gt;NUL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;BEL&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x07&amp;lt;/tt&amp;gt;), &amp;lt;tt&amp;gt;SUB&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1A&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;ESC&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;0x1B&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
The RFC format is called as such because it is designed to mimic the production of the [//archive.ph/3jZoc IETF&#039;s RFC XML]. It is not technically related to any of the IETF&#039;s tools for producing or validating RFCs.&lt;br /&gt;
&lt;br /&gt;
==Embed encoding==&lt;br /&gt;
Sixteen extraneous ASCII C0 control codes are hijacked as a binary encoding medium so that each 7-bit ASCII character provides 4 bits of arbitrary binary data:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Character name&lt;br /&gt;
! Code&lt;br /&gt;
! Enc.&lt;br /&gt;
! Dec.&lt;br /&gt;
|-&lt;br /&gt;
| End of Text&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETX&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x03&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission&lt;br /&gt;
| &amp;lt;tt&amp;gt;EOT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x04&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enquiry&lt;br /&gt;
| &amp;lt;tt&amp;gt;ENQ&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x05&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Data Link Escape&lt;br /&gt;
| &amp;lt;tt&amp;gt;DLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x10&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x3&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x4&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x5&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x6&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Device Control 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;DC4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x7&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronous Idle&lt;br /&gt;
| &amp;lt;tt&amp;gt;SYN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x16&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x8&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Transmission Block&lt;br /&gt;
| &amp;lt;tt&amp;gt;ETB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x17&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x9&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cancel&lt;br /&gt;
| &amp;lt;tt&amp;gt;CAN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x18&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xA&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End of Medium&lt;br /&gt;
| &amp;lt;tt&amp;gt;EM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x19&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xB&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;FS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1C&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Group Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;GS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1D&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xD&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Record Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;RS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1E&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xE&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Unit Separator&lt;br /&gt;
| &amp;lt;tt&amp;gt;US&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0x1F&amp;lt;/tt&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xF&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This 4-bit medium is then employed to harbour an MSB sentinel variable-length integer encoding format: each 7-bit ASCII character contains 3 bits of meaningful information, while the high fourth bit is used to indicate whether the control character immediately following the current one should be collated with it as a single number. As with most variable-width binary encodings, it is invalid and undefined when control sequences are not properly encoded; they should always have zero or more of the above sixteen control characters with the high bit set in direct sequence followed by one and only one such control characters where the high bit is LOW.&lt;br /&gt;
&lt;br /&gt;
==Rich format==&lt;br /&gt;
The rich format is paragraph-oriented and does not recognise any semantic distinction between whitespace characters; Line Feed &amp;lt;tt&amp;gt;0x0A&amp;lt;/tt&amp;gt;, Carriage Return &amp;lt;tt&amp;gt;0x0D&amp;lt;/tt&amp;gt; and Space &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt; are all equivalent to one another. Parsing will collapse multitudes of such spaces into one inside paragraphs and conjoin source lines spanning many physical lines into one logical line before rendering them into monotype again with 72 characters/line.&lt;br /&gt;
&lt;br /&gt;
===Header for metadata===&lt;br /&gt;
If an RFC format parser encounters an ASCII Start of Heading &amp;lt;code&amp;gt;SOH&amp;lt;/code&amp;gt; before seeing any visible characters (including spacing) in the stream, it will parse it as a heading metadata block. Fields are simple ASCII text separated by CRLF pairs, making them dumb-printable:&lt;br /&gt;
# Full document title&lt;br /&gt;
# Author name&lt;br /&gt;
# Author address&lt;br /&gt;
# Author telephone&lt;br /&gt;
# Author e-mail&lt;br /&gt;
# Copyright date&lt;br /&gt;
# Copyright assignment&lt;br /&gt;
# Licence&lt;br /&gt;
&lt;br /&gt;
Omitting any of the fields is done by leaving them empty. They are parsed in order, and therefore there should always be exactly &#039;&#039;&#039;seven&#039;&#039;&#039; CRLF pairs in a heading metadata block. This block is then terminated by an ASCII Start of Text &amp;lt;code&amp;gt;STX&amp;lt;/code&amp;gt; character, after which the normal document text and whatever command formatting it bears appears immediately until {{expl|EOF|end of file}}. As a whole, this header is optional.&lt;br /&gt;
&lt;br /&gt;
===General formatting===&lt;br /&gt;
The number encoded in this way is, once decoded and in memory, interpreted as a formatting command. Parsing at this point should be forgiving; for example, excessive closing commands should be ignored. Here is a table of commands with their encodings in octal:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command description&lt;br /&gt;
! Number&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;001&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;002&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;003&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;004&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 5&lt;br /&gt;
| &amp;lt;tt&amp;gt;005&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin heading, level 6&lt;br /&gt;
| &amp;lt;tt&amp;gt;006&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End heading (relative)&lt;br /&gt;
| &amp;lt;tt&amp;gt;007&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;010&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End code block&lt;br /&gt;
| &amp;lt;tt&amp;gt;011&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;012&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote&lt;br /&gt;
| &amp;lt;tt&amp;gt;013&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;014&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End block quote credit&lt;br /&gt;
| &amp;lt;tt&amp;gt;015&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;016&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hard shadow&lt;br /&gt;
| &amp;lt;tt&amp;gt;017&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;020&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;021&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;022&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;023&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;024&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End hyperlink URI&lt;br /&gt;
| &amp;lt;tt&amp;gt;025&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin centred text&lt;br /&gt;
| &amp;lt;tt&amp;gt;026&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin right-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;027&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin justified text&lt;br /&gt;
| &amp;lt;tt&amp;gt;030&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Revert to left-aligned text&lt;br /&gt;
| &amp;lt;tt&amp;gt;031&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Render table of contents&lt;br /&gt;
| &amp;lt;tt&amp;gt;032&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;033&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link target ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;034&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;035&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link display text&lt;br /&gt;
| &amp;lt;tt&amp;gt;036&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;037&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link shadow bridge&lt;br /&gt;
| &amp;lt;tt&amp;gt;040&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;041&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End internal link reference ident&lt;br /&gt;
| &amp;lt;tt&amp;gt;042&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph break&lt;br /&gt;
| &amp;lt;tt&amp;gt;043&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;lt;tt&amp;gt;044&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Begin all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;045&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| End all capitals&lt;br /&gt;
| &amp;lt;tt&amp;gt;046&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Whole paragraph indent&lt;br /&gt;
| &amp;lt;tt&amp;gt;047&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Shadows===&lt;br /&gt;
The RFC format employs a simple rendering hatchet called &#039;&#039;&#039;shadows&#039;&#039;&#039;. The basic action of a shadow is, from its beginning mark to its end, it hides the text encased within from rich renderings of the document; this is called a &#039;&#039;&#039;hard shadow&#039;&#039;&#039;. A softer variant of this exists which are called &#039;&#039;&#039;shadow bridges&#039;&#039;&#039; – these are used to interlink a hyperlink or internal link&#039;s display text to its target destination, providing a semantic connection and a hiding of punctuation that would be needed in plain text for legibility, such as spacing and parentheses. Shadows provide a concise and simple way to hide plain text boilerplate from rich renderings of RFC documents while still providing them for dumb formatting strippers to create plain text renditions as the authors intended them without having to do any high-level reconstructions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=TTY_format&amp;diff=871</id>
		<title>TTY format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=TTY_format&amp;diff=871"/>
		<updated>2025-02-21T07:11:36Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Automatic ligatures */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;TTY format&#039;&#039;&#039; is an ASCII text format designed to provide formatting controls within the capabilities of the original ASCII C0 control code set and with respect to the functionality of teletypewriter style printers. The recommended file extension for such files is &amp;lt;code&amp;gt;.tty&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
TTY text provides a subset of the usual &amp;quot;rich text&amp;quot; features, namely bold text, underlining, and differential colouring. Bold text is accomplished through a string of backspaces followed by a repeating of the bolded substring, mimicking the way a typewriter would bold text by rewriting it over itself. Underlining is accomplished with the same lengthwise backspacing but followed with an equally long string of underscore characters instead of the original text. Differential colouring uses the ASCII codes &#039;&#039;&#039;shift in&#039;&#039;&#039; and &#039;&#039;&#039;shift out&#039;&#039;&#039;: one &amp;quot;shifts out&amp;quot; to the alternate colour, which is conventionally red but may be any colour the rendering user so chooses, and can later &amp;quot;shift back in&amp;quot; to the default black. Red was chosen as it has good contrast in both print and digital display.&lt;br /&gt;
&lt;br /&gt;
Editors displaying TTY text should support the full dynamics of the following ASCII control codes:&lt;br /&gt;
* Backspace (&amp;lt;code&amp;gt;BS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Horizontal Tabulation (&amp;lt;code&amp;gt;HT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x09&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Line Feed (&amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0A&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Vertical Tabulation (&amp;lt;code&amp;gt;VT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0B&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Form Feed (&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0C&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Carriage Return (&amp;lt;code&amp;gt;CR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0D&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Shift Out (&amp;lt;code&amp;gt;SO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0E&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Shift In (&amp;lt;code&amp;gt;SI&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Overlap===&lt;br /&gt;
This means the TTY format makes it possible to overlap text on top of itself within a single line, creating a kind of spooky cryptic effect normally not possible with any text rendering system. Backspaces can be used to achieve this piecewise or a carriage return may be issued that resets the write head to the line start.&lt;br /&gt;
&lt;br /&gt;
This is also the method by which the diacritics diaeresis, acute, grave, circumflex and tilde are achieved for both capital and lowercase letters. The diacritic and the letter may appear in either order separated by a backspace.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
The principal method of rendering is supposed to be inside a text editor, preferably one used for code editing. Writing a parser for TTY should be pretty straightforward, as it is almost entirely a task of simulating the motions of the teletypewriter according to this spec.&lt;br /&gt;
&lt;br /&gt;
Of course, TTY is also designed to be piped directly to 9-pin serial printers unmodified. Nevertheless, real world implementations will likely involve very crude &amp;quot;drivers&amp;quot; that strip out unsupported codes, such as &amp;lt;code&amp;gt;SI&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;SO&amp;lt;/code&amp;gt; pairs for printers without a secondary ribbon.&lt;br /&gt;
&lt;br /&gt;
===Automatic ligatures===&lt;br /&gt;
More modern rendering mediums can support automatic transformation of the ASCII source to use ligatures, smart quotation marks, and other niceties expected of finished literature. Rather than introducing Unicode into the TTY format, simple algorithms should be selectively enabled by the user at render time. The following transformations are possible:&lt;br /&gt;
* hyphen-minus to hyphen (U+2010) between words&lt;br /&gt;
* double hyphen-minus to em dash (U+2014) between words&lt;br /&gt;
* space-separated hyphen-minus to en dash (U+2013) between words&lt;br /&gt;
* opening and closing single and double quotation marks at beginning of and following words&lt;br /&gt;
* prime and double prime following decimal digits for latitude-longitude and imperial feet/inches&lt;br /&gt;
* hyphen-minus to hyphen-bullet (U+2043) at start of lines for lists&lt;br /&gt;
* asterisk to bullet (U+2022) at start of lines for lists&lt;br /&gt;
* registered symbol, copyright symbol, phonograph symbol, trademark sign and service mark sign from their parenthesised letters&lt;br /&gt;
* asterisk between decimal digits (optionally space-separated) to multiplication sign or middle dot&lt;br /&gt;
* solidus between decimal digits (optionally space-separated) to division sign&lt;br /&gt;
* capital S followed by period to section sign&lt;br /&gt;
* &amp;lt;code&amp;gt;+/-&amp;lt;/code&amp;gt; to the plus-minus sign&lt;br /&gt;
* vulgar fractions to their Unicode counterparts&lt;br /&gt;
* &amp;lt;code&amp;gt;No.&amp;lt;/code&amp;gt; followed by decimal digits (optionally space-separated) to numero sign&lt;br /&gt;
* &amp;quot;Tel.&amp;quot;, &amp;quot;TEL.&amp;quot;, &amp;quot;Fax.&amp;quot; and &amp;quot;FAX.&amp;quot; to their Unicode counterparts&lt;br /&gt;
* Functional programming ligatures [//archive.ph/sNLCx as seen in Fira Code, Monoid and Hasklig]&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
TTY exists to provide a better literate experience within the rigid and well-defined contours of monospaced teletypewriter printing. It is a low-level format that provides no &amp;quot;truly&amp;quot; rich-text experiences such as hyperlinking, tables of contents, organisational grouping tools, or diagrams of anything except those made in ASCII.&lt;br /&gt;
&lt;br /&gt;
Eventually, TTY will be targeted by a &amp;lt;tt&amp;gt;roff&amp;lt;/tt&amp;gt;-like &amp;quot;high level&amp;quot; format that provides such things with respect to the intended output being compatible with TTY, while also providing rendering to more conventional formats such as XHTML, PostScript, DVI and PDF.&lt;br /&gt;
&lt;br /&gt;
==Warts and specification==&lt;br /&gt;
Light Lempel–Ziv compression (such as LZ4) can be used (outside the scope of the file format itself) to overcome the nominal &amp;quot;waste&amp;quot; of repeating characters to encode formatting. Such algorithms are supersets of run-length encoding using dictionaries and thus are virtually ideal for compressing such strings.&lt;br /&gt;
&lt;br /&gt;
Eventually a formal specification can be put out fully describing TTY once the need arises, but for now it&#039;s more important to get it into use so that technical document authorship can commence in earnest with respect to web browsers, PDFs and printed documents alike.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components‏‎]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=TTY_format&amp;diff=870</id>
		<title>TTY format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=TTY_format&amp;diff=870"/>
		<updated>2025-02-21T06:10:35Z</updated>

		<summary type="html">&lt;p&gt;Alexander: mention crude driver intermediation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;TTY format&#039;&#039;&#039; is an ASCII text format designed to provide formatting controls within the capabilities of the original ASCII C0 control code set and with respect to the functionality of teletypewriter style printers. The recommended file extension for such files is &amp;lt;code&amp;gt;.tty&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
TTY text provides a subset of the usual &amp;quot;rich text&amp;quot; features, namely bold text, underlining, and differential colouring. Bold text is accomplished through a string of backspaces followed by a repeating of the bolded substring, mimicking the way a typewriter would bold text by rewriting it over itself. Underlining is accomplished with the same lengthwise backspacing but followed with an equally long string of underscore characters instead of the original text. Differential colouring uses the ASCII codes &#039;&#039;&#039;shift in&#039;&#039;&#039; and &#039;&#039;&#039;shift out&#039;&#039;&#039;: one &amp;quot;shifts out&amp;quot; to the alternate colour, which is conventionally red but may be any colour the rendering user so chooses, and can later &amp;quot;shift back in&amp;quot; to the default black. Red was chosen as it has good contrast in both print and digital display.&lt;br /&gt;
&lt;br /&gt;
Editors displaying TTY text should support the full dynamics of the following ASCII control codes:&lt;br /&gt;
* Backspace (&amp;lt;code&amp;gt;BS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Horizontal Tabulation (&amp;lt;code&amp;gt;HT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x09&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Line Feed (&amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0A&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Vertical Tabulation (&amp;lt;code&amp;gt;VT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0B&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Form Feed (&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0C&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Carriage Return (&amp;lt;code&amp;gt;CR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0D&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Shift Out (&amp;lt;code&amp;gt;SO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0E&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Shift In (&amp;lt;code&amp;gt;SI&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Overlap===&lt;br /&gt;
This means the TTY format makes it possible to overlap text on top of itself within a single line, creating a kind of spooky cryptic effect normally not possible with any text rendering system. Backspaces can be used to achieve this piecewise or a carriage return may be issued that resets the write head to the line start.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
The principal method of rendering is supposed to be inside a text editor, preferably one used for code editing. Writing a parser for TTY should be pretty straightforward, as it is almost entirely a task of simulating the motions of the teletypewriter according to this spec.&lt;br /&gt;
&lt;br /&gt;
Of course, TTY is also designed to be piped directly to 9-pin serial printers unmodified. Nevertheless, real world implementations will likely involve very crude &amp;quot;drivers&amp;quot; that strip out unsupported codes, such as &amp;lt;code&amp;gt;SI&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;SO&amp;lt;/code&amp;gt; pairs for printers without a secondary ribbon.&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
TTY exists to provide a better literate experience within the rigid and well-defined contours of monospaced teletypewriter printing. It is a low-level format that provides no &amp;quot;truly&amp;quot; rich-text experiences such as hyperlinking, tables of contents, organisational grouping tools, or diagrams of anything except those made in ASCII.&lt;br /&gt;
&lt;br /&gt;
Eventually, TTY will be targeted by a &amp;lt;tt&amp;gt;roff&amp;lt;/tt&amp;gt;-like &amp;quot;high level&amp;quot; format that provides such things with respect to the intended output being compatible with TTY, while also providing rendering to more conventional formats such as XHTML, PostScript, DVI and PDF.&lt;br /&gt;
&lt;br /&gt;
==Warts and specification==&lt;br /&gt;
Light Lempel–Ziv compression (such as LZ4) can be used (outside the scope of the file format itself) to overcome the nominal &amp;quot;waste&amp;quot; of repeating characters to encode formatting. Such algorithms are supersets of run-length encoding using dictionaries and thus are virtually ideal for compressing such strings.&lt;br /&gt;
&lt;br /&gt;
Eventually a formal specification can be put out fully describing TTY once the need arises, but for now it&#039;s more important to get it into use so that technical document authorship can commence in earnest with respect to web browsers, PDFs and printed documents alike.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components‏‎]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=TTY_format&amp;diff=869</id>
		<title>TTY format</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=TTY_format&amp;diff=869"/>
		<updated>2025-02-21T06:04:39Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;TTY format&amp;#039;&amp;#039;&amp;#039; is an ASCII text format designed to provide formatting controls within the capabilities of the original ASCII C0 control code set and with respect to the functionality of teletypewriter style printers. The recommended file extension for such files is &amp;lt;code&amp;gt;.tty&amp;lt;/code&amp;gt;.  ==Features== TTY text provides a subset of the usual &amp;quot;rich text&amp;quot; features, namely bold text, underlining, and differential colouring. Bold text is accomplished through a string of bac...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;TTY format&#039;&#039;&#039; is an ASCII text format designed to provide formatting controls within the capabilities of the original ASCII C0 control code set and with respect to the functionality of teletypewriter style printers. The recommended file extension for such files is &amp;lt;code&amp;gt;.tty&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
TTY text provides a subset of the usual &amp;quot;rich text&amp;quot; features, namely bold text, underlining, and differential colouring. Bold text is accomplished through a string of backspaces followed by a repeating of the bolded substring, mimicking the way a typewriter would bold text by rewriting it over itself. Underlining is accomplished with the same lengthwise backspacing but followed with an equally long string of underscore characters instead of the original text. Differential colouring uses the ASCII codes &#039;&#039;&#039;shift in&#039;&#039;&#039; and &#039;&#039;&#039;shift out&#039;&#039;&#039;: one &amp;quot;shifts out&amp;quot; to the alternate colour, which is conventionally red but may be any colour the rendering user so chooses, and can later &amp;quot;shift back in&amp;quot; to the default black. Red was chosen as it has good contrast in both print and digital display.&lt;br /&gt;
&lt;br /&gt;
Editors displaying TTY text should support the full dynamics of the following ASCII control codes:&lt;br /&gt;
* Backspace (&amp;lt;code&amp;gt;BS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Horizontal Tabulation (&amp;lt;code&amp;gt;HT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x09&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Line Feed (&amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0A&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Vertical Tabulation (&amp;lt;code&amp;gt;VT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0B&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Form Feed (&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0C&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Carriage Return (&amp;lt;code&amp;gt;CR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0D&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Shift Out (&amp;lt;code&amp;gt;SO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0E&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Shift In (&amp;lt;code&amp;gt;SI&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Overlap===&lt;br /&gt;
This means the TTY format makes it possible to overlap text on top of itself within a single line, creating a kind of spooky cryptic effect normally not possible with any text rendering system. Backspaces can be used to achieve this piecewise or a carriage return may be issued that resets the write head to the line start.&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
The principal method of rendering is supposed to be inside a text editor, preferably one used for code editing. Writing a parser for TTY should be pretty straightforward, as it is almost entirely a task of simulating the motions of the teletypewriter according to this spec. Of course, TTY is also designed to be piped directly to 9-pin serial printers unmodified.&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
TTY exists to provide a better literate experience within the rigid and well-defined contours of monospaced teletypewriter printing. It is a low-level format that provides no &amp;quot;truly&amp;quot; rich-text experiences such as hyperlinking, tables of contents, organisational grouping tools, or diagrams of anything except those made in ASCII.&lt;br /&gt;
&lt;br /&gt;
Eventually, TTY will be targeted by a &amp;lt;tt&amp;gt;roff&amp;lt;/tt&amp;gt;-like &amp;quot;high level&amp;quot; format that provides such things with respect to the intended output being compatible with TTY, while also providing rendering to more conventional formats such as XHTML, PostScript, DVI and PDF.&lt;br /&gt;
&lt;br /&gt;
==Warts and specification==&lt;br /&gt;
Light Lempel–Ziv compression (such as LZ4) can be used (outside the scope of the file format itself) to overcome the nominal &amp;quot;waste&amp;quot; of repeating characters to encode formatting. Such algorithms are supersets of run-length encoding using dictionaries and thus are virtually ideal for compressing such strings.&lt;br /&gt;
&lt;br /&gt;
Eventually a formal specification can be put out fully describing TTY once the need arises, but for now it&#039;s more important to get it into use so that technical document authorship can commence in earnest with respect to web browsers, PDFs and printed documents alike.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius DOS components‏‎]][[Category:Byblos components]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=User:Alexander&amp;diff=868</id>
		<title>User:Alexander</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=User:Alexander&amp;diff=868"/>
		<updated>2025-02-02T10:58:32Z</updated>

		<summary type="html">&lt;p&gt;Alexander: round out the gallery.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Alexander Nicholi.jpg|thumb|right|A professionally &#039;&#039;&#039;&#039;&#039;lit&#039;&#039;&#039;&#039;&#039; photo of me, taken in October 2023.]]My name is &#039;&#039;&#039;Alexander&#039;&#039;&#039;. I am an American informatician, game designer and programmer.&lt;br /&gt;
&lt;br /&gt;
==Early life==&lt;br /&gt;
My name is &#039;&#039;&#039;Alexander Nicholi&#039;&#039;&#039;. I was born &#039;&#039;&#039;Marshall Alexander Rose&#039;&#039;&#039; on March 6&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt;, 1998 on {{wp|Fort Sill}}, Oklahoma to parents native to {{wp|Princeton, West Virginia}}. My mother was an active duty Army machinist when she had me, and is now a factory worker. My father is a musician and private tutor of guitar and piano. They and I came from a 2,300-years-long unbroken line of poor Anglo-Britonnic yeomen who never intermixed with anyone else after the Anglo-Saxon assimilation. Originally serfs in the greater London area, they emigrated to the New World variously as indentured servants working Virginian plantations for their time. Upon their service completion, they fled into the Appalachian wilderness and eked out a modest existence undisturbed by the world for 300 years. My parents were the first to leave in the 1990s, making me the first to grow up outside our hinterland, although I have siblings who grew up within.&lt;br /&gt;
&lt;br /&gt;
As a child I was enamored with computers. I had countless old machines from thrift shops running various versions of Windows, and as I grew older I learned to use Linux over secure shell. I taught myself a great deal of programming technique, and by age 17 I was doing baremetal programming in C and assembly for the Game Boy Advance. This set the stage for my later research work concerning sustainable computing and the creation of [[C*]].&lt;br /&gt;
&lt;br /&gt;
On December 7&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt;&amp;lt;del&amp;gt;, 1941, a day which will live on in infamy&amp;lt;/del&amp;gt;, 2017, I wed my husband from Indonesia, a son of a Jakartan advertising magnate and former San Franciscan international student. He later attended college together with me and has had a presence in many of my business endeavours from the start, including ARQADIUM, which I started with him shortly before we met.&lt;br /&gt;
&lt;br /&gt;
==Career==&lt;br /&gt;
In the past, I have worked white collar at Vurbox and Unai. These days I do consulting work relating to my informatics expertise. I can do what most low-level programmers cannot do: dictate and explain it in high-level design strokes, up to and including productisation. [mailto:me@nicholatian.com Contact me] if you want to know my rate. (Serious inquiries only please)&lt;br /&gt;
&lt;br /&gt;
===Theoretical informatics===&lt;br /&gt;
* [[Functionalism]]&lt;br /&gt;
* [[Mechanicalism]]&lt;br /&gt;
* [[Literate programming]]&lt;br /&gt;
* [[Maintenance-free programming]]&lt;br /&gt;
* [[Modular memory]]&lt;br /&gt;
* [[C*#Addressing complexity in systems|Law and order]]&lt;br /&gt;
* [[Welch&#039;s bridge]]&lt;br /&gt;
* [[Superwiki]]&lt;br /&gt;
&lt;br /&gt;
===Applied informatics===&lt;br /&gt;
* [[Sirius DOS]]&lt;br /&gt;
* [[A*]]&lt;br /&gt;
* [[MILOTIX]]&lt;br /&gt;
* [[Byblos]]&lt;br /&gt;
* [[Oración]]&lt;br /&gt;
* [[Feeble C compiler]]&lt;br /&gt;
* [[Sirius C*]]&lt;br /&gt;
* [[Backus–Naur–Nicholi normal form]]&lt;br /&gt;
* [[Octet, not byte]]&lt;br /&gt;
* [[Pel, not pixel]]&lt;br /&gt;
* [[Effective RGB]]&lt;br /&gt;
&lt;br /&gt;
===Game design===&lt;br /&gt;
* [[Pokémon Citrite]]&lt;br /&gt;
** [[Citrite overworld maps]]&lt;br /&gt;
** [[Citrite title screen]]&lt;br /&gt;
&lt;br /&gt;
===Digital art===&lt;br /&gt;
&#039;&#039;TBW&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Pedestrian software work===&lt;br /&gt;
* [//github.com/nicholatian/senusret-syntax-theme Senusret syntax highlighting theme]&lt;br /&gt;
* [[Citrite source patching system]]&lt;br /&gt;
* [//github.com/arqadium/arqadium.com Custom static site generator]&lt;br /&gt;
&lt;br /&gt;
===Photography and modelling===&lt;br /&gt;
I have modelled for professional photographers over the years and have documented many of my vacations both domestic and overaseas likewise. While earlier photoshoots were often done with unremarkable smartphone cameras, my current gear involves a Sony &amp;amp;alpha;7R IV and a Sony Xperia 1 VI, both of which boast disgustingly good specs for what they are. When I&#039;m not modelling, my preference with the Xperia is fully automatic and with the &amp;amp;alpha;7R is manual focus, ISO and exposure with automatic F-stop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; perrow=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
File:Sony a7R IV.jpg|The big boy.&lt;br /&gt;
File:Xperia 1 VI obverse unsheathed.jpg|One of the greatest smartphones of all time.&lt;br /&gt;
File:Xperia 1 VI reverse unsheathed.jpg|Boasts a Zeiss T* lens set.&lt;br /&gt;
File:Xperia 1 VI propped lock.jpg|Cased and propped up.&lt;br /&gt;
File:Xperia 1 VI propped home.jpg|Android 15 is home.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Temple Run 2025]]&lt;br /&gt;
* [[Jakarta Holiday Reunion 2024]]&lt;br /&gt;
* [[Solar Eclipse 2024]]&lt;br /&gt;
* [[Fourth Anniversary Dinner]]&lt;br /&gt;
* [[October Stargazing]]&lt;br /&gt;
* [[Green Hill Photoshoot]]&lt;br /&gt;
* [[New Year&#039;s on the West Coast]]&lt;br /&gt;
* [[NC State Fair 2019]]&lt;br /&gt;
* [[First Tour of Asia]]&lt;br /&gt;
* [[New England Roadtrip]]&lt;br /&gt;
* [[NYC Round 1]]&lt;br /&gt;
* [[NYC Round 2]]&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
If you have ever visited my office, you know that I have a lot of computers. Or, well, I did when I lived in the suburbs – these days, only my laptops, Henen-nesw and Hetepsenusret are in use at my new flat downtown. Anyway, here are their specs and stories.&lt;br /&gt;
&lt;br /&gt;
===Jericho===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Jericho&lt;br /&gt;
|hostname=jericho&lt;br /&gt;
|cpu=Intel® Atom™ N455&lt;br /&gt;
|litho=45{{u|n|m}}&lt;br /&gt;
|corecount=1&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™&lt;br /&gt;
|ram=2{{u|Gi|B}} {{acro|DDR}}2 {{acro|SODIMM}}&lt;br /&gt;
|bootstorage=64{{u|Gi|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® GMA 3150&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|date=August 7, 2023&lt;br /&gt;
|cost=$73.03&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Jericho was originally the first computer I ever had to myself after I got out of high school so many years ago. The exact model is a 10″ Toshiba NB255 netbook, and this one is a replica I purchased that was identical to the original I owned before. I named it Jericho because it is very old and simple. It runs a Syslinux {{acro|BIOS}}-based dual booting installation of Alabaster Linux on Debian 12 and Windows XP Professional x64 Edition. This computer is too low-power to run any application that is a Chromium shell, so it is a very good baseline upon which to judge software quality. It is my main machine for Microsoft Office usage, as it has a complete installation of Office 2003 including FrontPage, Project, OneNote and Visio. It also has a complete installation of Visual Studio 2005, which runs swimmingly believe it or not.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Senusret===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Senusret IV&lt;br /&gt;
|hostname=SENUSRET4&lt;br /&gt;
|cpu=Intel® Core™ i7-8565U&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=4&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=16{{u|Gi|B}} {{acro|DDR}}3 soldered&lt;br /&gt;
|bootstorage=512{{u|Gi|B}} {{acro|TLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® UHD Graphics&lt;br /&gt;
|os=Windows 11™ Pro&lt;br /&gt;
|date=January 12, 2025&lt;br /&gt;
|cost=~$661.91&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Senusret is the name given to my current lead ThinkPad laptop. It is usually a 13” to 14” thin-and-light, sometimes a &#039;Yoga&#039; or 2-in-1, and offers maximal mobility and battery life with a modern installation of Microsoft Windows.&lt;br /&gt;
&lt;br /&gt;
There have been four incarnations of Senusret, my faithful ThinkPad. This is the current one, which I purchased for $899 SGD (~$661.91 USD at the time of purchase) while on holiday in mid-January of 2025. It was a display model on a pretty generous discount and is a stacked specs model (high-end processor option, 16{{u|Gi|B}} {{acro|RAM}}, {{acro|WWAN}}, et cetera). Senusret I was a ThinkPad S1 Yoga with 8{{u|Gi|B}} of {{acro|RAM}} and a Core i5-4200U processor running Windows 8.1, which was retired. Senusret II was a ThinkPad X1 Yoga (Gen 2) with a Core i5-7300U and 16{{u|Gi|B}} of {{acro|RAM}} running Windows 10 which died due to multiple motherboard shorts from a faulty refurbishment. Senusret III was a ThinkPad X240 with a Core i5-4300U and 8{{u|Gi|B}} of {{acro|RAM}} running Windows 10 which was retired in favour of the Ptolemies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Amenemhet===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Amenemhet III&lt;br /&gt;
|hostname=AMENEMHET3&lt;br /&gt;
|cpu=Intel® Core™ i7-3520M&lt;br /&gt;
|litho=22{{u|n|m}}&lt;br /&gt;
|corecount=2&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=2× 8{{u|Gi|B}} {{acro|DDR}}3 {{acro|SODIMM}}&lt;br /&gt;
|bootstorage=64{{u|Gi|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® HD Graphics 4000&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Amenhemhet is my other actively used ThinkPad that kind of plays second fiddle to Senusret. There have been times when I have not had an Amenemhet, but when I do, it is usually an older model ThinkPad that provides conveniences unavailable on up-to-date Windows installations. Currently, Amenemhet is on its third incarnation, and it is a mobile creative workstation running the Adobe CS3 Master Collection on Windows XP. In this sense it has more synergy with Jericho as a fellow x64-capable XP laptop, where Jericho is an ideal target for software engineering and Amenemhet is a more usable development host from which to target it.&lt;br /&gt;
&lt;br /&gt;
There have been three incarnations of Amenemhet so far. The current one was built from a collection of as-is ThinkPad X230 Tablet models obtained on Tokopedia and eBay, being the last centre-swiveling ThinkPad 2-in-1 tablet. Amenemhet I was a ThinkPad S1 Yoga to supplicate the old experience of using Senusret I after Senusret II was acquired. Amenemhet II was a ThinkPad X201 Tablet, which was retired in favour of the X230 Tablet due to its provision of 22{{u|n|m}} Ivy Bridge mobile processors over the X201&#039;s 45{{u|n|m}} Nehalem models, its doubling of {{acro|RAM}} capacity, and its support for {{acro|USB}} 3.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Menat Khufu===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Menat Khufu&lt;br /&gt;
|hostname=menatkhufu&lt;br /&gt;
|cpu=2× Intel® Xeon™ E5649&lt;br /&gt;
|litho=32{{u|n|m}}&lt;br /&gt;
|corecount=6 (12 total)&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=100{{u|Gi|B}} {{acro|DDR}}3 {{acro|RDIMM}}s (7× 8{{u|Gi|B}} + 11× 4{{u|Gi|B}})&lt;br /&gt;
|bootstorage=250{{u|G|B}} WD {{acro|IDE}} {{acro|HDD}}&lt;br /&gt;
|morestorage=6× 1{{u|T|B}} Seagate Constellation ES {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=Nvidia® Quadro™ M6000 with 24{{u|Gi|B}} VRAM&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Menat Khufu is a dedicated Windows XP build with x86-64 in mind. As a nod to Weird Al&#039;s infamous song &#039;&#039;All About the Pentiums,&#039;&#039; Menat Khufu is equipped with &amp;quot;100 gigabytes&amp;quot; of RAM (more precisely, 100 gibibytes, but blame {{wp|JEDEC}} for this erratum), enabling me to say that &amp;quot;I&#039;ve got myself a hundred gigabytes of RAM&amp;quot; as he does in the song. Besides that novelty, the build will be my main rig for using the Adobe Creative Suite as it was on Windows XP, including Photoshop, Illustrator, and perhaps even Premiere Pro. It will also run Visual Studio 2005.&lt;br /&gt;
&lt;br /&gt;
Menat Khufu will be installed as the computer of first resort in my laboratory. It will be set up with a tenkeyless Filco® Majestouch™ keyboard and a Microsoft® IntelliMouse™ both over PS/2 as well as an ASUS® ProArt™ 1920×1200 display. It is essentially a top-specced desktop version of Amenemhet that is more than capable of doing video editing, unlike Amenemhet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Henen-nesw===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Henen-nesw&lt;br /&gt;
|hostname=henen-nesw&lt;br /&gt;
|cpu=Intel® Core™ i7-5775C&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=4&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=8{{u|Gi|B}} DDR3 {{acro|UDIMM}}&lt;br /&gt;
|bootstorage=128{{u|G|B}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 512{{u|G|B}} Intel® DC2500 {{acro|SSD}} in Linux software {{acro|RAID}} 1&lt;br /&gt;
|gpu=Intel® Xeon Phi™ 3120A coprocessor&lt;br /&gt;
|os=Alabaster Linux on Debian 10&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
|date=October 7, 2022&lt;br /&gt;
|cost=~$2,000}}&lt;br /&gt;
Henen-nesw is my personal rig for daily usage at home. It is always online and therefore where I host many of my open-source torrent seedings, as I have high-speed Google Fiber home internet. It has a 43″ 4K main monitor, flanked on its left by a 27″ 1440p monitor in portrait orientation with about the same {{acro|DPI}}. I chose the flagship Broadwell Core™ i7 as it has an unusually beefy Intel Iris Pro™ iGPU with 128{{u|Mi|B}} of L4 cache. This, coupled with Intel’s first-class open source Linux graphics drivers, was a dream combination to me back in 2015 when I first got into PC building. It&#039;s socketed into a Z97 mITX motherboard with blacked-out Noctua cooling, inside a golden-orange Thermaltake® The Tower™ 100 chassis.&lt;br /&gt;
&lt;br /&gt;
Currently, the motherboard is kind of defective, as it refuses to accept having both of its {{acro|RAM}} slots populated, limiting it to a pithy 8GiB of system memory. Aging motherboards are hard to come by, so it may be a while before I remedy this.&lt;br /&gt;
&lt;br /&gt;
Eventually I would like to slightly downsize and qualitatively upgrade the display setup to some panels with far better colour quality:&lt;br /&gt;
* a 32″ main display running at 2160p: the [//archive.ph/Y9Vjl ASUS® ProArt™ PA329CRV]&lt;br /&gt;
* a vertical 24″ secondary running at 1440p: the [https://archive.ph/l1a9j ASUS® ProArt™ PA24ACRV]&lt;br /&gt;
&lt;br /&gt;
This new setup will offer a higher DPI while retaining the close consistency between monitors which I have with the current setup. I like my old trusty 43″ 4K display, but it is heavy, obscures the view of my living room a little bit too much, and my husband is patiently awaiting inheriting it from me as an upgrade for his own setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Hetepsenusret===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Hetepsenusret&lt;br /&gt;
|hostname=HETEPSENUSRET&lt;br /&gt;
|cpu=AMD® Ryzen™ Threadripper™ 1900X&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=8&lt;br /&gt;
|cpufeatures=AMD64™, 2-way SMT, AVX2, AMD-V, AMD-Vi, PowerNow!™&lt;br /&gt;
|ram=64{{u|Gi|B}} {{acro|DDR}}4 {{acro|UDIMM}}s (4× 16{{u|Gi|B}})&lt;br /&gt;
|bootstorage=512{{u|G|B}} Plextor® M8Pe {{acro|NVMe}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 6{{u|T|B}} Seagate® IronWolf™ {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=XFX RX 590&amp;lt;br/&amp;gt;XFX RX 580&amp;lt;br/&amp;gt;XFX RX 560&amp;lt;br/&amp;gt;XFX RX 460 Passive&lt;br /&gt;
|os=Windows 10 Enterprise&lt;br /&gt;
|date=c. 2019&lt;br /&gt;
|cost=~$3,200&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Hetepsenusret is a very large build housed in a white Thermaltake® The Tower™ 900 chassis that my husband funded to build early in our marriage. It uses a special Russian multi-seat software solution called [//ibiksoft.com/ ASTER] to allow several &amp;quot;terminals&amp;quot; of displays, keyboards, mice and other I/O to be shared on the same running instance of Windows. The computer is floated prominently in a central location in the common areas of our house, and much cabling is run behind to our desks and the living room allowing us to log on and use the computer simultaneously. It also features our only Blu-Ray writer drive, which we use to save movies.&lt;br /&gt;
&lt;br /&gt;
Hetepsenusret is one of two desktop computers I have in my domicile, the other being Henen-nesw. As my house is quite modest, I simply do not have room for any more computers beyond these and my laptops.&lt;br /&gt;
&lt;br /&gt;
The PC was built to have a wide upgrade path, and the following are planned once funding is permitting:&lt;br /&gt;
* max out the processor to the platform&#039;s flagship Ryzen™ Threadripper™ 2990WX, quadrupling the core count&lt;br /&gt;
* add an additional 4× 32{{u|Gi|B}} of RAM, bringing up total memory to 192{{u|Gi|B}}&lt;br /&gt;
** this will allow for creation of a 128{{u|Gi|B}} RAM drive for scratch disk usage&lt;br /&gt;
* upgrade the boot SSDs to much faster {{acro|PCIe}} 4.0 drives and soft {{acro|RAID}} them in BIOS&lt;br /&gt;
* upgrade the mass storage setup to 4× 20{{u|T|B}} drives using Windows ReFS in a {{acro|RAID}} 5 like configuration&lt;br /&gt;
* retire the four Polaris GPUs in favour of two Radeon RX 9000 series cards, as we only have two possible ASTER seats in the new flat&lt;br /&gt;
&lt;br /&gt;
Ideally, this upgrade will coincide with a new (and identical) case purchase as I dropped one of the tempered glass panels and shattered it back in 2023. A fresh installation of Windows 10 Enterprise LTSB will also be quite welcome.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Heh===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Heh&lt;br /&gt;
|hostname=heh&lt;br /&gt;
|cpu=2× Intel® Xeon™ E5-2699v4&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=22 (44 total)&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, VT-x with {{acro|EPT}}, SpeedStep™&lt;br /&gt;
|ram=64{{u|Gi|B}} {{acro|DDR4}} {{acro|UDIMM}}s (8× 8{{u|Gi|B}})&lt;br /&gt;
|bootstorage=64{{u|G|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s in {{acro|RAID}} 1&amp;lt;br/&amp;gt;2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=AMD® FirePro™ W4300&lt;br /&gt;
|os=Alabaster Linux on Arch Linux&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Heh is a build dedicated to LTO-9 data archiving. It is decked out with maxed out dual Broadwell Xeons to get good power efficiency and good aftermarket value for the Lzip-based compression to be done on archival data during ingestion. It is also equipped with at least 64GiB of RAM in order to have sufficient headroom for both the {{acro|LZMA}} compression algorithm&#039;s multithreaded memory consumption as well as &amp;lt;code&amp;gt;mbuffer&amp;lt;/code&amp;gt; usage to ensure smooth operation of the tape drive heads. The {{acro|RAID}} 1 array holds a &amp;quot;tape disk in progress&amp;quot;, that is, order data compressed and encrypted that does not yet fill up an entire 18{{u|T|B}} tape disk and must be grouped with other orders until it does. The two non-array drives are temporary staging areas for ingesting data from the variety of input media for backing up, providing coherency and performance in its transit from customer media to the partial drive and to final tape disk storage.&lt;br /&gt;
&lt;br /&gt;
Heh is a planned build and will be installed in my laboratory alongside Menat Khufu and Mirgissa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Mirgissa===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Mirgissa&lt;br /&gt;
|hostname=mirgissa&lt;br /&gt;
|cpu=AMD® EPYC™ 4564P&lt;br /&gt;
|litho=5{{u|n|m}}&lt;br /&gt;
|corecount=16&lt;br /&gt;
|cpufeatures=AMD64™, 2-way SMT, AVX-512, AMD-V, AMD-Vi, PowerNow!™&lt;br /&gt;
|ram=1× 48{{u|Gi|B}} {{acro|DDR5}} {{acro|ECC}} {{acro|RDIMM}}&lt;br /&gt;
|bootstorage=2× 256{{u|G|B}} {{acro|PCIe}} {{acro|TLC}} M.2 {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s in software {{acro|RAID}} 1&lt;br /&gt;
|gpu=ASRock Rack® ASPEED™ AS2600&lt;br /&gt;
|os=Alpine Linux&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Mirgissa is a planned always-on server build for my laboratory. It will be the last stop for all of my web services, which will be proxied through VPSes I lease for cheap. It will be housed in a Thermaltake® The Tower™ 300 µATX chassis and use an ASRock Rack® EPYC4000D4U µATX motherboard with ATX power. Booting will happen from {{acro|BIOS}} soft {{acro|RAID}} 1 NVMe drives, and mass storage is provided by two 20{{u|T|B}} hard disks using ZFS in a RAID 1 type configuration with the built-in {{acro|SATA}}/{{acro|SAS}} controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Ptolemy I and II===&lt;br /&gt;
Ptolemy is my late 2019 13″ MacBook Pro, which I purchased for $1,700 in August of 2019 for use in school. Ptolemy II (&amp;lt;tt&amp;gt;ptolemy2&amp;lt;/tt&amp;gt;) is my 2021 16″ MacBook Pro M1 Max, which was given to me by my former employer for work. If you have noticed the Egyptian theme of most of my other computer builds, this Hellenised deviation should make much sense.&lt;br /&gt;
&lt;br /&gt;
==Mail Jeep==&lt;br /&gt;
This is a collection of items to purchase and configure for use in my 1975 AM General DJ5-D &amp;quot;Mail Jeep&amp;quot; Dispatcher 100.&lt;br /&gt;
&lt;br /&gt;
===Mechanical items===&lt;br /&gt;
* [//www.autozone.com/batteries-starting-and-charging/battery/p/duralast-platinum-agm-battery-bci-group-size-48-760-cca-h6-agm/319460_0_0 AGM battery, group 48 size] &#039;&#039;&#039;$254.99&#039;&#039;&#039;&lt;br /&gt;
* [//www.summitracing.com/parts/pwm-37293 Powermaster Street Alternators 37293], 150{{u||A}} &#039;&#039;&#039;$198.99&#039;&#039;&#039;&lt;br /&gt;
* [//www.quadratec.com/products/51210_6221_07.htm CSF 2578 radiator] for 4.2{{u||L}} 258 powered Jeeps &#039;&#039;&#039;$519.00&#039;&#039;&#039;&lt;br /&gt;
* [//www.novak-adapt.com/catalog/adapters/engine-to-transmission/amc/kit-437amc/ Conversion kit to support TH350 transmission] &#039;&#039;&#039;$506.00&#039;&#039;&#039;&lt;br /&gt;
* [//www.jegs.com/i/jegs/555/60300/10002/-1 2WD TH350 transmission] &#039;&#039;&#039;$1,728.99&#039;&#039;&#039; + &#039;&#039;&#039;$178.99&#039;&#039;&#039; shipping&lt;br /&gt;
* [//www.ebay.com/itm/115909731703 GM Turbo 350 Transmission Floor Shifter] &#039;&#039;&#039;$167.96&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Cabin electronics===&lt;br /&gt;
* [//store.ui.com/us/en/collections/unifi-wifi-flagship-compact/products/u6-lite Ubiquiti UniFi 6 Lite] wireless AP &#039;&#039;&#039;$99.00&#039;&#039;&#039;&lt;br /&gt;
** Install [//openwrt.org/releases/23.05.0 OpenWrt 23.05.0] and follow the [//openwrt.org/docs/guide-user/network/wifi/dumbap Dumb {{acro|AP}} configuration guide]&lt;br /&gt;
** Use [//www.amazon.com/dp/B0BN7XQVSB 12{{u||V}} {{acro|PoE}} injector] to power the {{acro|AP}}&lt;br /&gt;
* [//www.amazon.com/dp/B00A128S24 TP-Link TL-SG105] unmanaged 5-port gigabit Ethernet switch&lt;br /&gt;
** 5V power provided by [//www.amazon.com/dp/B07Y2V1F8V direct 12{{u||V}} {{acro|DC}} converter]&lt;br /&gt;
* [//www.amazon.com/dp/B0BNPTW2L2 Nanopi R5C router] &#039;&#039;&#039;$69.99&#039;&#039;&#039;&lt;br /&gt;
** USB-C powered from the primary power socket&#039;s USB-A port&lt;br /&gt;
** provisions WireGuard VPN, NATted behind 5G smartphone modem&lt;br /&gt;
* [//www.amazon.com/dp/B08NWD7K8H Motorola One 5G Ace] &#039;&#039;&#039;$316.79&#039;&#039;&#039;&lt;br /&gt;
** Install [https://wiki.lineageos.org/devices/kiev/variant2/ LineageOS &amp;lt;tt&amp;gt;kiev&amp;lt;/tt&amp;gt;, variant 2] to liberate the hotspot&lt;br /&gt;
** USB-C to Ethernet should work directly&lt;br /&gt;
** Mount to function as a DIY dash cam&lt;br /&gt;
* Eton® E1XM satellite-enabled HD radio &#039;&#039;&#039;$550.00&#039;&#039;&#039;&lt;br /&gt;
** 9{{u||V}} power provided by [//www.amazon.com/dp/B0C1BBG75Z direct 12{{u||V}} {{acro|DC}} converter]&lt;br /&gt;
* [//www.amazon.com/dp/B00065JM8U Cabin road fan] &#039;&#039;&#039;$30.19&#039;&#039;&#039;&lt;br /&gt;
* [//www.amazon.com/dp/B09VDHX6S1 Dual 12{{u||V}} secondary power socket] &#039;&#039;&#039;$7.99&#039;&#039;&#039;&lt;br /&gt;
** One is socketed with the road fan&lt;br /&gt;
** One is socketed with a USB power adapter&lt;br /&gt;
* [//www.amazon.com/dp/B0BSVB93DK Anker USB accessory power adapter] &#039;&#039;&#039;$39.99&#039;&#039;&#039;&lt;br /&gt;
** One USB-C port can provide Turbo Power to a smartphone&lt;br /&gt;
** Another USB-C port can provide Turbo Power to another appliance (phone, headphone, &amp;amp;hellip;)&lt;br /&gt;
** The USB-A port can power dumb USB charging devices&lt;br /&gt;
&lt;br /&gt;
==Hybrid utilities==&lt;br /&gt;
===Electricity===&lt;br /&gt;
* 48{{u||V}} monocrystalline solar panel installation&lt;br /&gt;
&lt;br /&gt;
Current broad idea is to build out a solar array that is rated to support the house, with an AGM battery pack installation. I want to explore the feasibility of supporting heat pumps in the winter on solar alone.&lt;br /&gt;
&lt;br /&gt;
Emergency heat and power will be run on a Cummins Commercial Mobile Generator, 10{{u|k|W}} 60{{u||Hz}} model. The idea is to maximise flexibility on both ends: recapture all waste heat and use the generator to power auxiliary heating implements if necessary. The generator is diesel, so it can run on #2 or alternatively kerosene.&lt;br /&gt;
&lt;br /&gt;
==2021 Fall of Kabul==&lt;br /&gt;
Was marked safu on Facebook. Nothing else to report as of yet.&lt;br /&gt;
&lt;br /&gt;
==Legal issues==&lt;br /&gt;
None yet.&lt;br /&gt;
&lt;br /&gt;
==Later years and death==&lt;br /&gt;
My biographer will enjoy filling this out a lot more than I.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=867</id>
		<title>MediaWiki:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=867"/>
		<updated>2025-02-02T10:55:26Z</updated>

		<summary type="html">&lt;p&gt;Alexander: vertical padding may be OK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* All CSS here will be loaded for users of the MonoBook skin */&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/3fe6d609458f4b589a3a3ab4a0d42d12/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6 {&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li, #p-cactions li {&lt;br /&gt;
	border: 1px solid rgb(170, 170, 170);&lt;br /&gt;
	border: 1px solid rgba(170, 170, 170, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected a, body:not(.skin--responsive) #p-cactions li a, #p-cactions li.selected a, #p-cactions li a {&lt;br /&gt;
	background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected, #p-cactions li.selected {&lt;br /&gt;
	border-color: rgb(250, 189, 35);&lt;br /&gt;
	border-color: rgba(250, 189, 35, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-cactions li a:hover {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .mw-body, .mw-body {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-bottom-left-radius: 10px;&lt;br /&gt;
	border-right: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/d03156b082bf414ebe83906eac7f4185/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .pBody, .pBody {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
	border-bottom-right-radius: 10px;&lt;br /&gt;
	border-left: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #footer, #footer {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(250, 189, 25);&lt;br /&gt;
	border-color: rgba(250, 189, 25, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tt, code, .mw-code {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
pre, .mw-code {&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
	white-space: pre;&lt;br /&gt;
	overflow: scroll;&lt;br /&gt;
	max-width: 80ch;&lt;br /&gt;
	tab-size: 3;&lt;br /&gt;
	padding: 0.5em 0.75em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(248,248,248,0.875);&lt;br /&gt;
	border: 2px solid rgba(24,24,24,0.875);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
	padding: 0 0.25em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(88,88,88,0.125);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; tr &amp;gt; td, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable, .wikitable &amp;gt; tbody, .wikitable &amp;gt; tbody &amp;gt; tr {&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-red, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-red {&lt;br /&gt;
	background-color: rgb(228, 160, 155);&lt;br /&gt;
	background-color: rgba(228, 160, 155, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-orange, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-orange {&lt;br /&gt;
	background-color: rgb(242, 179, 141);&lt;br /&gt;
	background-color: rgba(242, 179, 141, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-yellow, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-yellow {&lt;br /&gt;
	background-color: rgb(238, 210, 144);&lt;br /&gt;
	background-color: rgba(238, 210, 144, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-puse, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-puse {&lt;br /&gt;
	background-color: rgb(210, 230, 153);&lt;br /&gt;
	background-color: rgba(210, 230, 153, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-green, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-green {&lt;br /&gt;
	background-color: rgb(162, 227, 156);&lt;br /&gt;
	background-color: rgba(162, 227, 156, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-cyan, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-cyan {&lt;br /&gt;
	background-color: rgb(41, 217, 201);&lt;br /&gt;
	background-color: rgba(41, 217, 201, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-blue, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-blue {&lt;br /&gt;
	background-color: rgb(152, 183, 230);&lt;br /&gt;
	background-color: rgba(152, 183, 230, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-violet, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-violet {&lt;br /&gt;
	background-color: rgb(216, 168, 240);&lt;br /&gt;
	background-color: rgba(216, 168, 240, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-magenta, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-magenta {&lt;br /&gt;
	background-color: rgb(236, 147, 197);&lt;br /&gt;
	background-color: rgba(236, 147, 197, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-highlight {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallerybox {&lt;br /&gt;
	padding: 5px 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=866</id>
		<title>MediaWiki:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=866"/>
		<updated>2025-02-02T10:49:25Z</updated>

		<summary type="html">&lt;p&gt;Alexander: fix b0rk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* All CSS here will be loaded for users of the MonoBook skin */&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/3fe6d609458f4b589a3a3ab4a0d42d12/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6 {&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li, #p-cactions li {&lt;br /&gt;
	border: 1px solid rgb(170, 170, 170);&lt;br /&gt;
	border: 1px solid rgba(170, 170, 170, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected a, body:not(.skin--responsive) #p-cactions li a, #p-cactions li.selected a, #p-cactions li a {&lt;br /&gt;
	background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected, #p-cactions li.selected {&lt;br /&gt;
	border-color: rgb(250, 189, 35);&lt;br /&gt;
	border-color: rgba(250, 189, 35, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-cactions li a:hover {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .mw-body, .mw-body {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-bottom-left-radius: 10px;&lt;br /&gt;
	border-right: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/d03156b082bf414ebe83906eac7f4185/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .pBody, .pBody {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
	border-bottom-right-radius: 10px;&lt;br /&gt;
	border-left: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #footer, #footer {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(250, 189, 25);&lt;br /&gt;
	border-color: rgba(250, 189, 25, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tt, code, .mw-code {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
pre, .mw-code {&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
	white-space: pre;&lt;br /&gt;
	overflow: scroll;&lt;br /&gt;
	max-width: 80ch;&lt;br /&gt;
	tab-size: 3;&lt;br /&gt;
	padding: 0.5em 0.75em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(248,248,248,0.875);&lt;br /&gt;
	border: 2px solid rgba(24,24,24,0.875);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
	padding: 0 0.25em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(88,88,88,0.125);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; tr &amp;gt; td, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable, .wikitable &amp;gt; tbody, .wikitable &amp;gt; tbody &amp;gt; tr {&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-red, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-red {&lt;br /&gt;
	background-color: rgb(228, 160, 155);&lt;br /&gt;
	background-color: rgba(228, 160, 155, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-orange, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-orange {&lt;br /&gt;
	background-color: rgb(242, 179, 141);&lt;br /&gt;
	background-color: rgba(242, 179, 141, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-yellow, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-yellow {&lt;br /&gt;
	background-color: rgb(238, 210, 144);&lt;br /&gt;
	background-color: rgba(238, 210, 144, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-puse, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-puse {&lt;br /&gt;
	background-color: rgb(210, 230, 153);&lt;br /&gt;
	background-color: rgba(210, 230, 153, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-green, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-green {&lt;br /&gt;
	background-color: rgb(162, 227, 156);&lt;br /&gt;
	background-color: rgba(162, 227, 156, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-cyan, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-cyan {&lt;br /&gt;
	background-color: rgb(41, 217, 201);&lt;br /&gt;
	background-color: rgba(41, 217, 201, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-blue, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-blue {&lt;br /&gt;
	background-color: rgb(152, 183, 230);&lt;br /&gt;
	background-color: rgba(152, 183, 230, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-violet, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-violet {&lt;br /&gt;
	background-color: rgb(216, 168, 240);&lt;br /&gt;
	background-color: rgba(216, 168, 240, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-magenta, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-magenta {&lt;br /&gt;
	background-color: rgb(236, 147, 197);&lt;br /&gt;
	background-color: rgba(236, 147, 197, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-highlight {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallerybox {&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=865</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=865"/>
		<updated>2025-02-02T10:45:59Z</updated>

		<summary type="html">&lt;p&gt;Alexander: gallerybox padding screws things up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: 10px auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-gallery-nolines {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=864</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=864"/>
		<updated>2025-02-02T10:38:58Z</updated>

		<summary type="html">&lt;p&gt;Alexander: let max width be set by perrow parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: 10px auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.gallerybox {&lt;br /&gt;
	padding: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-gallery-nolines {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=863</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=863"/>
		<updated>2025-02-02T10:35:01Z</updated>

		<summary type="html">&lt;p&gt;Alexander: only apply change to nolines galleries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: 10px auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.gallerybox {&lt;br /&gt;
	padding: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-gallery-nolines {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	max-width: 700px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=862</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=862"/>
		<updated>2025-02-02T10:29:48Z</updated>

		<summary type="html">&lt;p&gt;Alexander: tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: 10px auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.gallerybox {&lt;br /&gt;
	padding: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallery {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	max-width: 700px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=861</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=861"/>
		<updated>2025-02-02T10:28:37Z</updated>

		<summary type="html">&lt;p&gt;Alexander: more styling for gallery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	padding: 10px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.gallerybox {&lt;br /&gt;
	padding: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallery {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	max-width: 700px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=860</id>
		<title>MediaWiki:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=860"/>
		<updated>2025-02-02T10:26:39Z</updated>

		<summary type="html">&lt;p&gt;Alexander: remove conflicting set&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* All CSS here will be loaded for users of the MonoBook skin */&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/3fe6d609458f4b589a3a3ab4a0d42d12/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6 {&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li, #p-cactions li {&lt;br /&gt;
	border: 1px solid rgb(170, 170, 170);&lt;br /&gt;
	border: 1px solid rgba(170, 170, 170, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected a, body:not(.skin--responsive) #p-cactions li a, #p-cactions li.selected a, #p-cactions li a {&lt;br /&gt;
	background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected, #p-cactions li.selected {&lt;br /&gt;
	border-color: rgb(250, 189, 35);&lt;br /&gt;
	border-color: rgba(250, 189, 35, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-cactions li a:hover {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .mw-body, .mw-body {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-bottom-left-radius: 10px;&lt;br /&gt;
	border-right: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/d03156b082bf414ebe83906eac7f4185/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .pBody, .pBody {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
	border-bottom-right-radius: 10px;&lt;br /&gt;
	border-left: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #footer, #footer {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(250, 189, 25);&lt;br /&gt;
	border-color: rgba(250, 189, 25, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tt, code, .mw-code {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
pre, .mw-code {&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
	white-space: pre;&lt;br /&gt;
	overflow: scroll;&lt;br /&gt;
	max-width: 80ch;&lt;br /&gt;
	tab-size: 3;&lt;br /&gt;
	padding: 0.5em 0.75em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(248,248,248,0.875);&lt;br /&gt;
	border: 2px solid rgba(24,24,24,0.875);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
	padding: 0 0.25em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(88,88,88,0.125);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; tr &amp;gt; td, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable, .wikitable &amp;gt; tbody, .wikitable &amp;gt; tbody &amp;gt; tr {&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-red, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-red {&lt;br /&gt;
	background-color: rgb(228, 160, 155);&lt;br /&gt;
	background-color: rgba(228, 160, 155, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-orange, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-orange {&lt;br /&gt;
	background-color: rgb(242, 179, 141);&lt;br /&gt;
	background-color: rgba(242, 179, 141, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-yellow, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-yellow {&lt;br /&gt;
	background-color: rgb(238, 210, 144);&lt;br /&gt;
	background-color: rgba(238, 210, 144, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-puse, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-puse {&lt;br /&gt;
	background-color: rgb(210, 230, 153);&lt;br /&gt;
	background-color: rgba(210, 230, 153, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-green, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-green {&lt;br /&gt;
	background-color: rgb(162, 227, 156);&lt;br /&gt;
	background-color: rgba(162, 227, 156, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-cyan, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-cyan {&lt;br /&gt;
	background-color: rgb(41, 217, 201);&lt;br /&gt;
	background-color: rgba(41, 217, 201, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-blue, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-blue {&lt;br /&gt;
	background-color: rgb(152, 183, 230);&lt;br /&gt;
	background-color: rgba(152, 183, 230, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-violet, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-violet {&lt;br /&gt;
	background-color: rgb(216, 168, 240);&lt;br /&gt;
	background-color: rgba(216, 168, 240, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-magenta, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-magenta {&lt;br /&gt;
	background-color: rgb(236, 147, 197);&lt;br /&gt;
	background-color: rgba(236, 147, 197, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-highlight {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=859</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=859"/>
		<updated>2025-02-02T10:26:02Z</updated>

		<summary type="html">&lt;p&gt;Alexander: explicate the margins&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallery {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	max-width: 700px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=858</id>
		<title>MediaWiki:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=858"/>
		<updated>2025-02-02T10:23:39Z</updated>

		<summary type="html">&lt;p&gt;Alexander: be more specific&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* All CSS here will be loaded for users of the MonoBook skin */&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/3fe6d609458f4b589a3a3ab4a0d42d12/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6 {&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li, #p-cactions li {&lt;br /&gt;
	border: 1px solid rgb(170, 170, 170);&lt;br /&gt;
	border: 1px solid rgba(170, 170, 170, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected a, body:not(.skin--responsive) #p-cactions li a, #p-cactions li.selected a, #p-cactions li a {&lt;br /&gt;
	background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected, #p-cactions li.selected {&lt;br /&gt;
	border-color: rgb(250, 189, 35);&lt;br /&gt;
	border-color: rgba(250, 189, 35, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-cactions li a:hover {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .mw-body, .mw-body {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-bottom-left-radius: 10px;&lt;br /&gt;
	border-right: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/d03156b082bf414ebe83906eac7f4185/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .pBody, .pBody {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
	border-bottom-right-radius: 10px;&lt;br /&gt;
	border-left: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #footer, #footer {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(250, 189, 25);&lt;br /&gt;
	border-color: rgba(250, 189, 25, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tt, code, .mw-code {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
pre, .mw-code {&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
	white-space: pre;&lt;br /&gt;
	overflow: scroll;&lt;br /&gt;
	max-width: 80ch;&lt;br /&gt;
	tab-size: 3;&lt;br /&gt;
	padding: 0.5em 0.75em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(248,248,248,0.875);&lt;br /&gt;
	border: 2px solid rgba(24,24,24,0.875);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
	padding: 0 0.25em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(88,88,88,0.125);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; tr &amp;gt; td, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable, .wikitable &amp;gt; tbody, .wikitable &amp;gt; tbody &amp;gt; tr {&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-red, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-red {&lt;br /&gt;
	background-color: rgb(228, 160, 155);&lt;br /&gt;
	background-color: rgba(228, 160, 155, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-orange, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-orange {&lt;br /&gt;
	background-color: rgb(242, 179, 141);&lt;br /&gt;
	background-color: rgba(242, 179, 141, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-yellow, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-yellow {&lt;br /&gt;
	background-color: rgb(238, 210, 144);&lt;br /&gt;
	background-color: rgba(238, 210, 144, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-puse, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-puse {&lt;br /&gt;
	background-color: rgb(210, 230, 153);&lt;br /&gt;
	background-color: rgba(210, 230, 153, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-green, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-green {&lt;br /&gt;
	background-color: rgb(162, 227, 156);&lt;br /&gt;
	background-color: rgba(162, 227, 156, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-cyan, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-cyan {&lt;br /&gt;
	background-color: rgb(41, 217, 201);&lt;br /&gt;
	background-color: rgba(41, 217, 201, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-blue, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-blue {&lt;br /&gt;
	background-color: rgb(152, 183, 230);&lt;br /&gt;
	background-color: rgba(152, 183, 230, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-violet, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-violet {&lt;br /&gt;
	background-color: rgb(216, 168, 240);&lt;br /&gt;
	background-color: rgba(216, 168, 240, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-magenta, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-magenta {&lt;br /&gt;
	background-color: rgb(236, 147, 197);&lt;br /&gt;
	background-color: rgba(236, 147, 197, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-highlight {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ul.gallery.gallery.gallery {&lt;br /&gt;
	margin: initial;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=857</id>
		<title>MediaWiki:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Monobook.css&amp;diff=857"/>
		<updated>2025-02-02T10:20:29Z</updated>

		<summary type="html">&lt;p&gt;Alexander: remove margins of gallery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* All CSS here will be loaded for users of the MonoBook skin */&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/3fe6d609458f4b589a3a3ab4a0d42d12/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6 {&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li, #p-cactions li {&lt;br /&gt;
	border: 1px solid rgb(170, 170, 170);&lt;br /&gt;
	border: 1px solid rgba(170, 170, 170, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected a, body:not(.skin--responsive) #p-cactions li a, #p-cactions li.selected a, #p-cactions li a {&lt;br /&gt;
	background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #p-cactions li.selected, #p-cactions li.selected {&lt;br /&gt;
	border-color: rgb(250, 189, 35);&lt;br /&gt;
	border-color: rgba(250, 189, 35, 0.9);&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-cactions li a:hover {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .mw-body, .mw-body {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-top-left-radius: 5px;&lt;br /&gt;
	border-bottom-left-radius: 10px;&lt;br /&gt;
	border-right: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-image: url(&#039;https://cdn.tohoku.ac/f/d03156b082bf414ebe83906eac7f4185/unknown.jpg&#039;);&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-position: center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-attachment: fixed;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) .pBody, .pBody {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.9);&lt;br /&gt;
	border-top-right-radius: 5px;&lt;br /&gt;
	border-bottom-right-radius: 10px;&lt;br /&gt;
	border-left: none;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body:not(.skin--responsive) #footer, #footer {&lt;br /&gt;
	background-color: rgb(255, 255, 255);&lt;br /&gt;
	background-color: rgba(255, 255, 255, 0.9);&lt;br /&gt;
	border-color: rgb(250, 189, 25);&lt;br /&gt;
	border-color: rgba(250, 189, 25, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tt, code, .mw-code {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
pre, .mw-code {&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	display: block;&lt;br /&gt;
	white-space: pre;&lt;br /&gt;
	overflow: scroll;&lt;br /&gt;
	max-width: 80ch;&lt;br /&gt;
	tab-size: 3;&lt;br /&gt;
	padding: 0.5em 0.75em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(248,248,248,0.875);&lt;br /&gt;
	border: 2px solid rgba(24,24,24,0.875);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
	padding: 0 0.25em;&lt;br /&gt;
	border-radius: 5px;&lt;br /&gt;
	background-color: rgba(88,88,88,0.125);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; tr &amp;gt; td, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; th, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable, .wikitable &amp;gt; tbody, .wikitable &amp;gt; tbody &amp;gt; tr {&lt;br /&gt;
	border-color: rgb(162, 169, 177);&lt;br /&gt;
	border-color: rgba(162, 169, 177, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-red, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-red {&lt;br /&gt;
	background-color: rgb(228, 160, 155);&lt;br /&gt;
	background-color: rgba(228, 160, 155, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-orange, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-orange {&lt;br /&gt;
	background-color: rgb(242, 179, 141);&lt;br /&gt;
	background-color: rgba(242, 179, 141, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-yellow, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-yellow {&lt;br /&gt;
	background-color: rgb(238, 210, 144);&lt;br /&gt;
	background-color: rgba(238, 210, 144, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-puse, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-puse {&lt;br /&gt;
	background-color: rgb(210, 230, 153);&lt;br /&gt;
	background-color: rgba(210, 230, 153, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-green, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-green {&lt;br /&gt;
	background-color: rgb(162, 227, 156);&lt;br /&gt;
	background-color: rgba(162, 227, 156, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-cyan, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-cyan {&lt;br /&gt;
	background-color: rgb(41, 217, 201);&lt;br /&gt;
	background-color: rgba(41, 217, 201, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-blue, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-blue {&lt;br /&gt;
	background-color: rgb(152, 183, 230);&lt;br /&gt;
	background-color: rgba(152, 183, 230, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-violet, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-violet {&lt;br /&gt;
	background-color: rgb(216, 168, 240);&lt;br /&gt;
	background-color: rgba(216, 168, 240, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable &amp;gt; tr &amp;gt; td.cell-magenta, .wikitable &amp;gt; * &amp;gt; tr &amp;gt; td.cell-magenta {&lt;br /&gt;
	background-color: rgb(236, 147, 197);&lt;br /&gt;
	background-color: rgba(236, 147, 197, 0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-highlight {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallery {&lt;br /&gt;
	margin: initial;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=856</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=MediaWiki:Common.css&amp;diff=856"/>
		<updated>2025-02-02T10:18:53Z</updated>

		<summary type="html">&lt;p&gt;Alexander: set up gallery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=Vollkorn:wght@700&#039;);&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdan.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanb.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdani.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/nverdanz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesanspro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Sans Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcesansproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scpro.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scprob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproi.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/scproz.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmono.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &#039;Source Han Mono&#039;;&lt;br /&gt;
	src: url(&#039;https://xion.mt/sourcehanmonob.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	font-family: &#039;Neoverdana&#039;, &#039;Source Sans Pro&#039;, &#039;Source Han Sans&#039;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, .mw-code, code, tt, .mw-editfont-monospace {&lt;br /&gt;
	font-family: &#039;Source Code Pro&#039;, &#039;Source Han Mono&#039;, monospace;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Xion Megatrends faculty */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:before,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:before {&lt;br /&gt;
	content: &#039;χ&#039;;&lt;br /&gt;
	padding-right: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(96, 96, 96);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Webmasters */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Alexander&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Alexander&amp;quot;]:after {&lt;br /&gt;
	content: &#039;ξ&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(230, 118, 53);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Administrators */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:Rune&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:Rune&amp;quot;]:after {&lt;br /&gt;
	content: &#039;α&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(181, 48, 36);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bots */&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
div.mw-warning-w7ith-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;],&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;] {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.history-user[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-body[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
div.mw-warning-with-logexcerpt[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after,&lt;br /&gt;
a.mw-userlink[href=&amp;quot;/User:MediaWiki_default&amp;quot;]:after {&lt;br /&gt;
	content: &#039;π&#039;;&lt;br /&gt;
	padding-left: 0.25em;&lt;br /&gt;
	font-family: &#039;Vollkorn&#039;, serif;&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	color: rgb(37, 62, 154);&lt;br /&gt;
	text-shadow: 0.07em 0.07em 0.05em rgba(0,0,0,0.75);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;star&amp;quot; in C*, F*, A*, ... */&lt;br /&gt;
._star {}&lt;br /&gt;
&lt;br /&gt;
/* The &amp;quot;flat&amp;quot; in C♭ and then the &amp;quot;sharp&amp;quot; in C♯ */&lt;br /&gt;
._music {}&lt;br /&gt;
&lt;br /&gt;
/* Make hidden explanatory text noticeable */&lt;br /&gt;
.abbr {&lt;br /&gt;
	border-bottom: 1px dotted #000;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make examples stand out */&lt;br /&gt;
.example {&lt;br /&gt;
	background-color: rgb(248, 249, 250);&lt;br /&gt;
	background-color: rgba(248, 249, 250, 0.5);&lt;br /&gt;
	border-color: rgb(170, 170, 170);&lt;br /&gt;
	border-color: rgba(170, 170, 170, 0.5);&lt;br /&gt;
	border-radius: 0.2rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.roundy {&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-wiki-logo {&lt;br /&gt;
	background-size: 155px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.sig &amp;gt; a, span.sig &amp;gt; a:link, span.sig &amp;gt; a:visited, span.sig &amp;gt; a:active,&lt;br /&gt;
span.sig &amp;gt; a:hover {&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.gallery {&lt;br /&gt;
	border: 2px solid rgba(88, 88, 88, 0.6);&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	background-color: rgba(88, 88, 88, 0.05);&lt;br /&gt;
	border-radius: 5px 5px 10px 10px;&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	max-width: 700px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.thumbinner {&lt;br /&gt;
	min-width: 100px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_home.jpg&amp;diff=854</id>
		<title>File:Xperia 1 VI propped home.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_home.jpg&amp;diff=854"/>
		<updated>2025-02-01T22:42:38Z</updated>

		<summary type="html">&lt;p&gt;Alexander: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronics equipment]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_home.jpg&amp;diff=853</id>
		<title>File:Xperia 1 VI propped home.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_home.jpg&amp;diff=853"/>
		<updated>2025-02-01T22:42:22Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_lock.jpg&amp;diff=852</id>
		<title>File:Xperia 1 VI propped lock.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_lock.jpg&amp;diff=852"/>
		<updated>2025-02-01T22:41:57Z</updated>

		<summary type="html">&lt;p&gt;Alexander: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronics equipment]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_lock.jpg&amp;diff=851</id>
		<title>File:Xperia 1 VI propped lock.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_lock.jpg&amp;diff=851"/>
		<updated>2025-02-01T22:41:36Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_off.jpg&amp;diff=850</id>
		<title>File:Xperia 1 VI propped off.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_off.jpg&amp;diff=850"/>
		<updated>2025-02-01T22:41:11Z</updated>

		<summary type="html">&lt;p&gt;Alexander: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronics equipment]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_off.jpg&amp;diff=849</id>
		<title>File:Xperia 1 VI propped off.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_propped_off.jpg&amp;diff=849"/>
		<updated>2025-02-01T22:40:50Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_sheathed.jpg&amp;diff=848</id>
		<title>File:Xperia 1 VI reverse sheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_sheathed.jpg&amp;diff=848"/>
		<updated>2025-02-01T22:40:03Z</updated>

		<summary type="html">&lt;p&gt;Alexander: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronics equipment]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_sheathed.jpg&amp;diff=847</id>
		<title>File:Xperia 1 VI reverse sheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_sheathed.jpg&amp;diff=847"/>
		<updated>2025-02-01T22:39:46Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_sheathed.jpg&amp;diff=846</id>
		<title>File:Xperia 1 VI obverse sheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_sheathed.jpg&amp;diff=846"/>
		<updated>2025-02-01T22:39:17Z</updated>

		<summary type="html">&lt;p&gt;Alexander: add cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronics equipment]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_sheathed.jpg&amp;diff=845</id>
		<title>File:Xperia 1 VI obverse sheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_sheathed.jpg&amp;diff=845"/>
		<updated>2025-02-01T22:38:58Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_unsheathed.jpg&amp;diff=844</id>
		<title>File:Xperia 1 VI reverse unsheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_unsheathed.jpg&amp;diff=844"/>
		<updated>2025-02-01T22:38:23Z</updated>

		<summary type="html">&lt;p&gt;Alexander: no summary, just category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Electronics equipment]]&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_unsheathed.jpg&amp;diff=843</id>
		<title>File:Xperia 1 VI obverse unsheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_unsheathed.jpg&amp;diff=843"/>
		<updated>2025-02-01T22:38:06Z</updated>

		<summary type="html">&lt;p&gt;Alexander: no summary, just category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Electronics equipment]]&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_unsheathed.jpg&amp;diff=842</id>
		<title>File:Xperia 1 VI obverse unsheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_obverse_unsheathed.jpg&amp;diff=842"/>
		<updated>2025-02-01T22:37:25Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Category:Electronics equipment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Electronics equipment]]&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_unsheathed.jpg&amp;diff=841</id>
		<title>File:Xperia 1 VI reverse unsheathed.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Xperia_1_VI_reverse_unsheathed.jpg&amp;diff=841"/>
		<updated>2025-02-01T22:36:29Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Category:Electronics equipment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
[[Category:Electronics equipment]]&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=Category:Electronics_equipment&amp;diff=840</id>
		<title>Category:Electronics equipment</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=Category:Electronics_equipment&amp;diff=840"/>
		<updated>2025-02-01T22:35:34Z</updated>

		<summary type="html">&lt;p&gt;Alexander: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Sony_a7R_IV.jpg&amp;diff=839</id>
		<title>File:Sony a7R IV.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Sony_a7R_IV.jpg&amp;diff=839"/>
		<updated>2025-02-01T22:35:22Z</updated>

		<summary type="html">&lt;p&gt;Alexander: add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronics equipment]]&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=User:Alexander&amp;diff=838</id>
		<title>User:Alexander</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=User:Alexander&amp;diff=838"/>
		<updated>2025-02-01T20:58:04Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Photography modelling */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Alexander Nicholi.jpg|thumb|right|A professionally &#039;&#039;&#039;&#039;&#039;lit&#039;&#039;&#039;&#039;&#039; photo of me, taken in October 2023.]]My name is &#039;&#039;&#039;Alexander&#039;&#039;&#039;. I am an American informatician, game designer and programmer.&lt;br /&gt;
&lt;br /&gt;
==Early life==&lt;br /&gt;
My name is &#039;&#039;&#039;Alexander Nicholi&#039;&#039;&#039;. I was born &#039;&#039;&#039;Marshall Alexander Rose&#039;&#039;&#039; on March 6&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt;, 1998 on {{wp|Fort Sill}}, Oklahoma to parents native to {{wp|Princeton, West Virginia}}. My mother was an active duty Army machinist when she had me, and is now a factory worker. My father is a musician and private tutor of guitar and piano. They and I came from a 2,300-years-long unbroken line of poor Anglo-Britonnic yeomen who never intermixed with anyone else after the Anglo-Saxon assimilation. Originally serfs in the greater London area, they emigrated to the New World variously as indentured servants working Virginian plantations for their time. Upon their service completion, they fled into the Appalachian wilderness and eked out a modest existence undisturbed by the world for 300 years. My parents were the first to leave in the 1990s, making me the first to grow up outside our hinterland, although I have siblings who grew up within.&lt;br /&gt;
&lt;br /&gt;
As a child I was enamored with computers. I had countless old machines from thrift shops running various versions of Windows, and as I grew older I learned to use Linux over secure shell. I taught myself a great deal of programming technique, and by age 17 I was doing baremetal programming in C and assembly for the Game Boy Advance. This set the stage for my later research work concerning sustainable computing and the creation of [[C*]].&lt;br /&gt;
&lt;br /&gt;
On December 7&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt;&amp;lt;del&amp;gt;, 1941, a day which will live on in infamy&amp;lt;/del&amp;gt;, 2017, I wed my husband from Indonesia, a son of a Jakartan advertising magnate and former San Franciscan international student. He later attended college together with me and has had a presence in many of my business endeavours from the start, including ARQADIUM, which I started with him shortly before we met.&lt;br /&gt;
&lt;br /&gt;
==Career==&lt;br /&gt;
In the past, I have worked white collar at Vurbox and Unai. These days I do consulting work relating to my informatics expertise. I can do what most low-level programmers cannot do: dictate and explain it in high-level design strokes, up to and including productisation. [mailto:me@nicholatian.com Contact me] if you want to know my rate. (Serious inquiries only please)&lt;br /&gt;
&lt;br /&gt;
===Theoretical informatics===&lt;br /&gt;
* [[Functionalism]]&lt;br /&gt;
* [[Mechanicalism]]&lt;br /&gt;
* [[Literate programming]]&lt;br /&gt;
* [[Maintenance-free programming]]&lt;br /&gt;
* [[Modular memory]]&lt;br /&gt;
* [[C*#Addressing complexity in systems|Law and order]]&lt;br /&gt;
* [[Welch&#039;s bridge]]&lt;br /&gt;
* [[Superwiki]]&lt;br /&gt;
&lt;br /&gt;
===Applied informatics===&lt;br /&gt;
* [[Sirius DOS]]&lt;br /&gt;
* [[A*]]&lt;br /&gt;
* [[MILOTIX]]&lt;br /&gt;
* [[Byblos]]&lt;br /&gt;
* [[Oración]]&lt;br /&gt;
* [[Feeble C compiler]]&lt;br /&gt;
* [[Sirius C*]]&lt;br /&gt;
* [[Backus–Naur–Nicholi normal form]]&lt;br /&gt;
* [[Octet, not byte]]&lt;br /&gt;
* [[Pel, not pixel]]&lt;br /&gt;
* [[Effective RGB]]&lt;br /&gt;
&lt;br /&gt;
===Game design===&lt;br /&gt;
* [[Pokémon Citrite]]&lt;br /&gt;
** [[Citrite overworld maps]]&lt;br /&gt;
** [[Citrite title screen]]&lt;br /&gt;
&lt;br /&gt;
===Digital art===&lt;br /&gt;
&#039;&#039;TBW&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Pedestrian software work===&lt;br /&gt;
* [//github.com/nicholatian/senusret-syntax-theme Senusret syntax highlighting theme]&lt;br /&gt;
* [[Citrite source patching system]]&lt;br /&gt;
* [//github.com/arqadium/arqadium.com Custom static site generator]&lt;br /&gt;
&lt;br /&gt;
===Photography and modelling===&lt;br /&gt;
[[File:Sony a7R IV.jpg|thumb|right|300px|The big boy.]]I have modelled for professional photographers over the years and have documented many of my vacations both domestic and overaseas likewise. While earlier photoshoots were often done with unremarkable smartphone cameras, my current gear involves a Sony &amp;amp;alpha;7R IV and a Sony Xperia 1 VI, both of which boast disgustingly good specs for what they are. When I&#039;m not modelling, my preference with the Xperia is fully automatic and with the &amp;amp;alpha;7R is manual focus, ISO and exposure with automatic F-stop.&lt;br /&gt;
&lt;br /&gt;
* [[Temple Run 2025]]&lt;br /&gt;
* [[Jakarta Holiday Reunion 2024]]&lt;br /&gt;
* [[Solar Eclipse 2024]]&lt;br /&gt;
* [[Fourth Anniversary Dinner]]&lt;br /&gt;
* [[October Stargazing]]&lt;br /&gt;
* [[Green Hill Photoshoot]]&lt;br /&gt;
* [[New Year&#039;s on the West Coast]]&lt;br /&gt;
* [[NC State Fair 2019]]&lt;br /&gt;
* [[First Tour of Asia]]&lt;br /&gt;
* [[New England Roadtrip]]&lt;br /&gt;
* [[NYC Round 1]]&lt;br /&gt;
* [[NYC Round 2]]&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
If you have ever visited my office, you know that I have a lot of computers. Or, well, I did when I lived in the suburbs – these days, only my laptops, Henen-nesw and Hetepsenusret are in use at my new flat downtown. Anyway, here are their specs and stories.&lt;br /&gt;
&lt;br /&gt;
===Jericho===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Jericho&lt;br /&gt;
|hostname=jericho&lt;br /&gt;
|cpu=Intel® Atom™ N455&lt;br /&gt;
|litho=45{{u|n|m}}&lt;br /&gt;
|corecount=1&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™&lt;br /&gt;
|ram=2{{u|Gi|B}} {{acro|DDR}}2 {{acro|SODIMM}}&lt;br /&gt;
|bootstorage=64{{u|Gi|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® GMA 3150&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|date=August 7, 2023&lt;br /&gt;
|cost=$73.03&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Jericho was originally the first computer I ever had to myself after I got out of high school so many years ago. The exact model is a 10″ Toshiba NB255 netbook, and this one is a replica I purchased that was identical to the original I owned before. I named it Jericho because it is very old and simple. It runs a Syslinux {{acro|BIOS}}-based dual booting installation of Alabaster Linux on Debian 12 and Windows XP Professional x64 Edition. This computer is too low-power to run any application that is a Chromium shell, so it is a very good baseline upon which to judge software quality. It is my main machine for Microsoft Office usage, as it has a complete installation of Office 2003 including FrontPage, Project, OneNote and Visio. It also has a complete installation of Visual Studio 2005, which runs swimmingly believe it or not.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Senusret===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Senusret IV&lt;br /&gt;
|hostname=SENUSRET4&lt;br /&gt;
|cpu=Intel® Core™ i7-8565U&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=4&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=16{{u|Gi|B}} {{acro|DDR}}3 soldered&lt;br /&gt;
|bootstorage=512{{u|Gi|B}} {{acro|TLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® UHD Graphics&lt;br /&gt;
|os=Windows 11™ Pro&lt;br /&gt;
|date=January 12, 2025&lt;br /&gt;
|cost=~$661.91&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Senusret is the name given to my current lead ThinkPad laptop. It is usually a 13” to 14” thin-and-light, sometimes a &#039;Yoga&#039; or 2-in-1, and offers maximal mobility and battery life with a modern installation of Microsoft Windows.&lt;br /&gt;
&lt;br /&gt;
There have been four incarnations of Senusret, my faithful ThinkPad. This is the current one, which I purchased for $899 SGD (~$661.91 USD at the time of purchase) while on holiday in mid-January of 2025. It was a display model on a pretty generous discount and is a stacked specs model (high-end processor option, 16{{u|Gi|B}} {{acro|RAM}}, {{acro|WWAN}}, et cetera). Senusret I was a ThinkPad S1 Yoga with 8{{u|Gi|B}} of {{acro|RAM}} and a Core i5-4200U processor running Windows 8.1, which was retired. Senusret II was a ThinkPad X1 Yoga (Gen 2) with a Core i5-7300U and 16{{u|Gi|B}} of {{acro|RAM}} running Windows 10 which died due to multiple motherboard shorts from a faulty refurbishment. Senusret III was a ThinkPad X240 with a Core i5-4300U and 8{{u|Gi|B}} of {{acro|RAM}} running Windows 10 which was retired in favour of the Ptolemies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Amenemhet===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Amenemhet III&lt;br /&gt;
|hostname=AMENEMHET3&lt;br /&gt;
|cpu=Intel® Core™ i7-3520M&lt;br /&gt;
|litho=22{{u|n|m}}&lt;br /&gt;
|corecount=2&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=2× 8{{u|Gi|B}} {{acro|DDR}}3 {{acro|SODIMM}}&lt;br /&gt;
|bootstorage=64{{u|Gi|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® HD Graphics 4000&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Amenhemhet is my other actively used ThinkPad that kind of plays second fiddle to Senusret. There have been times when I have not had an Amenemhet, but when I do, it is usually an older model ThinkPad that provides conveniences unavailable on up-to-date Windows installations. Currently, Amenemhet is on its third incarnation, and it is a mobile creative workstation running the Adobe CS3 Master Collection on Windows XP. In this sense it has more synergy with Jericho as a fellow x64-capable XP laptop, where Jericho is an ideal target for software engineering and Amenemhet is a more usable development host from which to target it.&lt;br /&gt;
&lt;br /&gt;
There have been three incarnations of Amenemhet so far. The current one was built from a collection of as-is ThinkPad X230 Tablet models obtained on Tokopedia and eBay, being the last centre-swiveling ThinkPad 2-in-1 tablet. Amenemhet I was a ThinkPad S1 Yoga to supplicate the old experience of using Senusret I after Senusret II was acquired. Amenemhet II was a ThinkPad X201 Tablet, which was retired in favour of the X230 Tablet due to its provision of 22{{u|n|m}} Ivy Bridge mobile processors over the X201&#039;s 45{{u|n|m}} Nehalem models, its doubling of {{acro|RAM}} capacity, and its support for {{acro|USB}} 3.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Menat Khufu===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Menat Khufu&lt;br /&gt;
|hostname=menatkhufu&lt;br /&gt;
|cpu=2× Intel® Xeon™ E5649&lt;br /&gt;
|litho=32{{u|n|m}}&lt;br /&gt;
|corecount=6 (12 total)&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=100{{u|Gi|B}} {{acro|DDR}}3 {{acro|RDIMM}}s (7× 8{{u|Gi|B}} + 11× 4{{u|Gi|B}})&lt;br /&gt;
|bootstorage=250{{u|G|B}} WD {{acro|IDE}} {{acro|HDD}}&lt;br /&gt;
|morestorage=6× 1{{u|T|B}} Seagate Constellation ES {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=Nvidia® Quadro™ M6000 with 24{{u|Gi|B}} VRAM&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Menat Khufu is a dedicated Windows XP build with x86-64 in mind. As a nod to Weird Al&#039;s infamous song &#039;&#039;All About the Pentiums,&#039;&#039; Menat Khufu is equipped with &amp;quot;100 gigabytes&amp;quot; of RAM (more precisely, 100 gibibytes, but blame {{wp|JEDEC}} for this erratum), enabling me to say that &amp;quot;I&#039;ve got myself a hundred gigabytes of RAM&amp;quot; as he does in the song. Besides that novelty, the build will be my main rig for using the Adobe Creative Suite as it was on Windows XP, including Photoshop, Illustrator, and perhaps even Premiere Pro. It will also run Visual Studio 2005.&lt;br /&gt;
&lt;br /&gt;
Menat Khufu will be installed as the computer of first resort in my laboratory. It will be set up with a tenkeyless Filco® Majestouch™ keyboard and a Microsoft® IntelliMouse™ both over PS/2 as well as an ASUS® ProArt™ 1920×1200 display. It is essentially a top-specced desktop version of Amenemhet that is more than capable of doing video editing, unlike Amenemhet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Henen-nesw===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Henen-nesw&lt;br /&gt;
|hostname=henen-nesw&lt;br /&gt;
|cpu=Intel® Core™ i7-5775C&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=4&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=8{{u|Gi|B}} DDR3 {{acro|UDIMM}}&lt;br /&gt;
|bootstorage=128{{u|G|B}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 512{{u|G|B}} Intel® DC2500 {{acro|SSD}} in Linux software {{acro|RAID}} 1&lt;br /&gt;
|gpu=Intel® Xeon Phi™ 3120A coprocessor&lt;br /&gt;
|os=Alabaster Linux on Debian 10&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
|date=October 7, 2022&lt;br /&gt;
|cost=~$2,000}}&lt;br /&gt;
Henen-nesw is my personal rig for daily usage at home. It is always online and therefore where I host many of my open-source torrent seedings, as I have high-speed Google Fiber home internet. It has a 43″ 4K main monitor, flanked on its left by a 27″ 1440p monitor in portrait orientation with about the same {{acro|DPI}}. I chose the flagship Broadwell Core™ i7 as it has an unusually beefy Intel Iris Pro™ iGPU with 128{{u|Mi|B}} of L4 cache. This, coupled with Intel’s first-class open source Linux graphics drivers, was a dream combination to me back in 2015 when I first got into PC building. It&#039;s socketed into a Z97 mITX motherboard with blacked-out Noctua cooling, inside a golden-orange Thermaltake® The Tower™ 100 chassis.&lt;br /&gt;
&lt;br /&gt;
Currently, the motherboard is kind of defective, as it refuses to accept having both of its {{acro|RAM}} slots populated, limiting it to a pithy 8GiB of system memory. Aging motherboards are hard to come by, so it may be a while before I remedy this.&lt;br /&gt;
&lt;br /&gt;
Eventually I would like to slightly downsize and qualitatively upgrade the display setup to some panels with far better colour quality:&lt;br /&gt;
* a 32″ main display running at 2160p: the [//archive.ph/Y9Vjl ASUS® ProArt™ PA329CRV]&lt;br /&gt;
* a vertical 24″ secondary running at 1440p: the [https://archive.ph/l1a9j ASUS® ProArt™ PA24ACRV]&lt;br /&gt;
&lt;br /&gt;
This new setup will offer a higher DPI while retaining the close consistency between monitors which I have with the current setup. I like my old trusty 43″ 4K display, but it is heavy, obscures the view of my living room a little bit too much, and my husband is patiently awaiting inheriting it from me as an upgrade for his own setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Hetepsenusret===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Hetepsenusret&lt;br /&gt;
|hostname=HETEPSENUSRET&lt;br /&gt;
|cpu=AMD® Ryzen™ Threadripper™ 1900X&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=8&lt;br /&gt;
|cpufeatures=AMD64™, 2-way SMT, AVX2, AMD-V, AMD-Vi, PowerNow!™&lt;br /&gt;
|ram=64{{u|Gi|B}} {{acro|DDR}}4 {{acro|UDIMM}}s (4× 16{{u|Gi|B}})&lt;br /&gt;
|bootstorage=512{{u|G|B}} Plextor® M8Pe {{acro|NVMe}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 6{{u|T|B}} Seagate® IronWolf™ {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=XFX RX 590&amp;lt;br/&amp;gt;XFX RX 580&amp;lt;br/&amp;gt;XFX RX 560&amp;lt;br/&amp;gt;XFX RX 460 Passive&lt;br /&gt;
|os=Windows 10 Enterprise&lt;br /&gt;
|date=c. 2019&lt;br /&gt;
|cost=~$3,200&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Hetepsenusret is a very large build housed in a white Thermaltake® The Tower™ 900 chassis that my husband funded to build early in our marriage. It uses a special Russian multi-seat software solution called [//ibiksoft.com/ ASTER] to allow several &amp;quot;terminals&amp;quot; of displays, keyboards, mice and other I/O to be shared on the same running instance of Windows. The computer is floated prominently in a central location in the common areas of our house, and much cabling is run behind to our desks and the living room allowing us to log on and use the computer simultaneously. It also features our only Blu-Ray writer drive, which we use to save movies.&lt;br /&gt;
&lt;br /&gt;
Hetepsenusret is one of two desktop computers I have in my domicile, the other being Henen-nesw. As my house is quite modest, I simply do not have room for any more computers beyond these and my laptops.&lt;br /&gt;
&lt;br /&gt;
The PC was built to have a wide upgrade path, and the following are planned once funding is permitting:&lt;br /&gt;
* max out the processor to the platform&#039;s flagship Ryzen™ Threadripper™ 2990WX, quadrupling the core count&lt;br /&gt;
* add an additional 4× 32{{u|Gi|B}} of RAM, bringing up total memory to 192{{u|Gi|B}}&lt;br /&gt;
** this will allow for creation of a 128{{u|Gi|B}} RAM drive for scratch disk usage&lt;br /&gt;
* upgrade the boot SSDs to much faster {{acro|PCIe}} 4.0 drives and soft {{acro|RAID}} them in BIOS&lt;br /&gt;
* upgrade the mass storage setup to 4× 20{{u|T|B}} drives using Windows ReFS in a {{acro|RAID}} 5 like configuration&lt;br /&gt;
* retire the four Polaris GPUs in favour of two Radeon RX 9000 series cards, as we only have two possible ASTER seats in the new flat&lt;br /&gt;
&lt;br /&gt;
Ideally, this upgrade will coincide with a new (and identical) case purchase as I dropped one of the tempered glass panels and shattered it back in 2023. A fresh installation of Windows 10 Enterprise LTSB will also be quite welcome.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Heh===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Heh&lt;br /&gt;
|hostname=heh&lt;br /&gt;
|cpu=2× Intel® Xeon™ E5-2699v4&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=22 (44 total)&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, VT-x with {{acro|EPT}}, SpeedStep™&lt;br /&gt;
|ram=64{{u|Gi|B}} {{acro|DDR4}} {{acro|UDIMM}}s (8× 8{{u|Gi|B}})&lt;br /&gt;
|bootstorage=64{{u|G|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s in {{acro|RAID}} 1&amp;lt;br/&amp;gt;2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=AMD® FirePro™ W4300&lt;br /&gt;
|os=Alabaster Linux on Arch Linux&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Heh is a build dedicated to LTO-9 data archiving. It is decked out with maxed out dual Broadwell Xeons to get good power efficiency and good aftermarket value for the Lzip-based compression to be done on archival data during ingestion. It is also equipped with at least 64GiB of RAM in order to have sufficient headroom for both the {{acro|LZMA}} compression algorithm&#039;s multithreaded memory consumption as well as &amp;lt;code&amp;gt;mbuffer&amp;lt;/code&amp;gt; usage to ensure smooth operation of the tape drive heads. The {{acro|RAID}} 1 array holds a &amp;quot;tape disk in progress&amp;quot;, that is, order data compressed and encrypted that does not yet fill up an entire 18{{u|T|B}} tape disk and must be grouped with other orders until it does. The two non-array drives are temporary staging areas for ingesting data from the variety of input media for backing up, providing coherency and performance in its transit from customer media to the partial drive and to final tape disk storage.&lt;br /&gt;
&lt;br /&gt;
Heh is a planned build and will be installed in my laboratory alongside Menat Khufu and Mirgissa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Mirgissa===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Mirgissa&lt;br /&gt;
|hostname=mirgissa&lt;br /&gt;
|cpu=AMD® EPYC™ 4564P&lt;br /&gt;
|litho=5{{u|n|m}}&lt;br /&gt;
|corecount=16&lt;br /&gt;
|cpufeatures=AMD64™, 2-way SMT, AVX-512, AMD-V, AMD-Vi, PowerNow!™&lt;br /&gt;
|ram=1× 48{{u|Gi|B}} {{acro|DDR5}} {{acro|ECC}} {{acro|RDIMM}}&lt;br /&gt;
|bootstorage=2× 256{{u|G|B}} {{acro|PCIe}} {{acro|TLC}} M.2 {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s in software {{acro|RAID}} 1&lt;br /&gt;
|gpu=ASRock Rack® ASPEED™ AS2600&lt;br /&gt;
|os=Alpine Linux&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Mirgissa is a planned always-on server build for my laboratory. It will be the last stop for all of my web services, which will be proxied through VPSes I lease for cheap. It will be housed in a Thermaltake® The Tower™ 300 µATX chassis and use an ASRock Rack® EPYC4000D4U µATX motherboard with ATX power. Booting will happen from {{acro|BIOS}} soft {{acro|RAID}} 1 NVMe drives, and mass storage is provided by two 20{{u|T|B}} hard disks using ZFS in a RAID 1 type configuration with the built-in {{acro|SATA}}/{{acro|SAS}} controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Ptolemy I and II===&lt;br /&gt;
Ptolemy is my late 2019 13″ MacBook Pro, which I purchased for $1,700 in August of 2019 for use in school. Ptolemy II (&amp;lt;tt&amp;gt;ptolemy2&amp;lt;/tt&amp;gt;) is my 2021 16″ MacBook Pro M1 Max, which was given to me by my former employer for work. If you have noticed the Egyptian theme of most of my other computer builds, this Hellenised deviation should make much sense.&lt;br /&gt;
&lt;br /&gt;
==Mail Jeep==&lt;br /&gt;
This is a collection of items to purchase and configure for use in my 1975 AM General DJ5-D &amp;quot;Mail Jeep&amp;quot; Dispatcher 100.&lt;br /&gt;
&lt;br /&gt;
===Mechanical items===&lt;br /&gt;
* [//www.autozone.com/batteries-starting-and-charging/battery/p/duralast-platinum-agm-battery-bci-group-size-48-760-cca-h6-agm/319460_0_0 AGM battery, group 48 size] &#039;&#039;&#039;$254.99&#039;&#039;&#039;&lt;br /&gt;
* [//www.summitracing.com/parts/pwm-37293 Powermaster Street Alternators 37293], 150{{u||A}} &#039;&#039;&#039;$198.99&#039;&#039;&#039;&lt;br /&gt;
* [//www.quadratec.com/products/51210_6221_07.htm CSF 2578 radiator] for 4.2{{u||L}} 258 powered Jeeps &#039;&#039;&#039;$519.00&#039;&#039;&#039;&lt;br /&gt;
* [//www.novak-adapt.com/catalog/adapters/engine-to-transmission/amc/kit-437amc/ Conversion kit to support TH350 transmission] &#039;&#039;&#039;$506.00&#039;&#039;&#039;&lt;br /&gt;
* [//www.jegs.com/i/jegs/555/60300/10002/-1 2WD TH350 transmission] &#039;&#039;&#039;$1,728.99&#039;&#039;&#039; + &#039;&#039;&#039;$178.99&#039;&#039;&#039; shipping&lt;br /&gt;
* [//www.ebay.com/itm/115909731703 GM Turbo 350 Transmission Floor Shifter] &#039;&#039;&#039;$167.96&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Cabin electronics===&lt;br /&gt;
* [//store.ui.com/us/en/collections/unifi-wifi-flagship-compact/products/u6-lite Ubiquiti UniFi 6 Lite] wireless AP &#039;&#039;&#039;$99.00&#039;&#039;&#039;&lt;br /&gt;
** Install [//openwrt.org/releases/23.05.0 OpenWrt 23.05.0] and follow the [//openwrt.org/docs/guide-user/network/wifi/dumbap Dumb {{acro|AP}} configuration guide]&lt;br /&gt;
** Use [//www.amazon.com/dp/B0BN7XQVSB 12{{u||V}} {{acro|PoE}} injector] to power the {{acro|AP}}&lt;br /&gt;
* [//www.amazon.com/dp/B00A128S24 TP-Link TL-SG105] unmanaged 5-port gigabit Ethernet switch&lt;br /&gt;
** 5V power provided by [//www.amazon.com/dp/B07Y2V1F8V direct 12{{u||V}} {{acro|DC}} converter]&lt;br /&gt;
* [//www.amazon.com/dp/B0BNPTW2L2 Nanopi R5C router] &#039;&#039;&#039;$69.99&#039;&#039;&#039;&lt;br /&gt;
** USB-C powered from the primary power socket&#039;s USB-A port&lt;br /&gt;
** provisions WireGuard VPN, NATted behind 5G smartphone modem&lt;br /&gt;
* [//www.amazon.com/dp/B08NWD7K8H Motorola One 5G Ace] &#039;&#039;&#039;$316.79&#039;&#039;&#039;&lt;br /&gt;
** Install [https://wiki.lineageos.org/devices/kiev/variant2/ LineageOS &amp;lt;tt&amp;gt;kiev&amp;lt;/tt&amp;gt;, variant 2] to liberate the hotspot&lt;br /&gt;
** USB-C to Ethernet should work directly&lt;br /&gt;
** Mount to function as a DIY dash cam&lt;br /&gt;
* Eton® E1XM satellite-enabled HD radio &#039;&#039;&#039;$550.00&#039;&#039;&#039;&lt;br /&gt;
** 9{{u||V}} power provided by [//www.amazon.com/dp/B0C1BBG75Z direct 12{{u||V}} {{acro|DC}} converter]&lt;br /&gt;
* [//www.amazon.com/dp/B00065JM8U Cabin road fan] &#039;&#039;&#039;$30.19&#039;&#039;&#039;&lt;br /&gt;
* [//www.amazon.com/dp/B09VDHX6S1 Dual 12{{u||V}} secondary power socket] &#039;&#039;&#039;$7.99&#039;&#039;&#039;&lt;br /&gt;
** One is socketed with the road fan&lt;br /&gt;
** One is socketed with a USB power adapter&lt;br /&gt;
* [//www.amazon.com/dp/B0BSVB93DK Anker USB accessory power adapter] &#039;&#039;&#039;$39.99&#039;&#039;&#039;&lt;br /&gt;
** One USB-C port can provide Turbo Power to a smartphone&lt;br /&gt;
** Another USB-C port can provide Turbo Power to another appliance (phone, headphone, &amp;amp;hellip;)&lt;br /&gt;
** The USB-A port can power dumb USB charging devices&lt;br /&gt;
&lt;br /&gt;
==Hybrid utilities==&lt;br /&gt;
===Electricity===&lt;br /&gt;
* 48{{u||V}} monocrystalline solar panel installation&lt;br /&gt;
&lt;br /&gt;
Current broad idea is to build out a solar array that is rated to support the house, with an AGM battery pack installation. I want to explore the feasibility of supporting heat pumps in the winter on solar alone.&lt;br /&gt;
&lt;br /&gt;
Emergency heat and power will be run on a Cummins Commercial Mobile Generator, 10{{u|k|W}} 60{{u||Hz}} model. The idea is to maximise flexibility on both ends: recapture all waste heat and use the generator to power auxiliary heating implements if necessary. The generator is diesel, so it can run on #2 or alternatively kerosene.&lt;br /&gt;
&lt;br /&gt;
==2021 Fall of Kabul==&lt;br /&gt;
Was marked safu on Facebook. Nothing else to report as of yet.&lt;br /&gt;
&lt;br /&gt;
==Legal issues==&lt;br /&gt;
None yet.&lt;br /&gt;
&lt;br /&gt;
==Later years and death==&lt;br /&gt;
My biographer will enjoy filling this out a lot more than I.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=File:Sony_a7R_IV.jpg&amp;diff=837</id>
		<title>File:Sony a7R IV.jpg</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=File:Sony_a7R_IV.jpg&amp;diff=837"/>
		<updated>2025-02-01T20:53:33Z</updated>

		<summary type="html">&lt;p&gt;Alexander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licencing ==&lt;br /&gt;
{{lic-cc-by-nc-nd-3}}&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
	<entry>
		<id>https://kb.xion.mt/index.php?title=User:Alexander&amp;diff=836</id>
		<title>User:Alexander</title>
		<link rel="alternate" type="text/html" href="https://kb.xion.mt/index.php?title=User:Alexander&amp;diff=836"/>
		<updated>2025-01-24T03:39:40Z</updated>

		<summary type="html">&lt;p&gt;Alexander: /* Henen-nesw */ use archive links for the displays&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Alexander Nicholi.jpg|thumb|right|A professionally &#039;&#039;&#039;&#039;&#039;lit&#039;&#039;&#039;&#039;&#039; photo of me, taken in October 2023.]]My name is &#039;&#039;&#039;Alexander&#039;&#039;&#039;. I am an American informatician, game designer and programmer.&lt;br /&gt;
&lt;br /&gt;
==Early life==&lt;br /&gt;
My name is &#039;&#039;&#039;Alexander Nicholi&#039;&#039;&#039;. I was born &#039;&#039;&#039;Marshall Alexander Rose&#039;&#039;&#039; on March 6&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt;, 1998 on {{wp|Fort Sill}}, Oklahoma to parents native to {{wp|Princeton, West Virginia}}. My mother was an active duty Army machinist when she had me, and is now a factory worker. My father is a musician and private tutor of guitar and piano. They and I came from a 2,300-years-long unbroken line of poor Anglo-Britonnic yeomen who never intermixed with anyone else after the Anglo-Saxon assimilation. Originally serfs in the greater London area, they emigrated to the New World variously as indentured servants working Virginian plantations for their time. Upon their service completion, they fled into the Appalachian wilderness and eked out a modest existence undisturbed by the world for 300 years. My parents were the first to leave in the 1990s, making me the first to grow up outside our hinterland, although I have siblings who grew up within.&lt;br /&gt;
&lt;br /&gt;
As a child I was enamored with computers. I had countless old machines from thrift shops running various versions of Windows, and as I grew older I learned to use Linux over secure shell. I taught myself a great deal of programming technique, and by age 17 I was doing baremetal programming in C and assembly for the Game Boy Advance. This set the stage for my later research work concerning sustainable computing and the creation of [[C*]].&lt;br /&gt;
&lt;br /&gt;
On December 7&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt;&amp;lt;del&amp;gt;, 1941, a day which will live on in infamy&amp;lt;/del&amp;gt;, 2017, I wed my husband from Indonesia, a son of a Jakartan advertising magnate and former San Franciscan international student. He later attended college together with me and has had a presence in many of my business endeavours from the start, including ARQADIUM, which I started with him shortly before we met.&lt;br /&gt;
&lt;br /&gt;
==Career==&lt;br /&gt;
In the past, I have worked white collar at Vurbox and Unai. These days I do consulting work relating to my informatics expertise. I can do what most low-level programmers cannot do: dictate and explain it in high-level design strokes, up to and including productisation. [mailto:me@nicholatian.com Contact me] if you want to know my rate. (Serious inquiries only please)&lt;br /&gt;
&lt;br /&gt;
===Theoretical informatics===&lt;br /&gt;
* [[Functionalism]]&lt;br /&gt;
* [[Mechanicalism]]&lt;br /&gt;
* [[Literate programming]]&lt;br /&gt;
* [[Maintenance-free programming]]&lt;br /&gt;
* [[Modular memory]]&lt;br /&gt;
* [[C*#Addressing complexity in systems|Law and order]]&lt;br /&gt;
* [[Welch&#039;s bridge]]&lt;br /&gt;
* [[Superwiki]]&lt;br /&gt;
&lt;br /&gt;
===Applied informatics===&lt;br /&gt;
* [[Sirius DOS]]&lt;br /&gt;
* [[A*]]&lt;br /&gt;
* [[MILOTIX]]&lt;br /&gt;
* [[Byblos]]&lt;br /&gt;
* [[Oración]]&lt;br /&gt;
* [[Feeble C compiler]]&lt;br /&gt;
* [[Sirius C*]]&lt;br /&gt;
* [[Backus–Naur–Nicholi normal form]]&lt;br /&gt;
* [[Octet, not byte]]&lt;br /&gt;
* [[Pel, not pixel]]&lt;br /&gt;
* [[Effective RGB]]&lt;br /&gt;
&lt;br /&gt;
===Game design===&lt;br /&gt;
* [[Pokémon Citrite]]&lt;br /&gt;
** [[Citrite overworld maps]]&lt;br /&gt;
** [[Citrite title screen]]&lt;br /&gt;
&lt;br /&gt;
===Digital art===&lt;br /&gt;
&#039;&#039;TBW&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Pedestrian software work===&lt;br /&gt;
* [//github.com/nicholatian/senusret-syntax-theme Senusret syntax highlighting theme]&lt;br /&gt;
* [[Citrite source patching system]]&lt;br /&gt;
* [//github.com/arqadium/arqadium.com Custom static site generator]&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
If you have ever visited my office, you know that I have a lot of computers. Or, well, I did when I lived in the suburbs – these days, only my laptops, Henen-nesw and Hetepsenusret are in use at my new flat downtown. Anyway, here are their specs and stories.&lt;br /&gt;
&lt;br /&gt;
===Jericho===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Jericho&lt;br /&gt;
|hostname=jericho&lt;br /&gt;
|cpu=Intel® Atom™ N455&lt;br /&gt;
|litho=45{{u|n|m}}&lt;br /&gt;
|corecount=1&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™&lt;br /&gt;
|ram=2{{u|Gi|B}} {{acro|DDR}}2 {{acro|SODIMM}}&lt;br /&gt;
|bootstorage=64{{u|Gi|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® GMA 3150&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|date=August 7, 2023&lt;br /&gt;
|cost=$73.03&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Jericho was originally the first computer I ever had to myself after I got out of high school so many years ago. The exact model is a 10″ Toshiba NB255 netbook, and this one is a replica I purchased that was identical to the original I owned before. I named it Jericho because it is very old and simple. It runs a Syslinux {{acro|BIOS}}-based dual booting installation of Alabaster Linux on Debian 12 and Windows XP Professional x64 Edition. This computer is too low-power to run any application that is a Chromium shell, so it is a very good baseline upon which to judge software quality. It is my main machine for Microsoft Office usage, as it has a complete installation of Office 2003 including FrontPage, Project, OneNote and Visio. It also has a complete installation of Visual Studio 2005, which runs swimmingly believe it or not.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Senusret===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Senusret IV&lt;br /&gt;
|hostname=SENUSRET4&lt;br /&gt;
|cpu=Intel® Core™ i7-8565U&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=4&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=16{{u|Gi|B}} {{acro|DDR}}3 soldered&lt;br /&gt;
|bootstorage=512{{u|Gi|B}} {{acro|TLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® UHD Graphics&lt;br /&gt;
|os=Windows 11™ Pro&lt;br /&gt;
|date=January 12, 2025&lt;br /&gt;
|cost=~$661.91&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Senusret is the name given to my current lead ThinkPad laptop. It is usually a 13” to 14” thin-and-light, sometimes a &#039;Yoga&#039; or 2-in-1, and offers maximal mobility and battery life with a modern installation of Microsoft Windows.&lt;br /&gt;
&lt;br /&gt;
There have been four incarnations of Senusret, my faithful ThinkPad. This is the current one, which I purchased for $899 SGD (~$661.91 USD at the time of purchase) while on holiday in mid-January of 2025. It was a display model on a pretty generous discount and is a stacked specs model (high-end processor option, 16{{u|Gi|B}} {{acro|RAM}}, {{acro|WWAN}}, et cetera). Senusret I was a ThinkPad S1 Yoga with 8{{u|Gi|B}} of {{acro|RAM}} and a Core i5-4200U processor running Windows 8.1, which was retired. Senusret II was a ThinkPad X1 Yoga (Gen 2) with a Core i5-7300U and 16{{u|Gi|B}} of {{acro|RAM}} running Windows 10 which died due to multiple motherboard shorts from a faulty refurbishment. Senusret III was a ThinkPad X240 with a Core i5-4300U and 8{{u|Gi|B}} of {{acro|RAM}} running Windows 10 which was retired in favour of the Ptolemies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Amenemhet===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Amenemhet III&lt;br /&gt;
|hostname=AMENEMHET3&lt;br /&gt;
|cpu=Intel® Core™ i7-3520M&lt;br /&gt;
|litho=22{{u|n|m}}&lt;br /&gt;
|corecount=2&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=2× 8{{u|Gi|B}} {{acro|DDR}}3 {{acro|SODIMM}}&lt;br /&gt;
|bootstorage=64{{u|Gi|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|gpu=Intel® HD Graphics 4000&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
}}&lt;br /&gt;
Amenhemhet is my other actively used ThinkPad that kind of plays second fiddle to Senusret. There have been times when I have not had an Amenemhet, but when I do, it is usually an older model ThinkPad that provides conveniences unavailable on up-to-date Windows installations. Currently, Amenemhet is on its third incarnation, and it is a mobile creative workstation running the Adobe CS3 Master Collection on Windows XP. In this sense it has more synergy with Jericho as a fellow x64-capable XP laptop, where Jericho is an ideal target for software engineering and Amenemhet is a more usable development host from which to target it.&lt;br /&gt;
&lt;br /&gt;
There have been three incarnations of Amenemhet so far. The current one was built from a collection of as-is ThinkPad X230 Tablet models obtained on Tokopedia and eBay, being the last centre-swiveling ThinkPad 2-in-1 tablet. Amenemhet I was a ThinkPad S1 Yoga to supplicate the old experience of using Senusret I after Senusret II was acquired. Amenemhet II was a ThinkPad X201 Tablet, which was retired in favour of the X230 Tablet due to its provision of 22{{u|n|m}} Ivy Bridge mobile processors over the X201&#039;s 45{{u|n|m}} Nehalem models, its doubling of {{acro|RAM}} capacity, and its support for {{acro|USB}} 3.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Menat Khufu===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Menat Khufu&lt;br /&gt;
|hostname=menatkhufu&lt;br /&gt;
|cpu=2× Intel® Xeon™ E5649&lt;br /&gt;
|litho=32{{u|n|m}}&lt;br /&gt;
|corecount=6 (12 total)&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, VT-x, VT-d, VT-x with {{acro|EPT}}, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=100{{u|Gi|B}} {{acro|DDR}}3 {{acro|RDIMM}}s (7× 8{{u|Gi|B}} + 11× 4{{u|Gi|B}})&lt;br /&gt;
|bootstorage=250{{u|G|B}} WD {{acro|IDE}} {{acro|HDD}}&lt;br /&gt;
|morestorage=6× 1{{u|T|B}} Seagate Constellation ES {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=Nvidia® Quadro™ M6000 with 24{{u|Gi|B}} VRAM&lt;br /&gt;
|os=Windows XP™ Professional x64 Edition&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Menat Khufu is a dedicated Windows XP build with x86-64 in mind. As a nod to Weird Al&#039;s infamous song &#039;&#039;All About the Pentiums,&#039;&#039; Menat Khufu is equipped with &amp;quot;100 gigabytes&amp;quot; of RAM (more precisely, 100 gibibytes, but blame {{wp|JEDEC}} for this erratum), enabling me to say that &amp;quot;I&#039;ve got myself a hundred gigabytes of RAM&amp;quot; as he does in the song. Besides that novelty, the build will be my main rig for using the Adobe Creative Suite as it was on Windows XP, including Photoshop, Illustrator, and perhaps even Premiere Pro. It will also run Visual Studio 2005.&lt;br /&gt;
&lt;br /&gt;
Menat Khufu will be installed as the computer of first resort in my laboratory. It will be set up with a tenkeyless Filco® Majestouch™ keyboard and a Microsoft® IntelliMouse™ both over PS/2 as well as an ASUS® ProArt™ 1920×1200 display. It is essentially a top-specced desktop version of Amenemhet that is more than capable of doing video editing, unlike Amenemhet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Henen-nesw===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Henen-nesw&lt;br /&gt;
|hostname=henen-nesw&lt;br /&gt;
|cpu=Intel® Core™ i7-5775C&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=4&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, {{acro|AES}}, SpeedStep™&lt;br /&gt;
|ram=8{{u|Gi|B}} DDR3 {{acro|UDIMM}}&lt;br /&gt;
|bootstorage=128{{u|G|B}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 512{{u|G|B}} Intel® DC2500 {{acro|SSD}} in Linux software {{acro|RAID}} 1&lt;br /&gt;
|gpu=Intel® Xeon Phi™ 3120A coprocessor&lt;br /&gt;
|os=Alabaster Linux on Debian 10&lt;br /&gt;
|noclearfloat=1&lt;br /&gt;
|date=October 7, 2022&lt;br /&gt;
|cost=~$2,000}}&lt;br /&gt;
Henen-nesw is my personal rig for daily usage at home. It is always online and therefore where I host many of my open-source torrent seedings, as I have high-speed Google Fiber home internet. It has a 43″ 4K main monitor, flanked on its left by a 27″ 1440p monitor in portrait orientation with about the same {{acro|DPI}}. I chose the flagship Broadwell Core™ i7 as it has an unusually beefy Intel Iris Pro™ iGPU with 128{{u|Mi|B}} of L4 cache. This, coupled with Intel’s first-class open source Linux graphics drivers, was a dream combination to me back in 2015 when I first got into PC building. It&#039;s socketed into a Z97 mITX motherboard with blacked-out Noctua cooling, inside a golden-orange Thermaltake® The Tower™ 100 chassis.&lt;br /&gt;
&lt;br /&gt;
Currently, the motherboard is kind of defective, as it refuses to accept having both of its {{acro|RAM}} slots populated, limiting it to a pithy 8GiB of system memory. Aging motherboards are hard to come by, so it may be a while before I remedy this.&lt;br /&gt;
&lt;br /&gt;
Eventually I would like to slightly downsize and qualitatively upgrade the display setup to some panels with far better colour quality:&lt;br /&gt;
* a 32″ main display running at 2160p: the [//archive.ph/Y9Vjl ASUS® ProArt™ PA329CRV]&lt;br /&gt;
* a vertical 24″ secondary running at 1440p: the [https://archive.ph/l1a9j ASUS® ProArt™ PA24ACRV]&lt;br /&gt;
&lt;br /&gt;
This new setup will offer a higher DPI while retaining the close consistency between monitors which I have with the current setup. I like my old trusty 43″ 4K display, but it is heavy, obscures the view of my living room a little bit too much, and my husband is patiently awaiting inheriting it from me as an upgrade for his own setup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Hetepsenusret===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Hetepsenusret&lt;br /&gt;
|hostname=HETEPSENUSRET&lt;br /&gt;
|cpu=AMD® Ryzen™ Threadripper™ 1900X&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=8&lt;br /&gt;
|cpufeatures=AMD64™, 2-way SMT, AVX2, AMD-V, AMD-Vi, PowerNow!™&lt;br /&gt;
|ram=64{{u|Gi|B}} {{acro|DDR}}4 {{acro|UDIMM}}s (4× 16{{u|Gi|B}})&lt;br /&gt;
|bootstorage=512{{u|G|B}} Plextor® M8Pe {{acro|NVMe}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 6{{u|T|B}} Seagate® IronWolf™ {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=XFX RX 590&amp;lt;br/&amp;gt;XFX RX 580&amp;lt;br/&amp;gt;XFX RX 560&amp;lt;br/&amp;gt;XFX RX 460 Passive&lt;br /&gt;
|os=Windows 10 Enterprise&lt;br /&gt;
|date=c. 2019&lt;br /&gt;
|cost=~$3,200&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Hetepsenusret is a very large build housed in a white Thermaltake® The Tower™ 900 chassis that my husband funded to build early in our marriage. It uses a special Russian multi-seat software solution called [//ibiksoft.com/ ASTER] to allow several &amp;quot;terminals&amp;quot; of displays, keyboards, mice and other I/O to be shared on the same running instance of Windows. The computer is floated prominently in a central location in the common areas of our house, and much cabling is run behind to our desks and the living room allowing us to log on and use the computer simultaneously. It also features our only Blu-Ray writer drive, which we use to save movies.&lt;br /&gt;
&lt;br /&gt;
Hetepsenusret is one of two desktop computers I have in my domicile, the other being Henen-nesw. As my house is quite modest, I simply do not have room for any more computers beyond these and my laptops.&lt;br /&gt;
&lt;br /&gt;
The PC was built to have a wide upgrade path, and the following are planned once funding is permitting:&lt;br /&gt;
* max out the processor to the platform&#039;s flagship Ryzen™ Threadripper™ 2990WX, quadrupling the core count&lt;br /&gt;
* add an additional 4× 32{{u|Gi|B}} of RAM, bringing up total memory to 192{{u|Gi|B}}&lt;br /&gt;
** this will allow for creation of a 128{{u|Gi|B}} RAM drive for scratch disk usage&lt;br /&gt;
* upgrade the boot SSDs to much faster {{acro|PCIe}} 4.0 drives and soft {{acro|RAID}} them in BIOS&lt;br /&gt;
* upgrade the mass storage setup to 4× 20{{u|T|B}} drives using Windows ReFS in a {{acro|RAID}} 5 like configuration&lt;br /&gt;
* retire the four Polaris GPUs in favour of two Radeon RX 9000 series cards, as we only have two possible ASTER seats in the new flat&lt;br /&gt;
&lt;br /&gt;
Ideally, this upgrade will coincide with a new (and identical) case purchase as I dropped one of the tempered glass panels and shattered it back in 2023. A fresh installation of Windows 10 Enterprise LTSB will also be quite welcome.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Heh===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Heh&lt;br /&gt;
|hostname=heh&lt;br /&gt;
|cpu=2× Intel® Xeon™ E5-2699v4&lt;br /&gt;
|litho=14{{u|n|m}}&lt;br /&gt;
|corecount=22 (44 total)&lt;br /&gt;
|cpufeatures=Intel 64™, 2-way HyperThreading™, AVX2, VT-x, VT-d, VT-x with {{acro|EPT}}, SpeedStep™&lt;br /&gt;
|ram=64{{u|Gi|B}} {{acro|DDR4}} {{acro|UDIMM}}s (8× 8{{u|Gi|B}})&lt;br /&gt;
|bootstorage=64{{u|G|B}} Transcend® SSD420K {{acro|MLC}} {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s in {{acro|RAID}} 1&amp;lt;br/&amp;gt;2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s&lt;br /&gt;
|gpu=AMD® FirePro™ W4300&lt;br /&gt;
|os=Alabaster Linux on Arch Linux&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Heh is a build dedicated to LTO-9 data archiving. It is decked out with maxed out dual Broadwell Xeons to get good power efficiency and good aftermarket value for the Lzip-based compression to be done on archival data during ingestion. It is also equipped with at least 64GiB of RAM in order to have sufficient headroom for both the {{acro|LZMA}} compression algorithm&#039;s multithreaded memory consumption as well as &amp;lt;code&amp;gt;mbuffer&amp;lt;/code&amp;gt; usage to ensure smooth operation of the tape drive heads. The {{acro|RAID}} 1 array holds a &amp;quot;tape disk in progress&amp;quot;, that is, order data compressed and encrypted that does not yet fill up an entire 18{{u|T|B}} tape disk and must be grouped with other orders until it does. The two non-array drives are temporary staging areas for ingesting data from the variety of input media for backing up, providing coherency and performance in its transit from customer media to the partial drive and to final tape disk storage.&lt;br /&gt;
&lt;br /&gt;
Heh is a planned build and will be installed in my laboratory alongside Menat Khufu and Mirgissa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Mirgissa===&lt;br /&gt;
{{infobox pcbuild&lt;br /&gt;
|name=Mirgissa&lt;br /&gt;
|hostname=mirgissa&lt;br /&gt;
|cpu=AMD® EPYC™ 4564P&lt;br /&gt;
|litho=5{{u|n|m}}&lt;br /&gt;
|corecount=16&lt;br /&gt;
|cpufeatures=AMD64™, 2-way SMT, AVX-512, AMD-V, AMD-Vi, PowerNow!™&lt;br /&gt;
|ram=1× 48{{u|Gi|B}} {{acro|DDR5}} {{acro|ECC}} {{acro|RDIMM}}&lt;br /&gt;
|bootstorage=2× 256{{u|G|B}} {{acro|PCIe}} {{acro|TLC}} M.2 {{acro|SSD}}&lt;br /&gt;
|morestorage=2× 20{{u|T|B}} Seagate® {{acro|SATA}} {{acro|HDD}}s in software {{acro|RAID}} 1&lt;br /&gt;
|gpu=ASRock Rack® ASPEED™ AS2600&lt;br /&gt;
|os=Alpine Linux&lt;br /&gt;
|noclearfloat=1}}&lt;br /&gt;
Mirgissa is a planned always-on server build for my laboratory. It will be the last stop for all of my web services, which will be proxied through VPSes I lease for cheap. It will be housed in a Thermaltake® The Tower™ 300 µATX chassis and use an ASRock Rack® EPYC4000D4U µATX motherboard with ATX power. Booting will happen from {{acro|BIOS}} soft {{acro|RAID}} 1 NVMe drives, and mass storage is provided by two 20{{u|T|B}} hard disks using ZFS in a RAID 1 type configuration with the built-in {{acro|SATA}}/{{acro|SAS}} controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Ptolemy I and II===&lt;br /&gt;
Ptolemy is my late 2019 13″ MacBook Pro, which I purchased for $1,700 in August of 2019 for use in school. Ptolemy II (&amp;lt;tt&amp;gt;ptolemy2&amp;lt;/tt&amp;gt;) is my 2021 16″ MacBook Pro M1 Max, which was given to me by my former employer for work. If you have noticed the Egyptian theme of most of my other computer builds, this Hellenised deviation should make much sense.&lt;br /&gt;
&lt;br /&gt;
==Mail Jeep==&lt;br /&gt;
This is a collection of items to purchase and configure for use in my 1975 AM General DJ5-D &amp;quot;Mail Jeep&amp;quot; Dispatcher 100.&lt;br /&gt;
&lt;br /&gt;
===Mechanical items===&lt;br /&gt;
* [//www.autozone.com/batteries-starting-and-charging/battery/p/duralast-platinum-agm-battery-bci-group-size-48-760-cca-h6-agm/319460_0_0 AGM battery, group 48 size] &#039;&#039;&#039;$254.99&#039;&#039;&#039;&lt;br /&gt;
* [//www.summitracing.com/parts/pwm-37293 Powermaster Street Alternators 37293], 150{{u||A}} &#039;&#039;&#039;$198.99&#039;&#039;&#039;&lt;br /&gt;
* [//www.quadratec.com/products/51210_6221_07.htm CSF 2578 radiator] for 4.2{{u||L}} 258 powered Jeeps &#039;&#039;&#039;$519.00&#039;&#039;&#039;&lt;br /&gt;
* [//www.novak-adapt.com/catalog/adapters/engine-to-transmission/amc/kit-437amc/ Conversion kit to support TH350 transmission] &#039;&#039;&#039;$506.00&#039;&#039;&#039;&lt;br /&gt;
* [//www.jegs.com/i/jegs/555/60300/10002/-1 2WD TH350 transmission] &#039;&#039;&#039;$1,728.99&#039;&#039;&#039; + &#039;&#039;&#039;$178.99&#039;&#039;&#039; shipping&lt;br /&gt;
* [//www.ebay.com/itm/115909731703 GM Turbo 350 Transmission Floor Shifter] &#039;&#039;&#039;$167.96&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Cabin electronics===&lt;br /&gt;
* [//store.ui.com/us/en/collections/unifi-wifi-flagship-compact/products/u6-lite Ubiquiti UniFi 6 Lite] wireless AP &#039;&#039;&#039;$99.00&#039;&#039;&#039;&lt;br /&gt;
** Install [//openwrt.org/releases/23.05.0 OpenWrt 23.05.0] and follow the [//openwrt.org/docs/guide-user/network/wifi/dumbap Dumb {{acro|AP}} configuration guide]&lt;br /&gt;
** Use [//www.amazon.com/dp/B0BN7XQVSB 12{{u||V}} {{acro|PoE}} injector] to power the {{acro|AP}}&lt;br /&gt;
* [//www.amazon.com/dp/B00A128S24 TP-Link TL-SG105] unmanaged 5-port gigabit Ethernet switch&lt;br /&gt;
** 5V power provided by [//www.amazon.com/dp/B07Y2V1F8V direct 12{{u||V}} {{acro|DC}} converter]&lt;br /&gt;
* [//www.amazon.com/dp/B0BNPTW2L2 Nanopi R5C router] &#039;&#039;&#039;$69.99&#039;&#039;&#039;&lt;br /&gt;
** USB-C powered from the primary power socket&#039;s USB-A port&lt;br /&gt;
** provisions WireGuard VPN, NATted behind 5G smartphone modem&lt;br /&gt;
* [//www.amazon.com/dp/B08NWD7K8H Motorola One 5G Ace] &#039;&#039;&#039;$316.79&#039;&#039;&#039;&lt;br /&gt;
** Install [https://wiki.lineageos.org/devices/kiev/variant2/ LineageOS &amp;lt;tt&amp;gt;kiev&amp;lt;/tt&amp;gt;, variant 2] to liberate the hotspot&lt;br /&gt;
** USB-C to Ethernet should work directly&lt;br /&gt;
** Mount to function as a DIY dash cam&lt;br /&gt;
* Eton® E1XM satellite-enabled HD radio &#039;&#039;&#039;$550.00&#039;&#039;&#039;&lt;br /&gt;
** 9{{u||V}} power provided by [//www.amazon.com/dp/B0C1BBG75Z direct 12{{u||V}} {{acro|DC}} converter]&lt;br /&gt;
* [//www.amazon.com/dp/B00065JM8U Cabin road fan] &#039;&#039;&#039;$30.19&#039;&#039;&#039;&lt;br /&gt;
* [//www.amazon.com/dp/B09VDHX6S1 Dual 12{{u||V}} secondary power socket] &#039;&#039;&#039;$7.99&#039;&#039;&#039;&lt;br /&gt;
** One is socketed with the road fan&lt;br /&gt;
** One is socketed with a USB power adapter&lt;br /&gt;
* [//www.amazon.com/dp/B0BSVB93DK Anker USB accessory power adapter] &#039;&#039;&#039;$39.99&#039;&#039;&#039;&lt;br /&gt;
** One USB-C port can provide Turbo Power to a smartphone&lt;br /&gt;
** Another USB-C port can provide Turbo Power to another appliance (phone, headphone, &amp;amp;hellip;)&lt;br /&gt;
** The USB-A port can power dumb USB charging devices&lt;br /&gt;
&lt;br /&gt;
==Hybrid utilities==&lt;br /&gt;
===Electricity===&lt;br /&gt;
* 48{{u||V}} monocrystalline solar panel installation&lt;br /&gt;
&lt;br /&gt;
Current broad idea is to build out a solar array that is rated to support the house, with an AGM battery pack installation. I want to explore the feasibility of supporting heat pumps in the winter on solar alone.&lt;br /&gt;
&lt;br /&gt;
Emergency heat and power will be run on a Cummins Commercial Mobile Generator, 10{{u|k|W}} 60{{u||Hz}} model. The idea is to maximise flexibility on both ends: recapture all waste heat and use the generator to power auxiliary heating implements if necessary. The generator is diesel, so it can run on #2 or alternatively kerosene.&lt;br /&gt;
&lt;br /&gt;
==2021 Fall of Kabul==&lt;br /&gt;
Was marked safu on Facebook. Nothing else to report as of yet.&lt;br /&gt;
&lt;br /&gt;
==Legal issues==&lt;br /&gt;
None yet.&lt;br /&gt;
&lt;br /&gt;
==Later years and death==&lt;br /&gt;
My biographer will enjoy filling this out a lot more than I.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alexander</name></author>
	</entry>
</feed>