======== #1 ========

''.chop() .. 
'abcdef'.chop() .. abcde
'abcdef'.chop('f') .. abcde
'abcdef'.chop('g') .. abcdef
'abcdef'.chop('F') .. abcdef
'abcdef'.chop('F'):icase .. abcde
'abcdef'.chop():eol .. abcdef
'abcdef\n'.chop():eol .. abcdef
'abcdef\n'.chop('f') .. abcdef

'abcdef\n'.chop('f'):eol .. abcde
'abcdef'.chop('f', 'g', 'h') .. abcde
'abcdeg'.chop('f', 'g', 'h') .. abcde
'abcdeh'.chop('f', 'g', 'h') .. abcde

======== #2 string#encodeuri() and string#decodeuri() ========

%01%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F
%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F
%20!%22%23$%25&'()*+,-./
0123456789:;%3C=%3E?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ%5B%5C%5D%5E_
%60abcdefghijklmno
pqrstuvwxyz%7B%7C%7D~%7F
%C2%80%C2%81%C2%82%C2%83%C2%84%C2%85%C2%86%C2%87%C2%88%C2%89%C2%8A%C2%8B%C2%8C%C2%8D%C2%8E%C2%8F
%C2%90%C2%91%C2%92%C2%93%C2%94%C2%95%C2%96%C2%97%C2%98%C2%99%C2%9A%C2%9B%C2%9C%C2%9D%C2%9E%C2%9F
%C2%A0%C2%A1%C2%A2%C2%A3%C2%A4%C2%A5%C2%A6%C2%A7%C2%A8%C2%A9%C2%AA%C2%AB%C2%AC%C2%AD%C2%AE%C2%AF
%C2%B0%C2%B1%C2%B2%C2%B3%C2%B4%C2%B5%C2%B6%C2%B7%C2%B8%C2%B9%C2%BA%C2%BB%C2%BC%C2%BD%C2%BE%C2%BF
%C3%80%C3%81%C3%82%C3%83%C3%84%C3%85%C3%86%C3%87%C3%88%C3%89%C3%8A%C3%8B%C3%8C%C3%8D%C3%8E%C3%8F
%C3%90%C3%91%C3%92%C3%93%C3%94%C3%95%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%9B%C3%9C%C3%9D%C3%9E%C3%9F
%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%A8%C3%A9%C3%AA%C3%AB%C3%AC%C3%AD%C3%AE%C3%AF
%C3%B0%C3%B1%C3%B2%C3%B3%C3%B4%C3%B5%C3%B6%C3%B7%C3%B8%C3%B9%C3%BA%C3%BB%C3%BC%C3%BD%C3%BE%C3%BF
 !"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~

======== #3 ========

0a 31 73 74 20 6c 69 6e 65 0a 32 6e 64 20 6c 69  .1st line.2nd li
6e 65 0a 33 72 64 20 6c 69 6e 65 0a              ne.3rd line.
31 73 74 20 6c 69 6e 65 0a 32 6e 64 20 6c 69 6e  1st line.2nd lin
65 0a 33 72 64 20 6c 69 6e 65 0a                 e.3rd line.
61 0a 31 73 74 20 6c 69 6e 65 0a 32 6e 64 20 6c  a.1st line.2nd l
69 6e 65 0a 33 72 64 20 6c 69 6e 65 0a           ine.3rd line.

======== #4 ========

