remove deprecate words

FossilOrigin-Name: d0ecbf2ac180314d604e62ca9462f118303c09084af969105d4dcecde8704535
This commit is contained in:
crc 2023-03-29 00:56:00 +00:00
parent 59774ddb8d
commit 0e7db6dab9
11 changed files with 97 additions and 359 deletions

View file

@ -78,9 +78,9 @@ DEVICES += interface/final.retro
GLOSSARY ?= ./bin/retro tools/glossary.retro
ASSEMBLE ?= ./bin/retro-muri
EXTEND ?= ./bin/retro-extend
EXPORT ?= ./bin/retro-embedimage
RETRO ?= ./bin/retro
EXTEND ?= ./bin/retro-extend
EXPORT ?= ./bin/retro-embedimage
RETRO ?= ./bin/retro
# -------------------------------------------------------------

View file

@ -9,6 +9,7 @@
================================================================
* nga-c: split device code into separate source files
* removed words deprecated in 2022.8
================================================================

View file

@ -193,9 +193,6 @@ Access the parent loop index for the current loop. (For loops made using `indexe
K D: -n A: - F: -
Access the grandparent loop index for the current loop. (For loops made using `indexed-times`)
NoEcho D: -a A: - F: -
Deprecated. Variable. If TRUE, allow display of the startup banner when running listen.
RewriteUnderscores D: -a A: - F: -
Variable. When set to `TRUE`, Retro will replace underscores in strings with spaces. When `FALSE`, Retro does not.
@ -238,9 +235,6 @@ Return `TRUE` if a1 begins with a2 or `FALSE` otherwise.
a:chop D: a-a A: - F: -
Return a new array containing all but the last value in the source array.
a:contains-string? D: sa-f A: - F: -
Deprecated. Use `a:contains/string?` instead. Return `TRUE` if the string value is in the array or `FALSE` otherwise.
a:contains/string? D: sa-f A: - F: -
Return `TRUE` if the string value is in the array or `FALSE` otherwise.
@ -283,12 +277,6 @@ Calculate a hash value for a given array.
a:index D: an-n A: - F: -
Return the location of the first instance of the specified value in the array.
a:index-of D: an-n A: - F: -
Deprecated. Use `a:index` instead. Return the location of the first instance of the specified value in the array.
a:index-of-string D: as-n A: - F: -
Deprecated. Use `a:index/string` instead. Return the location of the first instance of the specified string in the array.
a:index/string D: as-n A: - F: -
Return the location of the first instance of the specified string in the array.
@ -1405,12 +1393,6 @@ Remove the last character from a string. Returns a new string.
s:const D: ss- A: - F: -
Create a constant named s2, returning a pointer to s1. This will use `s:keep` to preserve the original string.
s:contains-char? D: sc-f A: - F: -
Deprecated. Use `s:contains/char?` instead. Return `TRUE` if the character is present in the string or `FALSE` otherwise.
s:contains-string? D: ss-f A: - F: -
Deprecated. Use `s:contains/string?` instead. Return `TRUE` if the second string is present in the first string or `FALSE` otherwise.
s:contains/char? D: sc-f A: - F: -
Return `TRUE` if the character is present in the string or `FALSE` otherwise.
@ -1468,12 +1450,6 @@ Read input from standard in (via `c:get`) until a whitespace is encountered. Ret
s:hash D: s-n A: - F: -
Calculate a hash value for a string. This uses the djb2 algorithm.
s:index-of D: sc-n A: - F: -
Deprecated. Use `s:index/char` instead. Return the location of the first instance of the specified character in the string.
s:index-of-string D: ss-n A: - F: -
Derpecated. Use `s:index/string` instead. Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found.
s:index/char D: sc-n A: - F: -
Return the location of the first instance of the specified character in the string.
@ -1513,12 +1489,6 @@ Return a new string containing the specified number of characters from the right
s:skip D: - A: - F: -
Internal helper function used to skip over a string in a definition.
s:split D: sc-ss A: - F: -
Deprecated. Use `s:split/char` instead. Split a string on the first occurrence of the specified character.
s:split-on-string D: ss-ss A: - F: -
Deprecated. Use `s:split/string` instead. Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string.
s:split/char D: sc-ss A: - F: -
Split a string on the first occurrence of the specified character.

View file

@ -63,7 +63,6 @@ Heap D: -a A: - F: -
I D: -n A: - F: -
J D: -n A: - F: -
K D: -n A: - F: -
NoEcho D: -a A: - F: -
RewriteUnderscores D: -a A: - F: -
STRINGS D: -a A: - F: -
ScopeList D: -a A: - F: -
@ -78,7 +77,6 @@ a:-eq? D: aa-f A: - F: -
a:append D: aa-a A: - F: -
a:begins-with? D: aa-f A: - F: -
a:chop D: a-a A: - F: -
a:contains-string? D: sa-f A: - F: -
a:contains/string? D: sa-f A: - F: -
a:contains? D: na-f A: - F: -
a:copy D: aa- A: - F: -
@ -93,8 +91,6 @@ a:for-each D: aq- A: - F: -
a:from-string D: s-a A: - F: -
a:hash D: a-n A: - F: -
a:index D: an-n A: - F: -
a:index-of D: an-n A: - F: -
a:index-of-string D: as-n A: - F: -
a:index/string D: as-n A: - F: -
a:indices D: av-a A: - F: -
a:indices/string D: as-a A: - F: -
@ -467,8 +463,6 @@ s:begins-with? D: ss-f A: - F: -
s:case D: sSq- || sSq-s A: - F: -
s:chop D: s-s A: - F: -
s:const D: ss- A: - F: -
s:contains-char? D: sc-f A: - F: -
s:contains-string? D: ss-f A: - F: -
s:contains/char? D: sc-f A: - F: -
s:contains/string? D: ss-f A: - F: -
s:copy D: sa- A: - F: -
@ -488,8 +482,6 @@ s:format D: ...s-s A: - F: -
s:get D: -s A: - F: -
s:get-word D: -s A: - F: -
s:hash D: s-n A: - F: -
s:index-of D: sc-n A: - F: -
s:index-of-string D: ss-n A: - F: -
s:index/char D: sc-n A: - F: -
s:index/string D: ss-n A: - F: -
s:keep D: s-s A: - F: -
@ -503,8 +495,6 @@ s:replace-all D: sss-s A: - F: -
s:reverse D: s-s A: - F: -
s:right D: sn-s A: - F: -
s:skip D: - A: - F: -
s:split D: sc-ss A: - F: -
s:split-on-string D: ss-ss A: - F: -
s:split/char D: sc-ss A: - F: -
s:split/string D: ss-ss A: - F: -
s:store D: csn- A: - F: -

View file

@ -480,13 +480,6 @@
</div>
<p>Access the grandparent loop index for the current loop. (For loops made using `indexed-times`)</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>global</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>NoEcho</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> -a<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Variable. If TRUE, allow display of the startup banner when running listen.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>global</td></tr><tr><td><b>Interface Layer:</b> </td><td>rre</td></tr></table><hr/>
<h2>RewriteUnderscores</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> -a<br>
<b>Addr:</b> -<br>
@ -585,13 +578,6 @@
</div>
<p>Return a new array containing all but the last value in the source array.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>a</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>a:contains-string?</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sa-f<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `a:contains/string?` instead. Return `TRUE` if the string value is in the array or `FALSE` otherwise.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>a</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>a:contains/string?</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sa-f<br>
<b>Addr:</b> -<br>
@ -694,20 +680,6 @@
</div>
<p>Return the location of the first instance of the specified value in the array.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>a</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>a:index-of</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> an-n<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `a:index` instead. Return the location of the first instance of the specified value in the array.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>a</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>a:index-of-string</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> as-n<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `a:index/string` instead. Return the location of the first instance of the specified string in the array.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>a</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>a:index/string</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> as-n<br>
<b>Addr:</b> -<br>
@ -3521,20 +3493,6 @@
</div>
<p>Create a constant named s2, returning a pointer to s1. This will use `s:keep` to preserve the original string.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:contains-char?</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sc-f<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `s:contains/char?` instead. Return `TRUE` if the character is present in the string or `FALSE` otherwise.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:contains-string?</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> ss-f<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `s:contains/string?` instead. Return `TRUE` if the second string is present in the first string or `FALSE` otherwise.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:contains/char?</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sc-f<br>
<b>Addr:</b> -<br>
@ -3677,20 +3635,6 @@
</div>
<p>Calculate a hash value for a string. This uses the djb2 algorithm.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:index-of</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sc-n<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `s:index/char` instead. Return the location of the first instance of the specified character in the string.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:index-of-string</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> ss-n<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Derpecated. Use `s:index/string` instead. Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:index/char</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sc-n<br>
<b>Addr:</b> -<br>
@ -3782,24 +3726,6 @@
</div>
<p>Internal helper function used to skip over a string in a definition.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:split</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sc-ss<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `s:split/char` instead. Split a string on the first occurrence of the specified character.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><hr/>
<h2>s:split-on-string</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> ss-ss<br>
<b>Addr:</b> -<br>
<b>Float:</b> -</p>
</div>
<p>Deprecated. Use `s:split/string` instead. Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string.</p>
<table><tr><td><b>Class:</b> </td><td>class:word</td></tr><tr><td><b>Namespace:</b> </td><td>s</td></tr><tr><td><b>Interface Layer:</b> </td><td>all</td></tr></table><p><b>Example:</b> <br>
<br>
<xmp style='background:#f2f2f2'> 'Hello_Brave_World! 'Brave s:split-on-string s:put nl s:put nl</xmp>
</p>
<hr/>
<h2>s:split/char</h2>
<div style='margin-left: 1em;'><p><b>Data:</b> sc-ss<br>
<b>Addr:</b> -<br>

View file

@ -746,17 +746,6 @@ Access the grandparent loop index for the current loop. (For loops made using `i
Class: class:word | Namespace: global | Interface Layer: all
------------------------------------------------------------------------
NoEcho
Data: -a
Addr: -
Float: -
Deprecated. Variable. If TRUE, allow display of the startup banner when running listen.
Class: class:word | Namespace: global | Interface Layer: rre
------------------------------------------------------------------------
RewriteUnderscores
Data: -a
@ -911,17 +900,6 @@ Return a new array containing all but the last value in the source array.
Class: class:word | Namespace: a | Interface Layer: all
------------------------------------------------------------------------
a:contains-string?
Data: sa-f
Addr: -
Float: -
Deprecated. Use `a:contains/string?` instead. Return `TRUE` if the string value is in the array or `FALSE` otherwise.
Class: class:word | Namespace: a | Interface Layer: all
------------------------------------------------------------------------
a:contains/string?
Data: sa-f
@ -1081,28 +1059,6 @@ Return the location of the first instance of the specified value in the array.
Class: class:word | Namespace: a | Interface Layer: all
------------------------------------------------------------------------
a:index-of
Data: an-n
Addr: -
Float: -
Deprecated. Use `a:index` instead. Return the location of the first instance of the specified value in the array.
Class: class:word | Namespace: a | Interface Layer: all
------------------------------------------------------------------------
a:index-of-string
Data: as-n
Addr: -
Float: -
Deprecated. Use `a:index/string` instead. Return the location of the first instance of the specified string in the array.
Class: class:word | Namespace: a | Interface Layer: all
------------------------------------------------------------------------
a:index/string
Data: as-n
@ -5446,28 +5402,6 @@ Create a constant named s2, returning a pointer to s1. This will use `s:keep` to
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:contains-char?
Data: sc-f
Addr: -
Float: -
Deprecated. Use `s:contains/char?` instead. Return `TRUE` if the character is present in the string or `FALSE` otherwise.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:contains-string?
Data: ss-f
Addr: -
Float: -
Deprecated. Use `s:contains/string?` instead. Return `TRUE` if the second string is present in the first string or `FALSE` otherwise.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:contains/char?
Data: sc-f
@ -5688,28 +5622,6 @@ Calculate a hash value for a string. This uses the djb2 algorithm.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:index-of
Data: sc-n
Addr: -
Float: -
Deprecated. Use `s:index/char` instead. Return the location of the first instance of the specified character in the string.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:index-of-string
Data: ss-n
Addr: -
Float: -
Derpecated. Use `s:index/string` instead. Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:index/char
Data: sc-n
@ -5853,33 +5765,6 @@ Internal helper function used to skip over a string in a definition.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:split
Data: sc-ss
Addr: -
Float: -
Deprecated. Use `s:split/char` instead. Split a string on the first occurrence of the specified character.
Class: class:word | Namespace: s | Interface Layer: all
------------------------------------------------------------------------
s:split-on-string
Data: ss-ss
Addr: -
Float: -
Deprecated. Use `s:split/string` instead. Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string.
Class: class:word | Namespace: s | Interface Layer: all
Example #1:
'Hello_Brave_World! 'Brave s:split-on-string s:put nl s:put nl
------------------------------------------------------------------------
s:split/char
Data: sc-ss

View file

@ -63,7 +63,6 @@ Heap -a - - Variable. Holds the address of the next available cell. class:data
I -n - - Access the loop index for the current loop. (For loops made using `indexed-times`) class:word {n/a} {n/a} global all
J -n - - Access the parent loop index for the current loop. (For loops made using `indexed-times`) class:word {n/a} {n/a} global all
K -n - - Access the grandparent loop index for the current loop. (For loops made using `indexed-times`) class:word {n/a} {n/a} global all
NoEcho -a - - Deprecated. Variable. If TRUE, allow display of the startup banner when running listen. class:word {n/a} {n/a} global rre
RewriteUnderscores -a - - Variable. When set to `TRUE`, Retro will replace underscores in strings with spaces. When `FALSE`, Retro does not. class:data {n/a} {n/a} global all
STRINGS -a - - Return the address of the start of the temporary string pool. This can be altered by changing the values of `TempStrings` and `TempStringMax`. class:word {n/a} {n/a} global all
ScopeList -a - - Variable. This holds some information used by `{{` and `}}`. class:data {n/a} {n/a} global all
@ -78,7 +77,6 @@ a:-eq? aa-f - - Compare all values in the array. Return `FALSE` if all values ar
a:append aa-a - - Return a new array consisting of the values in a1 followed by the values in a2. class:word {n/a} {n/a} a all
a:begins-with? aa-f - - Return `TRUE` if a1 begins with a2 or `FALSE` otherwise. class:word {n/a} {n/a} a all
a:chop a-a - - Return a new array containing all but the last value in the source array. class:word {n/a} {n/a} a all
a:contains-string? sa-f - - Deprecated. Use `a:contains/string?` instead. Return `TRUE` if the string value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all
a:contains/string? sa-f - - Return `TRUE` if the string value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all
a:contains? na-f - - Return `TRUE` if the value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all
a:copy aa- - - Copy an array (a1) to a destination (a2). class:word {n/a} {n/a} a all
@ -93,8 +91,6 @@ a:for-each aq- - - Execute the quote once for each item in the array. class:wo
a:from-string s-a - - Create a new array with the characters in the source string. class:word {n/a} {n/a} a all
a:hash a-n - - Calculate a hash value for a given array. class:word {n/a} {n/a} a all
a:index an-n - - Return the location of the first instance of the specified value in the array. class:word {n/a} {n/a} a all
a:index-of an-n - - Deprecated. Use `a:index` instead. Return the location of the first instance of the specified value in the array. class:word {n/a} {n/a} a all
a:index-of-string as-n - - Deprecated. Use `a:index/string` instead. Return the location of the first instance of the specified string in the array. class:word {n/a} {n/a} a all
a:index/string as-n - - Return the location of the first instance of the specified string in the array. class:word {n/a} {n/a} a all
a:indices av-a - - Return a new array with the indices the specified value was found at in the original array. class:word {n/a} {n/a} a all
a:indices/string as-a - - Return a new array with the indices of the specified string in the original array. class:word {n/a} {n/a} a all
@ -467,8 +463,6 @@ s:begins-with? ss-f - - Return `TRUE` if s1 begins with s2 or `FALSE` otherwise.
s:case sSq- || sSq-s - - If the `s` matches `S`, discard `s` and run the quote before exiting the caller. If they do not match, discard the quote and leave `s` on the stack. class:word {n/a} {n/a} s all
s:chop s-s - - Remove the last character from a string. Returns a new string. class:word {n/a} {n/a} s all
s:const ss- - - Create a constant named s2, returning a pointer to s1. This will use `s:keep` to preserve the original string. class:word {n/a} {n/a} s all
s:contains-char? sc-f - - Deprecated. Use `s:contains/char?` instead. Return `TRUE` if the character is present in the string or `FALSE` otherwise. class:word {n/a} {n/a} s all
s:contains-string? ss-f - - Deprecated. Use `s:contains/string?` instead. Return `TRUE` if the second string is present in the first string or `FALSE` otherwise. class:word {n/a} {n/a} s all
s:contains/char? sc-f - - Return `TRUE` if the character is present in the string or `FALSE` otherwise. class:word {n/a} {n/a} s all
s:contains/string? ss-f - - Return `TRUE` if the second string is present in the first string or `FALSE` otherwise. class:word {n/a} {n/a} s all
s:copy sa- - - Copy a string (s) to a destination (a). This will include the terminator character when copying. class:word {n/a} {n/a} s all
@ -488,8 +482,6 @@ s:format ...s-s - - Construct a new string using the template passed and items f
s:get -s - - Read input from standard in (via `c:get`) until a CR or LF is encountered. Returns a string. class:word {n/a} {n/a} all rre
s:get-word -s - - Read input from standard in (via `c:get`) until a whitespace is encountered. Returns a string. class:word {n/a} {n/a} all rre
s:hash s-n - - Calculate a hash value for a string. This uses the djb2 algorithm. class:word {n/a} {n/a} s all
s:index-of sc-n - - Deprecated. Use `s:index/char` instead. Return the location of the first instance of the specified character in the string. class:word {n/a} {n/a} s all
s:index-of-string ss-n - - Derpecated. Use `s:index/string` instead. Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found. class:word {n/a} {n/a} s all
s:index/char sc-n - - Return the location of the first instance of the specified character in the string. class:word {n/a} {n/a} s all
s:index/string ss-n - - Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found. class:word {n/a} {n/a} s all
s:keep s-s - - Store a string into the heap and return a pointer to the start of it. class:word {n/a} {n/a} s all
@ -503,8 +495,6 @@ s:replace-all sss-s - - Replace all instances of s2 in s1 with s3. class:word
s:reverse s-s - - Reverse the order of ASCII characters in a string. class:word {n/a} {n/a} s all
s:right sn-s - - Return a new string containing the specified number of characters from the right side of the string. class:word {n/a} {n/a} s all
s:skip - - - Internal helper function used to skip over a string in a definition. class:word {n/a} {n/a} s all
s:split sc-ss - - Deprecated. Use `s:split/char` instead. Split a string on the first occurrence of the specified character. class:word {n/a} {n/a} s all
s:split-on-string ss-ss - - Deprecated. Use `s:split/string` instead. Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string. class:word 'Hello_Brave_World! 'Brave s:split-on-string s:put nl s:put nl {n/a} s all
s:split/char sc-ss - - Split a string on the first occurrence of the specified character. class:word {n/a} {n/a} s all
s:split/string ss-ss - - Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string. class:word 'Hello_Brave_World! 'Brave s:split-on-string s:put nl s:put nl {n/a} s all
s:store csn- - - Store a character value into the string at the specified index. class:word $z 'abcdef #1 s:store {n/a} s all

1 $ -c - - Return ASCII:NUL (0). class:macro {n/a} {n/a} global all
63 I -n - - Access the loop index for the current loop. (For loops made using `indexed-times`) class:word {n/a} {n/a} global all
64 J -n - - Access the parent loop index for the current loop. (For loops made using `indexed-times`) class:word {n/a} {n/a} global all
65 K -n - - Access the grandparent loop index for the current loop. (For loops made using `indexed-times`) class:word {n/a} {n/a} global all
NoEcho -a - - Deprecated. Variable. If TRUE, allow display of the startup banner when running listen. class:word {n/a} {n/a} global rre
66 RewriteUnderscores -a - - Variable. When set to `TRUE`, Retro will replace underscores in strings with spaces. When `FALSE`, Retro does not. class:data {n/a} {n/a} global all
67 STRINGS -a - - Return the address of the start of the temporary string pool. This can be altered by changing the values of `TempStrings` and `TempStringMax`. class:word {n/a} {n/a} global all
68 ScopeList -a - - Variable. This holds some information used by `{{` and `}}`. class:data {n/a} {n/a} global all
77 a:append aa-a - - Return a new array consisting of the values in a1 followed by the values in a2. class:word {n/a} {n/a} a all
78 a:begins-with? aa-f - - Return `TRUE` if a1 begins with a2 or `FALSE` otherwise. class:word {n/a} {n/a} a all
79 a:chop a-a - - Return a new array containing all but the last value in the source array. class:word {n/a} {n/a} a all
a:contains-string? sa-f - - Deprecated. Use `a:contains/string?` instead. Return `TRUE` if the string value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all
80 a:contains/string? sa-f - - Return `TRUE` if the string value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all
81 a:contains? na-f - - Return `TRUE` if the value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all
82 a:copy aa- - - Copy an array (a1) to a destination (a2). class:word {n/a} {n/a} a all
91 a:from-string s-a - - Create a new array with the characters in the source string. class:word {n/a} {n/a} a all
92 a:hash a-n - - Calculate a hash value for a given array. class:word {n/a} {n/a} a all
93 a:index an-n - - Return the location of the first instance of the specified value in the array. class:word {n/a} {n/a} a all
a:index-of an-n - - Deprecated. Use `a:index` instead. Return the location of the first instance of the specified value in the array. class:word {n/a} {n/a} a all
a:index-of-string as-n - - Deprecated. Use `a:index/string` instead. Return the location of the first instance of the specified string in the array. class:word {n/a} {n/a} a all
94 a:index/string as-n - - Return the location of the first instance of the specified string in the array. class:word {n/a} {n/a} a all
95 a:indices av-a - - Return a new array with the indices the specified value was found at in the original array. class:word {n/a} {n/a} a all
96 a:indices/string as-a - - Return a new array with the indices of the specified string in the original array. class:word {n/a} {n/a} a all
463 s:case sSq- || sSq-s - - If the `s` matches `S`, discard `s` and run the quote before exiting the caller. If they do not match, discard the quote and leave `s` on the stack. class:word {n/a} {n/a} s all
464 s:chop s-s - - Remove the last character from a string. Returns a new string. class:word {n/a} {n/a} s all
465 s:const ss- - - Create a constant named s2, returning a pointer to s1. This will use `s:keep` to preserve the original string. class:word {n/a} {n/a} s all
s:contains-char? sc-f - - Deprecated. Use `s:contains/char?` instead. Return `TRUE` if the character is present in the string or `FALSE` otherwise. class:word {n/a} {n/a} s all
s:contains-string? ss-f - - Deprecated. Use `s:contains/string?` instead. Return `TRUE` if the second string is present in the first string or `FALSE` otherwise. class:word {n/a} {n/a} s all
466 s:contains/char? sc-f - - Return `TRUE` if the character is present in the string or `FALSE` otherwise. class:word {n/a} {n/a} s all
467 s:contains/string? ss-f - - Return `TRUE` if the second string is present in the first string or `FALSE` otherwise. class:word {n/a} {n/a} s all
468 s:copy sa- - - Copy a string (s) to a destination (a). This will include the terminator character when copying. class:word {n/a} {n/a} s all
482 s:get -s - - Read input from standard in (via `c:get`) until a CR or LF is encountered. Returns a string. class:word {n/a} {n/a} all rre
483 s:get-word -s - - Read input from standard in (via `c:get`) until a whitespace is encountered. Returns a string. class:word {n/a} {n/a} all rre
484 s:hash s-n - - Calculate a hash value for a string. This uses the djb2 algorithm. class:word {n/a} {n/a} s all
s:index-of sc-n - - Deprecated. Use `s:index/char` instead. Return the location of the first instance of the specified character in the string. class:word {n/a} {n/a} s all
s:index-of-string ss-n - - Derpecated. Use `s:index/string` instead. Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found. class:word {n/a} {n/a} s all
485 s:index/char sc-n - - Return the location of the first instance of the specified character in the string. class:word {n/a} {n/a} s all
486 s:index/string ss-n - - Return the location of the first instance of the specified substring (s2) in the string (s1). Returns -1 if not found. class:word {n/a} {n/a} s all
487 s:keep s-s - - Store a string into the heap and return a pointer to the start of it. class:word {n/a} {n/a} s all
495 s:reverse s-s - - Reverse the order of ASCII characters in a string. class:word {n/a} {n/a} s all
496 s:right sn-s - - Return a new string containing the specified number of characters from the right side of the string. class:word {n/a} {n/a} s all
497 s:skip - - - Internal helper function used to skip over a string in a definition. class:word {n/a} {n/a} s all
s:split sc-ss - - Deprecated. Use `s:split/char` instead. Split a string on the first occurrence of the specified character. class:word {n/a} {n/a} s all
s:split-on-string ss-ss - - Deprecated. Use `s:split/string` instead. Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string. class:word 'Hello_Brave_World! 'Brave s:split-on-string s:put nl s:put nl {n/a} s all
498 s:split/char sc-ss - - Split a string on the first occurrence of the specified character. class:word {n/a} {n/a} s all
499 s:split/string ss-ss - - Split a string on the first occurrence of the specified string. After the split, the top stack item will be the part of the string before the specified substring, and the second item will be the rest of the original string. class:word 'Hello_Brave_World! 'Brave s:split-on-string s:put nl s:put nl {n/a} s all
500 s:store csn- - - Store a character value into the string at the specified index. class:word $z 'abcdef #1 s:store {n/a} s all

View file

@ -75,7 +75,7 @@ single socket.
:connect (s-)
socket:create !Sock
$: s:split swap n:inc socket:configure
$: s:split/char swap n:inc socket:configure
@Sock socket:connect drop ;
:s:transmit @Sock socket:send drop-pair ;
@ -146,7 +146,7 @@ I pass it to `s:evaluate`, capturing and relaying the output.
here 'PRIVMSG s:contains/string? ;
:channel
here 'PRIVMSG s:split-on-string drop #8 + $: s:split nip s:chop &Channel s:copy ;
here 'PRIVMSG s:split/string drop #8 + $: s:split/char nip s:chop &Channel s:copy ;
:transmit
'PRIVMSG_ s:transmit
@ -190,7 +190,7 @@ I pass it to `s:evaluate`, capturing and relaying the output.
run-code document drop dump-stack nl ;
:process
here 'PRIVMSG s:split-on-string drop $: s:split drop n:inc dup s:put nl
here 'PRIVMSG s:split/string drop $: s:split/char drop n:inc dup s:put nl
command ;
~~~

View file

@ -170,7 +170,7 @@ server as there is no means provided of restricting writes using it.
~~~
:set-block (-)
&Selector #3 +
$/ s:split s:to-number swap n:inc s:chop swap block:set ;
$/ s:split/char s:to-number swap n:inc s:chop swap block:set ;
~~~
And `handle-block` uses `display-block` to return a formatted text block

View file

@ -1,16 +1,3 @@
These are planned to be removed in 2021.10. Please update
your sources to use the newer names.
~~~
:s:split (sc-ss) s:split/char ;
:s:split-on-string (ss-ss) s:split/string ;
:s:contains-char? s:contains/char? ;
:s:contains-string? s:contains/string? ;
:a:contains-string? a:contains/string? ;
:a:index-of a:index ;
:a:index-of-string a:index/string ;
:s:index-of s:index/char ;
:s:index-of-string s:index/string ;
~~~
~~~

View file

@ -10,8 +10,8 @@
#define CELL_MAX LLONG_MAX - 1
#endif
#endif
CELL ngaImageCells = 20101;
CELL ngaImage[] = { 1793,19598,20056,20100,202309,417,389,1249,1535,0,11254,0,10,1,10,2,10,3,10,
CELL ngaImageCells = 19890;
CELL ngaImage[] = { 1793,19387,19845,19889,202309,417,389,1249,1535,0,11254,0,10,1,10,2,10,3,10,
4,10,5,10,6,10,7,10,8,10,11,10,12,10,13,10,14,10,15,10,
16,10,17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,68223234,
1,2575,85000450,1,656912,163,180,268505089,65,64,285281281,0,65,2063,10,101384453,0,9,10,68485378,
@ -20,8 +20,8 @@ CELL ngaImage[] = { 1793,19598,20056,20100,202309,417,389,1249,1535,0,11254,0,10
1,251790353,101777669,1,17565186,109,524545,113,66,167838467,-1,134287105,3,61,659457,3,459023,130,2049,58,
25,2049,130,1793,137,2049,137,117506307,0,130,0,524545,28,135,168820993,0,149,1642241,149,134283523,
13,135,1793,130,524545,2049,130,1793,130,16846593,149,163,180,1793,66,16846593,149,135,180,1793,
66,7,10,659713,1,659713,2,659713,3,659713,4,659713,5,1793,19853,17108737,3,2,524559,130,
2049,130,2049,130,524545,0,130,524545,0,130,2049,144,1048838,2,1642241,10,7,18834,1249,167841793,
66,7,10,659713,1,659713,2,659713,3,659713,4,659713,5,1793,19642,17108737,3,2,524559,130,
2049,130,2049,130,524545,0,130,524545,0,130,2049,144,1048838,2,1642241,10,7,18623,1249,167841793,
216,11,17826049,0,216,2,15,25,524546,190,134287105,217,118,2305,218,459023,226,0,0,134287361,
217,221,659201,216,10,659969,7,2049,58,25,17694978,58,244,9,84152833,48,319750404,243,117507601,246,
184618754,45,25,16974851,-1,168886532,1,134284289,1,259,134284289,0,246,660227,32,0,0,115,105,103,
@ -170,7 +170,7 @@ CELL ngaImage[] = { 1793,19598,20056,20100,202309,417,389,1249,1535,0,11254,0,10
110,58,105,110,99,0,659713,1,10,3114,3139,168,12041,210720197721,110,58,100,101,99,0,
659969,1,10,3128,3158,168,12041,8246617666422322998,110,58,98,101,116,119,101,101,110,63,0,67503109,
1793,3166,67503109,67503109,2049,3106,10,1,3161,2049,2241,11,10,3142,3187,168,12041,249861296566813883,83,99,
111,112,101,76,105,115,116,0,19958,20012,10,3172,3198,168,12041,5864091,123,123,0,2049,
111,112,101,76,105,115,116,0,19747,19801,10,3172,3198,168,12041,5864091,123,123,0,2049,
1576,2,1,3187,2049,61,16,10,3190,3225,168,12041,-6305314778776785742,45,45,45,114,101,118,101,
97,108,45,45,45,0,2049,1576,1,3187,2049,3125,16,10,3207,3241,168,12041,5864159,125,
125,0,1,3187,2049,58,4,15,11,1793,3255,3841,3187,4097,2,10,1,3250,1793,3281,
@ -918,102 +918,91 @@ CELL ngaImage[] = { 1793,19598,20056,20100,202309,417,389,1249,1535,0,11254,0,10
10,18059,18097,168,18127,-4578818303223200395,98,108,111,99,107,58,119,114,105,116,101,0,1,1,
2049,18052,10,18080,18122,168,18127,-4036225629868593021,98,108,111,99,107,58,115,101,116,45,102,105,
108,101,0,1,2,2049,18052,10,105,110,116,101,114,102,97,99,101,47,98,108,
111,99,107,115,46,114,101,116,114,111,0,18127,11414,18102,18165,168,0,229480770855518,115,58,
115,112,108,105,116,0,2049,7184,10,18152,18191,168,0,6119006473764520940,115,58,115,112,108,105,
116,45,111,110,45,115,116,114,105,110,103,0,2049,7218,10,18168,18216,168,0,-2157201768052001381,
115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,4857,10,
18194,18243,168,0,-6456228026363444588,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,
110,103,63,0,2049,5286,10,18219,18270,168,0,-3160266536000611262,97,58,99,111,110,116,97,105,
110,115,45,115,116,114,105,110,103,63,0,2049,9099,10,18246,18289,168,0,8246014626430519194,97,
58,105,110,100,101,120,45,111,102,0,2049,9741,10,18273,18315,168,0,-5025353456659034242,97,58,
105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,2049,9775,10,18292,
18334,168,0,8246850033149754348,115,58,105,110,100,101,120,45,111,102,0,2049,4779,10,18318,18360,
168,0,-94300875658333296,115,58,105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,
0,2049,5069,10,18337,18379,168,0,8246228896775126019,100,111,117,98,108,101,58,118,97,114,0,
2049,2075,4,2049,130,2049,130,10,18363,18405,168,0,-3421095308458227740,100,111,117,98,108,101,58,
102,101,116,99,104,0,2049,58,4,15,10,18387,18428,168,0,-3421095308442276665,100,111,117,98,
108,101,58,115,116,111,114,101,0,1,19,2049,2229,2049,61,16,10,18410,18454,168,
0,-3421095308461432127,100,111,117,98,108,101,58,99,111,110,115,116,0,2049,18379,1,18405,2049,
8460,10,18436,18478,168,0,-4575607512064199915,100,111,117,98,108,101,58,115,119,97,112,0,67503109,
5,67503109,6,10,18461,18499,168,0,8246228896775106679,100,111,117,98,108,101,58,100,105,112,0,
67503109,67503109,5,5,8,6,6,10,18483,18523,168,0,8246228896775123014,100,111,117,98,108,101,58,
115,105,112,0,1,2217,2049,2229,2049,18499,10,18507,18546,168,0,8246632143337714634,109,101,109,58,
105,110,118,111,107,101,0,1,15,2049,10812,2049,10793,10,18530,0,156,0,210667451248,65,
76,76,79,67,0,18553,1,156,0,6384048135,70,82,69,69,0,18564,2,156,0,210689088690,
83,84,79,82,69,0,18574,3,156,0,210673137615,70,69,84,67,72,0,18585,4,156,
0,6952683137271,82,69,83,73,90,69,0,18507,18623,168,0,249897943727936361,109,101,109,58,97,108,
108,111,99,0,1,0,2049,18546,10,18608,18643,168,0,249897943749573803,109,101,109,58,115,116,
111,114,101,0,1,2,2049,18546,10,18628,18663,168,0,249897943733622728,109,101,109,58,102,101,
116,99,104,0,1,3,2049,18546,10,18648,18682,168,0,7572664961638592,109,101,109,58,102,114,
101,101,0,1,1,2049,18546,10,18668,18703,168,0,8246632143679146032,109,101,109,58,114,101,115,
105,122,101,0,1,4,2049,18546,10,18687,18723,168,0,249897943730056489,109,101,109,58,99,101,
108,108,43,0,1,8,19,17,10,18708,18750,168,0,1050530996183190288,109,101,109,58,102,101,
116,99,104,45,100,111,117,98,108,101,0,2,1,1,2049,18723,15,5,2049,18663,
6,10,18728,18783,168,0,1730340976492540563,109,101,109,58,115,116,111,114,101,45,100,111,117,
98,108,101,0,5,5,2049,2217,1,1,2049,18723,6,2049,18643,6,2049,18643,10,1793,
18819,1,192,1,2,17,8,2049,1576,2049,190,3841,11239,8,2049,1576,2049,188,16,10,
1,18800,18761,18830,168,19617,193470948,84,73,66,0,1,7,15,10,18821,18850,168,19617,8246457295145463473,
105,109,97,103,101,58,115,97,118,101,0,1,1000,2049,10812,2049,10793,10,18834,18868,
168,0,210711039690,101,100,105,116,63,0,2,1793,18875,1,8,11,10,1,18871,1793,18883,
1,127,11,10,1,18879,2049,2255,22,10,18857,18901,168,0,6953539406400,103,97,116,104,101,
114,0,2049,18868,1,17,1,4134,2049,66,10,18889,18921,168,0,210709415765,99,121,99,108,
101,0,2049,11123,2049,2217,4,8,2049,2644,25,3,2049,18901,1,18921,7,10,18834,18954,
168,19617,-4557881830897049127,112,97,114,115,101,45,117,110,116,105,108,0,1793,18966,2049,4451,2049,
4234,2049,18921,771,2049,4096,10,1,18956,2049,4260,10,18937,18982,168,19617,210726130610,115,58,103,
101,116,0,1793,19004,1793,18990,1,13,11,10,1,18986,1793,18998,1,10,11,10,1,
18994,2049,2255,22,10,1,18984,2049,18954,10,18971,19020,168,19617,210708950412,99,108,101,97,114,
0,2049,4472,92,94,91,50,74,92,94,91,48,59,48,72,0,1,19022,2049,8246,
2049,10918,10,19009,19054,156,19617,6952575930081,78,111,69,99,104,111,0,0,19042,19064,156,0,
193454829,69,79,84,0,0,19055,19079,156,0,7571133383038306,73,103,110,111,114,105,110,103,0,
0,19065,19095,168,0,249892406716047873,105,103,110,111,114,105,110,103,63,0,3841,19079,10,19080,
19111,168,0,229486327000139,118,101,114,115,105,111,110,0,3841,4,1,100,20,10,19098,19128,
168,0,210710254026,100,111,110,101,63,0,2,4097,19064,1793,19137,1,13,11,10,1,19133,
1793,19145,1,10,11,10,1,19141,1793,19153,1,32,11,10,1,19149,2049,2298,22,22,
10,19117,19170,168,0,6385195044,101,111,108,63,0,3841,19064,1793,19178,1,13,11,10,1,
19174,1793,19186,1,10,11,10,1,19182,2049,2255,22,10,19160,19204,168,0,6954126150804,118,97,
108,105,100,63,0,2,2049,104,2049,2812,10,19192,19225,168,0,249883998779477802,99,104,101,99,
107,45,101,111,102,0,2,1793,19232,1,-1,11,10,1,19228,1793,19240,1,4,11,
10,1,19236,2049,2255,22,1793,19250,2049,11190,10,1,19247,9,10,19210,19262,168,0,5863258,
98,115,0,2049,4212,1,2,2049,2675,1793,19274,2049,4160,3,10,1,19270,9,2049,4160,
3,10,19254,19295,168,0,7572242387256805,99,104,101,99,107,45,98,115,0,2,1793,19302,1,
8,11,10,1,19298,1793,19310,1,127,11,10,1,19306,2049,2255,22,1793,19320,2049,19262,
10,1,19317,9,10,19281,19335,168,0,210708806723,99,104,101,99,107,0,2049,19225,2049,19295,
10,19324,19355,168,0,249883994190734226,99,104,97,114,97,99,116,101,114,0,2049,11123,2,2049,
4134,10,19340,19373,168,0,6953366942559,98,117,102,102,101,114,0,1793,19383,2049,18830,2049,4234,
8,2049,4096,10,1,19375,2049,4260,10,19361,19404,168,0,8246863741238799215,114,101,97,100,45,116,
111,107,101,110,0,1793,19420,1793,19415,2049,19355,2049,19335,2049,19128,10,1,19408,2049,2397,
10,1,19406,2049,19373,2049,4587,10,19388,19438,168,0,210716150453,105,110,112,117,116,0,2049,
19404,2049,19204,10,19427,19456,168,0,229479082815460,112,114,111,99,101,115,115,0,2049,19095,1793,
19474,771,2049,19170,1793,19470,1,19079,2049,3931,10,1,19465,9,10,1,19460,2049,2862,1,
417,1,17,2049,66,10,19042,19493,180,19617,5861507,47,47,0,2049,16539,1,19079,2049,3916,
10,19485,19512,168,19617,6953343520347,98,97,110,110,101,114,0,2049,19111,2049,4472,82,69,84,
82,79,32,49,50,32,40,37,110,46,37,110,41,92,110,0,1,19516,2049,8246,
2049,10918,2049,9335,2049,1545,2049,9335,18,2049,1545,2049,4472,37,110,32,77,97,120,44,
32,37,110,32,85,115,101,100,44,32,37,110,32,70,114,101,101,92,110,0,
1,19552,2049,8246,2049,10918,10,19500,19598,168,19617,6953744547860,108,105,115,116,101,110,0,3841,
19054,1793,19605,2049,19512,10,1,19602,2049,74,2049,19438,2049,19456,1,19609,7,10,105,110,
116,101,114,102,97,99,101,47,114,101,116,114,111,45,117,110,105,120,46,114,
101,116,114,111,0,19586,19657,156,0,229441520490121,83,111,117,114,99,101,115,0,1,19906,
111,99,107,115,46,114,101,116,114,111,0,18127,11414,18102,18168,168,0,8246228896775126019,100,111,
117,98,108,101,58,118,97,114,0,2049,2075,4,2049,130,2049,130,10,18152,18194,168,
0,-3421095308458227740,100,111,117,98,108,101,58,102,101,116,99,104,0,2049,58,4,15,10,
18176,18217,168,0,-3421095308442276665,100,111,117,98,108,101,58,115,116,111,114,101,0,1,19,
2049,2229,2049,61,16,10,18199,18243,168,0,-3421095308461432127,100,111,117,98,108,101,58,99,111,
110,115,116,0,2049,18168,1,18194,2049,8460,10,18225,18267,168,0,-4575607512064199915,100,111,117,98,
108,101,58,115,119,97,112,0,67503109,5,67503109,6,10,18250,18288,168,0,8246228896775106679,100,111,
117,98,108,101,58,100,105,112,0,67503109,67503109,5,5,8,6,6,10,18272,18312,168,
0,8246228896775123014,100,111,117,98,108,101,58,115,105,112,0,1,2217,2049,2229,2049,18288,10,
18296,18335,168,0,8246632143337714634,109,101,109,58,105,110,118,111,107,101,0,1,15,2049,10812,
2049,10793,10,18319,0,156,0,210667451248,65,76,76,79,67,0,18342,1,156,0,6384048135,70,
82,69,69,0,18353,2,156,0,210689088690,83,84,79,82,69,0,18363,3,156,0,210673137615,
70,69,84,67,72,0,18374,4,156,0,6952683137271,82,69,83,73,90,69,0,18296,18412,
168,0,249897943727936361,109,101,109,58,97,108,108,111,99,0,1,0,2049,18335,10,18397,18432,
168,0,249897943749573803,109,101,109,58,115,116,111,114,101,0,1,2,2049,18335,10,18417,18452,
168,0,249897943733622728,109,101,109,58,102,101,116,99,104,0,1,3,2049,18335,10,18437,18471,
168,0,7572664961638592,109,101,109,58,102,114,101,101,0,1,1,2049,18335,10,18457,18492,168,
0,8246632143679146032,109,101,109,58,114,101,115,105,122,101,0,1,4,2049,18335,10,18476,18512,
168,0,249897943730056489,109,101,109,58,99,101,108,108,43,0,1,8,19,17,10,18497,18539,
168,0,1050530996183190288,109,101,109,58,102,101,116,99,104,45,100,111,117,98,108,101,0,
2,1,1,2049,18512,15,5,2049,18452,6,10,18517,18572,168,0,1730340976492540563,109,101,109,58,
115,116,111,114,101,45,100,111,117,98,108,101,0,5,5,2049,2217,1,1,2049,
18512,6,2049,18432,6,2049,18432,10,1793,18608,1,192,1,2,17,8,2049,1576,2049,190,
3841,11239,8,2049,1576,2049,188,16,10,1,18589,18550,18619,168,19406,193470948,84,73,66,0,
1,7,15,10,18610,18639,168,19406,8246457295145463473,105,109,97,103,101,58,115,97,118,101,0,
1,1000,2049,10812,2049,10793,10,18623,18657,168,0,210711039690,101,100,105,116,63,0,2,1793,
18664,1,8,11,10,1,18660,1793,18672,1,127,11,10,1,18668,2049,2255,22,10,18646,
18690,168,0,6953539406400,103,97,116,104,101,114,0,2049,18657,1,17,1,4134,2049,66,10,
18678,18710,168,0,210709415765,99,121,99,108,101,0,2049,11123,2049,2217,4,8,2049,2644,25,
3,2049,18690,1,18710,7,10,18623,18743,168,19406,-4557881830897049127,112,97,114,115,101,45,117,110,
116,105,108,0,1793,18755,2049,4451,2049,4234,2049,18710,771,2049,4096,10,1,18745,2049,4260,
10,18726,18771,168,19406,210726130610,115,58,103,101,116,0,1793,18793,1793,18779,1,13,11,10,
1,18775,1793,18787,1,10,11,10,1,18783,2049,2255,22,10,1,18773,2049,18743,10,18760,
18809,168,19406,210708950412,99,108,101,97,114,0,2049,4472,92,94,91,50,74,92,94,91,
48,59,48,72,0,1,18811,2049,8246,2049,10918,10,18798,18843,156,19406,6952575930081,78,111,69,
99,104,111,0,0,18831,18853,156,0,193454829,69,79,84,0,0,18844,18868,156,0,7571133383038306,
73,103,110,111,114,105,110,103,0,0,18854,18884,168,0,249892406716047873,105,103,110,111,114,
105,110,103,63,0,3841,18868,10,18869,18900,168,0,229486327000139,118,101,114,115,105,111,110,
0,3841,4,1,100,20,10,18887,18917,168,0,210710254026,100,111,110,101,63,0,2,4097,
18853,1793,18926,1,13,11,10,1,18922,1793,18934,1,10,11,10,1,18930,1793,18942,1,
32,11,10,1,18938,2049,2298,22,22,10,18906,18959,168,0,6385195044,101,111,108,63,0,
3841,18853,1793,18967,1,13,11,10,1,18963,1793,18975,1,10,11,10,1,18971,2049,2255,
22,10,18949,18993,168,0,6954126150804,118,97,108,105,100,63,0,2,2049,104,2049,2812,10,
18981,19014,168,0,249883998779477802,99,104,101,99,107,45,101,111,102,0,2,1793,19021,1,-1,
11,10,1,19017,1793,19029,1,4,11,10,1,19025,2049,2255,22,1793,19039,2049,11190,10,
1,19036,9,10,18999,19051,168,0,5863258,98,115,0,2049,4212,1,2,2049,2675,1793,19063,
2049,4160,3,10,1,19059,9,2049,4160,3,10,19043,19084,168,0,7572242387256805,99,104,101,99,
107,45,98,115,0,2,1793,19091,1,8,11,10,1,19087,1793,19099,1,127,11,10,
1,19095,2049,2255,22,1793,19109,2049,19051,10,1,19106,9,10,19070,19124,168,0,210708806723,99,
104,101,99,107,0,2049,19014,2049,19084,10,19113,19144,168,0,249883994190734226,99,104,97,114,97,
99,116,101,114,0,2049,11123,2,2049,4134,10,19129,19162,168,0,6953366942559,98,117,102,102,
101,114,0,1793,19172,2049,18619,2049,4234,8,2049,4096,10,1,19164,2049,4260,10,19150,19193,
168,0,8246863741238799215,114,101,97,100,45,116,111,107,101,110,0,1793,19209,1793,19204,2049,19144,
2049,19124,2049,18917,10,1,19197,2049,2397,10,1,19195,2049,19162,2049,4587,10,19177,19227,168,
0,210716150453,105,110,112,117,116,0,2049,19193,2049,18993,10,19216,19245,168,0,229479082815460,112,114,
111,99,101,115,115,0,2049,18884,1793,19263,771,2049,18959,1793,19259,1,18868,2049,3931,10,
1,19254,9,10,1,19249,2049,2862,1,417,1,17,2049,66,10,18831,19282,180,19406,5861507,
47,47,0,2049,16539,1,18868,2049,3916,10,19274,19301,168,19406,6953343520347,98,97,110,110,101,
114,0,2049,18900,2049,4472,82,69,84,82,79,32,49,50,32,40,37,110,46,37,
110,41,92,110,0,1,19305,2049,8246,2049,10918,2049,9335,2049,1545,2049,9335,18,2049,1545,
2049,4472,37,110,32,77,97,120,44,32,37,110,32,85,115,101,100,44,32,37,
110,32,70,114,101,101,92,110,0,1,19341,2049,8246,2049,10918,10,19289,19387,168,19406,
6953744547860,108,105,115,116,101,110,0,3841,18843,1793,19394,2049,19301,10,1,19391,2049,74,2049,
19227,2049,19245,1,19398,7,10,105,110,116,101,114,102,97,99,101,47,114,101,116,
114,111,45,117,110,105,120,46,114,101,116,114,111,0,19375,19446,156,0,229441520490121,83,
111,117,114,99,101,115,0,1,19695,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,19644,19797,168,0,6953711201841,107,110,111,119,110,63,0,2,1,
19657,2049,9099,10,19785,19814,168,0,210716136861,105,110,100,101,120,0,1,19657,4,2049,9775,
1,19657,4,2049,9245,10,19803,19837,168,0,6953974036516,114,101,99,111,114,100,0,2049,4500,
2,1,19657,2049,3864,3841,19657,1,19657,17,16,10,1793,19904,2049,16474,2049,19797,1793,19862,
2049,19814,10,1,19859,1793,19869,2049,19837,10,1,19866,2049,66,1793,19882,1,192,1,2,
17,8,10,1,19875,2049,2229,2049,1576,2049,186,16,2049,1576,2049,190,3841,11239,8,2049,
1576,2049,188,16,10,1,19853,100,105,99,116,45,119,111,114,100,115,45,108,105,
115,116,105,110,103,46,102,111,114,116,104,0,19586,19944,168,19906,229461403550098,100,58,119,
111,114,100,115,0,1793,19953,2049,190,2049,10918,2049,10888,10,1,19946,2049,8491,10,19931,
19976,168,19906,-3502157631813457253,100,58,119,111,114,100,115,45,119,105,116,104,0,2049,1977,2049,
5573,1793,20007,2049,190,2,2049,1977,2049,5286,1793,19996,2049,10918,2049,10888,10,1,19991,1793,
20002,3,10,1,20000,2049,66,10,1,19982,2049,8491,10,19958,20033,168,19906,2818131571306626127,100,105,
115,112,108,97,121,45,105,102,45,108,101,102,116,0,2,2049,1977,2049,5519,1793,
20045,2049,10918,2049,10888,10,1,20040,1793,20051,3,10,1,20049,2049,66,10,19958,20084,168,
19906,2947807019553410009,100,58,119,111,114,100,115,45,98,101,103,105,110,110,105,110,103,45,
119,105,116,104,0,2049,1977,2049,5573,1793,20095,2049,190,2049,20033,10,1,20090,2049,8491,
10,0 };
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19433,19586,168,0,6953711201841,
107,110,111,119,110,63,0,2,1,19446,2049,9099,10,19574,19603,168,0,210716136861,105,110,
100,101,120,0,1,19446,4,2049,9775,1,19446,4,2049,9245,10,19592,19626,168,0,6953974036516,
114,101,99,111,114,100,0,2049,4500,2,1,19446,2049,3864,3841,19446,1,19446,17,16,
10,1793,19693,2049,16474,2049,19586,1793,19651,2049,19603,10,1,19648,1793,19658,2049,19626,10,1,
19655,2049,66,1793,19671,1,192,1,2,17,8,10,1,19664,2049,2229,2049,1576,2049,186,
16,2049,1576,2049,190,3841,11239,8,2049,1576,2049,188,16,10,1,19642,100,105,99,116,
45,119,111,114,100,115,45,108,105,115,116,105,110,103,46,102,111,114,116,104,
0,19375,19733,168,19695,229461403550098,100,58,119,111,114,100,115,0,1793,19742,2049,190,2049,10918,
2049,10888,10,1,19735,2049,8491,10,19720,19765,168,19695,-3502157631813457253,100,58,119,111,114,100,115,
45,119,105,116,104,0,2049,1977,2049,5573,1793,19796,2049,190,2,2049,1977,2049,5286,1793,
19785,2049,10918,2049,10888,10,1,19780,1793,19791,3,10,1,19789,2049,66,10,1,19771,2049,
8491,10,19747,19822,168,19695,2818131571306626127,100,105,115,112,108,97,121,45,105,102,45,108,101,
102,116,0,2,2049,1977,2049,5519,1793,19834,2049,10918,2049,10888,10,1,19829,1793,19840,3,
10,1,19838,2049,66,10,19747,19873,168,19695,2947807019553410009,100,58,119,111,114,100,115,45,98,
101,103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1977,2049,5573,1793,19884,
2049,190,2049,19822,10,1,19879,2049,8491,10,0 };