!""""#$%&'''()**+,,---../0123456789:;<<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]]^_``abcdefghijklmnopqrstuvwxyz{|}~~

======== #5 ========

`abcdefghijklmnopqrstuvwxyCDFGHIMb
`abcdefghijklmnopqrstuvwxyCDFGHIMb
CDFGHIMb
CDFGHIMb

======== #6 string#fold() ========

str.fold(10):list .. ['0123456789', '0123456789', '0123456789', '0123456789', '0123456789', '0123456789', '0123456789', '0123456789', '0123456789', '0123456789']
str.fold(10, 5):list .. ['0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '5678901234', '0123456789', '56789']
str.fold(5, 10):list .. ['01234', '01234', '01234', '01234', '01234', '01234', '01234', '01234', '01234', '01234']

======== #7 ========

'<hoge foo="abcdefg">'.escapehtml():quote .. &lt;hoge foo=&quot;abcdefg&quot;&gt;
'x < 0 & y > 1'.escapehtml() .. x &lt; 0 &amp; y &gt; 1
'x &lt; 0 &amp; y &gt; 1'.unescapehtml() .. x < 0 & y > 1
'&quot;hello world&quot;'.unescapehtml() .. "hello world"

======== #8 string#align() ========

str.align(16):center ..    hello world  
str.align(16):left .. hello world     
str.align(16):right ..      hello world
str.align(16, '*'):center .. ***hello world**
str.align(16, '*'):left .. hello world*****
str.align(16, '*'):right .. *****hello world

======== #9 string#strip() ========

format('[%s]', str.strip():both) .. []
format('[%s]', str.strip():left) .. []
format('[%s]', str.strip():right) .. []
format('[%s]', str.strip():both) .. []
format('[%s]', str.strip():left) .. []
format('[%s]', str.strip():right) .. []
format('[%s]', str.strip():both) .. [hello world]
format('[%s]', str.strip():left) .. [hello world   ]
format('[%s]', str.strip():right) .. [   hello world]

======== #10 ========

 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

߁@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~

ȁɁʁˁ́́΁ځہ܁݁ށ
OPQRSTUVWX`abc
defghijklmnopqrstuvwxy

ÂĂłƂǂȂɂʂ˂̂͂
ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~
ÃăŃƃǃȃɃʃ˃̃
΃σЃу҃ӃԃՃք@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`pqrstuvwxyz{|}~

@ABCDEFGHIJKLMNOPQRST
UVWXYZ[\]_`abcdefghijklmnopqrstu
~߁燓ہڇ恿

ÈĈňƈǈȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

É
ŉƉǉȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÊĊŊƊǊ
Ɋʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ËċŋƋǋȋɋʋˋ
͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÌČŌƌǌȌɌʌˌ̌͌Όό
ьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍ
Ս֍׍؍ٍڍۍ܍ݍލߍ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎
َڎێ܎ݎގߎ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ
ݏޏߏ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~


ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

Ñ
őƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÒĒŒƒǒ
ɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ÓēœƓǓȓɓʓ˓
͓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÔĔŔƔǔȔɔʔ˔͔̔Δϔ
єҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕ
Օ֕וٕؕڕەܕݕޕߕ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖ז
ٖږۖܖݖޖߖ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗ
ݗޗߗ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqr
ØĘŘƘǘȘɘʘ
̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~

ÙęřƙǙșəʙ˙̙͙Ι
Йљҙәԙՙ֙יؙٙڙۙܙݙޙߙ
@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~

ÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚ
Ԛ՚֚ךؚٚښۚܚݚޚߚ
@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~

ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛
؛ٛڛۛܛݛޛߛ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~

ÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜ
ܜݜޜߜ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~


ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝ
@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~


ĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ
@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~

ßğşƟ
ȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ
@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~



@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~



@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~



@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



TUVWXYZ[\]
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~


@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~




 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

߁@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~

ȁɁʁˁ́́΁ځہ܁݁ށ
OPQRSTUVWX`abc
defghijklmnopqrstuvwxy

ÂĂłƂǂȂɂʂ˂̂͂
ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~
ÃăŃƃǃȃɃʃ˃̃
΃σЃу҃ӃԃՃք@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`pqrstuvwxyz{|}~

@ABCDEFGHIJKLMNOPQRST
UVWXYZ[\]_`abcdefghijklmnopqrstu
~߁燓ہڇ恿

ÈĈňƈǈȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

É
ŉƉǉȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÊĊŊƊǊ
Ɋʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ËċŋƋǋȋɋʋˋ
͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÌČŌƌǌȌɌʌˌ̌͌Όό
ьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍ
Ս֍׍؍ٍڍۍ܍ݍލߍ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎
َڎێ܎ݎގߎ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ
ݏޏߏ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~


ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

Ñ
őƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÒĒŒƒǒ
ɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ÓēœƓǓȓɓʓ˓
͓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÔĔŔƔǔȔɔʔ˔͔̔Δϔ
єҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕ
Օ֕וٕؕڕەܕݕޕߕ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖ז
ٖږۖܖݖޖߖ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗ
ݗޗߗ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqr
ØĘŘƘǘȘɘʘ
̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~

ÙęřƙǙșəʙ˙̙͙Ι
Йљҙәԙՙ֙יؙٙڙۙܙݙޙߙ
@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~

ÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚ
Ԛ՚֚ךؚٚښۚܚݚޚߚ
@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~

ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛
؛ٛڛۛܛݛޛߛ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~

ÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜ
ܜݜޜߜ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~


ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝ
@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~


ĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ
@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~

ßğşƟ
ȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ
@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~



@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~



@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~



@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



TUVWXYZ[\]
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~


@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~




 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~

ȁɁʁˁ́́΁ځہ܁݁ށ
OPQRSTUVWX`abc
defghijklmnopqrstuvwxy

ÂĂłƂǂȂɂʂ˂̂͂
ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~
ÃăŃƃǃȃɃʃ˃̃
΃σЃу҃ӃԃՃք@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`pqrstuvwxyz{|}~

@ABCDEFGHIJKLMNOPQRST
UVWXYZ[\]_`abcdefghijklmnopqrstu
~߁燓ہڇ恿

ÈĈňƈǈȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

É
ŉƉǉȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÊĊŊƊǊ
Ɋʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ËċŋƋǋȋɋʋˋ
͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÌČŌƌǌȌɌʌˌ̌͌Όό
ьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍ
Ս֍׍؍ٍڍۍ܍ݍލߍ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎
َڎێ܎ݎގߎ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ
ݏޏߏ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~


ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

Ñ
őƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÒĒŒƒǒ
ɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ÓēœƓǓȓɓʓ˓
͓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÔĔŔƔǔȔɔʔ˔͔̔Δϔ
єҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕ
Օ֕וٕؕڕەܕݕޕߕ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖ז
ٖږۖܖݖޖߖ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗ
ݗޗߗ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqr
ØĘŘƘǘȘɘʘ
̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~

ÙęřƙǙșəʙ˙̙͙Ι
Йљҙәԙՙ֙יؙٙڙۙܙݙޙߙ
@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~

ÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚ
Ԛ՚֚ךؚٚښۚܚݚޚߚ
@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~

ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛
؛ٛڛۛܛݛޛߛ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~

ÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜ
ܜݜޜߜ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~


ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝ
@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~


ĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ
@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~

ßğşƟ
ȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ
@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~



@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~



@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~



@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



TUVWXYZ[\]
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~


@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~




 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

߁@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~

ȁɁʁˁ́́΁ځہ܁݁ށ
OPQRSTUVWX`abc
defghijklmnopqrstuvwxy

ÂĂłƂǂȂɂʂ˂̂͂
ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
]^_`abcdefghijklmnopqrstuvwxyz{|
}~
ÃăŃƃǃȃɃʃ˃̃
΃σЃу҃ӃԃՃք@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`pqrstuvwxyz{|}~

@ABCDEFGHIJKLMNOPQRST
UVWXYZ[\]_`abcdefghijklmnopqrstu
~߁燓ہڇ恿

ÈĈňƈǈȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈وڈۈ܈݈ވ߈
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

É
ŉƉǉȉɉʉˉ͉̉ΉωЉщ҉ӉԉՉ։׉؉ىډۉ܉݉މ߉
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÊĊŊƊǊ
Ɋʊˊ̊͊ΊϊЊъҊӊԊՊ֊׊؊يڊۊ܊݊ފߊ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ËċŋƋǋȋɋʋˋ
͋΋ϋЋыҋӋԋՋ֋׋؋ًڋۋ܋݋ދߋ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÌČŌƌǌȌɌʌˌ̌͌Όό
ьҌӌԌՌ֌׌،ٌڌی܌݌ތߌ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÍčōƍǍȍɍʍˍ͍̍΍ύЍэҍӍ
Ս֍׍؍ٍڍۍ܍ݍލߍ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÎĎŎƎǎȎɎʎˎ͎̎ΎώЎюҎӎԎՎ֎׎
َڎێ܎ݎގߎ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏۏ
ݏޏߏ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~


ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐҐӐԐՐ֐אِؐڐېܐݐސߐ
@ABC
DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
defghijklmnopqrstuvwxyz{|}~

Ñ
őƑǑȑɑʑˑ̑͑ΑϑБёґӑԑՑ֑בّؑڑۑܑݑޑߑ
@ABCDEFG
HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
hijklmnopqrstuvwxyz{|}~

ÒĒŒƒǒ
ɒʒ˒̒͒ΒϒВђҒӒԒՒ֒גْؒڒےܒݒޒߒ
@ABCDEFGHIJK
LMNOPQRSTUVWXYZ[\]^_`abcdefghijk
lmnopqrstuvwxyz{|}~

ÓēœƓǓȓɓʓ˓
͓ΓϓГѓғӓԓՓ֓דؓٓړۓܓݓޓߓ
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_`abcdefghijklmno
pqrstuvwxyz{|}~

ÔĔŔƔǔȔɔʔ˔͔̔Δϔ
єҔӔԔՔ֔הؔٔڔ۔ܔݔޔߔ
@ABCDEFGHIJKLMNOPQRS
TUVWXYZ[\]^_`abcdefghijklmnopqrs
tuvwxyz{|}~

ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕ
Օ֕וٕؕڕەܕݕޕߕ
@ABCDEFGHIJKLMNOPQRSTUVW
XYZ[\]^_`abcdefghijklmnopqrstuvw
xyz{|}~

ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖіҖӖԖՖ֖ז
ٖږۖܖݖޖߖ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\]^_`abcdefghijklmnopqrstuvwxyz{
|}~

×ėŗƗǗȗɗʗ˗̗͗ΗϗЗїҗӗԗ՗֗חؗٗڗۗ
ݗޗߗ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqr
ØĘŘƘǘȘɘʘ
̘͘ΘϘИјҘӘԘ՘֘טؘ٘ژۘܘݘޘߘ
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~

ÙęřƙǙșəʙ˙̙͙Ι
Йљҙәԙՙ֙יؙٙڙۙܙݙޙߙ
@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~

ÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњҚ
Ԛ՚֚ךؚٚښۚܚݚޚߚ
@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~

ÛěśƛǛțɛʛ˛̛͛ΛϛЛћқӛԛ՛֛
؛ٛڛۛܛݛޛߛ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~

ÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜ל؜ٜڜ
ܜݜޜߜ
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~


ÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝҝӝԝ՝֝ם؝ٝڝ۝ܝݝޝ
@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~


ĞŞƞǞȞɞʞ˞̞͞ΞϞОўҞӞԞ՞֞מ؞ٞڞ۞ܞݞޞߞ
@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~

ßğşƟ
ȟɟʟ˟̟͟ΟϟПџҟӟԟ՟֟ן؟ٟڟ۟ܟݟޟߟ
@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUV
WXYZ[\]^_`abcdefghijklmnopqrstuv
wxyz{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`abcdefghijklmnopqrstuvwxyz
{|}~



@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^
_`abcdefghijklmnopqrstuvwxyz{|}~



@AB
CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
cdefghijklmnopqrstuvwxyz{|}~



@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
ghijklmnopqrstuvwxyz{|}~



@ABCDEFGHIJ
KLMNOPQRSTUVWXYZ[\]^_`abcdefghij
klmnopqrstuvwxyz{|}~



@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~
@ABCDEFGHIJKLMN
OPQRSTUVWXYZ[\]^_`abcdefghijklmn
opqrstuvwxyz{|}~



@ABCDEFGHIJKLMNOPQR
STUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz{|}~





======== #11 ========

str .. first line
second line
third line
fourth line
fifth line

str.eachline():list .. ['first line\n', 'second line\n', 'third line\n', 'fourth line\n', 'fifth line\n']
str.eachline(2):list .. ['first line\n', 'second line\n']
str.eachline():list:chop .. ['first line', 'second line', 'third line', 'fourth line', 'fifth line']
str.eachline(2):list:chop .. ['first line', 'second line']
str .. first line
second line
third line
fourth line
fifth line

str.eachline():list .. ['first line\r\n', 'second line\r\n', 'third line\r\n', 'fourth line\r\n', 'fifth line\r\n']
str.eachline(2):list .. ['first line\r\n', 'second line\r\n']
str.eachline():list:chop .. ['first line', 'second line', 'third line', 'fourth line', 'fifth line']
str.eachline(2):list:chop .. ['first line', 'second line']

======== #12 chr() and ord() ========

chr(0x00 .. 0xff):list .. ['', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\a', '\b', '\t', '\n', '\v', '\f', '\r', '\x0e', '\x0f', '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17', '\x18', '\x19', '\x1a', '\x1b', '\x1c', '\x1d', '\x1e', '\x1f', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\x7f', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'N', '', '', '', '', '', '', '', '', '}', '', '', 'L', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '~', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
ord(chr(0x00 .. 0xff)):list .. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255]
chr(ord(''.split())):list .. ['', '', '', '', '']

======== #13 ========

str .. 
str.len() .. 5
str.left(0) .. 
str.left(1) .. 
str.left(2) .. 
str.left(3) .. 
str.left(4) .. 
str.left(5) .. 
str.left(6) .. 
str.left(10) .. 
str.right(0) .. 
str.right(1) .. 
str.right(2) .. 
str.right(3) .. 
str.right(4) .. 
str.right(5) .. 
str.right(6) .. 
str.right(10) .. 
str.mid(2, 1) .. 
str.mid(2, 2) .. 
str.mid(2, 3) .. 
str.mid(2, 4) .. 
str.mid(1, 4) .. 
str.mid(1, 10) .. 
str.mid(pos => 1, len => 2) .. 
str.mid(len => 2, pos => 1) .. 
str.mid(len => 2) .. 
str.mid(0) .. 
str.mid(1) .. 
str.mid(3) .. 
str.mid(-6) .. 
str.mid(-5) .. 
str.mid(-4) .. 
str.mid(-3) .. 
str.mid(-2) .. 
str.mid(-1) .. 
str.startswith('') .. true
str.startswith('') .. false
str.endswith('') .. true
str.endswith('') .. false
str.startswith('', 2) .. true
str.endswith('', 4) .. true
str.startswith(''):rest .. 
str.startswith(''):rest .. nil
str.endswith(''):rest .. 
str.endswith(''):rest .. nil
str.startswith('', 2):rest .. 
str.endswith('', 4):rest .. 

======== #14 ========

str .. abcdefghijklmn
str.startswith('abcd') .. true
str.startswith('abdd') .. false
str.startswith('ABCD') .. false
str.startswith('ABCD'):icase .. true
str.endswith('klmn') .. true
str.endswith('klmm') .. false
str.endswith('KLMN') .. false
str.endswith('KLMN'):icase .. true
str.startswith('defg', 3) .. true
str.endswith('ghij', 10) .. true
str.startswith('abcd'):rest .. efghijklmn
str.startswith('abdd'):rest .. nil
str.startswith('ABCD'):rest .. nil
str.startswith('ABCD'):rest:icase .. efghijklmn
str.endswith('klmn'):rest .. abcdefghij
str.endswith('klmm'):rest .. nil
str.endswith('KLMN'):rest .. nil
str.endswith('KLMN'):rest:icase .. abcdefghij
str.startswith('defg', 3):rest .. hijklmn
str.endswith('ghij', 10):rest .. abcdef

======== #15 ========

'apple[sep]orange[sep]pear[sep]orange[sep]banana'.split('[sep]'):list .. ['apple', 'orange', 'pear', 'orange', 'banana']
'apple|orange|pear|orange|banana'.split('|'):list .. ['apple', 'orange', 'pear', 'orange', 'banana']
'|apple|orange||pear|orange|banana|'.split('|'):list .. ['', 'apple', 'orange', '', 'pear', 'orange', 'banana', '']
''.split('|'):list .. ['']
['apple', 'orange', 'pear', 'orange', 'banana'].join(';') .. apple;orange;pear;orange;banana

======== #16 ========

{SJISeXg
\Ȃ .. contains 0x5c (\)
|\E .. contains 0x5c (\)
|\E
this is the first line
2nd line
3rd line
4th line
5th line
6th line
this is the first line
2nd line
3rd line
4th line
5th line
6th line
raw mode \n \t \r \\ \'
raw mode \n \t \r \\ \'
raw mode \n \t \r \\ \'
raw mode \n \t \r \\ \'
regular expression: (\w+)\((\w+)(\w+)\)
string concatenation test:  1st 2dn 3rd 4th 5th 6th 7th 8th

======== #17 ========

{SJISeXg
\Ȃ .. contains 0x5c (\)
|\E .. contains 0x5c (\)
|\E
this is the first line
2nd line
3rd line
4th line
5th line
6th line
this is the first line
2nd line
3rd line
4th line
5th line
6th line
raw mode \n \t \r \\ \'
raw mode \n \t \r \\ \'
raw mode \n \t \r \\ \'
raw mode \n \t \r \\ \'
regular expression: (\w+)\((\w+)(\w+)\)
string concatenation test:  1st 2dn 3rd 4th 5th 6th 7th 8th

======== #18 ========

math.sqrt * 2 .. 1.41421
(math.sin * math.pi).roundoff() .. 0
math.cos * math.pi .. -1
'hello world hello hello'.find('llo') .. 2
'hello world hello hello'.find('llo'):rev .. 20
'hello world hello hello'.find('llo'):list .. [2, 14, 20]
'hello world hello hello'.find('Llo') .. nil
'hello world hello hello'.find('Llo'):rev .. nil
'hello world hello hello'.find('Llo'):list .. []
'hello world hello hello'.find('Llo'):icase .. 2
'hello world hello hello'.find('Llo'):rev:icase .. 20
'hello world hello hello'.find('Llo'):list:icase .. [2, 14, 20]

======== #19 ========

str .. hello world
str.left(nil) .. hello world
str.left(5) .. hello
str.right(nil) .. hello world
str.right(5) .. world
str.mid(nil, nil) .. hello world
str.mid(2, nil) .. llo world
str.mid(nil, 5) .. hello
str.mid(2, 3) .. llo
str.replace('ll', 'LL') .. heLLo world
str.replace('o', '[O]') .. hell[O] w[O]rld
str.replace('o', '[O]', 0) .. hello world
str.replace('o', '[O]', 1) .. hell[O] world
str.replace('', '*') .. *h*e*l*l*o* *w*o*r*l*d*
str.replace('', '*', 0) .. hello world
str.replace('', '*', 3) .. *h*e*llo world

======== #20 ========

1 2 3 4 5
3 4 2 1 nil
2 3 4 nil nil
1 1 nil nil nil
1 nil nil nil nil

======== #21 ========

str.fold(6):list .. ['ABCDEF', 'GHIJKL', 'MNOPQR', 'STUVWX', 'YZ']
str.fold(6, 3):list .. ['ABCDEF', 'DEFGHI', 'GHIJKL', 'JKLMNO', 'MNOPQR', 'PQRSTU', 'STUVWX', 'VWXYZ', 'YZ']
str.fold(3, 6):list .. ['ABC', 'GHI', 'MNO', 'STU', 'YZ']
str.fold(6):list:neat .. ['ABCDEF', 'GHIJKL', 'MNOPQR', 'STUVWX']
str.fold(6, 3):list:neat .. ['ABCDEF', 'DEFGHI', 'GHIJKL', 'JKLMNO', 'MNOPQR', 'PQRSTU', 'STUVWX']
str.fold(3, 6):list:neat .. ['ABC', 'GHI', 'MNO', 'STU']

======== #22 ========

hello world #1
hello world #1
hello world #1
hello world #2
hello world #2
hello world #2
hello world #3
hello world #3
hello world #3
hello world #4
hello world #4
hello world #4
hello world #5
hello world #5
hello world #5
hello world #6
hello world #6
hello world #6
  hello world #7
  hello world #7
  hello world #7
  hello world #8
  hello world #8
  hello world #8
  hello world #9
  hello world #9
  hello world #9

======== #23 ========

str.capitalize() .. Hello, WORLD
str.upper() .. HELLO, WORLD
str.lower() .. hello, world

======== #24 ========

'hello world'$ .. hello world
'hello world'$ .. HELLO WORLD

======== #25 string#align() with Japanese ========


str.align(16):center ..       
str.align(16):left ..       
str.align(16):right ..       
str.align(16, '*'):center .. ******
str.align(16, '*'):left .. ******
str.align(16, '*'):right .. ******
str.align(15):center ..      
str.align(15):left ..      
str.align(15):right ..      
str.align(15, '*'):center .. *****
str.align(15, '*'):left .. *****
str.align(15, '*'):right .. *****

======== #26 string#width() ========

'ABCDEFGHIJ'.len() .. 10
'ABCDEFGHIJ'.width() .. 10
''.len() .. 5
''.width() .. 10
'2014N'.len() .. 7
'2014N'.width() .. 10
'p Sp󔒁@'.len() .. 10
'p Sp󔒁@'.width() .. 19

======== #27 concatenation ========

abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

======== #28 string#foldw() ========

str.foldw(1):list .. ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
str.foldw(2):list .. ['AB', 'CD', 'EF', 'GH', 'IJ', 'KL', 'MN', 'OP', 'QR', 'ST', 'UV', 'WX', 'YZ']
str.foldw(3):list .. ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQR', 'STU', 'VWX', 'YZ']
str.foldw(6):list .. ['ABCDEF', 'GHIJKL', 'MNOPQR', 'STUVWX', 'YZ']
str.foldw(7):list .. ['ABCDEFG', 'HIJKLMN', 'OPQRSTU', 'VWXYZ']
str.foldw(1):list:padding .. ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
str.foldw(2):list:padding .. ['AB', 'CD', 'EF', 'GH', 'IJ', 'KL', 'MN', 'OP', 'QR', 'ST', 'UV', 'WX', 'YZ']
str.foldw(3):list:padding .. ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQR', 'STU', 'VWX', 'YZ']
str.foldw(6):list:padding .. ['ABCDEF', 'GHIJKL', 'MNOPQR', 'STUVWX', 'YZ']
str.foldw(7):list:padding .. ['ABCDEFG', 'HIJKLMN', 'OPQRSTU', 'VWXYZ']
str.foldw(1):list .. ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
str.foldw(2):list .. ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
str.foldw(3):list .. ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
str.foldw(6):list .. ['', '', '', '', '', '', 'Ă']
str.foldw(7):list .. ['', '', '', '', '', '', 'Ă']
str.foldw(1):list:padding .. [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
str.foldw(2):list:padding .. ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
str.foldw(3):list:padding .. [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '']
str.foldw(6):list:padding .. ['', '', '', '', '', '', 'Ă']
str.foldw(7):list:padding .. [' ', ' ', ' ', ' ', ' ', ' ', 'Ă']
str.foldw(3):list .. ['', '2', '014', 'N']
str.foldw(3):list:padding .. [' ', '2', '014', 'N']

======== #29 string#replaces() ========

str.replaces([]) .. A brown fox jumps over the lazy dog.
str.replaces(['brown', 'red']) .. A red fox jumps over the lazy dog.
str.replaces(['.', '!!!']) .. A brown fox jumps over the lazy dog!!!
str.replaces(['fox', 'FOX', 'dog', 'DOG']) .. A brown FOX jumps over the lazy DOG.
str.replaces(['fox', 'dog', 'dog', 'fox']) .. A brown dog jumps over the lazy fox.
str.replaces(['fox', 'f-o-x', 'dog', 'd-o-g']) .. A brown f-o-x jumps over the lazy d-o-g.
str.replaces(['FOX', 'f-o-x', 'DOG', 'd-o-g']) .. A brown fox jumps over the lazy dog.
str.replaces(['FOX', 'f-o-x', 'DOG', 'd-o-g']):icase .. A brown f-o-x jumps over the lazy d-o-g.
str.replaces(['fox', 'FOX', 'dog', 'DOG'], 0) .. A brown fox jumps over the lazy dog.
str.replaces(['fox', 'FOX', 'dog', 'DOG'], 1) .. A brown FOX jumps over the lazy dog.
str.replaces(['fox', 'FOX', 'dog', 'DOG'], 2) .. A brown FOX jumps over the lazy DOG.

======== #30 Unicode point ========


======== #31 isalnum, isalpha, isdigit, isspace ========

0123456789 .. isalnum:true isalpha:false isdigit:true isspace:false
abcdefghijklmnopqrstuvwxyz .. isalnum:true isalpha:true isdigit:false isspace:false
0123456789abcdefghijklmnopqrstuvwxyz .. isalnum:true isalpha:false isdigit:false isspace:false
 	
 .. isalnum:false isalpha:false isdigit:false isspace:true
this is a test .. isalnum:false isalpha:false isdigit:false isspace:false
01 7f                                            ..
c2 80 df bf                                      ....
e0 a0 80 ef bf bf                                ......
f0 90 80 80 f7 bf bf bf                          ........
f8 88 80 80 80 fb bf bf bf bf                    ..........
fc 84 80 80 80 80 fd bf bf bf bf bf              ............
