From c02f750267f8e6c11d14a3065f6b2147e69bfb50 Mon Sep 17 00:00:00 2001 From: epriestley Date: Sun, 13 Sep 2015 12:27:23 -0700 Subject: [PATCH 01/12] Remove dot/Graphviz Remarkup rule Summary: Ref T9408. This rule is unsafe in principle, and a practical vulnerability has been found by a security researcher. Test Plan: `grep` Reviewers: chad Reviewed By: chad Maniphest Tasks: T9408 Differential Revision: https://secure.phabricator.com/D14103 --- src/__phutil_library_map__.php | 2 - ...icatorRemarkupGraphvizBlockInterpreter.php | 65 ------------------- 2 files changed, 67 deletions(-) delete mode 100644 src/infrastructure/markup/interpreter/PhabricatorRemarkupGraphvizBlockInterpreter.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index c9db433f4b..039e0e0cfe 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -2694,7 +2694,6 @@ phutil_register_library_map(array( 'PhabricatorRemarkupCustomBlockRule' => 'infrastructure/markup/rule/PhabricatorRemarkupCustomBlockRule.php', 'PhabricatorRemarkupCustomInlineRule' => 'infrastructure/markup/rule/PhabricatorRemarkupCustomInlineRule.php', 'PhabricatorRemarkupFigletBlockInterpreter' => 'infrastructure/markup/interpreter/PhabricatorRemarkupFigletBlockInterpreter.php', - 'PhabricatorRemarkupGraphvizBlockInterpreter' => 'infrastructure/markup/interpreter/PhabricatorRemarkupGraphvizBlockInterpreter.php', 'PhabricatorRemarkupUIExample' => 'applications/uiexample/examples/PhabricatorRemarkupUIExample.php', 'PhabricatorRepositoriesSetupCheck' => 'applications/config/check/PhabricatorRepositoriesSetupCheck.php', 'PhabricatorRepository' => 'applications/repository/storage/PhabricatorRepository.php', @@ -6749,7 +6748,6 @@ phutil_register_library_map(array( 'PhabricatorRemarkupCustomBlockRule' => 'PhutilRemarkupBlockRule', 'PhabricatorRemarkupCustomInlineRule' => 'PhutilRemarkupRule', 'PhabricatorRemarkupFigletBlockInterpreter' => 'PhutilRemarkupBlockInterpreter', - 'PhabricatorRemarkupGraphvizBlockInterpreter' => 'PhutilRemarkupBlockInterpreter', 'PhabricatorRemarkupUIExample' => 'PhabricatorUIExample', 'PhabricatorRepositoriesSetupCheck' => 'PhabricatorSetupCheck', 'PhabricatorRepository' => array( diff --git a/src/infrastructure/markup/interpreter/PhabricatorRemarkupGraphvizBlockInterpreter.php b/src/infrastructure/markup/interpreter/PhabricatorRemarkupGraphvizBlockInterpreter.php deleted file mode 100644 index 5ccf4fb7a9..0000000000 --- a/src/infrastructure/markup/interpreter/PhabricatorRemarkupGraphvizBlockInterpreter.php +++ /dev/null @@ -1,65 +0,0 @@ -markupError( - pht( - 'Unable to locate the `%s` binary. Install Graphviz.', - 'dot')); - } - - $width = $this->parseDimension(idx($argv, 'width')); - - $future = id(new ExecFuture('dot -T%s', 'png')) - ->setTimeout(15) - ->write(trim($content)); - - list($err, $stdout, $stderr) = $future->resolve(); - - if ($err) { - return $this->markupError( - pht( - 'Execution of `%s` failed (#%d), check your syntax: %s', - 'dot', - $err, - $stderr)); - } - - $file = PhabricatorFile::buildFromFileDataOrHash( - $stdout, - array( - 'name' => 'graphviz.png', - )); - - if ($this->getEngine()->isTextMode()) { - return '<'.$file->getBestURI().'>'; - } - - $img = phutil_tag( - 'img', - array( - 'src' => $file->getBestURI(), - 'width' => nonempty($width, null), - )); - return phutil_tag_div('phabricator-remarkup-embed-image-full', $img); - } - - // TODO: This is duplicated from PhabricatorEmbedFileRemarkupRule since they - // do not share a base class. - private function parseDimension($string) { - $string = trim($string); - - if (preg_match('/^(?:\d*\\.)?\d+%?$/', $string)) { - return $string; - } - - return null; - } -} From c705c8011e964945a6f73ae78087e188de0bd71f Mon Sep 17 00:00:00 2001 From: epriestley Date: Sun, 13 Sep 2015 12:27:30 -0700 Subject: [PATCH 02/12] Use PHP implementation of Cowsay for cowsay rule Summary: Ref T7785. Convert the Cowsay Remarkup rule to use a PHP implementation so we don't have to execute an external `cowsay` binary. I removed some of the default ".cow" files that come with Cowsay because they: - include Perl code which we can not interpret; or - are primarily in-jokes or standalone visual puns or artwork rather than usable actors on the grand stage of cowsay; or - offended my delicate sensibilities. Users can add new cows to `resources/cows/custom/` if they want to make new cows available. I have included a majestic original artwork depicting the "Companion Cube" character from //Portal//. Test Plan: {F802535} Reviewers: chad Reviewed By: chad Maniphest Tasks: T9408, T7785 Differential Revision: https://secure.phabricator.com/D14100 --- externals/cowsay/ChangeLog | 31 +++ externals/cowsay/INSTALL | 15 ++ externals/cowsay/LICENSE | 36 ++++ externals/cowsay/MANIFEST | 11 ++ externals/cowsay/README | 38 ++++ externals/cowsay/Wrap.pm.diff | 47 +++++ externals/cowsay/cows/bunny.cow | 10 + externals/cowsay/cows/cower.cow | 14 ++ externals/cowsay/cows/daemon.cow | 24 +++ externals/cowsay/cows/default.cow | 7 + externals/cowsay/cows/dragon-and-cow.cow | 21 ++ externals/cowsay/cows/dragon.cow | 21 ++ externals/cowsay/cows/elephant.cow | 15 ++ externals/cowsay/cows/eyes.cow | 16 ++ externals/cowsay/cows/flaming-sheep.cow | 15 ++ externals/cowsay/cows/head-in.cow | 12 ++ externals/cowsay/cows/kitty.cow | 12 ++ externals/cowsay/cows/koala.cow | 12 ++ externals/cowsay/cows/meow.cow | 15 ++ externals/cowsay/cows/moofasa.cow | 14 ++ externals/cowsay/cows/moose.cow | 9 + externals/cowsay/cows/mutilated.cow | 10 + externals/cowsay/cows/satanic.cow | 12 ++ externals/cowsay/cows/sheep.cow | 13 ++ externals/cowsay/cows/skeleton.cow | 15 ++ externals/cowsay/cows/small.cow | 10 + externals/cowsay/cows/squirrel.cow | 13 ++ externals/cowsay/cows/stegosaurus.cow | 19 ++ externals/cowsay/cows/supermilker.cow | 10 + externals/cowsay/cows/surgery.cow | 24 +++ externals/cowsay/cows/turkey.cow | 26 +++ externals/cowsay/cows/turtle.cow | 20 ++ externals/cowsay/cows/tux.cow | 16 ++ externals/cowsay/cows/www.cow | 10 + externals/cowsay/cowsay | 187 ++++++++++++++++++ externals/cowsay/cowsay.1 | 168 ++++++++++++++++ externals/cowsay/install.sh | 92 +++++++++ externals/cowsay/pgp_public_key.txt | 14 ++ resources/cows/builtin/companion.cow | 9 + resources/cows/custom/README | 2 + ...bricatorRemarkupCowsayBlockInterpreter.php | 72 ++++--- 41 files changed, 1105 insertions(+), 32 deletions(-) create mode 100644 externals/cowsay/ChangeLog create mode 100644 externals/cowsay/INSTALL create mode 100644 externals/cowsay/LICENSE create mode 100644 externals/cowsay/MANIFEST create mode 100644 externals/cowsay/README create mode 100644 externals/cowsay/Wrap.pm.diff create mode 100644 externals/cowsay/cows/bunny.cow create mode 100644 externals/cowsay/cows/cower.cow create mode 100644 externals/cowsay/cows/daemon.cow create mode 100644 externals/cowsay/cows/default.cow create mode 100644 externals/cowsay/cows/dragon-and-cow.cow create mode 100644 externals/cowsay/cows/dragon.cow create mode 100644 externals/cowsay/cows/elephant.cow create mode 100644 externals/cowsay/cows/eyes.cow create mode 100644 externals/cowsay/cows/flaming-sheep.cow create mode 100644 externals/cowsay/cows/head-in.cow create mode 100644 externals/cowsay/cows/kitty.cow create mode 100644 externals/cowsay/cows/koala.cow create mode 100644 externals/cowsay/cows/meow.cow create mode 100644 externals/cowsay/cows/moofasa.cow create mode 100644 externals/cowsay/cows/moose.cow create mode 100644 externals/cowsay/cows/mutilated.cow create mode 100644 externals/cowsay/cows/satanic.cow create mode 100644 externals/cowsay/cows/sheep.cow create mode 100644 externals/cowsay/cows/skeleton.cow create mode 100644 externals/cowsay/cows/small.cow create mode 100644 externals/cowsay/cows/squirrel.cow create mode 100644 externals/cowsay/cows/stegosaurus.cow create mode 100644 externals/cowsay/cows/supermilker.cow create mode 100644 externals/cowsay/cows/surgery.cow create mode 100644 externals/cowsay/cows/turkey.cow create mode 100644 externals/cowsay/cows/turtle.cow create mode 100644 externals/cowsay/cows/tux.cow create mode 100644 externals/cowsay/cows/www.cow create mode 100755 externals/cowsay/cowsay create mode 100644 externals/cowsay/cowsay.1 create mode 100755 externals/cowsay/install.sh create mode 100644 externals/cowsay/pgp_public_key.txt create mode 100644 resources/cows/builtin/companion.cow create mode 100644 resources/cows/custom/README diff --git a/externals/cowsay/ChangeLog b/externals/cowsay/ChangeLog new file mode 100644 index 0000000000..b28ef91b85 --- /dev/null +++ b/externals/cowsay/ChangeLog @@ -0,0 +1,31 @@ +3.03 28 May 1999 + - Added cows/tux.cow, as suggested by xmanoel@i.am + - Compatibility with 5.6.0, due to a change in qw(). + - Renamed devil.cow to daemon.cow, since I know better. :-) + +3.02 04 November 1999 + - Fixed boneheaded code placement so that cowsay -l actually works. + +3.01 01 November 1999 + - Fixed compatibility issues between the Text::Wrap module + that changed between 5.005_02 and 5.005_03. + - Fixed tab expansion issues with Text::Tabs. + +3.0 13 April 1999, released 14 August 1999 + - Rewritten into Perl 5 and presented to the world. + +-- Not present in CVS from here on down -- + +2.x Date? + - Arbitrary messages. + - Figlet support (-n). + - Line wrap length (-w). + - Multiple pre-set expressions. + - Better arg parsing loop. + - Message from stdin or command line. + +1.0 Date? + - SUBJECT is VERB OBJECT + +$Id: ChangeLog,v 1.4 2000/05/29 17:55:24 tony Exp $ +This file is part of cowsay. (c) 1999-2000 Tony Monroe. diff --git a/externals/cowsay/INSTALL b/externals/cowsay/INSTALL new file mode 100644 index 0000000000..d3844ca565 --- /dev/null +++ b/externals/cowsay/INSTALL @@ -0,0 +1,15 @@ +================= +Installing cowsay +================= + +If you really want to get things installed a nice and pretty way, + + sh install.sh + +It will ask approximately one question. If you can't answer it, +you need serious help. + +If the install goes well, you can start cowing immediately! Just +be sure to read the manual page first... + +$Id: INSTALL,v 1.1 1999/08/14 08:03:17 tony Exp $ diff --git a/externals/cowsay/LICENSE b/externals/cowsay/LICENSE new file mode 100644 index 0000000000..944770492d --- /dev/null +++ b/externals/cowsay/LICENSE @@ -0,0 +1,36 @@ +============== +cowsay License +============== + +cowsay is distributed under the same licensing terms as Perl: the +Artistic License or the GNU General Public License. If you don't +want to track down these licenses and read them for yourself, use +the parts that I'd prefer: + +(0) I wrote it and you didn't. + +(1) Give credit where credit is due if you borrow the code for some +other purpose. + +(2) If you have any bugfixes or suggestions, please notify me so +that I may incorporate them. + +(3) If you try to make money off of cowsay, you suck. + +=============== +cowsay Legalese +=============== + +(0) Copyright (c) 1999 Tony Monroe. All rights reserved. All +lefts may or may not be reversed at my discretion. + +(1) This software package can be freely redistributed or modified +under the terms described above in the "cowsay License" section +of this file. + +(2) cowsay is provided "as is," with no warranties whatsoever, +expressed or implied. If you want some implied warranty about +merchantability and/or fitness for a particular purpose, you will +not find it here, because there is no such thing here. + +(3) I hate legalese. diff --git a/externals/cowsay/MANIFEST b/externals/cowsay/MANIFEST new file mode 100644 index 0000000000..a3ff805fed --- /dev/null +++ b/externals/cowsay/MANIFEST @@ -0,0 +1,11 @@ +ChangeLog Changes to recent versions. +INSTALL Instructions for installing cowsay. +LICENSE The license for use and redistribution of cowsay. +MANIFEST This file. +README Read this first. Really. +Wrap.pm.diff Diff for Text/Wrap.pm. +cows/* Support files used by cowsay. +cowsay Main cowsay executable. +cowsay.1 Main cowsay manual page. +install.sh cowsay installation script. +pgp_public_key.txt Verify the signature file with this key. diff --git a/externals/cowsay/README b/externals/cowsay/README new file mode 100644 index 0000000000..b5de08c405 --- /dev/null +++ b/externals/cowsay/README @@ -0,0 +1,38 @@ +=========== +cowsay 3.03 +=========== + +cowsay is a configurable talking cow, written in Perl. It operates +much as the figlet program does, and it written in the same spirit +of silliness. + +cowsay is actually a pretty old program. It has not really been +released before, and I am releasing it in the hope that someone +other than myself will be amused by it. + +The first major version of cowsay had one cow and one message +template: $foo is $verb $bar. Not very flexible, but people managed +to do pretty interesting things with it. The second major version +scrapped many of the limitations of the first, by allowing arbitrary +messages, multiple cowfiles, and even support for cows talking in +figlet. The third version was a rewrite of the second into Perl +5, whereupon the code got a lot smaller and more manageable. :-) + +If you are using Perl 5.004, you may have problems with Text::Wrap. +(Yeesh, this module changes more than it should...) I've included +a diff for the Text::Wrap (version 97.011701) that is shipped with +5.004_04; the concept is simple enough that even older Perls can +take advantage of this silly little patch; if there is a "sub fill" +in the documentation for the module, copy it to a more useful +section of that file. If not, just take "sub fill" wholesale from +the patch. Oh, and consider upgrading to 5.005_03 or later. +Please. You'll like it, I promise. + +To install cowsay, consult the INSTALL file in this directory. + +For the terms and conditions of use, consult the LICENSE file in +this directory. + +-- Tony Monroe (tony@nog.net) + +$Id: README,v 1.3 2000/05/28 06:24:46 tony Exp $ diff --git a/externals/cowsay/Wrap.pm.diff b/externals/cowsay/Wrap.pm.diff new file mode 100644 index 0000000000..1da064079e --- /dev/null +++ b/externals/cowsay/Wrap.pm.diff @@ -0,0 +1,47 @@ +*** Wrap.pm.in Thu May 22 00:21:42 1997 +--- Wrap.pm Fri Nov 12 10:00:15 1999 +*************** +*** 3,9 **** + require Exporter; + + @ISA = (Exporter); +! @EXPORT = qw(wrap); + @EXPORT_OK = qw($columns); + + $VERSION = 97.011701; +--- 3,9 ---- + require Exporter; + + @ISA = (Exporter); +! @EXPORT = qw(wrap fill); + @EXPORT_OK = qw($columns); + + $VERSION = 97.011701; +*************** +*** 66,71 **** +--- 66,90 ---- + + print "-----------$r---------\n" if $debug;; + return $r; ++ } ++ ++ ## Copied up from below. ++ sub fill ++ { ++ my ($ip, $xp, @raw) = @_; ++ my @para; ++ my $pp; ++ ++ for $pp (split(/\n\s+/, join("\n",@raw))) { ++ $pp =~ s/\s+/ /g; ++ my $x = wrap($ip, $xp, $pp); ++ push(@para, $x); ++ } ++ ++ # if paragraph_indent is the same as line_indent, ++ # separate paragraphs with blank lines ++ ++ return join ($ip eq $xp ? "\n\n" : "\n", @para); + } + + 1; diff --git a/externals/cowsay/cows/bunny.cow b/externals/cowsay/cows/bunny.cow new file mode 100644 index 0000000000..869933f72a --- /dev/null +++ b/externals/cowsay/cows/bunny.cow @@ -0,0 +1,10 @@ +## +## A cute little wabbit +## +$the_cow = <> 5.4 +## +$the_cow = < \\ _ -~ `. ^-` ^-_ + ///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~ + /.-~ +EOC diff --git a/externals/cowsay/cows/elephant.cow b/externals/cowsay/cows/elephant.cow new file mode 100644 index 0000000000..959cd3f6dd --- /dev/null +++ b/externals/cowsay/cows/elephant.cow @@ -0,0 +1,15 @@ +## +## An elephant out and about +## +$the_cow = < < > .---. + $thoughts | \\ \\ - ~ ~ - / / | + _____ ..-~ ~-..-~ + | | \\~~~\\.' `./~~~/ + --------- \\__/ \\__/ + .' O \\ / / \\ " + (_____, `._.' | } \\/~~~/ + `----. / } | / \\__/ + `-. | / | / `. ,~~| + ~-.__| /_ - ~ ^| /- _ `..-' + | / | / ~-. `-. _ _ _ + |_____| |_____| ~ - . _ _ _ _ _> +EOC diff --git a/externals/cowsay/cows/supermilker.cow b/externals/cowsay/cows/supermilker.cow new file mode 100644 index 0000000000..1424f9e668 --- /dev/null +++ b/externals/cowsay/cows/supermilker.cow @@ -0,0 +1,10 @@ +## +## A cow being milked, probably from Lars Smith (lars@csua.berkeley.edu) +## +$the_cow = <____) >___ ^\\_\\_\\_\\_\\_\\_\\) + ^^^//\\\\_^^//\\\\_^ ^(\\_\\_\\_\\) + ^^^ ^^ ^^^ ^ +EOC diff --git a/externals/cowsay/cows/turtle.cow b/externals/cowsay/cows/turtle.cow new file mode 100644 index 0000000000..4286b0948a --- /dev/null +++ b/externals/cowsay/cows/turtle.cow @@ -0,0 +1,20 @@ +## +## A mysterious turtle... +## +$the_cow = < 'oo', + 'f' => 'default.cow', + 'n' => 0, + 'T' => ' ', + 'W' => 40, +); + +getopts('bde:f:ghlLnNpstT:wW:y', \%opts); + +&display_usage if $opts{'h'}; +&list_cowfiles if $opts{'l'}; + +$borg = $opts{'b'}; +$dead = $opts{'d'}; +$greedy = $opts{'g'}; +$paranoid = $opts{'p'}; +$stoned = $opts{'s'}; +$tired = $opts{'t'}; +$wired = $opts{'w'}; +$young = $opts{'y'}; +$eyes = substr($opts{'e'}, 0, 2); +$tongue = substr($opts{'T'}, 0, 2); +$the_cow = ""; + +&slurp_input; +$Text::Wrap::columns = $opts{'W'}; +@message = ($opts{'n'} ? expand(@message) : + split("\n", fill("", "", @message))); +&construct_balloon; +&construct_face; +&get_cow; +print @balloon_lines; +print $the_cow; + +sub list_cowfiles { + my $basedir; + my @dirfiles; + chop($basedir = cwd); + for my $d (split(/$pathsep/, $cowpath)) { + print "Cow files in $d:\n"; + opendir(COWDIR, $d) || die "$0: Cannot open $d\n"; + for my $file (readdir COWDIR) { + if ($file =~ s/\.cow$//) { + push(@dirfiles, $file); + } + } + closedir(COWDIR); + print wrap("", "", sort @dirfiles), "\n"; + @dirfiles = (); + chdir($basedir); + } + exit(0); +} + +sub slurp_input { + unless ($ARGV[0]) { + chomp(@message = ); + } else { + &display_usage if $opts{'n'}; + @message = join(' ', @ARGV); + } +} + +sub maxlength { + my ($l, $m); + $m = -1; + for my $i (@_) { + $l = length $i; + $m = $l if ($l > $m); + } + return $m; +} + +sub construct_balloon { + my $max = &maxlength(@message); + my $max2 = $max + 2; ## border space fudge. + my $format = "%s %-${max}s %s\n"; + my @border; ## up-left, up-right, down-left, down-right, left, right + if ($0 =~ /think/i) { + $thoughts = 'o'; + @border = qw[ ( ) ( ) ( ) ]; + } elsif (@message < 2) { + $thoughts = '\\'; + @border = qw[ < > ]; + } else { + $thoughts = '\\'; + if ($V and $V gt v5.6.0) { # Thanks, perldelta. + @border = qw[ / \\ \\ / | | ]; + } else { + @border = qw[ / \ \ / | | ]; + } + } + push(@balloon_lines, + " " . ("_" x $max2) . " \n" , + sprintf($format, $border[0], $message[0], $border[1]), + (@message < 2 ? "" : + map { sprintf($format, $border[4], $_, $border[5]) } + @message[1 .. $#message - 1]), + (@message < 2 ? "" : + sprintf($format, $border[2], $message[$#message], $border[3])), + " " . ("-" x $max2) . " \n" + ); +} + +sub construct_face { + if ($borg) { $eyes = "=="; } + if ($dead) { $eyes = "xx"; $tongue = "U "; } + if ($greedy) { $eyes = "\$\$"; } + if ($paranoid) { $eyes = "@@"; } + if ($stoned) { $eyes = "**"; $tongue = "U "; } + if ($tired) { $eyes = "--"; } + if ($wired) { $eyes = "OO"; } + if ($young) { $eyes = ".."; } +} + +sub get_cow { +## +## Get a cow from the specified cowfile; otherwise use the default cow +## which was defined above in $the_cow. +## + my $f = $opts{'f'}; + my $full = ""; + if ($opts{'f'} =~ m,/,) { + $full = $opts{'f'}; + } else { + for my $d (split(/:/, $cowpath)) { + if (-f "$d/$f") { + $full = "$d/$f"; + last; + } elsif (-f "$d/$f.cow") { + $full = "$d/$f.cow"; + last; + } + } + if ($full eq "") { + die "$progname: Could not find $f cowfile!\n"; + } + } + do $full; + die "$progname: $@\n" if $@; +} + +sub display_usage { + die </dev/null 2>&1; then + echo Found a good perl in $perl + goodperls="$goodperls $perl" + fi +done +echo The following perl executables will run cowsay: +echo $goodperls +echo I recommend the latest stable perl you can find. +set $goodperls +if [ -z "$1" ]; then + echo Ack! You do not have Perl 5 installed correctly! + echo Get thee to CPAN! + exit 1 +fi +usethisperl=$1 +echo I will be using $1 because I know it will work. + +echo Now I need an installation prefix. I will use /usr/local unless +printf "you give me a better idea here: " +if [ -n "$backdoor" ]; then + prefix=$backdoor + printf "%s (specified on command line)\n" $prefix +else + read prefix +fi + +PREFIX=${prefix:-/usr/local} + +echo Okay, time to install this puppy. + +echo s,%BANGPERL%,!$usethisperl,\; > install.pl +echo s,%PREFIX%,$PREFIX,\; >> install.pl +set -x +mkdir -p $PREFIX/bin || (mkdir $PREFIX; mkdir $PREFIX/bin) +$usethisperl -p install.pl cowsay > $PREFIX/bin/cowsay +chmod a+x $PREFIX/bin/cowsay +ln -s cowsay $PREFIX/bin/cowthink +mkdir -p $PREFIX/man/man1 || ($mkdir $PREFIX; mkdir $PREFIX/man; mkdir $PREFIX/man/man1) +$usethisperl -p install.pl cowsay.1 > $PREFIX/man/man1/cowsay.1 +chmod a+r $PREFIX/man/man1/cowsay.1 +ln -s cowsay.1 $PREFIX/man/man1/cowthink.1 +mkdir -p $PREFIX/share/cows || (mkdir $PREFIX; mkdir $PREFIX/share; mkdir $PREFIX/share/cows) +tar -cf - $filelist | (cd $PREFIX/share && tar -xvf -) +set +x + +echo Okay, let us see if the install actually worked. + +if [ ! -f $PREFIX/share/cows/default.cow ]; then + echo The default cow file did not make it across! + echo Ooops, it failed...sorry! + exit 1 +fi + +echo Installation complete! Enjoy the cows! diff --git a/externals/cowsay/pgp_public_key.txt b/externals/cowsay/pgp_public_key.txt new file mode 100644 index 0000000000..135735e6f9 --- /dev/null +++ b/externals/cowsay/pgp_public_key.txt @@ -0,0 +1,14 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAzNS+H4AAAEEAMilCcxLMIqMNXhZoeHjbeJGnHoKP0JpKDejz66qBlDwP+du +FvVBHkyNIuU3orKe7l/aXIR8TcpjrxdcmrjjzwuB1aV48V4swT7v9UXvv9YP41Pd +1pXYXNelXHmE0eKSfcnkkFmYTJBXPaPNTJ3rpZpZOEW3SfgrrheqQm6w/6IJAAUR +tBpUb255IE1vbnJvZSA8dG9ueUBub2cubmV0PrQdVG9ueSBNb25yb2UgPHRtb25y +b2VAbm9nLm5ldD6JAJUDBRA2bDA5F6pCbrD/ogkBASOZA/9XtYSpcPjpi62MTEZl +l+wV1svtlUlPvKkDE7FB9bwnMbF1FgGhTe/H4/8qDu20m5eGxMX58Ri7HPXWjjJ/ +CrUWMzGVbg1JBkgh+d9QvEywmR0j4WezaifW1nCbxk0GrW1PjJyGb3kx7vrIF1Km +xt6VwxTgfJzjIioBJFb4EiDyaLQnVG9ueSBNb25yb2UgPHRtb25yb2VAQ1NVQS5C +ZXJrZWxleS5FRFU+ +=WpM4 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/resources/cows/builtin/companion.cow b/resources/cows/builtin/companion.cow new file mode 100644 index 0000000000..e3514cda6f --- /dev/null +++ b/resources/cows/builtin/companion.cow @@ -0,0 +1,9 @@ + $thoughts + $thoughts + /---\__/---\\ + | / .... \ || + \ ..--.. // + |..($eyes). || + / ..--.. \\ + | \ .... / || + \---/--\---// diff --git a/resources/cows/custom/README b/resources/cows/custom/README new file mode 100644 index 0000000000..d0c28b6a56 --- /dev/null +++ b/resources/cows/custom/README @@ -0,0 +1,2 @@ +You can add custom ".cow" files here to make them available to the "cowsay" +interpreter in Remarkup. diff --git a/src/infrastructure/markup/interpreter/PhabricatorRemarkupCowsayBlockInterpreter.php b/src/infrastructure/markup/interpreter/PhabricatorRemarkupCowsayBlockInterpreter.php index d1c4de1154..66801d9578 100644 --- a/src/infrastructure/markup/interpreter/PhabricatorRemarkupCowsayBlockInterpreter.php +++ b/src/infrastructure/markup/interpreter/PhabricatorRemarkupCowsayBlockInterpreter.php @@ -8,45 +8,28 @@ final class PhabricatorRemarkupCowsayBlockInterpreter } public function markupContent($content, array $argv) { - if (!Filesystem::binaryExists('cowsay')) { - return $this->markupError( - pht( - 'Unable to locate the `%s` binary. Install cowsay.', - 'cowsay')); - } - - $bin = idx($argv, 'think') ? 'cowthink' : 'cowsay'; + $action = idx($argv, 'think') ? 'think' : 'say'; $eyes = idx($argv, 'eyes', 'oo'); $tongue = idx($argv, 'tongue', ' '); - $cow = idx($argv, 'cow', 'default'); - // NOTE: Strip this aggressively to prevent nonsense like - // `cow=/etc/passwd`. We could build a whiltelist with `cowsay -l`. - $cow = preg_replace('/[^a-z.-]+/', '', $cow); + $map = self::getCowMap(); - $future = new ExecFuture( - '%s -e %s -T %s -f %s ', - $bin, - $eyes, - $tongue, - $cow); - - $future->setTimeout(15); - $future->write($content); - - list($err, $stdout, $stderr) = $future->resolve(); - - if ($err) { - return $this->markupError( - pht( - 'Execution of `%s` failed: %s', - 'cowsay', - $stderr)); + $cow = idx($argv, 'cow'); + $cow = phutil_utf8_strtolower($cow); + if (empty($map[$cow])) { + $cow = 'default'; } + $result = id(new PhutilCowsay()) + ->setTemplate($map[$cow]) + ->setAction($action) + ->setEyes($eyes) + ->setTongue($tongue) + ->setText($content) + ->renderCow(); if ($this->getEngine()->isTextMode()) { - return $stdout; + return $result; } return phutil_tag( @@ -54,7 +37,32 @@ final class PhabricatorRemarkupCowsayBlockInterpreter array( 'class' => 'PhabricatorMonospaced remarkup-cowsay', ), - $stdout); + $result); + } + + private static function getCowMap() { + $root = dirname(phutil_get_library_root('phabricator')); + + $directories = array( + $root.'/externals/cowsay/cows/', + $root.'/resources/cows/builtin/', + $root.'/resources/cows/custom/', + ); + + $map = array(); + foreach ($directories as $directory) { + foreach (Filesystem::listDirectory($directory, false) as $cow_file) { + $matches = null; + if (!preg_match('/^(.*)\.cow\z/', $cow_file, $matches)) { + continue; + } + $cow_name = $matches[1]; + $cow_name = phutil_utf8_strtolower($cow_name); + $map[$cow_name] = Filesystem::readFile($directory.$cow_file); + } + } + + return $map; } } From 935ced1eddbe7b706027ff42cfe67aec90e95859 Mon Sep 17 00:00:00 2001 From: epriestley Date: Sun, 13 Sep 2015 12:30:48 -0700 Subject: [PATCH 03/12] Include "Figlet" and PEAR "Text_Figlet" in externals Summary: Ref T7785. This prepares for (but does not yet use) a pure PHP implementation of Figlet parsing and rendering. Figlet is somewhat complex, but a parser already exists in PEAR. I'll make sure it's suitable and hook it up in the next diff. Test Plan: N/A, code not reachable Reviewers: chad Reviewed By: chad Maniphest Tasks: T9408, T7785 Differential Revision: https://secure.phabricator.com/D14101 --- externals/figlet/.gitignore | 8 + externals/figlet/CHANGES | 205 + externals/figlet/FAQ | 63 + externals/figlet/LICENSE | 30 + externals/figlet/Makefile | 122 + externals/figlet/Makefile.tc | 42 + externals/figlet/README | 242 ++ externals/figlet/chkfont.6 | 52 + externals/figlet/chkfont.c | 476 +++ externals/figlet/crc.c | 129 + externals/figlet/crc.h | 62 + externals/figlet/figfont.txt | 1695 ++++++++ externals/figlet/figlet.6 | 1102 +++++ externals/figlet/figlet.c | 2131 ++++++++++ externals/figlet/figlist | 64 + externals/figlet/figlist.6 | 52 + externals/figlet/figmagic | 6 + externals/figlet/fonts/646-ca.flc | 157 + externals/figlet/fonts/646-ca2.flc | 156 + externals/figlet/fonts/646-cn.flc | 156 + externals/figlet/fonts/646-cu.flc | 156 + externals/figlet/fonts/646-de.flc | 156 + externals/figlet/fonts/646-dk.flc | 155 + externals/figlet/fonts/646-es.flc | 155 + externals/figlet/fonts/646-es2.flc | 155 + externals/figlet/fonts/646-fr.flc | 156 + externals/figlet/fonts/646-gb.flc | 157 + externals/figlet/fonts/646-hu.flc | 156 + externals/figlet/fonts/646-irv.flc | 155 + externals/figlet/fonts/646-it.flc | 155 + externals/figlet/fonts/646-jp.flc | 156 + externals/figlet/fonts/646-kr.flc | 152 + externals/figlet/fonts/646-no.flc | 156 + externals/figlet/fonts/646-no2.flc | 156 + externals/figlet/fonts/646-pt.flc | 155 + externals/figlet/fonts/646-pt2.flc | 155 + externals/figlet/fonts/646-se.flc | 158 + externals/figlet/fonts/646-se2.flc | 156 + externals/figlet/fonts/646-yu.flc | 157 + externals/figlet/fonts/8859-2.flc | 303 ++ externals/figlet/fonts/8859-3.flc | 296 ++ externals/figlet/fonts/8859-4.flc | 303 ++ externals/figlet/fonts/8859-5.flc | 303 ++ externals/figlet/fonts/8859-7.flc | 308 ++ externals/figlet/fonts/8859-8.flc | 270 ++ externals/figlet/fonts/8859-9.flc | 307 ++ externals/figlet/fonts/banner.flf | 2494 +++++++++++ externals/figlet/fonts/big.flf | 2204 ++++++++++ externals/figlet/fonts/block.flf | 1691 ++++++++ externals/figlet/fonts/bubble.flf | 1630 ++++++++ externals/figlet/fonts/digital.flf | 1286 ++++++ externals/figlet/fonts/frango.flc | 65 + externals/figlet/fonts/hz.flc | 4 + externals/figlet/fonts/ilhebrew.flc | 38 + externals/figlet/fonts/ivrit.flf | 900 ++++ externals/figlet/fonts/jis0201.flc | 249 ++ externals/figlet/fonts/koi8r.flc | 128 + externals/figlet/fonts/lean.flf | 1691 ++++++++ externals/figlet/fonts/mini.flf | 899 ++++ externals/figlet/fonts/mnemonic.flf | 3702 +++++++++++++++++ externals/figlet/fonts/moscow.flc | 68 + externals/figlet/fonts/script.flf | 1493 +++++++ externals/figlet/fonts/shadow.flf | 1097 +++++ externals/figlet/fonts/slant.flf | 1295 ++++++ externals/figlet/fonts/small.flf | 1097 +++++ externals/figlet/fonts/smscript.flf | 1097 +++++ externals/figlet/fonts/smshadow.flf | 899 ++++ externals/figlet/fonts/smslant.flf | 1097 +++++ externals/figlet/fonts/standard.flf | 2238 ++++++++++ externals/figlet/fonts/term.flf | 600 +++ externals/figlet/fonts/upper.flc | 193 + externals/figlet/fonts/ushebrew.flc | 33 + externals/figlet/fonts/uskata.flc | 53 + externals/figlet/fonts/utf8.flc | 4 + externals/figlet/getopt.c | 104 + externals/figlet/inflate.c | 1321 ++++++ externals/figlet/inflate.h | 90 + externals/figlet/run-tests.sh | 92 + externals/figlet/showfigfonts | 55 + externals/figlet/showfigfonts.6 | 67 + externals/figlet/tests/emboss.tlf | 325 ++ externals/figlet/tests/flowerpower.flf | Bin 0 -> 3070 bytes externals/figlet/tests/input.txt | 7 + externals/figlet/tests/longtext.txt | 14 + externals/figlet/tests/res001.txt | 148 + externals/figlet/tests/res002.txt | 1992 +++++++++ externals/figlet/tests/res003.txt | 432 ++ externals/figlet/tests/res004.txt | 120 + externals/figlet/tests/res005.txt | 120 + externals/figlet/tests/res006.txt | 120 + externals/figlet/tests/res007.txt | 120 + externals/figlet/tests/res008.txt | 120 + externals/figlet/tests/res009.txt | 138 + externals/figlet/tests/res010.txt | 156 + externals/figlet/tests/res011.txt | 114 + externals/figlet/tests/res012.txt | 36 + externals/figlet/tests/res013.txt | 132 + externals/figlet/tests/res014.txt | 144 + externals/figlet/tests/res015.txt | 156 + externals/figlet/tests/res016.txt | 152 + externals/figlet/tests/res017.txt | 36 + externals/figlet/tests/res018.txt | 27 + externals/figlet/tests/res019.txt | 36 + externals/figlet/tests/res020.txt | 140 + externals/figlet/tests/res021.txt | 36 + externals/figlet/tests/res022.txt | 1314 ++++++ externals/figlet/tests/res023.txt | 90 + externals/figlet/tests/res024.txt | 39 + externals/figlet/tests/res025.txt | 8 + externals/figlet/tests/res026.txt | 8 + externals/figlet/tests/res027.txt | 430 ++ externals/figlet/utf8.c | 326 ++ externals/figlet/utf8.h | 43 + externals/figlet/zipio.c | 818 ++++ externals/figlet/zipio.h | 104 + externals/pear-figlet/Text/Figlet.php | 510 +++ externals/pear-figlet/docs/README.TXT | 26 + .../pear-figlet/docs/examples/hello_world.php | 35 + externals/pear-figlet/fonts/makisupa.flf | 2877 +++++++++++++ resources/figlet/custom/README | 2 + 120 files changed, 53422 insertions(+) create mode 100644 externals/figlet/.gitignore create mode 100644 externals/figlet/CHANGES create mode 100644 externals/figlet/FAQ create mode 100644 externals/figlet/LICENSE create mode 100644 externals/figlet/Makefile create mode 100644 externals/figlet/Makefile.tc create mode 100644 externals/figlet/README create mode 100644 externals/figlet/chkfont.6 create mode 100644 externals/figlet/chkfont.c create mode 100644 externals/figlet/crc.c create mode 100644 externals/figlet/crc.h create mode 100644 externals/figlet/figfont.txt create mode 100644 externals/figlet/figlet.6 create mode 100644 externals/figlet/figlet.c create mode 100755 externals/figlet/figlist create mode 100644 externals/figlet/figlist.6 create mode 100644 externals/figlet/figmagic create mode 100644 externals/figlet/fonts/646-ca.flc create mode 100644 externals/figlet/fonts/646-ca2.flc create mode 100644 externals/figlet/fonts/646-cn.flc create mode 100644 externals/figlet/fonts/646-cu.flc create mode 100644 externals/figlet/fonts/646-de.flc create mode 100644 externals/figlet/fonts/646-dk.flc create mode 100644 externals/figlet/fonts/646-es.flc create mode 100644 externals/figlet/fonts/646-es2.flc create mode 100644 externals/figlet/fonts/646-fr.flc create mode 100644 externals/figlet/fonts/646-gb.flc create mode 100644 externals/figlet/fonts/646-hu.flc create mode 100644 externals/figlet/fonts/646-irv.flc create mode 100644 externals/figlet/fonts/646-it.flc create mode 100644 externals/figlet/fonts/646-jp.flc create mode 100644 externals/figlet/fonts/646-kr.flc create mode 100644 externals/figlet/fonts/646-no.flc create mode 100644 externals/figlet/fonts/646-no2.flc create mode 100644 externals/figlet/fonts/646-pt.flc create mode 100644 externals/figlet/fonts/646-pt2.flc create mode 100644 externals/figlet/fonts/646-se.flc create mode 100644 externals/figlet/fonts/646-se2.flc create mode 100644 externals/figlet/fonts/646-yu.flc create mode 100644 externals/figlet/fonts/8859-2.flc create mode 100644 externals/figlet/fonts/8859-3.flc create mode 100644 externals/figlet/fonts/8859-4.flc create mode 100644 externals/figlet/fonts/8859-5.flc create mode 100644 externals/figlet/fonts/8859-7.flc create mode 100644 externals/figlet/fonts/8859-8.flc create mode 100644 externals/figlet/fonts/8859-9.flc create mode 100644 externals/figlet/fonts/banner.flf create mode 100644 externals/figlet/fonts/big.flf create mode 100644 externals/figlet/fonts/block.flf create mode 100644 externals/figlet/fonts/bubble.flf create mode 100644 externals/figlet/fonts/digital.flf create mode 100644 externals/figlet/fonts/frango.flc create mode 100644 externals/figlet/fonts/hz.flc create mode 100644 externals/figlet/fonts/ilhebrew.flc create mode 100644 externals/figlet/fonts/ivrit.flf create mode 100644 externals/figlet/fonts/jis0201.flc create mode 100644 externals/figlet/fonts/koi8r.flc create mode 100644 externals/figlet/fonts/lean.flf create mode 100644 externals/figlet/fonts/mini.flf create mode 100644 externals/figlet/fonts/mnemonic.flf create mode 100644 externals/figlet/fonts/moscow.flc create mode 100644 externals/figlet/fonts/script.flf create mode 100644 externals/figlet/fonts/shadow.flf create mode 100644 externals/figlet/fonts/slant.flf create mode 100644 externals/figlet/fonts/small.flf create mode 100644 externals/figlet/fonts/smscript.flf create mode 100644 externals/figlet/fonts/smshadow.flf create mode 100644 externals/figlet/fonts/smslant.flf create mode 100644 externals/figlet/fonts/standard.flf create mode 100644 externals/figlet/fonts/term.flf create mode 100644 externals/figlet/fonts/upper.flc create mode 100644 externals/figlet/fonts/ushebrew.flc create mode 100644 externals/figlet/fonts/uskata.flc create mode 100644 externals/figlet/fonts/utf8.flc create mode 100644 externals/figlet/getopt.c create mode 100644 externals/figlet/inflate.c create mode 100644 externals/figlet/inflate.h create mode 100755 externals/figlet/run-tests.sh create mode 100755 externals/figlet/showfigfonts create mode 100644 externals/figlet/showfigfonts.6 create mode 100644 externals/figlet/tests/emboss.tlf create mode 100644 externals/figlet/tests/flowerpower.flf create mode 100644 externals/figlet/tests/input.txt create mode 100644 externals/figlet/tests/longtext.txt create mode 100644 externals/figlet/tests/res001.txt create mode 100644 externals/figlet/tests/res002.txt create mode 100644 externals/figlet/tests/res003.txt create mode 100644 externals/figlet/tests/res004.txt create mode 100644 externals/figlet/tests/res005.txt create mode 100644 externals/figlet/tests/res006.txt create mode 100644 externals/figlet/tests/res007.txt create mode 100644 externals/figlet/tests/res008.txt create mode 100644 externals/figlet/tests/res009.txt create mode 100644 externals/figlet/tests/res010.txt create mode 100644 externals/figlet/tests/res011.txt create mode 100644 externals/figlet/tests/res012.txt create mode 100644 externals/figlet/tests/res013.txt create mode 100644 externals/figlet/tests/res014.txt create mode 100644 externals/figlet/tests/res015.txt create mode 100644 externals/figlet/tests/res016.txt create mode 100644 externals/figlet/tests/res017.txt create mode 100644 externals/figlet/tests/res018.txt create mode 100644 externals/figlet/tests/res019.txt create mode 100644 externals/figlet/tests/res020.txt create mode 100644 externals/figlet/tests/res021.txt create mode 100644 externals/figlet/tests/res022.txt create mode 100644 externals/figlet/tests/res023.txt create mode 100644 externals/figlet/tests/res024.txt create mode 100644 externals/figlet/tests/res025.txt create mode 100644 externals/figlet/tests/res026.txt create mode 100644 externals/figlet/tests/res027.txt create mode 100644 externals/figlet/utf8.c create mode 100644 externals/figlet/utf8.h create mode 100644 externals/figlet/zipio.c create mode 100644 externals/figlet/zipio.h create mode 100644 externals/pear-figlet/Text/Figlet.php create mode 100644 externals/pear-figlet/docs/README.TXT create mode 100644 externals/pear-figlet/docs/examples/hello_world.php create mode 100644 externals/pear-figlet/fonts/makisupa.flf create mode 100644 resources/figlet/custom/README diff --git a/externals/figlet/.gitignore b/externals/figlet/.gitignore new file mode 100644 index 0000000000..dc65b3c3eb --- /dev/null +++ b/externals/figlet/.gitignore @@ -0,0 +1,8 @@ +chkfont +figlet +tags +*.o +core +*~ +tests.log +*.tar.gz diff --git a/externals/figlet/CHANGES b/externals/figlet/CHANGES new file mode 100644 index 0000000000..4f2d6e9edb --- /dev/null +++ b/externals/figlet/CHANGES @@ -0,0 +1,205 @@ +Changes in FIGlet 2.2.5 +----------------------- + +FIGlet 2.2.5 is a revision of FIGlet 2.2.4 containing updated andproperly +licensed ISO8859 map files. The full list of changes is: + +o Add regression tests for uskata and jis0201 control files + +o Properly escape minus signs in figlist(6) man page (Jonathan + McCrohan) + +o Fix chkfont coredump on invalid input (Kenneth Davies and + Jonathan McCrohan) + +o Update ISO8859 map files to fix licensing issue raised in Debian + bugs 673096 and 674844 + +o Re-add missing figmagic and getopt.c files which were left out + of releases 2.2.3 and 2.2.4 + +o Fix output of test script in MacOS X + +These changes were made by Claudio Matsuoka +31 May 2012 + +Changes in FIGlet 2.2.4 +----------------------- + +FIGlet 2.2.4 is a revision of FIGlet 2.2.3 featuring bugfixes and support +to tlf2 fonts. The full list of changes is: + +o Add support to Sam Hocevar's TOIlet TLF fonts containing UTF-8 + encoded Unicode characters. + +o Add infocode 5 to list supported font formats + +o Fix rendering error caused by the previous attempt to fix invalid + memory accesses when smushing at start of line + +o New environment variable FIGLET_FONTDIR can be used to specify + the path to search for fonts + +o Add regression tests + +These changes were made by Claudio Matsuoka +26 January 2011 + +Changes in FIGlet 2.2.3 +----------------------- + +FIGlet 2.2.3 is a revision of FIGlet 2.2.2 featuring minor bugfixes and +important licensing changes in the zipio files. The full list of +changes is: + +o License changed from "Academic Free License" to "New BSD License" + (3-clause) as agreed by FIGlet authors + +o New JIS X 0201 control file (Micah Cowan) + +o Fix behavior of JIS0201 SHIFT-OUT and SHIFT-IN that were previouly + inverted (Micah Cowan) + +o Fix memory violation when smushing at line start + +o Fix handling of memory allocation errors + +o Relicense Ed Hamrick zipio under the MIT license. This should + eliminate any concerns about redistribution of FIGlet as libre + software. + +o Update Makefile to meet modern standards in variable naming, using + BINDIR as the pathname for binary files and reservind DESTDIR + as the extra prefix commonly used in package building. + +o Add a Turbo C makefile, just because I had the compiler. (this + also tests portability to old compilers and foreign platforms) + +o Add Jonathon Abbott's man pages for figlist, showfigfonts and + chkfont originally contributed to the Debian Project + +These changes were made by Claudio Matsuoka +12 January 2011 + +Changes in FIGlet 2.2.2 +----------------------- + +License changed from "Artistic License" to "Academic Free +License" as agreed by FIGlet authors. 05 July 2005 + +Changes in FIGlet 2.2.1 +----------------------- + +FIGlet 2.2.1 is a minor revision of FIGlet 2.2. The files +README, Makefile, figfont.txt, figlet.c and figlet.6 have been +changed to reflect changes in documentation, official contact +details etc. FTP-NOTE merged into README. FAQ and CHANGES +added to the distribution. + +All other files are identical with the 2.2 release. + +These changes were made by Christiaan Keet + +Changes in FIGlet 2.2 +--------------------- + +FIGlet 2.2 is a moderate revision of FIGlet 2.1.2. The new features are: + +o font files and control files can be compressed using ``zip'', and + will be automatically decompressed + +o new commands in controlfiles provide support for + single-byte (default), double-byte, HZ, Shift-JIS, and Unicode + UTF-8 encodings of the input + +o ISO 2022 escape sequences are decoded and interpreted + +o control files can now have the format of Unicode Consortium + mapping tables (two columns of numbers representing + input character and output character, no ranges, # comments) + +o new options -s (smush, same as -m-2), -k (kern, same as -m0), + -S (forced smushing), and -W (full width, same as -m-1) make + -m option unnecessary except for font designers. The -S option + works even if the font's smushmode is 0 or -1, in which case + the smushmode is read from a new parameter in the + font's first line, or does universal overlapping if no such parameter + exists + +o universal smushing (-o option to force it, but -S will use it + if no smush rules are available) makes FIGcharacters overlap by + one place independent of how they are constructed + more fonts smushable. + +o file "figmagic" can be appended to your system magic number + file to make the "file" command recognize FIGlet files + +o file "figfont.txt" is an implementation-independent specification + for FIGlet fonts and control files + +o integrated support for extended characters (extended Latin in + "standard", Greek in "big", katakana in "banner", Hebrew in new + "ivrit" fonts) with appropriate controlfiles + +o smushing rule 16 has changed slightly: "/\" now smushes + into "|" and "\/" smushes into "Y"; "><" still smushes + into "X" and "<>" is still not smushed at all. + +o -A option introduced in FIGlet 2.1.2 is now optional; + if any words appear on the command line after the options, + they are formatted, and the standard input is not read. + +These changes were made by John Cowan . + +Changes in FIGlet 2.1.2 +------------------------ + +FIGlet 2.1.2 is a minor revision of FIGlet 2.1.1. The files +README, FTP-NOTE, figlet.c and figlet.6 have been changed. All other +files are identical with the 2.1.1 release. + +o The only new option is -A, which causes FIGlet to read input + from the command line. + +These changes were made by Gilbert Healton as Glenn +Chappell is now busy as a new professor of Mathematics. + +Changes in FIGlet 2.1 +---------------------- + +A number of minor bugs and major incompatibility problems have been +fixed. FIGlet 2.1 should compile correctly on many operating systems for +which FIGlet 2.0 did not. + +o The "-F" command line option, which used to list all the available + fonts, has been removed, since it made FIGlet incompatible with some + operating systems. It has been replaced by the "figlist" script. The + "showfigfonts" script has been updated so that it no longer requires + the "-F" option to be available. + +o The FIGlet font file format has been extended to allow an arbitrarily + large number of characters. The ISO Latin-1 character set, which + includes many accented letters and special symbols, has been added to + most standard fonts. + +o FIGlet can now print right-to-left. This can be specified on the + command line ("-R") or in the font file. Thus, for example, Hebrew and + Arabic fonts can be handled more easily. + +o FIGlet can now right justify its output. This is the default when + right-to-left printing is selected. It can also be specified on the + command line ("-r"). + +o FIGlet now supports "control files". These can be used to change which + character FIGlet will print when it sees a certain input character -- + sort of an expanded version of the "-D" option. For example, a control + file could convert lower-case letters to upper-case or map certain + ASCII characters to accented letters. Control file names end with the + suffix ".flc". Select a control file by using "-C controlfile" on the + command line. Several controlfiles can be used at once by giving + muliple "-C" options. + +o There is now a way for programs that use FIGlet to get various + information from FIGlet, for example, what version of FIGlet is being + used or the name of the default font directory. This information is + gotten through the "-I" option. See the man page for details. diff --git a/externals/figlet/FAQ b/externals/figlet/FAQ new file mode 100644 index 0000000000..8e8ca43163 --- /dev/null +++ b/externals/figlet/FAQ @@ -0,0 +1,63 @@ + _____ _____ _____ __ __ _____ _____ _____ +| __| | __| |____| |_ | __| _ | | This FIGlet FAQ is +| __|- -| | | | - _| _| | __| | | | posted once a month +|__| |_____|_____|__|____|__| |__| |__|__|__ _| on figlet@figlet.org + info@figlet.org http://www.figlet.org/ |__| [FIGlet FAQ v0.91] + +=========================================================================== +The latest version of FIGlet is 2.2.5 and can be downloaded from +ftp://ftp.figlet.org/pub/figlet/program +=========================================================================== + +1 What is FIGlet? +2 Where can I get FIGlet from? +3 Where can I get more fonts for FIGlet? +4 Where can I hear about regular FIGlet program and font updates? +5 How can I contribute? +6 Why am I getting this mail and can you make it stop? +7 Where does the name FIGlet come from? + +=========================================================================== + +1. What is FIGlet? + FIGlet is a program for making large letters out of ordinary text + _ _ _ _ _ _ + | (_) | _____ | |_| |__ (_)___ + | | | |/ / _ \ | __| '_ \| / __| + | | | < __/ | |_| | | | \__ \ + |_|_|_|\_\___| \__|_| |_|_|___/ + +2. Where can I get FIGlet from? + From the official FIGlet website at http://www.figlet.org/ + or from the FIGlet FTP site at ftp://ftp.figlet.org/pub/figlet/ + +3. Where can I get more fonts for FIGlet? + From the FTP site at ftp://ftp.figlet.org/pub/figlet/fonts/ + There are currently over 400 fonts available for download + +4 Where can I hear about regular FIGlet program and font updates? + There is a mailing list for FIGlet for general discussions about + FIGlet and a place where you can ask questions or share ideas + with other FIGlet users. It is also the place where we will publish + news about new fonts, new software updates etc. + + To subscribe or unsubscribe from the FIGlet mailing list, + please send email to figlet-subscribe@figlet.org or visit the + following web page: http://www.figlet.org/mailman/listinfo/figlet + +5. How can I contribute? + To contribute new fonts, software or information, please contact + us at info@figlet.org + +6. Why am I getting this mail and can you make it stop? + If you received this email it is probably because you are subscribed + to the FIGlet mailing list. Please see Question 4 of this FAQ on how + to unsubscribe from the FIGlet list. + +7. Where does the name FIGlet come from? + "Frank, Ian and Glen's letters" + + += FAQ Maintainer ========================================================== +Christiaan Keet keet@plig.net July 2005 +=========================================================================== diff --git a/externals/figlet/LICENSE b/externals/figlet/LICENSE new file mode 100644 index 0000000000..a841aeaa0a --- /dev/null +++ b/externals/figlet/LICENSE @@ -0,0 +1,30 @@ +Copyright (C) 1991, 1993, 1994 Glenn Chappell and Ian Chai +Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 John Cowan +Copyright (C) 2002 Christiaan Keet +Copyright (C) 2011 Claudio Matsuoka +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holders nor the names of their + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/externals/figlet/Makefile b/externals/figlet/Makefile new file mode 100644 index 0000000000..e92bcaf582 --- /dev/null +++ b/externals/figlet/Makefile @@ -0,0 +1,122 @@ +# Makefile for figlet version 2.2.4 (26 Jan 2011) +# adapted from Makefile for figlet version 2.2.2 (05 July 2005) +# adapted from Makefile for figlet version 2.2 (15 Oct 1996) +# Copyright 1993, 1994,1995 Glenn Chappell and Ian Chai +# Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan +# Copyright 2002 Christiaan Keet +# Copyright 2011 Claudio Matsuoka + +# Please notice that to follow modern standards and ease third-party +# package creation, binaries are now installed under BINDIR, and DESTDIR +# is reserved for the installation pathname prefix. +# +# Please make sure BINDIR, MANDIR, DEFAULTFONTDIR and +# DEFAULTFONTFILE are defined to reflect the situation +# on your computer. See README for details. + +# Don't change this even if your shell is different. The only reason +# for changing this is if sh is not in the same place. +SHELL = /bin/sh + +# The C compiler and linker to use +CC = gcc +CFLAGS = -g -O2 -Wall -Wno-unused-value +LD = gcc +LDFLAGS = + +# Feature flags: +# define TLF_FONTS to use TOIlet TLF fonts +XCFLAGS = -DTLF_FONTS + +# Where to install files +prefix = /usr/local + +# Where the executables should be put +BINDIR = $(prefix)/bin + +# Where the man page should be put +MANDIR = $(prefix)/man + +# Where figlet will search first for fonts (the ".flf" files). +DEFAULTFONTDIR = $(prefix)/share/figlet +# Use this definition if you can't put things in $(prefix)/share/figlet +#DEFAULTFONTDIR = fonts + +# The filename of the font to be used if no other is specified, +# without suffix.(standard is recommended, but any other can be +# used). This font file should reside in the directory specified +# by DEFAULTFONTDIR. +DEFAULTFONTFILE = standard + +## +## END OF CONFIGURATION SECTION +## + +VERSION = 2.2.5 +DIST = figlet-$(VERSION) +OBJS = figlet.o zipio.o crc.o inflate.o utf8.o +BINS = figlet chkfont figlist showfigfonts +MANUAL = figlet.6 chkfont.6 figlist.6 showfigfonts.6 +DFILES = Makefile Makefile.tc $(MANUAL) $(OBJS:.o=.c) chkfont.c getopt.c \ + figlist showfigfonts CHANGES FAQ README LICENSE figfont.txt \ + crc.h inflate.h zipio.h utf8.h run-tests.sh figmagic + +.c.o: + $(CC) -c $(CFLAGS) $(XCFLAGS) -DDEFAULTFONTDIR=\"$(DEFAULTFONTDIR)\" \ + -DDEFAULTFONTFILE=\"$(DEFAULTFONTFILE)\" -o $*.o $< + +all: $(BINS) + +figlet: $(OBJS) + $(LD) $(LDFLAGS) -o $@ $(OBJS) + +chkfont: chkfont.o + $(LD) $(LDFLAGS) -o $@ chkfont.o + +clean: + rm -f *.o *~ core figlet chkfont + +install: all + mkdir -p $(DESTDIR)$(BINDIR) + mkdir -p $(DESTDIR)$(MANDIR)/man6 + mkdir -p $(DESTDIR)$(DEFAULTFONTDIR) + cp $(BINS) $(DESTDIR)$(BINDIR) + cp $(MANUAL) $(DESTDIR)$(MANDIR)/man6 + cp fonts/*.flf $(DESTDIR)$(DEFAULTFONTDIR) + cp fonts/*.flc $(DESTDIR)$(DEFAULTFONTDIR) + +dist: + rm -Rf $(DIST) $(DIST).tar.gz + mkdir $(DIST)/ + cp $(DFILES) $(DIST)/ + mkdir $(DIST)/fonts + cp fonts/*.fl[fc] $(DIST)/fonts + mkdir $(DIST)/tests + cp tests/*txt tests/emboss.tlf $(DIST)/tests + tar cvf - $(DIST) | gzip -9c > $(DIST).tar.gz + rm -Rf $(DIST) + tar xf $(DIST).tar.gz + (cd $(DIST); make all check vercheck) + @rm -Rf $(DIST) + @echo + @ls -l $(DIST).tar.gz + +check: + @echo "Run tests in `pwd`" + @./run-tests.sh fonts + @echo + +vercheck: + @printf "Infocode: "; ./figlet -I1 + @./figlet -v|sed -n '/Version/s/.*\(Version\)/\1/p' + @printf "README: "; head -1 < README|sed 's/.*) //' + @printf "FAQ: "; grep latest FAQ|sed 's/ and can.*//' + @grep -h "^\.TH" *.6 + +$(OBJS) chkfont.o getopt.o: Makefile +chkfont.o: chkfont.c +crc.o: crc.c crc.h +figlet.o: figlet.c zipio.h +getopt.o: getopt.c +inflate.o: inflate.c inflate.h +zipio.o: zipio.c zipio.h inflate.h crc.h diff --git a/externals/figlet/Makefile.tc b/externals/figlet/Makefile.tc new file mode 100644 index 0000000000..435fc580c9 --- /dev/null +++ b/externals/figlet/Makefile.tc @@ -0,0 +1,42 @@ +# Turbo C makefile for figlet +# adapted from Makefile for figlet version 2.3.0 (11 Jan 2011) +# adapted from Makefile for figlet version 2.2.2 (05 July 2005) +# adapted from Makefile for figlet version 2.2 (15 Oct 1996) +# Copyright 1993, 1994,1995 Glenn Chappell and Ian Chai +# Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan +# Copyright 2002 Christiaan Keet +# Copyright 2011 Claudio Matsuoka + +# The C compiler and linker to use +CC = tcc +CFLAGS = -mc -I\tc\include +LD = tcc +LDFLAGS = -mc -L\tc\lib + +# Use this definition if you can't put things in /usr/local/share/figlet +DEFAULTFONTDIR = fonts + +# The filename of the font to be used if no other is specified +# (standard.flf is recommended, but any other can be used). +# This font file should reside in the directory specified by +# DEFAULTFONTDIR. +DEFAULTFONTFILE = standard.flf + +## +## END OF CONFIGURATION SECTION +## + +OBJS = figlet.obj zipio.obj crc.obj inflate.obj getopt.obj +BINS = figlet.exe chkfont.exe + +.c.obj: + $(CC) -c $(CFLAGS) -DDEFAULTFONTDIR="$(DEFAULTFONTDIR)" \ + -DDEFAULTFONTFILE="$(DEFAULTFONTFILE)" -o$*.obj $< + +all: $(BINS) + +figlet.exe: $(OBJS) + $(LD) $(LDFLAGS) -o$@ $(OBJS) + +chkfont.exe: chkfont.obj + $(LD) $(LDFLAGS) -o$@ chkfont.obj diff --git a/externals/figlet/README b/externals/figlet/README new file mode 100644 index 0000000000..f6f2c752d0 --- /dev/null +++ b/externals/figlet/README @@ -0,0 +1,242 @@ +About FIGlet (Frank, Ian & Glenn's Letters) release 2.2.5, 31 May 2012 +-------------------------------------------------------------------------- +FIGlet is a program that creates large characters out of ordinary +screen characters + _ _ _ _ _ _ +| (_) | _____ | |_| |__ (_)___ +| | | |/ / _ \ | __| '_ \| / __| +| | | < __/ | |_| | | | \__ \_ +|_|_|_|\_\___| \__|_| |_|_|___(_) + +(This is meant to be viewed in a monospaced font.) FIGlet can create +characters in many different styles and can kern and "smush" these +characters together in various ways. FIGlet output is generally +reminiscent of the sort of "signatures" many people like to put at the +end of e-mail and UseNet messages. + +If you like FIGlet (hey, even if you *hate* FIGlet), please send an +e-mail message to + +The official FIGlet web page: http://www.figlet.org/ + +Files -- Unix version +--------------------- + +README -- This file. +figlet.c -- The FIGlet source code. +zipio.h, -- A package for reading ZIP archives +zipio.c, +inflate.c, +crc.c +utf8.h, -- A package to convert strings between UTF-8 and UCS-4. +utf8.c +getopt.c -- Source for the standard "getopt" routine, in case you + don't have it in your C library. Not used by default. +Makefile -- The FIGlet makefile. Used by the make command. +figlet.6 -- The FIGlet man(ual) page. +figlist -- Script that lists available fonts and control files. +showfigfonts -- Script that gives a sample of each available font. +chkfont.c -- Source code for chkfont: a program that checks FIGlet + fonts for formatting errors. You can ignore this file + unless you intend to design or edit fonts. +figfont.txt -- Text file that explains the format of FIGlet fonts. + You can ignore this file unless you intend to design + or edit fonts. +fonts -- Directory containing fonts and control files. +.flf -- All files ending in ".flf" are FIGlet font files. +.flc -- All files ending in ".flc" are FIGlet control files. + +Files -- DOS version +-------------------- + +README -- This file +figlet.exe -- The FIGlet program. +figlet.man -- The FIGlet man(ual) page. +showall.bat -- Batch file that lists available fonts and samples of each. +chkfont.exe -- A program that checks FIGlet fonts for formatting errors. + You can ignore this file unless you intend to design + or edit fonts. +figfont.txt -- Text file that explains the format of FIGlet fonts. + You can ignore this file unless you intend to design + or edit fonts. +fonts -- Directory containing fonts and control files. +.flf -- All files ending in ".flf" are FIGlet font files. +.flc -- All files ending in ".flc" are FIGlet control files. + + +Installing FIGlet --- Unix version +---------------------------------- + +First decide in which directories FIGlet and the FIGlet font files +(the ".flf" files) will be stored (we recommend "/usr/games" and +"/usr/games/lib/figlet.dir", respectively) and which will be the +default font (we recommend "standard.flf"). + +Edit "Makefile", and set the variables DEFAULTFONTDIR and +DEFAULTFONTFILE to the appropriate values. Set DEFAULTFONTDIR to be +the full pathname of the directory in which you will keep the FIGlet +font files. Set DEFAULTFONTFILE to be the filename of the default +font. + +At this point, you have two choices: + +(1) Just compile FIGlet. To go this, go into the directory containing +the FIGlet source, and type "make figlet". Then copy the various files +to the proper locations. The executable (figlet), along with figlist +and showfigfonts, goes wherever you keep your executables. The fonts +(.flf) and control files (.flc) go in the default font +directory. The man page (figlet.6) goes in section 6 (usually +/usr/man/man6). If you cannot, or do not want to, install the man page, +you can probably still read it using + + nroff -man figlet.6 | more + +(2) Do a complete installation. To do the this, set the variables +BINDIR and MANDIR in Makefile to the appropriate values. BINDIR +should be the full pathname of the directory in which the executable +files should be put (we recommend "/usr/games"); MANDIR should be the +full pathname of the directory in which the figlet man page should be +put, generally "/usr/man/man6". Once DEFAULTFONTDIR, DEFAULTFONTFILE, +BINDIR and MANDIR have been set, in the directory containing the FIGlet +source, type "make install". + +If space is a problem, the only files you absolutely must have to run +figlet are "figlet" (the executable) and at least one font (preferably +the one you chose to be the default font). + +Installing FIGlet -- DOS version +-------------------------------- + +Unpack the ZIPfile using PKUNZIP, Info-Zip UNZIP, WinUnzip, or any other +ZIP-compatible program. Be sure to use the -d option with PKUNZIP +in order to preserve the directory structure. We recommend that you +unpack the archive into C:\FIGLET, but any directory will do. + +If you unpack the archive on top of an older version of FIGlet, be +sure to delete the file FIGLET.COM. The executable program in this +release is named FIGLET.EXE. You can keep your old fonts by putting +them in a FONTS subdirectory before unpacking. (There are upgraded +versions of the standard fonts in the archive.) + +Using FIGlet +------------ + +(Note: FIGlet needs a good thorough tutorial. Currently I don't have +the time to write one, but if anyone wants to do so, go right ahead. +I'd be glad to help out a little. Write us at if +you're interested. -GGC-) + +At the shell prompt, type "figlet". Then type, say, "Hello, world!" +and press return. "Hello, world!" in nice, big, designer characters +should appear on your screen. If you chose standard.flf to be the +default font, you should see + _ _ _ _ _ _ _ +| | | | ___| | | ___ __ _____ _ __| | __| | | +| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | | +| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_| +|_| |_|\___|_|_|\___( ) \_/\_/ \___/|_| |_|\__,_(_) + |/ +Then type something else, or type an EOF (typically control-D) to quit +FIGlet. + +Now you can send the output of figlet to a file (e.g., "figlet > file") +and e-mail it to your friends (who will probably say, "Wow! It must +have taken you hours to put that together!") + +To use other fonts, use the "-f" command line option. For example, if +you had said "figlet -f smslant" above, you would have seen + __ __ ____ __ ____ + / // /__ / / /__ _ _____ ____/ /__/ / / + / _ / -_) / / _ \_ | |/|/ / _ \/ __/ / _ /_/ +/_//_/\__/_/_/\___( ) |__,__/\___/_/ /_/\_,_(_) + |/ + +Here are some other useful command line options: + +-c center -- centers the output of FIGlet. +-k tells FIGlet to kern characters without smushing them together. +-t terminal -- FIGlet asks your terminal how wide it is, and uses + this to determine when to break lines. Normally, FIGlet assumes + 80 columns so that people with wide terminals won't annoy the + people they e-mail FIGlet output to. +-p paragraph mode -- eliminates some spurious line breaks when piping + a multi-line file through FIGlet. +-v version -- prints information about your copy of FIGlet. + +For in-depth explanations of these and other options, see the man page. +DOS users, see figlet.man. + + +Other Fonts & Mailing List +-------------------------- + +A good number of FIGlet fonts have been developed, most of which are +not included in the standard FIGlet package. Many of these can be +obtained from http://www.figlet.org/ Some non-Roman fonts are +available at this site. As of this writing, we have Hebrew, Cyrillic +(Russian) and Greek. + +There are 3 mailing lists available for FIGlet: + figlet@figlet.org General discussion of FIGlet + figletfonts@figlet.org Announcements about fonts + figletsoftware@figlet.org Announcements about software + (The last two lists are moderated) + +To subscribe or unsubscribe from the FIGlet mailing lists, please visit +the corresponding URL: + http://www.figlet.org/mailman/listinfo/figlet + http://www.figlet.org/mailman/listinfo/figletfonts + http://www.figlet.org/mailman/listinfo/figletsoftware + +Also, for those who maintain archives of figlet fonts, please note that +all of the standard fonts have been changed, as of release 2.1, to +include non-ASCII characters. These fonts are the following: + +big.flf (also contains Greek) +banner.flf (also contains Cyrillic and Japanese katakana) +block.flf +bubble.flf +digital.flf +ivrit.flf (right-to-left, also contains Hebrew) +lean.flf +mini.flf +script.flf +shadow.flf +slant.flf +small.flf +smscript.flf +smshadow.flf +smslant.dld +standard.flf +term.flf + +The new versions of these fonts can be identified by the words "figlet +release 2.1" somewhere in the first few lines. + + +Other Stuff +----------- + +FIGlet is available for operating systems other than Unix. +Please see ftp://ftp.figlet.org/program/ + +Although you don't have to design your own fonts to use FIGlet, we'd +certainly like it if lots of people did make up new FIGlet fonts. If +you feel like giving it a try, see the "FONT FILE FORMAT" section of +the man page. If you do design a font, please let us know by mailing us +at + +See "Other Things to Try" in the EXAMPLES section of the man page +for... well... other things to try. + + +Authors +------- + +FIGlet was written mostly by Glenn Chappell . The +author not being an e-mail fanatic, most correspondence (bug reports, rave +reviews, etc.) used to be handled to his secretary (who is definitely +an e-mail fanatic), Ian Chai and has since moved on to +another FIGlet enthusiast, Christiaan Keet . Current +maintenance is conducted by Claudio Matsuoka . + diff --git a/externals/figlet/chkfont.6 b/externals/figlet/chkfont.6 new file mode 100644 index 0000000000..681d6ad556 --- /dev/null +++ b/externals/figlet/chkfont.6 @@ -0,0 +1,52 @@ +.\" chkfont +.\" By Glenn Chappell +.\" +.\" This program checks figlet 2.0/2.1 font files for format errors. +.\" It also looks for signs of common problems and gives warnings. +.\" chkfont does not modify font files. +.\" +.\" Usage: chkfont fontfile ... +.\" +.\" Note: This is very much a spare-time project. It's probably +.\" full o' bugs. +.\" +.\" Manual page by Jonathon Abbott, for the Debian Project +.\" slightly modified by Francesco Tapparo, for the Debian Project +.TH CHKFONT 6 "31 May 2012" "v2.2.5" + +.SH NAME +chkfont \- checks figlet 2.0 and up font files for format errors + +.SH SYNOPSIS +.B chkfont +[ +.I fontfile +] + +.SH DESCRIPTION +This program checks figlet 2.0 and up font files for format errors. +It also looks for signs of common problems and gives warnings. +chkfont does not modify font files. + +.SH EXAMPLES +To use +.B chkfont +on the "big" font +.RS + +.B example% chkfont /usr/share/figlet/big.flf + +.RE + +.SH BUGS +Doesn't work on compressed font files. + +.SH AUTHORS +chkfont was written by Glenn Chappell + +This manual page was written by Jonathon Abbott for the Debian Project. + +.SH "SEE ALSO" +.BR figlet (6), +.BR showfigfonts (6), +.BR figlist (6) diff --git a/externals/figlet/chkfont.c b/externals/figlet/chkfont.c new file mode 100644 index 0000000000..63bf381b31 --- /dev/null +++ b/externals/figlet/chkfont.c @@ -0,0 +1,476 @@ +#include +#include +#include +#ifdef __STDC__ +#include +#endif + +#define DATE "20 Feb 1996" +#define VERSION "2.2" + +/* + chkfont + By Glenn Chappell + + This program checks figlet 2.0/2.1 font files for format errors. + It also looks for signs of common problems and gives warnings. + chkfont does not modify font files. + + Usage: chkfont fontfile ... + + Note: This is very much a spare-time project. It's probably + full o' bugs .... +*/ + +/* #define CHECKBLANKS */ +#define FONTFILESUFFIX ".flf" +#define FONTFILEMAGICNUMBER "flf2" +char posshardblanks[9] = { '!', '@', '#', '$', '%', '&', '*', 0x7f, 0 }; + +char *myname,*fontfilename; +FILE *fontfile; +char hardblank; +int charheight,upheight,maxlen=0,old_layout; +int spectagcnt; +char *fileline; +int maxlinelength=0,currline; +int ec,wc; + +int incon_endmarkwarn,endmark_countwarn,nonincrwarn; +int bigcodetagwarn,deutschcodetagwarn,asciicodetagwarn; +int codetagcnt; +int gone; + +void weregone(really) +int really; +{ +if (!really && 2*ec+wc<=40) { + return; + } +if (ec+wc>0) printf("*******************************************************************************\n"); +if (!really) { + printf("%s: Too many errors/warnings.\n",fontfilename); + } +printf("%s: Errors: %d, Warnings: %d\n",fontfilename,ec,wc); +if (currline>1 && maxlen!=maxlinelength) { + printf("%s: maxlen: %d, actual max line length: %d\n", + fontfilename,maxlen,maxlinelength); + if (codetagcnt>0 && spectagcnt==-1) { + printf("%s: Code-tagged characters: %d\n",fontfilename,codetagcnt); + } + } +printf("-------------------------------------------------------------------------------\n"); +gone=1; +} + +char *my_alloc(size) +int size; +{ +char *ptr; + +ptr=(char *)malloc(size); +if (ptr==NULL) { + fprintf(stderr,"%s: Out of memory\n",myname); + exit(1); + } +return(ptr); +} + +int badsuffix(path,suffix) +char *path; +char *suffix; +{ + char ucsuffix[10]; + char *s; + + strcpy(ucsuffix,suffix); + for (s = ucsuffix; *s; s++) { + *s = toupper(*s); + } + + if (strlen(path)\n"); +fprintf(stderr,"Version: %s, date: %s\n",VERSION,DATE); +fprintf(stderr,"Checks figlet 2.0/2.1 font files for format errors.\n"); +fprintf(stderr,"(Does not modify font files.)\n"); +fprintf(stderr,"Usage: %s fontfile ...\n",myname); +exit(1); +} + +void readchar() +{ +int i,expected_width,k,len,newlen,diff,l; +char endmark,expected_endmark; +int leadblanks,minleadblanks,trailblanks,mintrailblanks; +char *ret; + +expected_width = expected_endmark = 0; /* prevent compiler warning */ +for (i=0;imaxlinelength) { + maxlinelength=len; + } + if (len>maxlen) { + printf("%s: ERROR- Line length > maxlen in line %d.\n", + fontfilename,currline); + ec++; + weregone(0); if (gone) return; + } + k=len; + endmark=k<0?'\0':(k==0||fileline[k]!='\n')?fileline[k]:fileline[k-1]; + for(;k>=0?(fileline[k]=='\n' || fileline[k]==endmark):0;k--) { + fileline[k]='\0'; + } + newlen=strlen(fileline); + for (l=0;l=0 ? fileline[l]==' ' : 0;l--) ; + trailblanks = newlen-1-l; + if (i==0) { + expected_endmark = endmark; + expected_width = newlen; + minleadblanks = leadblanks; + mintrailblanks = trailblanks; + if (endmark==' ') { + printf("%s: Warning- Blank endmark in line %d.\n", + fontfilename,currline); + wc++; + weregone(0); if (gone) return; + } + } + else { + if (leadblanks2) { + printf("%s: ERROR- Too many endmarks in line %d.\n", + fontfilename,currline); + ec++; + weregone(0); if (gone) return; + } + else if (charheight>1 && (diff!=(i==charheight-1)+1)) { + if (!endmark_countwarn) { + printf("%s: Warning- Endchar count convention violated in line %d.\n", + fontfilename,currline); + printf("%s: (Above warning will only be printed once.)\n", + fontfilename); + endmark_countwarn = 1; + wc++; + weregone(0); if (gone) return; + } + } + } +#ifdef CHECKBLANKS +if (minleadblanks+mintrailblanks>0 && old_layout>=0) { + printf("%s: Warning- Leading/trailing blanks in char. ending at line %d.\n", + fontfilename,currline); + printf("%s: (Above warning only given when old_layout > -1.)\n", + fontfilename); + wc++; + weregone(0); if (gone) return; + } +#endif /* #ifdef CHECKBLANKS */ +} + + +void checkit() +{ +int i,k,cmtcount,numsread,ffrighttoleft,have_layout,layout; +char magicnum[5],cha; +long oldord,theord; +int tmpcnt,len; + +ec=0;wc=0; +incon_endmarkwarn=0; endmark_countwarn=0; nonincrwarn=0; +bigcodetagwarn=0; deutschcodetagwarn=0; +asciicodetagwarn=0; +codetagcnt=0; +gone=0; +if (!strcmp(fontfilename,"-")) { + fontfilename="(stdin)"; + fontfile=stdin; + } +else { + fontfile=fopen(fontfilename,"r"); + if (fontfile == NULL) { + fprintf(stderr,"%s: Could not open file '%s'\n",myname,fontfilename); + exit(1); + } + } + +if (fontfile!=stdin) { + if (badsuffix(fontfilename,FONTFILESUFFIX)) { + printf("%s: ERROR- Filename does not end with '%s'.\n", + fontfilename,FONTFILESUFFIX); + ec++; + weregone(0); if (gone) return; + } + } +numsread=fscanf(fontfile,"%4s",magicnum); +if (numsread == EOF) { + printf("%s: ERROR- can't read magic number.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (strcmp(magicnum,FONTFILEMAGICNUMBER)) { + printf("%s: ERROR- Incorrect magic number.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } +cha=getc(fontfile); +if (cha!='a') { + printf("%s: Warning- Sub-version character is not 'a'.\n",fontfilename); + wc++; + weregone(0); if (gone) return; + } +fileline=(char*)my_alloc(sizeof(char)*(1001)); +if (fgets(fileline,1001,fontfile)==NULL) { + fileline[0] = '\0'; + } +if (strlen(fileline)>0 ? fileline[strlen(fileline)-1]!='\n' : 0) { + while(k=getc(fontfile),k!='\n'&&k!=EOF) ; /* Advance to end of line */ + } +numsread=sscanf(fileline,"%c %d %d %d %d %d %d %d %d", + &hardblank,&charheight,&upheight,&maxlen,&old_layout,&cmtcount, + &ffrighttoleft,&layout,&spectagcnt); +free(fileline); +fileline = NULL; +if (numsread<7) { + ffrighttoleft=0; + } +if (numsread<9) { + spectagcnt=-1; + } +have_layout = (numsread>=8); +if (6>numsread) { + printf("%s: ERROR (fatal)- First line improperly formatted.\n",fontfilename); + ec++; + weregone(1); if (gone) return; + } +if (!strchr(posshardblanks,hardblank)) { + printf("%s: Warning- Unusual hardblank.\n",fontfilename); + wc++; + weregone(0); if (gone) return; + } +if (charheight<1) { + printf("%s: ERROR (fatal)- charheight not positive.\n",fontfilename); + ec++; + weregone(1); if (gone) return; + } +if (upheight>charheight || upheight<1) { + printf("%s: ERROR- up_height out of bounds.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (maxlen<1) { + printf("%s: ERROR (fatal)- maxlen not positive.\n",fontfilename); + ec++; + weregone(1); if (gone) return; + } +if (old_layout<-1) { + printf("%s: ERROR- old_layout < -1.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (old_layout>63) { + printf("%s: ERROR- old_layout > 63.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (have_layout && layout<0) { + printf("%s: ERROR- layout < 0.\n", fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (have_layout &&layout>32767) { + printf("%s: ERROR- layout > 32767.\n", fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (have_layout && old_layout == -1 && (layout & 192)) { + printf("%s: ERROR- layout %d is inconsistent with old_layout -1.\n", + fontfilename,layout); + ec++; + weregone(0); if (gone) return; + } +if (have_layout && old_layout == 0 && (layout & 192) != 64 && + (layout & 255) != 128) { + printf("%s: ERROR- layout %d is inconsistent with old_layout 0.\n", + fontfilename,layout); + ec++; + weregone(0); if (gone) return; + } +if (have_layout && old_layout > 0 && + (!(layout & 128) || old_layout != (layout & 63))) { + printf("%s: ERROR- layout %d is inconsistent with old_layout %d.\n", + fontfilename,layout,old_layout); + ec++; + weregone(0); if (gone) return; + } +if (cmtcount<0) { + printf("%s: ERROR- cmt_count is negative.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } +if (ffrighttoleft<0 || ffrighttoleft>1) { + printf("%s: ERROR- rtol out of bounds.\n",fontfilename); + ec++; + weregone(0); if (gone) return; + } + +for (i=1;i<=cmtcount;i++) { + while(k=getc(fontfile),k!='\n'&&k!=EOF) ; /* Advance to end of line */ + } + +maxlinelength = 0; +currline=cmtcount+1; +fileline=(char*)my_alloc(sizeof(char)*(maxlen+1001)); +for (i=0;i<102;i++) { + readchar(); + if (gone) return; + } + +oldord=0; +while(fgets(fileline,maxlen+1000,fontfile)!=NULL) { + currline++; + len=strlen(fileline)-1; + if (len-100>maxlinelength) { + maxlinelength=len-100; + } + if (len>maxlen+100) { + printf("%s: ERROR- Code tag line way too long in line %d.\n", + fontfilename,currline); + ec++; + weregone(0); if (gone) return; + } + tmpcnt=sscanf(fileline,"%li",&theord); + if (tmpcnt<1) { + printf("%s: Warning- Extra chars after font in line %d.\n", + fontfilename,currline); + wc++; + weregone(0); if (gone) return; + break; + } + codetagcnt++; + if (theord>65535 && !bigcodetagwarn) { + printf("%s: Warning- Code tag > 65535 in line %d.\n", + fontfilename,currline); + printf("%s: (Above warning will only be printed once.)\n", + fontfilename); + bigcodetagwarn = 1; + wc++; + weregone(0); if (gone) return; + } + if (theord==-1) { + printf("%s: ERROR- Code tag -1 (unusable) in line %d.\n", + fontfilename,currline); + ec++; + weregone(0); if (gone) return; + break; + } + if (theord>=-255 && theord<=-249 &&!deutschcodetagwarn) { + printf("%s: Warning- Code tag in old Deutsch area in line %d.\n", + fontfilename,currline); + printf("%s: (Above warning will only be printed once.)\n", + fontfilename); + deutschcodetagwarn = 1; + wc++; + weregone(0); if (gone) return; + } + if (theord<127 && theord>31 && !asciicodetagwarn) { + printf("%s: Warning- Code tag in ASCII range in line %d.\n", + fontfilename,currline); + printf("%s: (Above warning will only be printed once.)\n", + fontfilename); + asciicodetagwarn = 1; + wc++; + weregone(0); if (gone) return; + } + else if (theord<=oldord && theord>=0 && oldord>=0 && !nonincrwarn) { + printf("%s: Warning- Non-increasing code tag in line %d.\n", + fontfilename,currline); + printf("%s: (Above warning will only be printed once.)\n", + fontfilename); + nonincrwarn = 1; + wc++; + weregone(0); if (gone) return; + } + oldord=theord; + readchar(); + if (gone) return; + } + +if (spectagcnt!=-1 && spectagcnt!=codetagcnt) { + printf("%s: ERROR- Inconsistent Codetag_Cnt value %d\n", + fontfilename, spectagcnt); + ec++; + weregone(0); if (gone) return; + } + +if (fontfile!=stdin) fclose(fontfile); + +weregone(1); if (gone) return; +} + + +int main(argc,argv) +int argc; +char *argv[]; +{ +int arg; + +if ((myname=strrchr(argv[0],'/'))!=NULL) { + myname++; + } +else { + myname = argv[0]; + } +if (argc<2) { + usageerr(); + } +for (arg=1;arg> 8); + } + + return crc; +} diff --git a/externals/figlet/crc.h b/externals/figlet/crc.h new file mode 100644 index 0000000000..bd7c5361f8 --- /dev/null +++ b/externals/figlet/crc.h @@ -0,0 +1,62 @@ +/* + * crc.h - CRC calculation routine + * + * Version 1.0.1 + */ + +/* + * Copyright (C) 1995, Edward B. Hamrick + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of the copyright holders + * not be used in advertising or publicity pertaining to distribution of + * the software without specific, written prior permission. The copyright + * holders makes no representations about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT + * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Changes from 1.0 to 1.0.1: + * Relicensed under the MIT license, with consent of the copyright holders. + * Claudio Matsuoka (Jan 11 2011) + */ + +/* + * This CRC algorithm is the same as that used in zip. Normally it + * should be initialized with 0xffffffff, and the final CRC stored + * should be crc ^ 0xffffffff. + * + * It implements the polynomial: + * + * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 + */ + +#ifndef __CRC_H +#define __CRC_H + +#ifdef __cplusplus +extern "C" { +#endif + +unsigned long CrcUpdate( /* returns updated crc */ + unsigned long crc, /* starting crc */ + unsigned char *buffer, /* buffer to use to update crc */ + long length /* length of buffer */ +); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/externals/figlet/figfont.txt b/externals/figlet/figfont.txt new file mode 100644 index 0000000000..8cbe6ea7b5 --- /dev/null +++ b/externals/figlet/figfont.txt @@ -0,0 +1,1695 @@ + _____ ___ ____ __ _ + | ___||_ _|/ ___| / _| ___ _ __ | |_ ___ _ + | |_ | || | _ | |_ / _ \ | '_ \ | __|/ __|(_) + | _| | || |_| || _|| (_) || | | || |_ \__ \ _ + |_| |___|\____||_| \___/ |_| |_| \__||___/(_) + + The FIGfont Version 2 FIGfont and FIGdriver Standard + === ======= ======= = ======= === ========= ======== + Draft 2.0 Copyright 1996, 1997 + by John Cowan and Paul Burton + Portions Copyright 1991, 1993, 1994 + by Glenn Chappell and Ian Chai + May be freely copied and distributed. + + Figlet lives at: http://www.figlet.org/ + + _____ __ __ + / ___/__ ___ / /____ ___ / /____ +/ /__/ _ \/ _ \/ __/ -_) _ \/ __(_-< +\___/\___/_//_/\__/\__/_//_/\__/___/ + + INTRODUCTION + BASIC DEFINITIONS AND CONCEPTS + "FIGfont" + "FIGcharacters" and "Sub-characters" + "FIGdriver" + "FIGure" + "FIG" + "Layout Modes" + "Smushing Rules" + "Hardblanks" + CREATING FIGFONTS + The Header Line + Interpretation of Layout Parameters + Setting Layout Parameters Step-by-Step + FIGfont Comments + FIGcharacter Data + - Basic Data Structure + - Character Codes + - Required FIGcharacters + - Code Tagged FIGcharacters + NOTES - AVOIDING ERRORS AND GENERAL ADVICE + CONTROL FILES + Standard Format + Extended Commands + STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS + CHART OF CAPABILITIES OF FIGLET 2.2.2 AND FIGWIN 1.0 + + +INTRODUCTION +============ + +This document specifies the format of font files, and the associated control +files, used by the FIGlet and FIGWin programs (FIGdrivers). It is written +for designers who wish to build fonts (FIGfonts) usable by either program, +and also serves as a standard for development of future versions or similar +FIGdrivers. Some features explained here are not supported by both programs. +See separate documentation to learn how to use FIGlet or FIGWin. + +NOTE: FIGWin 1.0 is packaged with a program called FIGfont Editor for Windows +1.0, which is just that. It does not require a complete understanding of +this document to create FIGfonts. However it is a good idea to become +familiar with the "BASIC DEFINITIONS AND CONCEPTS" information before using +it. + +If you design a FIGfont, please send an e-mail announcement to +, the FIGlet fonts mailing list, and email a copy +to info@figlet.org for us to put it on the ftp site (ftp://ftp.figlet.org/) + +BASIC DEFINITIONS AND CONCEPTS +===== =========== === ======== + +"FIGfont" + +A FIGfont is a file which represents the graphical arrangement of characters +representing larger characters. Since a FIGfont file is a text file, it can +be created with any text editing program on any platform. The filename of a +FIGfont file must end with ".flf", which stands for "IGettering +ont". + + +"FIGcharacters" and "Sub-characters" + +Because FIGfonts describe large characters which consist of smaller +characters, confusion can result when descussing one or the other. +Therefore, the terms "FIGcharacter" and "sub-character" are used, +respectively. + + +"FIGdriver" + +The term FIGdriver is used in this document to encompass FIGlet, FIGWin, and +any future programs which use FIGfonts. + + +"FIGure" + +A FIGure (thusly capitalized) is an image created by a FIGdriver. + + +"FIG" + +A bit of history: + +In Spring 1991, inspired by the Email signature of a friend named Frank, and +goaded on by Ian Chai, Glenn Chappell wrote a nifty little 170-line "C" +program called "newban", which would create large letters out of ordinary +text characters. At the time, it was only compiled for UNIX. In hindsight, +we now call it "FIGlet 1.0". FIGlet stands for rank, an, and lenn's +ters. In various incarnations, newban circulated around the net for a +couple of years. It had one font, which included only lowercase letters. + +In early 1993, Ian decided newban was due for a few changes, so together Ian +and Glenn added the full ASCII character set, to start with. First, though, +Ian had to find a copy of the source, since Glenn had tossed it away as not +worth the disk space. Ian and Glenn discussed what could be done with it, +decided on a general re-write, and, 7 months later, ended up with 888 lines +of code, 13 FIGfonts and documentation. This was FIGlet 2.0, the first real +release. + +To their great surprise, FIGlet took the net by storm. They received floods +of "FIGlet is great!" messages and a new contributed FIGfont about once a +week. To handle all the traffic, Ian quickly set up a mailing list, Daniel +Simmons kindly offered space for an FTP site, several people volunteered to +port FIGlet to non-Unix operating systems, ...and bug reports poured in. + +Because of these, and the need to make FIGlet more "international", Ian and +Glenn released a new version of FIGlet which could handle non-ASCII character +sets and right-to-left printing. This was FIGlet 2.1, which, in a couple of +weeks, became figlet 2.1.1. This weighed in at 1314 lines, and there were +over 60 FIGfonts. + +By late 1996, FIGlet had quite a following of fans subscribing to its mailing +list. It had been ported to MS-DOS, Macintosh, Amiga, Apple II GS, Atari ST, +Acorn and OS/2. FIGlet had been further updated, and there were nearly 200 +FIGfonts. + +John Cowan and Paul Burton are two FIGlet fans who decided to create new +versions. While John wrote FIGlet version 2.2 using C, Paul wrote FIGWin +1.0, the first true GUI (Windows) implementation of FIGlet, using Visual +Basic. John and Paul worked together to add new features to FIGfont files +which could be read by both programs, and together wrote this document, which +we hope helps to establish consistency in FIGfonts and help with the creation +of future FIGdrivers. FIGlet 2.2 has about 4800 lines of code, of which +over half is a support library for reading compressed files. + +Three years later, in July 2005, FIGlet 2.2.2 was released under a new License +(the ``Academic Free License 2.1''). This version has proved to be very +stable, and persisted for more five years until minor bugfixes and another +license change resulted in the release of FIGlet 2.2.3 in January 2011. All +license concerns involving contributed code were solved and FIGlet is now +distributed under the ``New BSD License''. Contributed fonts amounted to more +than 400. + +FIGlet 2.2 and FIGWin 1.0 both allow greater flexibility by use of new +information which can be contained in FIGfont files without interfering with +the function of older FIGdrivers. + +NOTE: The Macintosh version of FIGlet is still command-line driven as of this +writing, and a GUI version is very much in demand. The FIGlet C code is +written to be easily plugged in to a GUI shell, so it will be a relatively +easy task for a Macintosh developer. + + + + +"Layout Modes" + +A FIGdriver may arrange FIGcharacters using one of three "layout modes", +which define the spacing between FIGcharacters. The layout mode for the +horizontal axis may differ from the layout mode for the vertical axis. A +default choice is defined for each axis by every FIGfont. + +The three layout modes are: + + Full Size (Separately called "Full Width" or "Full Height".) + + Represents each FIGcharacter occupying the full width or + height of its arrangement of sub-characters as designed. + + Fitting Only (Separately called "Kerning or "Vertical Fitting".) + + Moves FIGcharacters closer together until they touch. + Typographers use the term "kerning" for this phenomenon + when applied to the horizontal axis, but fitting also + includes this as a vertical behavior, for which there is + apparently no established typographical term. + + Smushing (Same term for both axes.) + + Moves FIGcharacters one step closer after they touch, so that + they partially occupy the same space. A FIGdriver must decide + what sub-character to display at each junction. There are two + ways of making these decisions: by controlled smushing or by + universal smushing. + + Controlled smushing uses a set of "smushing rules" selected by + the designer of a FIGfont. (See "Smushing Rules" below.) + Each rule is a comparison of the two sub-characters which must + be joined to yield what to display at the junction. + Controlled smushing will not always allow smushing to occur, + because the compared sub-characters may not correspond to any + active rule. Wherever smushing cannot occur, fitting occurs + instead. + + Universal smushing simply overrides the sub-character from the + earlier FIGcharacter with the sub-character from the later + FIGcharacter. This produces an "overlapping" effect with some + FIGfonts, wherin the latter FIGcharacter may appear to be "in + front". + + A FIGfont which does not specify any smushing rules for a + particular axis indicates that universal smushing is to occur + when smushing is requested. Therefore, it is not possible for + a FIGfont designer to "forbid" smushing. However there are + ways to ensure that smushing does not cause a FIGfont to be + illegible when smushed. This is especially important for + smaller FIGfonts. (See "Hardblanks" for details.) + +For vertical fitting or smushing, entire lines of output FIGcharacters are +"moved" as a unit. + +Not all FIGdrivers do vertical fitting or smushing. At present, FIGWin 1.0 +does, but FIGlet 2.2 does not. Further, while FIGlet 2.2 allows the user to +override the FIGfont designer's set of smushing rules, FIGWin 1.0 does not. + +NOTE: In the documentation of FIGlet versions prior to 2.2, the term +"smushmode" was used to mean the layout mode, and this term further included +the smushing rules (if any) to be applied. However, since the layout mode +may or may not involve smushing, we are straying from the use of this +somewhat misleading term. + + +"Smushing Rules" + +Again, smushing rules are for controlled smushing. If none are defined to be +active in a FIGfont, universal smushing occurs instead. + +Generally, if a FIGfont is "drawn at the borders" using sub-characters +"-_|/\[]{}()<>", you will want to use controlled smushing by selecting from +the rules below. Otherwise, if your FIGfont uses a lot of other +sub-characters, do not select any rules and universal smushing will occur +instead. (See "Hardblanks" below if your FIGfont is very small and would +become illegible if smushed.) Experimentation is the best way to make these +decisions. + +There are six possible horizontal smushing rules and five possible vertical +smushing rules. Below is a description of all of the rules. + +NOTE: Ignore the "code values" for now. They are explained later. + + The Six Horizontal Smushing Rules + + Rule 1: EQUAL CHARACTER SMUSHING (code value 1) + + Two sub-characters are smushed into a single sub-character + if they are the same. This rule does not smush + hardblanks. (See "Hardblanks" below.) + + Rule 2: UNDERSCORE SMUSHING (code value 2) + + An underscore ("_") will be replaced by any of: "|", "/", + "\", "[", "]", "{", "}", "(", ")", "<" or ">". + + Rule 3: HIERARCHY SMUSHING (code value 4) + + A hierarchy of six classes is used: "|", "/\", "[]", "{}", + "()", and "<>". When two smushing sub-characters are + from different classes, the one from the latter class + will be used. + + Rule 4: OPPOSITE PAIR SMUSHING (code value 8) + + Smushes opposing brackets ("[]" or "]["), braces ("{}" or + "}{") and parentheses ("()" or ")(") together, replacing + any such pair with a vertical bar ("|"). + + Rule 5: BIG X SMUSHING (code value 16) + + Smushes "/\" into "|", "\/" into "Y", and "><" into "X". + Note that "<>" is not smushed in any way by this rule. + The name "BIG X" is historical; originally all three pairs + were smushed into "X". + + Rule 6: HARDBLANK SMUSHING (code value 32) + + Smushes two hardblanks together, replacing them with a + single hardblank. (See "Hardblanks" below.) + + + The Five Vertical Smushing Rules + + Rule 1: EQUAL CHARACTER SMUSHING (code value 256) + + Same as horizontal smushing rule 1. + + Rule 2: UNDERSCORE SMUSHING (code value 512) + + Same as horizontal smushing rule 2. + + Rule 3: HIERARCHY SMUSHING (code value 1024) + + Same as horizontal smushing rule 3. + + Rule 4: HORIZONTAL LINE SMUSHING (code value 2048) + + Smushes stacked pairs of "-" and "_", replacing them with + a single "=" sub-character. It does not matter which is + found above the other. Note that vertical smushing rule 1 + will smush IDENTICAL pairs of horizontal lines, while this + rule smushes horizontal lines consisting of DIFFERENT + sub-characters. + + Rule 5: VERTICAL LINE SUPERSMUSHING (code value 4096) + + This one rule is different from all others, in that it + "supersmushes" vertical lines consisting of several + vertical bars ("|"). This creates the illusion that + FIGcharacters have slid vertically against each other. + Supersmushing continues until any sub-characters other + than "|" would have to be smushed. Supersmushing can + produce impressive results, but it is seldom possible, + since other sub-characters would usually have to be + considered for smushing as soon as any such stacked + vertical lines are encountered. + + +"Hardblanks" + +A hardblank is a special sub-character which is displayed as a blank (space) +in rendered FIGures, but is treated more like a "visible" sub-character when +fitting or smushing horizontally. Therefore, hardblanks keep adjacent +FIGcharacters a certain distance apart. + +NOTE: Hardblanks act the same as blanks for vertical operations. + +Hardblanks have three purposes: + + 1) Hardblanks are used to create the blank (space) FIGcharacter. + + Usually the space FIGcharacter is simply one or two vertical + columns of hardblanks. Some slanted FIGfonts as shown below + have a diagonal arrangement of hardblanks instead. + + 2) Hardblanks can prevent "unreasonable" fitting or smushing. + + Normally when fitting or smushing, the blank (space) + sub-character is considered "vacant space". In the following + example, a capital "C" FIGcharacter is smushed with a "minus" + FIGcharacter. + ______ ______ + / ____/ / ____/ + / / ____ >>-Becomes-> / / ____ + / /___ /___/ / /__/___/ + \____/ \____/ + + The FIGure above looks like a capital G. To prevent this, a + FIGfont designer might place a hardblank in the center of the + capital C. In the following example, the hardblank is + represented as a "$": + ______ ______ + / ____/ / ____/ + / / $ ____ >>-Becomes-> / / ____ + / /___ /___/ / /___/___/ + \____/ \____/ + + Using hardblanks in this manner ensures that FIGcharacters + with a lot of empty space will not be unreasonably "invaded" + by adjacent FIGcharacters. Generally, FIGcharacters such as + capital C, L or T, or small punctuation marks such as commas, + may contain hardblanks, since they may contain a lot of vacant + space which is "accessible" from either side. + + 3) Hardblanks can prevent smushing from making FIGfonts illegible. + + This legitimate purpose of hardblanks is often overused. If a + FIGfont designer is absolutely sure that smushing "visible" + sub-characters would make their FIGfont illegible, hardblanks + may be positioned at the end of each row of sub-characters, + against the visible sub-characters, creating a barrier. + + With older FIGdrivers, using hardblanks for this purpose meant + that FIGcharacters would have to be separated by at least one + blank in output FIGures, since only a hardblank could smush + with another hardblank. However with the advent of universal + smushing, this is no longer necessary. Hardblanks ARE + overriden by any visible sub-character when performing + universal smushing. Hardblanks still represent a "stopping + point", but only AFTER their locations are occupied. + + NOTE: Earlier it was stated that universal smushing overrides + the sub-character from the former FIGcharacter with the + sub-character from the latter FIGcharacter. Hardblanks (and + blanks or spaces) are the exception to this rule; they will + always be overriden by visible sub-characters, regardless of + which FIGcharacter contains the hardblank. This ensures that + no visible sub-characters "disappear". + + Therefore, one can design a FIGfont with a default behavior of + universal smushing, while the output FIGure would LOOK like + the effect of fitting, or even full size if additional + hardblanks are used. If a user "scales down" the layout mode + to fitting, the result would look like "extra spacing" between + FIGcharacters. + + Taking this concept further, a FIGcharacter may also include + extra blanks (spaces) on the left side of each FIGcharacter, + which would define the FIGcharacter's width as slightly larger + than required for the visible sub-characters and hardblanks. + With such a FIGfont, a user who further "scales down" the + layout mode to full size would see even greater spacing. + + These techniques prevent horizontal smushing from causing a + FIGfont to become illegible, while offering greater + flexibility of output to users. + + NOTE: These techniques cannot be used to prevent vertical + smushing of visible sub-characters, since hardblanks are not + respected in the vertical axis. Although it is possible to + select only one vertical smushing rule which involves only + sub-characters which are not used in your FIGfont, it is + recommend that you do NOT do so. In our opinion, most users + would prefer to get what they ask for, rather than being + told, in effect: "I, the FIGfont designer, have decided that + you wouldn't like the results of vertical smushing, so I have + prevented you from trying it." Instead, we recommend setting + the default behavior to either fitting or full height, and + either allowing universal smushing, or selecting vertical + smushing rules which seem most appropriate. A user of your + FIGfont will quickly see why you did not choose smushing as + the default vertical layout mode, and will agree with you. + + +"Character Sets" and "Character Codes" + +When you type using your keyboard, you are actually sending your computer a +series of numbers. Each number must be interpreted by your computer so that +it knows what character to display. The computer uses a list of definitions, +called a "character set". The numbers which represent each character are + called "character codes". + +There are many character sets, most of which are internationally accepted as +standards. By far, the most common character set is ASCII, which stands for +"American Standard Code for Information Interchange". ASCII identifies its +characters with codes ranging from 0 to 127. + +NOTE: The term "ASCII art" has become well-understood to mean artistic images +which consist of characters on your screen (such as FIGures). + +For a list of the printable ASCII characters with the corresponding codes, +see the section "REQUIRED CHARACTERS" below. The other ASCII codes in the +range of 0 through 31 are "control characters" such as carriage-return +(code 13), linefeed/newline (code 10), tab (code 9), backspace (code 8) or +null (code 0). Code 127 is a delete in ASCII. + +Getting more technical for just a moment: A byte consisting of 8 bits (eight + 1's or 0's) may represent a number from 0 to 255. Therefore, most computers +have DIRECT access to 256 characters at any given time. A character set +which includes 256 characters is called an 8-bit character set. + +For Latin-based languages, ASCII is almost always the first half of a larger +8-bit character set. Latin-1 is the most common example of an 8-bit +character set. Latin-1 includes all of ASCII, and adds characters with codes +from 128 to 255 which include umlauted ("double-dotted") letters and +characters with various other accents. In the United States, Windows and +most Unix systems have Latin-1 directly available. + +Most modern systems allow the possibility of changing 8-bit character sets. +On Windows systems, character sets are referred to as "code pages". There +are many other character sets which are not mentioned here. DOS has its own +character set (which also has international variants) that includes graphics +characters for drawing lines. It is also an extension of ASCII. + +For some languages, 8-bit character sets are insufficient, particularly on +East Asian systems. Therefore, some systems allow 2 bytes for each +character, which multiplies the 256 possibilties by 256, resulting in 65536 +possible characters. (Much more than the world will ever need.) + +Unicode is a character set standard which is intended to fulfill the +worldwide need for a single character set which includes all characters used +worldwide. Unicode includes character codes from 0 to 65535, although at +present, only about 22,000 characters have been officially assigned and named +by the Unicode Consortium. The alphabets and other writing systems +representable with Unicode include all Latin-alphabet systems, Greek, +Russian and other Cyrillic-alphabet systems, Hebrew, Arabic, the various +languages of India, Chinese, Japanese, Korean, and others. The existing +Unicode symbols include chess pieces, astrological signs, gaming symbols, +telephones, pointing fingers, etc. --- just about any type of FIGcharacter +you may wish to create. Unicode is constantly (but slowly) being extended +to handle new writing systems and symbols. Information on Unicode is +available at http://www.unicode.org and at ftp://unicode.org . + +Unicode, Latin-1, and ASCII all specify the same meanings for overlapping +character codes: ASCII 65 = Latin-1 65 = Unicode 65 = "A", formally known +as "LATIN CAPITAL LETTER A". + +Since a keyboard usually has only about 100 keys, your computer may contain +a program called a "keyboard map", which will interpret certain keystrokes +or combinations of keystrokes as different character codes. Keyboard maps +use "mapping tables" to make these determinations. The appropriate keyboard +activity for a given character code may involve several keystrokes. Almost +all systems are capable of handling at least 8-bit character sets (containing +256 characters), so there is always an active keyboard map, at least for +those characters which are not actually painted on the keys. (United States +users may not even know that their computer can interpret special keystrokes. +Such keystrokes may be something similar to holding down the ALT key while +typing a character code on the numeric keypad. Try it!) + +Below are characters 160 through 255, AS REPRESENTED ON YOUR SYSTEM. + +  ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ + ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ + +IMPORTANT NOTE: Depending on which character set is active on your system, +you may see different characters. This document (like all computer +documents) does not contains characters per se, only bytes. What you see +above is your particular computer's representation of these byte values. +In other words, your active character set. However, if it is Latin-1, the +first visible character is an inverted "!", and the last is an umlauted "y". +Although we can safely assume your computer has ASCII, it does not +necessarily have the Latin-1 character set active. + +What does all this have to do with FIGfonts??? + +First, it should be evident that it is best to use only ASCII characters for +sub-characters when possible. This will ensure portability to different +platforms. + +FIGlet has gained international popularity, but early versions were made to +handle only FIGcharacters with assigned character codes corresponding to +ASCII. So, over the years there have been four methods used to create +"virtual mapping tables" within the program itself: + + The first method was simply to create FIGcharacters which do not + look like the ASCII character set implies. For example, a + FIGfont might contain Greek letters, and within its comments, it + may say, "If you type A, you'll get a Greek Alpha" etc. With + the advent of newer features, it is preferable not to use this + method. Instead, when possible, add new FIGcharacters to + existing FIGfonts or create new FIGfonts with FIGcharacters coded + to match the expectations of ASCII/Latin-1/Unicode, and create an + appropriate control file. (See "CONTROL FILES" below.) Remember + that Unicode includes almost any character for which you may want + to create a FIGcharacter. + + The second method was very specific, to accommodate the German + audience. A special option was added to the FIGlet program + which would re-route input characters "[", "\", and "]" to + umlauted A, O and U, while "{", "|", and "}" would become the + respective lowercase versions of these. Also, "~" was made to + become the s-z character when this special option was used. This + was called "the -D option." The addition of this feature meant + that all compatible FIGfonts must contain these Deutsch (German) + FIGcharacters, in addition to the ASCII FIGcharacters. Although + this option is still available in the most recent version, it is + no longer necessary, as the same result can be achieved by the + newer features described below. However, the requirement for + Deutsch FIGcharacters remains for backward compatibility. (Or at + least zero-width FIGcharacters in their place.) + + Later, FIGlet was made to accept control files, which are quite + literally a form of mapping table. (See "CONTROL FILES" below.) + This was a significant advance for internationalization. + + FIGlet 2.2 can now accept specially encoded formats of input + text which imply more than one byte per character. + + +CREATING FIGFONTS +======== ======== + +NOTE: FIGWin 1.0 is packaged with a program called FIGfont Editor for Windows +1.0, which is just that. There is no need to read further if you intend to +use it. However, the section "CONTROL FILES" below is still relevant. + +Since a FIGfont file is a text file, it can be created with any text editing +program on any platform, and will still be compatible with FIGdrivers on all +operating systems, except that the bytes used to indicate the end of each +text line may vary. (PC's use carriage return and linefeed at the end of +each line, Macintosh uses carriage return only, and UNIX uses linefeed only.) + +This minor difference among operating systems is handled easily by setting +your FTP program to ASCII mode during upload or download. So there is no +need to be concerned about this as long as you remember to do this during +file transfer. + +The filename of a FIGfont file must end with ".flf", which stands for +"IGettering ont". The first part of the filename should contain +only letters, and should be lowercase on operating systems which permit case +sensitive filenames. The filename should be unique in the first 8 +characters, since some older file systems truncate longer filenames. + +It is easier to modify an existing FIGfont than it is to create a new one +from scratch. The first step is to read and understand this document. +You may want to load "standard.flf" or another FIGfont into a text editor as +an example while you read. + +A FIGfont file contains three portions: a header line, comments, and +FIGcharacter data. + + +THE HEADER LINE + +The header line gives information about the FIGfont. Here is an example +showing the names of all parameters: + + flf2a$ 6 5 20 15 3 0 143 229 NOTE: The first five characters in + | | | | | | | | | | the entire file must be "flf2a". + / / | | | | | | | \ + Signature / / | | | | | \ Codetag_Count + Hardblank / / | | | \ Full_Layout* + Height / | | \ Print_Direction + Baseline / \ Comment_Lines + Max_Length Old_Layout* + + * The two layout parameters are closely related and fairly complex. + (See "INTERPRETATION OF LAYOUT PARAMETERS".) + +For those desiring a quick explanation, the above line indicates that this +FIGfont uses "$" to represent the hardblank in FIGcharacter data, it has +FIGcharacters which are 6 lines tall, 5 of which are above the baseline, no +line in the FIGfont data is more than 20 columns wide, the default horizontal +layout is represented by the number 15, there are 3 comment lines, the +default print direction for this FIGfont is left-to-right, a complete +description of default and possible horizontal and vertical layouts is +represented by the number 143, and there are 229 code-tagged characters. + +The first seven parameters are required. The last three (Direction, +Full_Layout, and Codetag_Count, are not. This allows for backward +compatibility with older FIGfonts, but a FIGfont without these parameters would +force a FIGdriver to "guess" (by means not described in this document) the +information it would expect to find in Full_Layout. For this reason, inclusion +of all parameters is strongly recommended. + +Future versions of this standard may add more parameters after Codetag_Count. + +A description of each parameter follows: + + Signature + +The signature is the first five characters: "flf2a". The first four +characters "flf2" identify the file as compatible with FIGlet version 2.0 or +later (and FIGWin 1.0). The "a" is currently ignored, but cannot be omitted. +Different characters in the "a" location may mean something in future +versions of this standard. If so, you can be sure your FIGfonts will still +work if this character is "a". + + Hardblank + +Immediately following the signature is the hardblank character. The +hardblank character in the header line defines which sub-character will be +used to represent hardblanks in the FIGcharacter data. + +By convention, the usual hardblank is a "$", but it can be any character +except a blank (space), a carriage-return, a newline (linefeed) or a null +character. If you want the entire printable ASCII set available to use, make +the hardblank a "delete" character (character code 127). With the exception +of delete, it is inadvisable to use non-printable characters as a hardblank. + + Height + +The Height parameter specifies the consistent height of every FIGcharacter, +measured in sub-characters. Note that ALL FIGcharacters in a given FIGfont +have the same height, since this includes any empty space above or below. +This is a measurement from the top of the tallest FIGcharacter to the bottom +of the lowest hanging FIGcharacter, such as a lowercase g. + + Baseline + +The Baseline parameter is the number of lines of sub-characters from the +baseline of a FIGcharacter to the top of the tallest FIGcharacter. The +baseline of a FIGfont is an imaginary line on top of which capital letters +would rest, while the tails of lowercase g, j, p, q, and y may hang below. +In other words, Baseline is the height of a FIGcharacter, ignoring any +descenders. + +This parameter does not affect the output of FIGlet 2.2 or FIGWin 1.0, but +future versions or other future FIGdrivers may use it. The Baseline +parameter should be correctly set to reflect the true baseline as described +above. It is an error for Baseline to be less than 1 or greater than the +Height parameter. + + Max_Length + +The Max_Length parameter is the maximum length of any line describing a +FIGcharacter. This is usually the width of the widest FIGcharacter, plus 2 +(to accommodate endmarks as described later.) However, you can (and probably +should) set Max_Length slightly larger than this as a safety measure in case +your FIGfont is edited to include wider FIGcharacters. FIGlet (but not +FIGWin 1.0) uses this number to minimize the memory taken up by a FIGfont, +which is important in the case of FIGfonts with many FIGcharacters. + + Old_Layout + +(See "INTERPRETATION OF LAYOUT PARAMETERS" below.) + + Comment_Lines + +Between the first line and the actual FIGcharacters of the FIGfont are the +comment lines. The Comment_Lines parameter specifies how many lines there +are. Comments are optional, but recommended to properly document the origin +of a FIGfont. + + Print_Direction + +The Print_Direction parameter tells which direction the font is to be +printed by default. A value of 0 means left-to-right, and 1 means +right-to-left. If this parameter is absent, 0 (left-to-right) is assumed. +Print_Direction may not specify vertical print, although FIGdrivers are +capable of vertical print. Versions of FIGlet prior to 2.1 ignore this +parameter. + + Full_Layout + +(See "INTERPRETATION OF LAYOUT PARAMETERS" just below.) + + Codetag_Count + +Indicates the number of code-tagged (non-required) FIGcharacters in this +FIGfont. This is always equal to the total number of FIGcharacters in the font +minus 102. This parameter is typically ignored by FIGdrivers, but can be +used to verify that no characters are missing from the end of the FIGfont. +The chkfont program will display the number of codetagged characters +in the FIGfont on which it is run, making it easy to insert this parameter +after a FIGfont is written. + + +INTERPRETATION OF LAYOUT PARAMETERS + +Full_Layout describes ALL information about horizontal and vertical layout: +the default layout modes and potential smushing rules, even when smushing is +not a default layout mode. + +Old_Layout does not include all of the information desired by the most +recent FIGdrivers, which is the inspiration for the creation of the new +Full_Layout parameter. Old_Layout is still required for backward +compatibility, and FIGdrivers must be able to interpret FIGfonts which do not +have the Full_Layout parameter. (See "STANDARDIZED CAPABILITIES OF CURRENT +AND FUTURE FIGDRIVERS".) + +Versions of FIGlet prior to 2.2 do not recognize the Full_Layout parameter. +Documentation accompanying FIGlet versions prior to 2.2 refer to Old_Layout +as "smushmode", which is somewhat misleading since it can indicate layout +modes other than smushing. + +Old_Layout and Full_Layout must contain some redundant information. + +Setting the layout parameters is a matter of adding numbers together ("code +values"). What follows is a chart of the meanings of all code values. +(You may skip down to "SETTING LAYOUT PARAMETERS STEP BY STEP" if you prefer, +or if you find this portion confusing.) + +Full_Layout: (Legal values 0 to 32767) + + 1 Apply horizontal smushing rule 1 when smushing + 2 Apply horizontal smushing rule 2 when smushing + 4 Apply horizontal smushing rule 3 when smushing + 8 Apply horizontal smushing rule 4 when smushing + 16 Apply horizontal smushing rule 5 when smushing + 32 Apply horizontal smushing rule 6 when smushing + 64 Horizontal fitting (kerning) by default + 128 Horizontal smushing by default (Overrides 64) + 256 Apply vertical smushing rule 1 when smushing + 512 Apply vertical smushing rule 2 when smushing + 1024 Apply vertical smushing rule 3 when smushing + 2048 Apply vertical smushing rule 4 when smushing + 4096 Apply vertical smushing rule 5 when smushing + 8192 Vertical fitting by default + 16384 Vertical smushing by default (Overrides 8192) + +When no smushing rules are included in Full_Layout for a given axis, the +meaning is that universal smushing shall occur, either by default or when +requested. + +Old_Layout: (Legal values -1 to 63) + + -1 Full-width layout by default + 0 Horizontal fitting (kerning) layout by default* + 1 Apply horizontal smushing rule 1 by default + 2 Apply horizontal smushing rule 2 by default + 4 Apply horizontal smushing rule 3 by default + 8 Apply horizontal smushing rule 4 by default + 16 Apply horizontal smushing rule 5 by default + 32 Apply horizontal smushing rule 6 by default + +* When Full_Layout indicates UNIVERSAL smushing as a horizontal default +(i.e., when none of the code values of horizontal smushing rules are included +and code value 128 is included in Full_Layout) Old_Layout must be set to 0 +(zero). Older FIGdrivers which cannot read the Full_Layout parameter are +also incapable of universal smushing. Therefore they would be directed to +the "next best thing", which is horizontal fitting (kerning). + +NOTE: You should NOT add the -1 value to any positive code value for +Old_Layout. This would be a logical contradiction. + +See "STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS" for the +behavior of a FIGdriver when the Full_Layout parameter is absent (presumably +in an older FIGfont). + +The following rules establish consistency between Old_Layout and Full_Layout. + + If full width is to be the horizontal default: + Old_Layout must be -1. + Full_Layout must NOT include code values 64 nor 128. + + If horizontal fitting (kerning) is to be default: + Old_Layout must be 0. + Full_Layout must include code value 64. + Full_Layout must NOT include code value 128. + + If CONTROLLED smushing is to be the horizontal default: + Old_Layout must be a positive number, represented by the added + code values of all desired horizontal smushing rules. + Full_Layout must include the code values for the SAME set of + horizontal smushing rules as included in Old_Layout. + Full_Layout must include code value 128. + + If UNIVERSAL smushing is to be the horizontal default: + Old_Layout must be 0. + Full_Layout must include code value 128. + Full_Layout must NOT include any code value under 64. + +In general terms, if Old_Layout specifies horizontal smushing rules, +Full_Layout must specify the same set of horizontal rules, and both must +indicate the same horizontal default layout mode. + + +SETTING LAYOUT PARAMETERS STEP-BY-STEP + +The following step-by-step process will yield correct and consistent values +for the two layout parameters. You may skip this if you find the +explanations above easier to use. + +Step 1: Start with 0 for both numbers. + + Write "Old_Layout" and "Full_Layout" on a piece of paper. + Write the number 0 next to each. + The number 0 may be crossed out and changed several times below. + Go to step 2. + +Step 2: Set the DEFAULT HORIZONTAL LAYOUT MODE. + + If you want to use FULL WIDTH as the default + Make Old_Layout -1 + Go to step 3. + If you want to use HORIZONTAL FITTING (kerning) as the default + Make Full_Layout 64 + Go to step 3. + If you want to use HORIZONTAL SMUSHING as the default + Make Full_Layout 128 + Go to step 3. + +Step 3: Specify HOW TO SMUSH HORIZONTALLY WHEN SMUSHING. + + If you want to use UNIVERSAL smushing for the horizontal axis + Go to step 4. + If you want to use CONTROLLED smushing for the horizontal axis + Add together the code values for all the horizontal smushing + rules you want from the list below to get the horizontal + smushing rules total. + + EQUAL CHARACTER SMUSHING 1 + UNDERSCORE SMUSHING 2 + HIERARCHY SMUSHING 4 + OPPOSITE PAIR SMUSHING 8 + BIG X SMUSHING 16 + HARDBLANK SMUSHING 32 + + Horizontal smushing rules total: ___ + + If Full_Layout is currently 128 + Change Old_Layout to the horizontal smushing rules total. + Increase Full_Layout by the horizontal smushing rules total. + Go to Step 4. + If Full_Layout is currently 0 or 64 + Increase Full_Layout by the horizontal smusing rules total. + Go to Step 4. + +Step 4: Set the DEFAULT VERTICAL LAYOUT MODE. + + If you want to use FULL HEIGHT as the default + Go to step 5. + If you want to use VERTICAL FITTING as the default + Increase Full_Layout by 8192. + Go to step 5. + If you want to use VERTICAL SMUSHING as the default + Increase Full_Layout by 16384. + Go to step 5. + +Step 5: Specify HOW TO SMUSH VERTICALLY WHEN SMUSHING. + + If you want to use UNIVERSAL smushing for the vertical axis + Go to step 6. + If you want to use CONTROLLED smushing for the vertical axis + Add together the code values for all the vertical smushing + rules you want from the list below to get the vertical + smushing rules total. + + EQUAL CHARACTER SMUSHING 256 + UNDERSCORE SMUSHING 512 + HIERARCHY SMUSHING 1024 + HORIZONTAL LINE SMUSHING 2048 + VERTICAL LINE SUPERSMUSHING 4096 + + Vertical smushing rules total: ____ + + Increase Full_Layout by the vertical smushing rules total. + Go to step 6. + +Step 6: You're done. + +The resulting value of Old_Layout will be a number from -1 to 63. +The resulting value of Full_Layout will be a number from 0 and 32767. + + +FIGFONT COMMENTS + +After the header line are FIGfont comments. The comments can be as many +lines as you like, but should at least include your name and Email address. +Here is an example which also shows the header line. + + flf2a$ 6 5 20 15 3 0 143 + Example by Glenn Chappell 8/94 + Permission is hereby given to modify this font, as long as the + modifier's name is placed on a comment line. + +Comments are not required, but they are appreciated. Please comment your +FIGfonts. + +Remember to adjust the Comment_Lines parameter as you add lines to your +comments. Don't forget that blank lines DO count. + + +FIGCHARACTER DATA +============ ==== + +The FIGcharacter data begins on the next line after the comments and +continues to the end of the file. + +BASIC DATA STRUCTURE + +The sub-characters in the file are given exactly as they should be output, +with two exceptions: + + 1) Hardblanks should be the hardblank character specified in the + header line, not a blank (space). + + 2) Every line has one or two endmark characters, whose column + locations define the width of each FIGcharacter. + +In most FIGfonts, the endmark character is either "@" or "#". The FIGdriver +will eliminate the last block of consecutive equal characters from each line +of sub-characters when the font is read in. By convention, the last line of +a FIGcharacter has two endmarks, while all the rest have one. This makes it +easy to see where FIGcharacters begin and end. No line should have more +than two endmarks. + +Below is an example of the first few FIGcharacters, taken from small.flf. + +NOTE: The line drawn below consisting of "|" represents the left margin of +your editor. It is NOT part of the FIGfont. Also note that hardblanks are +represented as "$" in this FIGfont, as would be described in the header line. + + |$@ + |$@ + blank/space |$@ + |$@ + |$@@ + | _ @ + || |@ + exclamation point ||_|@ + |(_)@ + | @@ + | _ _ @ + |( | )@ + double quote | V V @ + | $ @ + | @@ + | _ _ @ + | _| | |_ @ + number sign ||_ . _|@ + ||_ _|@ + | |_|_| @@ + | @ + | ||_@ + dollar sign |(_-<@ + |/ _/@ + | || @@ + +Notice that each FIGcharacter occupies the same number of lines (6 lines, in +this case), which must also be expressed in the header line as the Height +parameter. + +Also notice that for every FIGcharacter, there must be a consistent width +(length) for each line once the endmarks are removed. To do otherwise would +be an error. + +Be aware of the vertical alignment of each FIGcharacter within its height, +so that all FIGcharacters will be properly lined up when printed. + +If one of the last sub-characters in a particular FIGcharacter is "@", you +should use another character for the endmark in that FIGcharacter so that +the intended "@" is not interpreted as an endmark. "#" is a common +alternative. + +Load a few existing FIGfonts into your favorite text editor for other +examples. + + +REQUIRED FIGCHARACTERS + +Some FIGcharacters are required, and must be represented in a specific order. +Specifically: all of the printable character codes from ASCII shown in the +table below, in order, plus character codes 196, 214, 220, 228, 246, 252, +and 223, in that order. In Latin-1, these extra 7 characters represent the +following German characters: umlauted "A", "O", "U", "a", "o" and "u"; and +also "ess-zed". + + Printable portion of the ASCII character set: + + 32 (blank/space) 64 @ 96 ` + 33 ! 65 A 97 a + 34 " 66 B 98 b + 35 # 67 C 99 c + 36 $ 68 D 100 d + 37 % 69 E 101 e + 38 & 70 F 102 f + 39 ' 71 G 103 g + 40 ( 72 H 104 h + 41 ) 73 I 105 i + 42 * 74 J 106 j + 43 + 75 K 107 k + 44 , 76 L 108 l + 45 - 77 M 109 m + 46 . 78 N 110 n + 47 / 79 O 111 o + 48 0 80 P 112 p + 49 1 81 Q 113 q + 50 2 82 R 114 r + 51 3 83 S 115 s + 52 4 84 T 116 t + 53 5 85 U 117 u + 54 6 86 V 118 v + 55 7 87 W 119 w + 56 8 88 X 120 x + 57 9 89 Y 121 y + 58 : 90 Z 122 z + 59 ; 91 [ 123 { + 60 < 92 \ 124 | + 61 = 93 ] 125 } + 62 > 94 ^ 126 ~ + 63 ? 95 _ + + Additional required Deutsch FIGcharacters, in order: + + 196 (umlauted "A" -- two dots over letter "A") + 214 (umlauted "O" -- two dots over letter "O") + 220 (umlauted "U" -- two dots over letter "U") + 228 (umlauted "a" -- two dots over letter "a") + 246 (umlauted "o" -- two dots over letter "o") + 252 (umlauted "u" -- two dots over letter "u") + 223 ("ess-zed" -- see FIGcharacter illustration below) + ___ + / _ \ + | |/ / + Ess-zed >>---> | |\ \ + | ||_/ + |_| + +If you do not wish to define FIGcharacters for all of those required above, +you MAY create "empty" FIGcharacters in their place by placing endmarks flush +with the left margin. The Deutsch FIGcharacters are commonly created as +empty. If your FIGfont includes only capital letters, please copy them to +the appropriate lowercase locations, rather than leaving lowercase letters +empty. A FIGfont which does not include at least all ASCII letters, a space, +and a few basic punctuation marks will probably frustrate some users. (For +example "@" is more frequently desired as a FIGcharacter than you may think, +since Email addresses may be written as FIGures.) + + +CODE TAGGED FIGCHARACTERS + +After the required FIGcharacters, you may create FIGcharacters with any +character code in the range of -2147483648 to +2147483647. (Over four +billion possibilities, which is "virtual infinity" for this purpose.) +One exception: character code -1 is NOT allowed for technical reasons. +It is advisable to assign character codes such that the appearance of your +FIGcharacters matches the expectations of ASCII/Latin-1/Unicode, with a few +exceptions: + + 1) If a FIGcharacter with code 0 is present, it is treated + specially. It is a FIGfont's "missing character". Whenever + the FIGdriver is told to print a character which doesn't exist + in the current FIGfont, it will print FIGcharacter 0. If there + is no FIGcharacter 0, nothing will be printed. + + 2) If a FIGfont contains a non-Latin alphabet in character codes + in the ASCII range 32-126 (which is discouraged), we have found + it helpful to include a human-readable translation table as one + of the FIGcharacters instead of a "glyph". Typically, the "~" + would contain this table. The translation table FIGcharacter + would contain a list of all the special characters in the + FIGfont, along with the ASCII characters to which they + correspond. Keep this table no more than 79 columns wide. + (Thanks to Gedaliah Friedenberg for this idea.) + + 3) In more extensive Unicode fonts, you can assign a negative + character code (other than -1) to one or more translation + tables, similar to #2 above. (All Unicode character codes are + positive.) And, you will most likely suggest within the + comments that a user access one of several control files (See + "CONTROL FILES" below) to gain access to Latin-2, Latin-3, or + other 8-bit standardized character sets. The control files may + redirect the "~" character to one of the negative character codes so + that the translation table would display the table when "~" is + given for input. Doing this allows you to still have a "~" + FIGcharacter for those who do not use a control file. + +Those FIGcharacters which are not required must have an explicit character +code in a separate line preceding them, called a "code tag". A code tag +contains the value of the character code, followed by whitespace (a few +spaces), and perhaps an optional comment. The comment is usually the name of +the FIGcharacter. The Unicode Consortium has assigned formal names to all +officially accepted characters, and these may be used. An entire code tag, +including the comment, should not occupy more than 95 columns. (Over 100 +characters here may make older versions of FIGlet crash.) + +Here is an example, showing two code tagged FIGcharacters after the last two +required Deutsch FIGcharacters. Again, the line drawn below consisting of +"|" represents the left margin of your editor, and is NOT part of the FIGfont. + + | _ _ @ + |(_) (_)@ + || | | |@ + || |_| |@ + | \__,_|@ + | @@ + | ___ @ + | / _ \@ + || |/ /@ + || |\ \@ + || ||_/@ + ||_| @@ + |161 INVERTED EXCLAMATION MARK + | _ @ + |(_)@ + || |@ + || |@ + ||_|@ + | @@ + |162 CENT SIGN + | _ @ + | | | @ + | / __)@ + || (__ @ + | \ )@ + | |_| @@ + + +A character code may be expressed in decimal (as shown above, numbers we're +all familiar with), or in Octal (seldom used) or in hexadecimal. + +Character codes expressed in octal must be preceded by "0" (zero), and if +negative, "-" (minus) must precede the "0". There are eight octal digits: +01234567. You may recall octal numbers from school as "base 8 numbers". + +Character codes expressed in hexadecimal must be preceded by "0x" or "0X". +(That's also a zero.) If negative, the "-" must precede the "0x". There are +16 hexadecimal digits: 01234567890ABCDEF. (The "letter-digits" may also be +lowercase.) Hexadecimal is "base 16". + +It is common to express character codes less than 256 (in the range of an +8-bit character set) as decimal, while FIGfonts which extend into the Unicode +range would have character codes expressed in hexadecimal. This is because +the Unicode Standard expresses character codes in hexadecimal, which is +helpful for programmers. + +The code tagged FIGcharacters may be listed in any order, but simple +sequential order is recommended. + +If two or more FIGcharacters have the same character code, the last one in +the FIGfont is the one used. It is common for the Deutsch FIGcharacters to +be given twice in a FIGfont, just to maintain a consistent order for the +Latin-1 range (128 to 255). + +It is not advisable to assign character codes in the range of 1 to 31, since +this range includes control characters in ASCII. Character code 127 is a +delete in ASCII, and is also not advised. Character codes 128 to 159 are +additional control characters in Latin-1, and they too should not be used. +All of the above are legal, technically, but are not part of what is legal +for input, so they could only be accessed by use of a control file. +(See "CONTROL FILES" below.) If you are still tempted to use them, consider +negative character codes instead, which are meaningless in all standardized +character sets. + +Again, the character code -1 is illegal for technical reasons. + + +NOTES - AVOIDING ERRORS AND GENERAL ADVICE +===== ======== ====== === ======= ====== + +It is very important that every character in a font has the same height, and, +once the endmarks are removed, that all the lines constituting a single +FIGcharacter have the same length. Be careful also that no lines in the font +file have trailing blanks (spaces), as the FIGdriver will take these to be +the endmarks. (FIGWin 1.0 will not consider blanks to be endmarks.) + +Errors in a FIGfont can be detected by using the "chkfont" program, +part of the standard FIGlet package, and also available, as of this +writing from http://www.figlet.org/ +… +For FIGWin users, the FIGWin program will report errors when a FIGfont is +read in; it is less forgiving than FIGlet, which can produce nonsense if the +FIGfont is incorrectly formatted. + +Remember that sub-characters outside of the ASCII range will not necessarily +display the same way on your system as on others. + +The blank (space) FIGcharacter should usually consist of one or two columns +of hardblanks and nothing else; slanted fonts are an exception to this rule. +If the space FIGcharacter does not contain any hardblanks, it will disappear +when horizontal fitting (kerning) or smushing occurs. + +Again, if you design a FIGfont, please let us know! + + +CONTROL FILES +======= ===== + +A FIGfont control file is a separate text file, associated with one or more +FIGfonts, that indicates how to map input characters into FIGfont character +codes. By default, FIGdrivers read single bytes from the input source and +interpret them as Latin-1 FIGcharacters. + +FIGlet version 2.2 (and later) can optionally interpret its input as DBCS or +UTF-8 characters, making it possible to access FIGcharacters with codes +outside the Latin-1 range (greater than 255). + +In addition, though, all versions of FIGlet can use control files to +transform specific character codes (or ranges of codes) as other codes +(or ranges). Multiple control files can be specified, in which case multiple +stages of transformation are performed. + +The filename of a control file always ends with ".flc". + +CONTROL FILE FORMAT + +Control files contain several kinds of lines. Lines beginning with "#", as +well as blank lines, are comment lines and are ignored. All other lines are +command lines, with one of the following formats: + + t inchar outchar + t inchar1-inchar2 outchar1-outchar2 + number number + f + h + j + b + u + g{0|1|2|3} {94|96|94x94} [char] + g{L|R} {0|1|2|3} + +where "inchar", "outchar", and "char" are either Latin-1 characters +representing their own codes, or else are numeric character codes preceded by +a "\" character; and "number" is a numeric character code with no preceding +"\" character. + +Thus "A" represents the code 65, as does "\65", and "\0x100" represents the +code 256 (100 in hexadecimal). In addition, "\ " (backslash followed by a +space) represents the code 32 (space), and the following backslash sequences +are also understood: + + \a code 7 (a bell/alert) + \b code 8 (a backspace) + \e code 27 (an ESC character) + \f code 12 (a form feed) + \n code 10 (a newline/line feed) + \r code 13 (a carriage return) + \t code 9 (a horizontal tab) + \v code 11 (a vertical tab) + \\ code 92 (a backslash) + +All of these combinations except perhaps "\\" are very unlikely to be used, +but they are provided just in case they are needed. + +Whitespace characters are used between "t" and "inchar" and between "inchar" +and "outchar", but not around the "-" characters used in the second type of +"t" command. + +The term "string" refers to any number of characters represented in the +format given above. The characters begin after the whitespace following the +letter "s", and continue to the end of the line. + +Anything following the first letter of an "f", "h", "j", or "u" command is +ignored. + +The first type of "t" command transforms characters with the code "inchar" +into characters with the code "outchar". The second type of "t" command +transforms characters in the range "inchar1" to "inchar2" as the +corresponding codes in the range "outchar1" to "outchar2". Both ranges must +be of the same size. The form "number number" is equivalent to a "t" +command of the first type, and is provided for compatibility with the mapping +tables issued by the Unicode Consortium. + +Multiple transformation stages can be encoded in a single control file by +using "f" commands to separate the stages. + +Versions of FIGlet before 2.1 required that the first line of a control file +consist of the signature string "flc2a". This signature line is still +permitted in FIGlet 2.2 and later versions, but is no longer required. + +Here is an example of a control file. The blanks at the beginning of each +line are for readability only, and are not part of the file. + +The following control file: + + flc2a + t # $ + t A-Z a-z + +will map the "#" character to "$", and will also convert uppercase ASCII to +lowercase ASCII. + +If a number of consecutive "t" commands are given, then for each character +processed, only the first applicable command (if any) will be executed. +Consider this control file: + + t A B + t B A + +It will swap the characters "A" and "B". If the FIGdriver reads an "A", the +first command will change "A" to "B", in which case the second will not be +executed. If the FIGdriver reads a "B", the first command will have no +effect, and the second command will change "B" to "A". Here is another +control file: + + t A B + t A C + +In this example, the second line is never executed. In short, a sequence of +"t" lines "does what it ought to". + +More complex files, in which a single character is acted upon by several "t" +commands, can be set up using an "f" command. For example: + + flc2a + t a-z A-Z + f + t Q ~ + +This control file specifies two transformation stages. In the first stage, +lowercase ASCII letters are changed to their uppercase equivalents. The +second stage maps any Q (whether original or a converted "q") into the "~" +character. If the "f" command were omitted, "q" characters would remain "Q" +and not be converted to "~". + +EXTENDED COMMANDS + +The "h", "j", "b", "u", and "g" commands are only understood by FIGlet +version 2.2 or later. They control how a FIGdriver interprets bytes in the +input. By default, the FIGdriver interprets each byte of input as a distinct +character. This mode is suitable for most character encodings. All these +commands are logically acted on before any other control file commands, no +matter where in the sequence of control files they appear. They are also +mutually exclusive; if more than one of these commands is found, only the +last is acted on. Multiple "g" commands are permitted, however. + +The "h" command forces the input to be interpreted in HZ mode, which is used +for the HZ character encoding of Chinese text. In this mode, the sequence +"~{" (which is removed from the input) signals that all following characters +are two bytes long until the sequence "~}" is detected. In addition, the +sequence "~~" is changed to just "~", and all other two-byte sequences +beginning with "~" are removed from the input. The character code +corresponding to a two-byte character is: + + first character * 256 + second character + +The "j" command forces the input to be interpreted in Shift-JIS mode (also +called "MS-Kanji mode"). Input bytes in the ranges 128-159 and 224-239 are +read as the high-order byte of a two-byte character; all other bytes are +interpreted as one-byte characters. The value of a two-byte character is +determined in the same way as in HZ mode. + +The "b" command forces the input to be interpreted in DBCS mode, which is +suitable for processing HZ or Shift-GB Chinese text or Korean text. Input +bytes in the ranges 128-255 are read as the high-order byte of a two-byte +character; all other bytes are interpreted as one-byte characters. The +value of a two-byte character is determined in the same way as in HZ mode. + +The "u" command forces the input to be interpreted in UTF-8 mode, which +causes any input byte in the range 0x80 to 0xFF to be interpreted as the +first byte of a multi-byte Unicode (ISO 10646) character. UTF-8 characters +can be from 1 to 6 bytes long. An incorrectly formatted sequence is +interpreted as the character 128 (normally an unused control character). + +Otherwise, the input is allowed to contain ISO 2022 escape sequences, which +are decoded to generate appropriate character codes. These character codes +are *not* a subset of Unicode, but may be more useful in processing East +Asian text. A brief explanation of ISO 2022 is given here in order to +clarify how a FIGdriver should interpret it. The "g" command provides +information for the ISO 2022 interpreter, and is explained below. + +ISO 2022 text is specified using a mixture of registered character sets. +At any time, up to four character sets may be available. Character sets +have one of three sizes: single-byte character sets with 94 characters +(e.g. ASCII), single-byte character sets with 96 characters (e.g. the top +halves of ISO Latin-1 to Latin-5), or double-byte character sets with +94 x 94 characters (e.g. JIS 0208X-1983). Each registered character set has +a standard designating byte in the range 48 to 125; the bytes are unique withi +n character set sizes, but may be reused across sizes. For example, byte 66 +designates the 94-character set ASCII, the 96-character set ISO Latin-2 (top +half), and the 94 x 94 Japanese character set JIS 0208X-1983. In this +document, the designating byte of a character set will be represented by . + +The four available character sets are labeled G0, G1, G2, and G3. Initially, +G0 is the 94-character set ASCII, and G1 is the 96-character set ISO Latin-1 +(top half). The other character sets are unassigned. The following escape +sequences (where ESC = the byte 27) specify changes to the available +character sets: + + ESC ( Set G0 to the 94-character set + ESC ) Set G1 to the 94-character set + ESC * Set G2 to the 94-character set + ESC + Set G3 to the 94-character set + ESC - Set G1 to the 96-character set + ESC . Set G2 to the 96-character set + ESC / Set G3 to the 96-character set + ESC $ Set G0 to the 94 x 94 character set + ESC $ ( Set G0 to the 94 x 94 character set + ESC $ ) Set G1 to the 94 x 94 character set + ESC $ * Set G2 to the 94 x 94 character set + ESC $ + Set G3 to the 94 x 94 character set + + +Note that G0 may not be a 96-character set, and that there are two ways to +specify a 94 x 94 character set in G0, of which the first is deprecated. + +ISO 2022 decoding affects input bytes in the ranges 33 to 126 and 160 to 255, +known as "the left half" and "the right half" respectively. All other bytes, +unless they belong to a control sequence shown in this document, remain +unchanged. Initially, the left half is interpreted as character set G0, +and the right half as character set G1. This can be changed by the following +control sequences: + + SI (byte 15) Interpret the left half as G1 characters + SO (byte 14) Interpret the left half as G0 characters + ESC n Interpret the left half as G2 characters + ESC o Interpret the left half as G3 characters + ESC ~ Interpret the right half as G1 characters + ESC } Interpret the right half as G2 characters + ESC | Interpret the right half as G3 characters + SS2 (byte 142) Interpret next character only as G2 + ESC N Interpret next character only as G2 + SS3 (byte 143) Interpret next character only as G3 + ESC O Interpret next character only as G3 + + +This rich schema may be used in various ways. In ISO-2022-JP, the Japanese +flavor of ISO 2022, only the bytes 33-126 and the G0 character set is used, +and escape sequences are used to switch between ASCII, ISO-646-JP (the +Japanese national variant of ASCII), and JIS 0208X-1983. In other versions, +the G1 character set has 94 x 94 size, and so any byte in the range 160-255 +is automatically the first byte of a double-byte character. + +FIGdrivers that support ISO 2022 do so in the following way. Each character i +is decoded and assigned to a character set . + + If the character belongs to a 94-bit character set, + then if its value exceeds 128, it is reduced by 128, + and the value 65536 * is added to it, + unless is 66 (ASCII). + If the character belongs to a 96-bit character set, + then if its value is less than 128, it is increased by 128, + and the value 65536 * is added to it, + unless is 65 (ISO Latin-1). + If the character belongs to a 94 x 94 character set, + then the value is the sum of: + the first byte * 256, + plus the second byte, + plus the value 65536 * . + + +Thus, the character code 65 ("A") in ASCII remains 65, the character code +196 in ISO Latin-1 ("A-umlaut") remains 196, the character code 65 (0x41) +in ISO-646-JP (whose is 74 = 0x4A) becomes 0x4A0041 =4849729, and the +two-byte sequence 33 33 (0x21 0x21) in JIS 0208X-1983 (whose is +65 = 0x41) becomes 0x412121 = 4268321. These codes may be used in compiling +FIGfonts suitable for use with ISO 2022 encoded text. + +The initial settings of G0 through G3 and their assignments to the left half +and the right half can be altered in a control file by using "g" commands, +as follows: + + g {0|1|2|3} {94|96|94x94} [] + +specifies that one of G0-G3 is a 94, 96, or 94x94 character set with +designating character . If no designating character is specified, then a + value of zero is assumed. + +For example, the list of control commands: + + g 0 94 B + g 1 96 A + +sets the G0 character set to ASCII (94-character set "B") and the G1 +character set to the top half of Latin-1 (96-character set "A"). (This is the +default setting). + +To change the initial assignments of G0 to the left half and G1 to the right +half, "g" commands of the form + + g {L|R} {0|1|2|3} + +For example, the command: + + g R 2 + +causes right-half bytes (in the range 160-255) to be interpreted as G2. +Whether these bytes are interpreted singly or in pairs depends on the type +of character set that is currently available as G2. + +Spaces may be freely used or omitted in "g" commands. + +The standard FIGlet distribution contains mapping tables for Latin-2 (ISO 8859-2), +Latin-3 (ISO 8859-3), Latin-4 (ISO 8859-4), and Latin-5 (ISO 8859-9). They +can be used with the font "standard.flf", which contains all the characters +used in these standards. + + +STANDARDIZED CAPABILITIES OF CURRENT AND FUTURE FIGDRIVERS +============ ============ == ======= === ====== ========== + +We assert the following as the "Law" of our intentions: + +PROFIT + +All future FIGdrivers shall be FREE OF CHARGE to the general public via the +Internet. Any advertisements of other works by the author must be in +documentation only, and limited to ONE "screenful", and shall not appear by +normal program behavior, nor interfere with normal behavior. No FIGdriver +shall disable itself after a set period of time or request "donations". +No FIGdriver shall offer any other FIGdriver with improved capability for +creating FIGures in exchange for money. + +REQUIRED FEATURES OF FUTURE VERSIONS + +Future FIGdrivers must read and process FIGfont files as described in this +document, but are not necessarily expected to process control files, smush, +perform fitting or kerning, perform vertical operations, or even produce +multiple lines in output FIGures. + +FIGDRIVER NAMES + +Future FIGdrivers must be named to include capitalized "FIG" and shall have +an incremental version number specific to its own platform. + +BACKWARDS COMPATIBILITY OF FUTURE VERSIONS + +Any future FIGdriver created for the same platform as an existing FIGdriver, +and using the same name as the existing FIGdriver, shall be considered a new +version of the preceding FIGdriver, and shall contain all historical comments +of updates to past versions on the same platform, and shall have full +capability of the preceding versions. If the source code is not provided to +the general public, it shall be at least provided to any potential developers +of later versions, and such comments relating to past versions shall be +accessible to any user by other means or documentation. If a new program is +created on a platform that already has an existing FIGdriver, it must be +given a new and distinct name. This allows multiple FIGdrivers to exist for +the same platform with different capabilities. + +The format of FIGfonts may not be modified to be non-backwards compatible +UNLESS: + + 1) The new format is easily editable as an ASCII text file, + beginning with the characters "flf" followed by a sequential + number. + + 2) At least all of the same information can be derived from the + new format as the prior format (currently "flf2"). This + includes the main comments which give credit to the FIGfont + designer. + + 3) Individuals are found who are willing and have the ability to + either port or develop versions for at least UNIX, DOS, + Windows, and Amiga which will read both the new formats AND the + prior format (currently "flf2"), and retain the capability of + past versions. It is intended that this will be expanded to + include Macintosh if a GUI version exists. This list of + required operating systems may be reduced if an operating + system falls out of popularity or increased if a new operating + system for which there is a FIGdriver comes into greater + popularity, according to the consensus of opinions of past + developers for the most popular operating systems. + + 4) A C, Java, or other version must always exist which can + receive input and instructions either from a command line, a + file, or directly over the internet so that FIGures can be + obtained from internet-based services without the need to + download any FIGdriver. + + 5) All existing FIGfonts available from the "official" point of + distribution (http://www.figlet.org/), + must be converted to the new format, and offered for download + alongsidethe new versions. + +THE FUNCTION OF WORD WRAPPING + +All future FIGdrivers should duplicate these behaviors, unless a version is +only capable of outputting one-line FIGures, which is acceptable as long no +preceding versions exist for its platform which can output multiple-line +FIGures. + +FIGdrivers which perform word wrapping do so by watching for blanks (spaces) +in input text, making sure that the FIGure is no more wide than the maximum +width allowed. + +Input text may also include linebreaks, so that a user may specify where +lines begin or end instead of relying on the word wrapping of the FIGdriver. +(Linebreaks are represented by different bytes on different platforms, so +each FIGdriver must watch for the appropriate linebreaks for its particular +platform.) + +When a FIGdriver word wraps and there are several consecutive blanks in input +text where the wrapping occurred, the FIGdriver will disregard all blanks +until the next non-blank input character is encountered. However, if blanks +in input text immediately follow a linebreak, or if blanks are the first +characters in the input text, the blanks will be "printed", moving any +visible FIGcharacters which follow on the same output line to the right. +Similarly, if an image is right-aligned, and blanks immediately precede +linebreaks or the end of input text, a FIGdriver will move an entire line of +output FIGcharacters to the left to make room for the blank FIGcharacters +until the left margin is encountered. (If the print direction is +right-to-left, everything stated in this paragraph is reversed.) + +Word processing programs or text editors usually behave similarly in all +regards to word wrapping. + +GENERAL INTENT FOR CROSS-PLATFORM PORTABILITY + +Currently, all versions of FIGlet are compiled from C code, while FIGWin 1.0 +is written in Visual Basic. Over time it is intended that a later version of +FIGWin will be created using a GUI C programming language, and that the +FIGlet C code shall continue to be written to be easily "plugged in" to a +GUI shell. It is preferable for developers of FIGdrivers for new platforms +to use C or a GUI version of C, so that when the core rendering engine of +FIGlet is updated, it will be portable to other platforms. + +CONTROL FILE COMMANDS + +New control file commands may be added to later versions of this standard. +However, the commands "c", "d", and "s" are permanently reserved and may +never be given a meaning. + +FILE COMPRESSION + +FIGfonts (and control files) are often quite long, especially if many +FIGcharacters are included, or if the FIGcharacters are large. Therefore, +some FIGdrivers (at present, only FIGlet version 2.2 or later) allow +compressed FIGfonts and control files. + +The standard for FIG compression is to place the FIGfont or control file into +a ZIP archive. ZIP archives can be created by the proprietary program PKZIP +on DOS and Windows platforms, or by the free program Info-ZIP ZIP on almost +all platforms. More information on ZIP can be obtained at +http://www.cdrom.com/pub/infozip/Info-Zip.html . + +The ZIP archive must contain only a single file. Any files in the archive +after the first are ignored by FIGdrivers. In addition, the standard +extension ".zip" of the archive must be changed to ".flf" or ".flc" as +appropriate. It does not matter what the name of the file within the +archive is. + + + +CHART OF CAPABILITIES OF FIGLET 2.2 AND FIGWIN 1.0 +===== == ============ == ====== === === ====== === + +The following chart lists all capabilities which are either new with the +release of both FIGdrivers, or is not a common capability among both. + + FIGlet 2.2 FIGWIN 1.0 + Interpreting the Full_Layout parameter: Yes Yes + Universal smushing: Yes Yes + Supporting multi-byte input text formats: Yes No + Processing control files: Yes No + Changing default smushing rules: Yes No + Bundled with a GUI editor of FIGfonts: No Yes + Vertical fitting and smushing: No Yes + + ___________ __ _ + \_ _____/ ____ |__| ____ ___ __ | | + | __)_ / \ | |/ _ < | || | + | \ | \ | ( <_> )___ | \| + /_______ /___| /\__| |\____// ____| __ + \/ \/\______| \/ \/ diff --git a/externals/figlet/figlet.6 b/externals/figlet/figlet.6 new file mode 100644 index 0000000000..ff2231140e --- /dev/null +++ b/externals/figlet/figlet.6 @@ -0,0 +1,1102 @@ +.\" FIGlet +.\" Copyright (C) 1991, 1993, 1994 Glenn Chappell and Ian Chai +.\" Internet: +.\" Portions Copyright 1996, 1997, 1998, 1999, 2000, 2001 by John Cowan +.\" Portions Copyright 2002 by Christiaan Keet +.\" Portions Copyright 2011, 2012 by Claudio Matsuoka +.\" FIGlet, along with the various FIGlet fonts and documentation, may +.\" be freely copied and distributed. +.\" If you use FIGlet, please send an e-mail message to +.\" +.\" +.TH FIGLET 6 "31 May 2012" "v2.2.5" + +.SH NAME +FIGlet \- display large characters made up of ordinary screen characters + +.SH SYNOPSIS +.B figlet +[ +.B \-cklnoprstvxDELNRSWX +] +[ +.B \-d +.I fontdirectory +] +.PD 0 +.IP +.PD +[ +.B \-f +.I fontfile +] +[ +.B \-m +.I layoutmode +] +.PD 0 +.IP +.PD +[ +.B \-w +.IR outputwidth +] +[ +.B \-C +.I controlfile +] +.PD 0 +.IP +.PD +[ +.B \-I +.I infocode +] +[ +.I message +] + +.SH DESCRIPTION +.B FIGlet +prints its input using large characters +(called ``FIGcharacters'')made up of ordinary +screen characters +(called ``sub-characters''). +.B FIGlet +output is generally reminiscent of the +sort of ``signatures'' many people like to put at the end of e-mail +and UseNet messages. It is also reminiscent of the output of some banner +programs, although it is oriented normally, not sideways. + +.B FIGlet +can print in a variety of fonts, both left-to-right and right-to-left, +with adjacent FIGcharacters kerned and ``smushed'' together in various ways. +.B FIGlet +fonts are stored in +separate files, which can be identified by the suffix +.RB `` .flf ''. +In systems with UTF-8 support +.B FIGlet +may also support TOIlet +.RB `` .tlf '' +fonts. Most +.B FIGlet +font files will be stored in +.B FIGlet's +default font directory. + +.B FIGlet +can also use ``control files'', which tell it to map certain input +characters to certain other characters, similar to the Unix +.B tr +command. Control files can be identified by the suffix +.RB `` .flc ''. +Most +.B FIGlet +control files will be stored in +.B FIGlet's +default font directory. + +You can store +.B FIGlet +fonts and control files +in compressed form. +See +.BR "COMPRESSED FONTS" . + +.SH USAGE +Just start up +.B FIGlet +(type +.RB `` figlet '') +and then type whatever you want. +Alternatively, pipe a file or the output of another command through +.BR FIGlet , +or put input on the command line +after the options. +See +.B EXAMPLES +for other things to do. + +.SH OPTIONS +.B FIGlet +reads command line options from left to right, and only the last +option that affects a parameter has any effect. Almost every option +has an inverse, so that, for example, if +.B FIGlet +is customized with a shell +.BR alias , +all the options are usually still available. + +Commonly-used options are +.BR \-f , +.BR \-c , +.BR \-k , +.BR \-t , +.B \-p +and +.BR \-v . + +.TP +.BI \-f \ fontfile +Select the font. The +.B .flf +suffix may be left off of +.IR fontfile , +in which case +.B FIGlet +automatically appends it. +.B FIGlet +looks for the file first in the default font directory and then +in the current directory, or, if +.I fontfile +was given as a full pathname, in the given directory. +If the +.B \-f +option is not specified, +.B FIGlet +uses the font that was specified +when it was compiled. To find out which font this is, use the +.B \-I3 +option. + +.TP +.BI \-d \ fontdirectory +Change the default font directory. +.B FIGlet +looks for fonts first in the +default directory and then in the current directory. +If the +.B \-d +option is not specified, +.B FIGlet +uses the directory that was specified +when it was compiled. To find out which directory this is, use the +.B \-I2 +option. + +.TP +.B \-c +.PD 0 +.TP +.B \-l +.PD 0 +.TP +.B \-r +.PD 0 +.TP +.B \-x +.PD +These options handle the justification of +.B FIGlet +output. +.B \-c +centers the output horizontally. +.B \-l +makes the output flush-left. +.B \-r +makes it flush-right. +.B \-x +(default) sets the justification according to whether left-to-right or +right-to-left text is selected. Left-to-right text will be flush-left, +while right-to-left text will be flush-right. (Left-to-right versus +right-to-left text is controlled by +.BR \-L , +.B \-R +and +.BR \-X .) + +.TP +.B \-t +.PD 0 +.TP +.BI \-w \ outputwidth +.PD +These options control the +.IR outputwidth , +or the screen width +.B FIGlet +assumes when formatting its output. +.B FIGlet +uses the +.I outputwidth +to determine when to break lines and how to center +the output. Normally, +.B FIGlet +assumes 80 columns so that people with wide terminals +won't annoy the people they e-mail +.B FIGlet +output to. +.B \-t +sets the +.I outputwidth +to the terminal width. If the terminal width cannot be determined, +the previous +.I outputwidth +is retained. +.B \-w +sets the +.I outputwidth +to the given integer. An +.I outputwidth +of 1 is a special value that tells +.B FIGlet +to print each non-space FIGcharacter, in its entirety, on a separate line, +no matter how wide it is. + +.TP +.B \-p +.PD 0 +.TP +.B \-n +.PD +These options control how +.B FIGlet +handles newlines. +.B \-p +puts +.B FIGlet +into ``paragraph mode'', which eliminates some unnecessary line +breaks when piping a multi-line file through +.BR FIGlet . +In paragraph mode, +.B FIGlet +treats line breaks within a paragraph as if they were merely blanks +between words. (Specifically, +.B \-p +causes +.B FIGlet +to convert any newline which is not preceded by a newline and not +followed by a space character into a blank.) +.B \-n +(default) puts +.B FIGlet +back to normal, in which every newline +.B FIGlet +reads causes it to produce a line break. + +.TP +.B \-D +.PD 0 +.TP +.B \-E +.PD +.B \-D +switches to the German (ISO 646-DE) character set. Turns `[', `\e' +and `]' into umlauted A, O and U, respectively. `{', `|' and `}' turn +into the respective lower case versions of these. `~' turns into s-z. +.B \-E +turns off +.B \-D +processing. +These options are deprecated, +which means they probably will not appear +in the next version of +.BR FIGlet . + +.TP +.BI \-C \ controlfile +.PD 0 +.TP +.B \-N +.PD +These options deal with +.B FIGlet +.IR controlfiles . +A +.I controlfile +is a file containing a list of commands that +.B FIGlet +executes each time it reads a character. These commands can map certain +input characters to other characters, similar to the Unix +.B tr +command or the +.B FIGlet +.B \-D +option. +.B FIGlet +maintains a list of +.IR controlfiles , +which is empty when +.B FIGlet +starts up. +.B \-C +adds the given +.I controlfile +to the list. +.B \-N +clears the +.I controlfile +list, cancelling the effect of any previous +.BR \-C . +.B FIGlet +executes the commands in all +.I controlfiles +in the list. See +the file +.IR figfont.txt , +provided with FIGlet, +for details on how to write a +.IR controlfile . + +.TP +.B \-s +.PD 0 +.TP +.B \-S +.PD 0 +.TP +.B \-k +.PD 0 +.TP +.B \-W +.PD +.TP +.B \-o +.PD +These options control how +.B FIGlet +spaces the FIGcharacters that it outputs. +.B \-s +(default) and +.B \-S +cause ``smushing''. +The FIGcharacters are displayed +as close together as possible, +and overlapping sub-characters are removed. +Exactly which sub-characters count as ``overlapping'' +depends on the font's +.IR layoutmode , +which is defined by the font's author. +.B \-k +causes ``kerning''. As many blanks as possible are +removed between FIGcharacters, so that they +touch, but the FIGcharacters are not smushed. +.B \-W +makes +.B FIGlet +display all FIGcharacters at their full width, +which may be fixed or variable, depending on the font. + +The difference between +.B \-s +and +.B \-S +is that +.B \-s +will not smush a font whose author specified +kerning or full width as the default +.IR layoutmode , +whereas +.B \-S +will attempt to do so. + +If there is no information in the font +about how to smush, +or if the +.B \-o +option is specified, +then the FIGcharacters are ``overlapped''. +This means that after kerning, +the first subcharacter of +each FIGcharacter is removed. +(This is not done if a FIGcharacter +contains only one subcharacter.) + +.TP +.BI \-m \ layoutmode +Specifies an explicit +.I layoutmode +between +.B 1 +and +.BR 63 . +.I Smushmodes +are explained in +.IR figfont.txt , +which also provides complete information +on the format of a +.B FIGlet +font. +For the sake of backward compatibility +with versions of +.B FIGlet +before 2.2, +.B \-m0 +is equivalent to +.BR \-k , +.B \-m-1 +is equivalent to +.BR \-W , +and +.B \-m-2 +is equivalent to +.BR \-s . +The +.B \-m +switch is normally +used only by font designers testing the various +.I layoutmodes +with a new font. + +.TP +.B \-v +.PD 0 +.TP +.BI \-I \ infocode +.PD +These options print various information about +.BR FIGlet , +then exit. If several of these options are given on the command line, only +the last is executed, and only after +all other command-line options have been dealt with. + +.B \-v +prints version and copyright information, as well as a ``Usage: ...'' +line. +.B \-I +prints the information corresponding to the given +.I infocode +in a consistent, reliable (i.e., guaranteed to be the same in +future releases) format. +.B \-I +is primarily intended to be used by programs that use +.BR FIGlet . +.I infocode +can be any of the following. +.RS +.TP +.BR -1 " Normal operation (default)." +This +.I infocode +indicates that +.B FIGlet +should operate normally, not giving any informational printout, +printing its input in the selected font. +.TP +.BR 0 " Version and copyright." +This is identical to +.BR \-v . +.TP +.BR 1 " Version (integer)." +This will print the version of your copy of +.B FIGlet +as a decimal integer. The main version number is multiplied by 10000, +the sub-version number is multiplied by 100, and the sub-sub-version +number is multiplied by 1. These are added together, and the result is +printed out. For example, +.B FIGlet +2.2 will print +.RB `` 20200 '' +, version 2.2.1 will print +.RB `` 20201 ''. +Similarly, version 3.7.2 would print +.RB `` 30702 ''. +These numbers are guaranteed to be +ascending, with later versions having higher numbers. Note that +the first major release of +.BR FIGlet , +version 2.0, did not have the +.B \-I +option. +.TP +.BR 2 " Default font directory." +This will print the default font directory. It is affected by the +.B \-d +option. +.TP +.BR 3 " Font." +This will print the name of the font +.B FIGlet +would use. It is affected by +the +.B \-f +option. +This is not a filename; the +.RB `` .flf '' +suffix is not printed. +.TP +.BR 4 " Output width." +This will print the value +.B FIGlet +would use for +.IR outputwidth , +the number of columns wide +.B FIGlet +assumes the screen is. +It is affected by the +.B \-w +and +.B \-t +options. +.TP +.BR 5 " Supported font formats." +This will list font formats supported by +.B FIGlet . +Possible formats are +.RB `` flf2 '' +for FIGfont Version 2 +.B .flf +files and +.RB `` tlf2 '' +for TOIlet +.B .tlf +files. +.RE +.IP +If +.I infocode +is any other positive value, +.B FIGlet +will simply exit without printing anything. + +.TP +.B \-L +.PD 0 +.TP +.B \-R +.PD 0 +.TP +.B \-X +.PD +These options control whether +.B FIGlet +prints left-to-right or right-to-left. +.B \-L +selects left-to-right printing. +.B \-R +selects right-to-left printing. +.B \-X +(default) makes +.B FIGlet +use whichever is specified in the font file. + +Once the options are read, +if there are any remaining words on the command line, +they are used instead +of standard input as the source of text. +This feature +allows shell scripts to generate large letters without having to dummy +up standard input files. + +An empty argument, obtained by two sequential quotes, +results in a line break. + +.SH EXAMPLES +To use +.B FIGlet +with its default settings, simply type +.RS +.nf +.ft B + +example% figlet + +.ft R +.fi +.RE +and then type whatever you like. + +To change the font, use the +.B \-f +option, for example, +.RS +.nf +.ft B + +example% figlet \-f script + +.ft R +.fi +.RE + +Use the +.B \-c +option if you would prefer centered output: +.RS +.nf +.ft B + +example% figlet \-c + +.ft R +.fi +.RE + +We have found that the most common use of +.B FIGlet +is making up large text to be placed in e-mail messages. For this +reason, +.B FIGlet +defaults to 80 column output. If you are using a wider terminal, and +would like +.B FIGlet +to use the full width of your terminal, use the +.B \-t +option: +.RS +.nf +.ft B + +example% figlet \-t + +.ft R +.fi +.RE + +If you don't want +.B FIGlet +to smush FIGcharacters into each other, use the +.B \-k +option: +.RS +.nf +.ft B + +example% figlet \-k + +.ft R +.fi +.RE + +If +.B figlet +gets its input from a file, it is often a good idea to use +.BR \-p : +.RS +.nf +.ft B + +example% figlet \-p < myfile + +.ft R +.fi +.RE + +Of course, the above can be combined: +.RS +.nf +.ft B + +example% figlet \-ptk \-f shadow < anotherfile +example% figlet \-cf slant + +.ft R +.fi +.RE + +Finally, if you want to have +.B FIGlet +take the input from the command +line instead of a file: +.RS +.nf +.ft B + +example% figlet Hello world + +.ft R +.fi +.RE + +.SS Other Things to Try +On many systems nice effects can be obtained from the +.B lean +font by piping it through +.BR tr . +Some you might want to try are the following: + +.RS +.nf +.ft B +example% figlet \-f lean | tr ' _/' ' ()' +example% figlet \-f lean | tr ' _/' './\e\e' +example% figlet \-f lean | tr ' _/' ' //' +example% figlet \-f lean | tr ' _/' '/ ' +.ft R +.fi +.RE + +Similar things can be done with the +.B block +font and many of the other +.B FIGlet +fonts. + +.SH COMPRESSED FONTS +You can compress the fonts and controlfiles +using the +.B zip +archiving program. +Place only one font or controlfile in each archive, +and rename the archive file (which will have a name +ending in +.BR .zip ) +back to +.B .flf +or +.B .flc +as the case may be. +If you don't rename the file appropriately, +.B FIGlet +won't be able to find it. + +.B FIGlet +does not care what the filename within the +.B .zip +archive is, and will process only the first file. + +The +.B .zip +format was chosen because tools to create and manipulate it +are widely available for free +on many platforms. + +.SH THE STANDARD FONTS + +Here are a few notes about some of the fonts provided with +.IR FIGlet . +You can get many other font from the Web site +.br +http://www.figlet.org/ This location +should also contain the latest version of +.B FIGlet +and other related utilities. + +The font +.I standard +is the basic +.B FIGlet +font, used when no other font is specified. +(This default can be changed when +.B FIGlet +is compiled on your system.) +The +.I controlfiles +.IR 8859-2 , +.IR 8859-3 , +.IR 8859-4 , +and +.I 8859-9 +are provided for interpreting those character sets, +also known as ISO Latin-2 through Latin-5 respectively. +The character set 8859-1 (ISO Latin-1) is +.B FIGlet's +default and requires no special +.IR controlfile . + +Closely related are the fonts +.IR slant , +.IR shadow , +.IR small , +.I smslant +(both small and slanted), +.IR smshadow , +(both small and shadowed), +and +.IR big . +These fonts support only Latin-1, except that +.I big +supports Greek FIGcharacters as well; +the +.I controlfiles +.I frango +(for Greek text written in Latin characters, so-called +.RI `` frangovlakhika ''), +and +.I 8859-7 +(for mixed Latin/Greek text) +are provided. + +The +.I ivrit +font is a right-to-left font +including both Latin and Hebrew FIGcharacters; +the Latin characters are those of the +.I standard +font. +The available +.I controlfiles +are +.IR ilhebrew , +which maps the letters you get +by typing on a U.S. keyboard +as if it were a Hebrew keyboard; +.IR ushebrew , +which makes a reasonable mapping from +Latin letters to Hebrew ones; +and +.IR 8859-8 , +which supports mixed Latin/Hebrew text. +.B Warning: +.B FIGlet +doesn't support bidirectional text, +so everything will come out right-to-left, +even Latin letters. + +The fonts +.IR terminal , +.IR digital , +and +.I bubble +output the input character with some decoration around it +(or no decoration, +in the case of +.IR terminal ). +The characters coded 128 to 159, +which have varying interpretations, are output as-is. +You can use the appropriate +.I controlfiles +to process Latin-2, Latin-3, or Latin-4 (but not Latin-5) text, +provided your output device +has screen or printer fonts that +are appropriate for these character sets. + +Two script fonts are available: +.IR script , +which is larger than +.IR standard , +and +.IR smscript , +which is smaller. + +The font +.I lean +is made up solely of `/' and `_' sub-characters; +.I block +is a straight (non-leaning) version of it. + +The font +.I mini +is very small, and especially suitable for e-mail signatures. + +The font +.I banner +looks like the output of the +.B banner +program; +it is a capitals and small capitals font +that doesn't support the ISO Latin-1 extensions +to plain ASCII. +It does, however, support the Japanese +.I katakana +syllabary; +the +.I controlfile +.I uskata +maps the upper-case and lower-case Latin letters +into the 48 basic +.I katakana +characters, +and the +.I controlfile +.I jis0201 +handles JIS 0201X (JIS-Roman) +mixed Latin and +.I katakana +text. +Furthermore, the +.I banner +font also supports Cyrillic (Russian) +FIGcharacters; the +.I controlfile +.I 8859-5 +supports mixed Latin and Cyrillic text, +the +.I controlfile +.I koi8r +supports the popular KOI8-R mapping of mixed text, +and the +.I controlfile +.I moscow +supports a +sensible mapping from Latin to Cyrillic, +compatible with the +.I moscow +font (not supplied). + +The fonts +.I mnemonic +and +.I safemnem +support the mnemonic character set +documented in RFC 1345. +They implement a large subset of Unicode +(over 1800 characters) very crudely, +using ASCII-based mnemonic sequences, +and are good for getting a quick look +at UTF-8 unicode files, +using the controlfile +.IR utf8 . + +.SH ENVIRONMENT +.TP +.B FIGLET_FONTDIR +If +.RB $ FIGLET_FONTDIR +is set, its value is used as a path to search for font files. + +.SH FILES +.PD 0 +.TP 20 +.IB file .flf +.B FIGlet +font file +.TP 20 +.IB file .flc +.B FIGlet +control file +.PD + +.SH DIAGNOSTICS +.B FIGlet's +diagnostics are intended to be self-explanatory. Possible +messages are + +.RS +.nf +.ft B +Usage: ... +Out of memory +Unable to open font file +Not a FIGlet 2 font file +Unable to open control file +Not a FIGlet 2 control file +"\-t" is disabled, since ioctl is not fully implemented. +.ft R +.fi +.RE + +This last message is printed when the +.B \-t +option is given, but the operating system in use does not include +the system call +.B FIGlet +uses to determine the terminal width. + +.B FIGlet +also prints an explanatory message if the +.B \-F +option is given on the command line. +The earlier version of +.BR FIGlet , +version 2.0, listed the available fonts when the +.B \-F +option was given. This option has been removed from +.B FIGlet +2.1. It has been replaced by the +.B figlist +script, which is part of the standard +.B FIGlet +package. + +.SH ORIGIN +.RB `` FIGlet '' +stands for ``Frank, Ian and Glenn's LETters''. Inspired by Frank's .sig, +Glenn wrote (most of) it, and Ian helped. + +Most of the standard +.B FIGlet +fonts were inspired by signatures on various UseNet +articles. Since typically hundreds of people use the same style of +letters in their signatures, it was often not deemed necessary to give +credit to any one font designer. + +.SH BUGS +Very little error checking is done on font and control files. While +.B FIGlet +tries to be forgiving of errors, and should (hopefully) never actually +crash, using an improperly-formatted file with +.B FIGlet +will produce unpredictable output. + +.B FIGlet +does not handle format characters in a very intelligent way. +A tab character is converted to a blank, and vertical-tab, form-feed and +carriage-return are each converted to a newline. On many systems, tabs +can be handled better by piping files through +.B expand +before piping through +.BR FIGlet . + +.B FIGlet +output is quite ugly if it is displayed in a proportionally-spaced font. +I suppose this is to be expected. + +Please report any errors you find in this man page or the program to + +.SH WEBSITE AND MAILING LIST +You can get many fonts which are not in the basic +.B FIGlet +package from the Web site +http://www.figlet.org/ It +should also contain the latest version of +.B FIGlet +and other utilities related to +.BR FIGlet . + +There is a mailing list for +.B FIGlet +for general discussions about +.B FIGlet +and a place where you can ask questions or share ideas +with other +.B FIGlet +users. It is also the place where we will publish +news about new fonts, new software updates etc. + +To subscribe or unsubscribe from the +.B FIGlet +mailing list, +please send email to figlet-subscribe@figlet.org or figlet-unsubscribe@figlet.org or visit the +following web page: http://www.figlet.org/mailman/listinfo/figlet + +.SH AUTHORS +Glenn Chappell did most of the work. +You can e-mail him but he is not an e-mail fanatic; people who e-mail +Glenn will probably get answers, but if you e-mail his best friend: + +Ian Chai, who +.I is +an e-mail fanatic, you'll get answers, endless conversation about the +mysteries of life, invitations to join some 473 mailing lists and a +free toaster. (Well, ok, maybe not the free toaster.) + +Frank inspired this whole project with his .sig, but don't e-mail +him; he's decidedly an un-e-mail-fanatic. + +Gilbert "The Mad Programmer" Healton added the +.B \-A +option for version 2.1.1. This option specified input from +the command line; it is still allowed, +but has no effect. + +John Cowan added the +.BR \-o , +.BR \-s , +.BR \-k , +.BR \-S , +and +.B \-W +options, and +the support for Unicode mapping tables, +ISO 2022/HZ/Shift-JIS/UTF-8 input, +and compressed fonts +and control files. +He also revised this documentation, +with a lot of input from +Paul Burton. + +Claudio Matsuoka added the support for +.B .tlf +files for version 2.2.4 and performs random hacks and bugfixes. + +As a fan of FIGlet, Christiaan Keet revised the official FIGlet documentation +and set up the new FIGlet website at http://www.figlet.org/ (and the +corresponding ftp://ftp.figlet.org/pub/figlet/) + +.SH SEE ALSO +.BR figlist (6), +.BR chkfont (6), +.BR showfigfonts (6), +.BR toilet (1) diff --git a/externals/figlet/figlet.c b/externals/figlet/figlet.c new file mode 100644 index 0000000000..d34b19a8b8 --- /dev/null +++ b/externals/figlet/figlet.c @@ -0,0 +1,2131 @@ +/**************************************************************************** + + FIGlet Copyright 1991, 1993, 1994 Glenn Chappell and Ian Chai + FIGlet Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan + FIGlet Copyright 2002 Christiaan Keet + FIGlet Copyright 2011, 2012 Claudio Matsuoka + Portions written by Paul Burton and Christiaan Keet + Internet: + FIGlet, along with the various FIGlet fonts and documentation, is + copyrighted under the provisions of the New BSD License (3-clause) + (as listed in the file "LICENSE" which is included in this package) +****************************************************************************/ + +#define DATE "31 May 2012" +#define VERSION "2.2.5" +#define VERSION_INT 20205 + +/* FIGlet (Frank, Ian & Glenn's Letters) */ +/* by Glenn Chappell */ +/* Apr 1991 */ +/* Automatic file addition by Ian Chai May 1991 */ +/* Punctuation and numbers addition by Ian Chai Jan 1993 */ +/* Full ASCII by Glenn Chappell Feb 1993 */ +/* Line-breaking, general rewrite by Glenn Chappell Mar 1993 */ +/* Hard blanks by Glenn Chappell Apr 1993 */ +/* Release 2.0 5 Aug 1993 */ +/* Right-to-left printing, extended char set by Glenn Chappell Dec 1993 */ +/* Control files by Glenn Chappell Feb 1994 */ +/* Release 2.1 12 Aug 1994 */ +/* Release 2.1.1 25 Aug 1994 */ +/* Release 2.1.2 by Gilbert (Mad Programmer) Healton: Add -A command line + option. Sept 8, 1996 */ +/* Release 2.2 by John Cowan: multibyte inputs, compressed fonts, + mapping tables, kerning/smushing options. */ +/* Release 2.2.1 by Christiaan Keet: minor updates including readmes + FAQs and comments. 13 July 2002. The new official FIGlet website is + http://www.figlet.org/ */ +/* Release 2.2.2 by Christiaan Keet: License changed from "Artistic License" + to "Academic Free License" as agreed by FIGlet authors. 05 July 2005 */ +/* Release 2.2.3 by Claudio Matsuoka, 12 Jan 2011: BSD license, fixes */ +/* Release 2.2.4 by Claudio Matsuoka, 26 Jan 2011: tlf2 font support */ +/* Release 2.2.5 by Claudio Matsuoka, 31 May 2012: flc licensing, minor fixes */ + +/*--------------------------------------------------------------------------- + DEFAULTFONTDIR and DEFAULTFONTFILE should be defined in the Makefile. + DEFAULTFONTDIR is the full path name of the directory in which FIGlet + will search first for fonts (the ".flf" files). + DEFAULTFONTFILE is the filename of the font to be used if no other + is specified (standard.flf is recommended, but any other can be + used). This file should reside in the directory specified by + DEFAULTFONTDIR. +---------------------------------------------------------------------------*/ +#ifndef DEFAULTFONTDIR +#define DEFAULTFONTDIR "fonts" +#endif +#ifndef DEFAULTFONTFILE +#define DEFAULTFONTFILE "standard.flf" +#endif + +#include +#ifdef __STDC__ +#include +#endif +#include +#include +#include +#include /* Needed for get_columns */ + +#if defined(unix) || defined(__unix__) || defined(__APPLE__) +#include +#include /* Needed for get_columns */ +#endif + +#ifdef TLF_FONTS +#include +#include +#include "utf8.h" +#endif + +#include "zipio.h" /* Package for reading compressed files */ + +#define MYSTRLEN(x) ((int)strlen(x)) /* Eliminate ANSI problem */ + +#define DIRSEP '/' +#define DIRSEP2 '\\' +/* Leave alone for Unix and MS-DOS/Windows! +Note: '/' also used in filename in get_columns(). */ + +#define FONTFILESUFFIX ".flf" +#define FONTFILEMAGICNUMBER "flf2" +#define FSUFFIXLEN MYSTRLEN(FONTFILESUFFIX) +#define CONTROLFILESUFFIX ".flc" +#define CONTROLFILEMAGICNUMBER "flc2" /* no longer used in 2.2 */ +#define CSUFFIXLEN MYSTRLEN(CONTROLFILESUFFIX) +#define DEFAULTCOLUMNS 80 +#define MAXLEN 255 /* Maximum character width */ + +/* Add support for Sam Hocevar's TOIlet fonts */ +#ifdef TLF_FONTS +#define TOILETFILESUFFIX ".tlf" +#define TOILETFILEMAGICNUMBER "tlf2" +#define TSUFFIXLEN MYSTRLEN(TOILETFILESUFFIX) + +int toiletfont; /* true if font is a TOIlet TLF font */ +#endif + + +/**************************************************************************** + + Globals dealing with chars that are read + +****************************************************************************/ + +typedef long inchr; /* "char" read from stdin */ + +inchr *inchrline; /* Alloc'd inchr inchrline[inchrlinelenlimit+1]; */ + /* Note: not null-terminated. */ +int inchrlinelen,inchrlinelenlimit; +inchr deutsch[7] = {196, 214, 220, 228, 246, 252, 223}; + /* Latin-1 codes for German letters, respectively: + LATIN CAPITAL LETTER A WITH DIAERESIS = A-umlaut + LATIN CAPITAL LETTER O WITH DIAERESIS = O-umlaut + LATIN CAPITAL LETTER U WITH DIAERESIS = U-umlaut + LATIN SMALL LETTER A WITH DIAERESIS = a-umlaut + LATIN SMALL LETTER O WITH DIAERESIS = o-umlaut + LATIN SMALL LETTER U WITH DIAERESIS = u-umlaut + LATIN SMALL LETTER SHARP S = ess-zed + */ + +int hzmode; /* true if reading double-bytes in HZ mode */ +int gndbl[4]; /* gndbl[n] is true if Gn is double-byte */ +inchr gn[4]; /* Gn character sets: ASCII, Latin-1, none, none */ +int gl; /* 0-3 specifies left-half Gn character set */ +int gr; /* 0-3 specifies right-half Gn character set */ + +int Myargc; /* to avoid passing around argc and argv */ +char **Myargv; + +/**************************************************************************** + + Globals dealing with chars that are written + +****************************************************************************/ + +#ifdef TLF_FONTS +typedef wchar_t outchr; /* "char" written to stdout */ +#define STRLEN(x) wcslen(x) +#define STRCPY(x,y) wcscpy((x),(y)) +#define STRCAT(x,y) wcscat((x),(y)) +#define ISSPACE(x) iswspace(x) +#else +typedef char outchr; /* "char" written to stdout */ +#define STRLEN(x) MYSTRLEN(x) +#define STRCPY(x,y) strcpy((x),(y)) +#define STRCAT(x,y) strcat((x),(y)) +#define ISSPACE(x) isspace(x) +#endif + +typedef struct fc { + inchr ord; + outchr **thechar; /* Alloc'd char thechar[charheight][]; */ + struct fc *next; + } fcharnode; + +fcharnode *fcharlist; +outchr **currchar; +int currcharwidth; +int previouscharwidth; +outchr **outputline; /* Alloc'd char outputline[charheight][outlinelenlimit+1]; */ +int outlinelen; + + +/**************************************************************************** + + Globals dealing with command file storage + +****************************************************************************/ + +typedef struct cfn { + char *thename; + struct cfn *next; + } cfnamenode; + +cfnamenode *cfilelist,**cfilelistend; + +typedef struct cm { + int thecommand; + inchr rangelo; + inchr rangehi; + inchr offset; + struct cm *next; + } comnode; + +comnode *commandlist,**commandlistend; + +/**************************************************************************** + + Globals affected by command line options + +****************************************************************************/ + +int deutschflag,justification,paragraphflag,right2left,multibyte; +int cmdinput; + +#define SM_SMUSH 128 +#define SM_KERN 64 +#define SM_EQUAL 1 +#define SM_LOWLINE 2 +#define SM_HIERARCHY 4 +#define SM_PAIR 8 +#define SM_BIGX 16 +#define SM_HARDBLANK 32 + +int smushmode; + +#define SMO_NO 0 /* no command-line smushmode */ +#define SMO_YES 1 /* use command-line smushmode, ignore font smushmode */ +#define SMO_FORCE 2 /* logically OR command-line and font smushmodes */ + +int smushoverride; + +int outputwidth; +int outlinelenlimit; +char *fontdirname,*fontname; + + +/**************************************************************************** + + Globals read from font file + +****************************************************************************/ + +char hardblank; +int charheight; + + +/**************************************************************************** + + Name of program, used in error messages + +****************************************************************************/ + +char *myname; + + +#ifdef TIOCGWINSZ +/**************************************************************************** + + get_columns + + Determines the number of columns of /dev/tty. Returns the number of + columns, or -1 if error. May return 0 if columns unknown. + Requires include files and . + by Glenn Chappell & Ian Chai 14 Apr 1993 + +****************************************************************************/ + +int get_columns() +{ + struct winsize ws; + int fd,result; + + if ((fd = open("/dev/tty",O_WRONLY))<0) return -1; + result = ioctl(fd,TIOCGWINSZ,&ws); + close(fd); + return result?-1:ws.ws_col; +} +#endif /* ifdef TIOCGWINSZ */ + + +/**************************************************************************** + + myalloc + + Calls malloc. If malloc returns error, prints error message and + quits. + +****************************************************************************/ + +#ifdef __STDC__ +char *myalloc(size_t size) +#else +char *myalloc(size) +int size; +#endif +{ + char *ptr; +#ifndef __STDC__ + extern void *malloc(); +#endif + + if ((ptr = (char*)malloc(size))==NULL) { + fprintf(stderr,"%s: Out of memory\n",myname); + exit(1); + } + else { + return ptr; + } +} + + +/**************************************************************************** + + hasdirsep + + Returns true if s1 contains a DIRSEP or DIRSEP2 character. + +****************************************************************************/ + +int hasdirsep(s1) +char *s1; +{ + if (strchr(s1, DIRSEP)) return 1; + else if (strchr(s1, DIRSEP2)) return 1; + else return 0; +} + +/**************************************************************************** + + suffixcmp + + Returns true if s2 is a suffix of s1; uses case-blind comparison. + +****************************************************************************/ + +int suffixcmp(s1, s2) +char *s1; +char *s2; +{ + int len1, len2; + + len1 = MYSTRLEN(s1); + len2 = MYSTRLEN(s2); + if (len2 > len1) return 0; + s1 += len1 - len2; + while (*s1) { + if (tolower(*s1) != tolower(*s2)) return 0; + s1++; + s2++; + } + return 1; +} + +/**************************************************************************** + + skiptoeol + + Skips to the end of a line, given a stream. Handles \r, \n, or \r\n. + +****************************************************************************/ + +void skiptoeol(fp) +ZFILE *fp; +{ + int dummy; + + while (dummy=Zgetc(fp),dummy!=EOF) { + if (dummy == '\n') return; + if (dummy == '\r') { + dummy = Zgetc(fp); + if (dummy != EOF && dummy != '\n') Zungetc(dummy,fp); + return; + } + } +} + + +/**************************************************************************** + + myfgets + + Local version of fgets. Handles \r, \n, and \r\n terminators. + +****************************************************************************/ + +char *myfgets(line,maxlen,fp) +char *line; +int maxlen; +ZFILE *fp; +{ + int c = 0; + char *p; + + p = line; + while((c=Zgetc(fp))!=EOF&&maxlen) { + *p++ = c; + maxlen--; + if (c=='\n') break; + if (c=='\r') { + c = Zgetc(fp); + if (c != EOF && c != '\n') Zungetc(c,fp); + *(p-1) = '\n'; + break; + } + } + *p = 0; + return (c==EOF) ? NULL : line; +} + + +/**************************************************************************** + + usageerr + + Prints "Usage: ...." line to the given stream. + +****************************************************************************/ + +void printusage(out) +FILE *out; +{ + fprintf(out, + "Usage: %s [ -cklnoprstvxDELNRSWX ] [ -d fontdirectory ]\n", + myname); + fprintf(out, + " [ -f fontfile ] [ -m smushmode ] [ -w outputwidth ]\n"); + fprintf(out, + " [ -C controlfile ] [ -I infocode ] [ message ]\n"); +} + + +/**************************************************************************** + + printinfo + + Prints version and copyright message, or utility information. + +****************************************************************************/ + +void printinfo(infonum) +int infonum; +{ + switch (infonum) { + case 0: /* Copyright message */ + printf("FIGlet Copyright (C) 1991-2012 Glenn Chappell, Ian Chai, "); + printf("John Cowan,\nChristiaan Keet and Claudio Matsuoka\n"); + printf("Internet: "); + printf("Version: %s, date: %s\n\n",VERSION,DATE); + printf("FIGlet, along with the various FIGlet fonts"); + printf(" and documentation, may be\n"); + printf("freely copied and distributed.\n\n"); + printf("If you use FIGlet, please send an"); + printf(" e-mail message to .\n\n"); + printf("The latest version of FIGlet is available from the"); + printf(" web site,\n\thttp://www.figlet.org/\n\n"); + printusage(stdout); + break; + case 1: /* Version (integer) */ + printf("%d\n",VERSION_INT); + break; + case 2: /* Font directory */ + printf("%s\n",fontdirname); + break; + case 3: /* Font */ + printf("%s\n",fontname); + break; + case 4: /* Outputwidth */ + printf("%d\n",outputwidth); + break; + case 5: /* Font formats */ + printf("%s", FONTFILEMAGICNUMBER); +#ifdef TLF_FONTS + printf(" %s", TOILETFILEMAGICNUMBER); +#endif + printf("\n"); + } +} + + +/**************************************************************************** + + readmagic + + Reads a four-character magic string from a stream. + +****************************************************************************/ +void readmagic(fp,magic) +ZFILE *fp; +char *magic; +{ + int i; + + for (i=0;i<4;i++) { + magic[i] = Zgetc(fp); + } + magic[4] = 0; + } + +/**************************************************************************** + + skipws + + Skips whitespace characters from a stream. + +****************************************************************************/ +void skipws(fp) +ZFILE *fp; +{ + int c; + while (c=Zgetc(fp),isascii(c)&&isspace(c)) ; + Zungetc(c,fp); + } + +/**************************************************************************** + + readnum + + Reads a number from a stream. Accepts "0" prefix for octal and + "0x" or "0X" for hexadecimal. Ignores leading whitespace. + +****************************************************************************/ +void readnum(fp,nump) +ZFILE *fp; +inchr *nump; +{ + int acc = 0; + char *p; + int c; + int base; + int sign = 1; + char digits[] = "0123456789ABCDEF"; + + skipws(fp); + c = Zgetc(fp); + if (c=='-') { + sign = -1; + } + else { + Zungetc(c,fp); + } + c = Zgetc(fp); + if (c=='0') { + c = Zgetc(fp); + if (c=='x'||c=='X') { + base = 16; + } + else { + base = 8; + Zungetc(c,fp); + } + } + else { + base = 10; + Zungetc(c,fp); + } + + while((c=Zgetc(fp))!=EOF) { + c=toupper(c); + p=strchr(digits,c); + if (!p) { + Zungetc(c,fp); + *nump = acc * sign; + return; + } + acc = acc*base+(p-digits); + } + *nump = acc * sign; + } + +/**************************************************************************** + + readTchar + + Reads a control file "T" command character specification. + + Character is a single byte, an escape sequence, or + an escaped numeric. + +****************************************************************************/ + +inchr readTchar(fp) +ZFILE *fp; +{ + inchr thechar; + char next; + + thechar=Zgetc(fp); + if (thechar=='\n' || thechar=='\r') { /* Handle badly-formatted file */ + Zungetc(thechar,fp); + return '\0'; + } + if (thechar!='\\') return thechar; + next=Zgetc(fp); + switch(next) { + case 'a': + return 7; + case 'b': + return 8; + case 'e': + return 27; + case 'f': + return 12; + case 'n': + return 10; + case 'r': + return 13; + case 't': + return 9; + case 'v': + return 11; + default: + if (next=='-' || next=='x' || (next>='0' && next<='9')) { + Zungetc(next,fp); + readnum(fp,&thechar); + return thechar; + } + return next; + } +} + +/**************************************************************************** + + charsetname + + Get a Tchar representing a charset name, or 0 if none available. + Called in getcharset(). + +****************************************************************************/ + +inchr charsetname(fp) +ZFILE *fp; +{ + inchr result; + + result = readTchar(fp); + if (result == '\n' || result == '\r') { + result = 0; + Zungetc(result,fp); + } + return result; + } + +/**************************************************************************** + + charset + + Processes "g[0123]" character set specifier + Called in readcontrol(). + +****************************************************************************/ + +void charset(n, controlfile) +int n; +ZFILE *controlfile; +{ + int ch; + + skipws(controlfile); + if (Zgetc(controlfile) != '9') { + skiptoeol(controlfile); + return; + } + ch = Zgetc(controlfile); + if (ch == '6') { + gn[n] = 65536L * charsetname(controlfile) + 0x80; + gndbl[n] = 0; + skiptoeol(controlfile); + return; + } + if (ch != '4') { + skiptoeol(controlfile); + return; + } + ch = Zgetc(controlfile); + if (ch == 'x') { + if (Zgetc(controlfile) != '9') { + skiptoeol(controlfile); + return; + } + if (Zgetc(controlfile) != '4') { + skiptoeol(controlfile); + return; + } + skipws(controlfile); + gn[n] = 65536L * charsetname(controlfile); + gndbl[n] = 1; + skiptoeol(controlfile); + return; + } + Zungetc(ch, controlfile); + skipws(controlfile); + gn[n] = 65536L * charsetname(controlfile); + gndbl[n] = 0; + return; + } + +/**************************************************************************** + + FIGopen + + Given a FIGlet font or control file name and suffix, return the file + or NULL if not found + +****************************************************************************/ + +ZFILE *FIGopen(name,suffix) +char *name; +char *suffix; +{ + char *fontpath; + ZFILE *fontfile; + struct stat st; + int namelen; + + namelen = MYSTRLEN(fontdirname); + fontpath = (char*)alloca(sizeof(char)* + (namelen+MYSTRLEN(name)+MYSTRLEN(suffix)+2)); + fontfile = NULL; + if (!hasdirsep(name)) { /* not a full path name */ + strcpy(fontpath,fontdirname); + fontpath[namelen] = DIRSEP; + fontpath[namelen+1] = '\0'; + strcat(fontpath,name); + strcat(fontpath,suffix); + if(stat(fontpath,&st)==0) goto ok; + } + /* just append suffix */ + strcpy(fontpath,name); + strcat(fontpath,suffix); + if(stat(fontpath,&st)==0) goto ok; + + return NULL; + +ok: + fontfile = Zopen(fontpath,"rb"); + return fontfile; +} + +/**************************************************************************** + + readcontrol + + Allocates memory and reads in the given control file. + Called in readcontrolfiles(). + +****************************************************************************/ + +void readcontrol(controlname) +char *controlname; +{ + inchr firstch,lastch; + char dashcheck; + inchr offset; + int command; + ZFILE *controlfile; + + controlfile = FIGopen(controlname,CONTROLFILESUFFIX); + + if (controlfile==NULL) { + fprintf(stderr,"%s: %s: Unable to open control file\n",myname, + controlname); + exit(1); + } + + (*commandlistend) = (comnode*)myalloc(sizeof(comnode)); + (*commandlistend)->thecommand = 0; /* Begin with a freeze command */ + commandlistend = &(*commandlistend)->next; + (*commandlistend) = NULL; + + while(command=Zgetc(controlfile),command!=EOF) { + switch (command) { + case 't': /* Translate */ + skipws(controlfile); + firstch=readTchar(controlfile); + if ((dashcheck=Zgetc(controlfile))=='-') { + lastch=readTchar(controlfile); + } + else { + Zungetc(dashcheck,controlfile); + lastch=firstch; + } + skipws(controlfile); + offset=readTchar(controlfile)-firstch; + skiptoeol(controlfile); + (*commandlistend) = (comnode*)myalloc(sizeof(comnode)); + (*commandlistend)->thecommand = 1; + (*commandlistend)->rangelo = firstch; + (*commandlistend)->rangehi = lastch; + (*commandlistend)->offset = offset; + commandlistend = &(*commandlistend)->next; + (*commandlistend) = NULL; + break; + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + case '-': + /* Mapping table entry */ + Zungetc(command,controlfile); + readnum(controlfile,&firstch); + skipws(controlfile); + readnum(controlfile,&lastch); + offset=lastch-firstch; + lastch=firstch; + skiptoeol(controlfile); + (*commandlistend) = (comnode*)myalloc(sizeof(comnode)); + (*commandlistend)->thecommand = 1; + (*commandlistend)->rangelo = firstch; + (*commandlistend)->rangehi = lastch; + (*commandlistend)->offset = offset; + commandlistend = &(*commandlistend)->next; + (*commandlistend) = NULL; + break; + case 'f': /* freeze */ + skiptoeol(controlfile); + (*commandlistend) = (comnode*)myalloc(sizeof(comnode)); + (*commandlistend)->thecommand = 0; + commandlistend = &(*commandlistend)->next; + (*commandlistend) = NULL; + break; + case 'b': /* DBCS input mode */ + multibyte = 1; + break; + case 'u': /* UTF-8 input mode */ + multibyte = 2; + break; + case 'h': /* HZ input mode */ + multibyte = 3; + break; + case 'j': /* Shift-JIS input mode */ + multibyte = 4; + break; + case 'g': /* ISO 2022 character set choices */ + multibyte = 0; + skipws(controlfile); + command=Zgetc(controlfile); + switch (command) { + case '0': /* define G0 charset */ + charset(0, controlfile); + break; + case '1': /* set G1 charset */ + charset(1, controlfile); + break; + case '2': /* set G2 charset */ + charset(2, controlfile); + break; + case '3': /* set G3 charset */ + charset(3, controlfile); + break; + case 'l': case 'L': /* define left half */ + skipws(controlfile); + gl = Zgetc(controlfile) - '0'; + skiptoeol(controlfile); + break; + case 'r': case 'R': /* define right half */ + skipws(controlfile); + gr = Zgetc(controlfile) - '0'; + skiptoeol(controlfile); + break; + default: /* meaningless "g" command */ + skiptoeol(controlfile); + } + case '\r': case '\n': /* blank line */ + break; + default: /* Includes '#' */ + skiptoeol(controlfile); + } + } + Zclose(controlfile); +} + + +/**************************************************************************** + + readcontrolfiles + + Reads in the controlfiles names in cfilelist. Uses readcontrol. + Called in main(). + +****************************************************************************/ + +void readcontrolfiles() +{ + cfnamenode *cfnptr; + + for (cfnptr=cfilelist;cfnptr!=NULL;cfnptr=cfnptr->next) { + readcontrol(cfnptr->thename); + } +} + + +/**************************************************************************** + + clearcfilelist + + Clears the control file list. Assumes thename does not need freeing. + +****************************************************************************/ + +void clearcfilelist() +{ + cfnamenode *cfnptr1,*cfnptr2; + + cfnptr1 = cfilelist; + while (cfnptr1 != NULL) { + cfnptr2 = cfnptr1->next; + free(cfnptr1); + cfnptr1 = cfnptr2; + } + cfilelist = NULL; + cfilelistend = &cfilelist; +} + + +/**************************************************************************** + + getparams + + Handles all command-line parameters. Puts all parameters within + bounds. + +****************************************************************************/ + +void getparams() +{ + extern char *optarg; + extern int optind; + int c; /* "Should" be a char -- need int for "!= -1" test*/ + int columns,infoprint; + char *controlname,*env; + + if ((myname = strrchr(Myargv[0],DIRSEP))!=NULL) { + myname++; + } + else { + myname = Myargv[0]; + } + fontdirname = DEFAULTFONTDIR; + env = getenv("FIGLET_FONTDIR"); + if (env!=NULL) { + fontdirname = env; + } + fontname = DEFAULTFONTFILE; + cfilelist = NULL; + cfilelistend = &cfilelist; + commandlist = NULL; + commandlistend = &commandlist; + smushoverride = SMO_NO; + deutschflag = 0; + justification = -1; + right2left = -1; + paragraphflag = 0; + infoprint = -1; + cmdinput = 0; + outputwidth = DEFAULTCOLUMNS; + gn[1] = 0x80; + gr = 1; + while ((c = getopt(Myargc,Myargv,"ADEXLRI:xlcrpntvm:w:d:f:C:NFskSWo"))!= -1) { + /* Note: -F is not a legal option -- prints a special err message. */ + switch (c) { + case 'A': + cmdinput = 1; + break; + case 'D': + deutschflag = 1; + break; + case 'E': + deutschflag = 0; + break; + case 'X': + right2left = -1; + break; + case 'L': + right2left = 0; + break; + case 'R': + right2left = 1; + break; + case 'x': + justification = -1; + break; + case 'l': + justification = 0; + break; + case 'c': + justification = 1; + break; + case 'r': + justification = 2; + break; + case 'p': + paragraphflag = 1; + break; + case 'n': + paragraphflag = 0; + break; + case 's': + smushoverride = SMO_NO; + break; + case 'k': + smushmode = SM_KERN; + smushoverride = SMO_YES; + break; + case 'S': + smushmode = SM_SMUSH; + smushoverride = SMO_FORCE; + break; + case 'o': + smushmode = SM_SMUSH; + smushoverride = SMO_YES; + break; + case 'W': + smushmode = 0; + smushoverride = SMO_YES; + break; + case 't': +#ifdef TIOCGWINSZ + columns = get_columns(); + if (columns>0) { + outputwidth = columns; + } +#else /* ifdef TIOCGWINSZ */ + fprintf(stderr, + "%s: \"-t\" is disabled, since ioctl is not fully implemented.\n", + myname); +#endif /* ifdef TIOCGWINSZ */ + break; + case 'v': + infoprint = 0; + break; + case 'I': + infoprint = atoi(optarg); + break; + case 'm': + smushmode = atoi(optarg); + if (smushmode < -1) { + smushoverride = SMO_NO; + break; + } + if (smushmode == 0) smushmode = SM_KERN; + else if (smushmode == -1) smushmode = 0; + else smushmode = (smushmode & 63) | SM_SMUSH; + smushoverride = SMO_YES; + break; + case 'w': + columns = atoi(optarg); + if (columns>0) { + outputwidth = columns; + } + break; + case 'd': + fontdirname = optarg; + break; + case 'f': + fontname = optarg; + if (suffixcmp(fontname,FONTFILESUFFIX)) { + fontname[MYSTRLEN(fontname)-FSUFFIXLEN] = '\0'; + } +#ifdef TLF_FONTS + else if (suffixcmp(fontname,TOILETFILESUFFIX)) { + fontname[MYSTRLEN(fontname)-TSUFFIXLEN] = '\0'; + } +#endif + break; + case 'C': + controlname = optarg; + if (suffixcmp(controlname, CONTROLFILESUFFIX)) { + controlname[MYSTRLEN(controlname)-CSUFFIXLEN] = '\0'; + } + (*cfilelistend) = (cfnamenode*)myalloc(sizeof(cfnamenode)); + (*cfilelistend)->thename = controlname; + cfilelistend = &(*cfilelistend)->next; + (*cfilelistend) = NULL; + break; + case 'N': + clearcfilelist(); + multibyte = 0; + gn[0] = 0; + gn[1] = 0x80; + gn[2] = gn[3] = 0; + gndbl[0] = gndbl[1] = gndbl[2] = gndbl[3] = 0; + gl = 0; + gr = 1; + break; + case 'F': /* Not a legal option */ + fprintf(stderr,"%s: illegal option -- F\n",myname); + printusage(stderr); + fprintf(stderr,"\nBecause of numerous incompatibilities, the"); + fprintf(stderr," \"-F\" option has been\n"); + fprintf(stderr,"removed. It has been replaced by the \"figlist\""); + fprintf(stderr," program, which is now\n"); + fprintf(stderr,"included in the basic FIGlet package. \"figlist\""); + fprintf(stderr," is also available\n"); + fprintf(stderr,"from http://www.figlet.org/"); + fprintf(stderr,"under UNIX utilities.\n"); + exit(1); + break; + default: + printusage(stderr); + exit(1); + } + } + if (optind!=Myargc) cmdinput = 1; /* force cmdinput if more arguments */ + outlinelenlimit = outputwidth-1; + if (infoprint>=0) { + printinfo(infoprint); + exit(0); + } +} + + +/**************************************************************************** + + clearline + + Clears both the input (inchrline) and output (outputline) storage. + +****************************************************************************/ + +void clearline() +{ + int i; + + for (i=0;iord = theord; + fcharlist->thechar = (outchr**)myalloc(sizeof(outchr*)*charheight); + fcharlist->next = fclsave; + + outline[0] = 0; + + for (row=0;row=0 && ISSPACE(outline[k])) { /* remove trailing spaces */ + k--; + } + if (k>=0) { + endchar = outline[k]; /* remove endmarks */ + while (k>=0 && outline[k]==endchar) { + k--; + } + } + outline[k+1] = '\0'; + fcharlist->thechar[row] = (outchr*)myalloc(sizeof(outchr)*(STRLEN(outline)+1)); + STRCPY(fcharlist->thechar[row],outline); + } +} + + +/**************************************************************************** + + readfont + + Allocates memory, initializes variables, and reads in the font. + Called near beginning of main(). + +****************************************************************************/ + +void readfont() +{ + int i,row,numsread; + inchr theord; + int maxlen,cmtlines,ffright2left; + int smush,smush2; + char fileline[MAXLEN+1],magicnum[5]; + ZFILE *fontfile; + + fontfile = FIGopen(fontname,FONTFILESUFFIX); +#ifdef TLF_FONTS + if (fontfile==NULL) { + fontfile = FIGopen(fontname,TOILETFILESUFFIX); + if(fontfile) toiletfont = 1; + } +#endif + + if (fontfile==NULL) { + fprintf(stderr,"%s: %s: Unable to open font file\n",myname,fontname); + exit(1); + } + + readmagic(fontfile,magicnum); + if (myfgets(fileline,MAXLEN,fontfile)==NULL) { + fileline[0] = '\0'; + } + if (MYSTRLEN(fileline)>0 ? fileline[MYSTRLEN(fileline)-1]!='\n' : 0) { + skiptoeol(fontfile); + } + numsread = sscanf(fileline,"%*c%c %d %*d %d %d %d %d %d", + &hardblank,&charheight,&maxlen,&smush,&cmtlines, + &ffright2left,&smush2); + + if (maxlen > MAXLEN) { + fprintf(stderr,"%s: %s: character is too wide\n",myname,fontname); + exit(1); + } +#ifdef TLF_FONTS + if ((!toiletfont && strcmp(magicnum,FONTFILEMAGICNUMBER)) || + (toiletfont && strcmp(magicnum,TOILETFILEMAGICNUMBER)) || numsread<5) { +#else + if (strcmp(magicnum,FONTFILEMAGICNUMBER) || numsread<5) { +#endif + fprintf(stderr,"%s: %s: Not a FIGlet 2 font file\n",myname,fontname); + exit(1); + } + for (i=1;i<=cmtlines;i++) { + skiptoeol(fontfile); + } + + if (numsread<6) { + ffright2left = 0; + } + + if (numsread<7) { /* if no smush2, decode smush into smush2 */ + if (smush == 0) smush2 = SM_KERN; + else if (smush < 0) smush2 = 0; + else smush2 = (smush & 31) | SM_SMUSH; + } + + if (charheight<1) { + charheight = 1; + } + + if (maxlen<1) { + maxlen = 1; + } + + maxlen += 100; /* Give ourselves some extra room */ + + if (smushoverride == SMO_NO) + smushmode = smush2; + else if (smushoverride == SMO_FORCE) + smushmode |= smush2; + + if (right2left<0) { + right2left = ffright2left; + } + + if (justification<0) { + justification = 2*right2left; + } + + /* Allocate "missing" character */ + fcharlist = (fcharnode*)myalloc(sizeof(fcharnode)); + fcharlist->ord = 0; + fcharlist->thechar = (outchr**)myalloc(sizeof(outchr*)*charheight); + fcharlist->next = NULL; + for (row=0;rowthechar[row] = (outchr*)myalloc(sizeof(outchr)); + fcharlist->thechar[row][0] = '\0'; + } + for (theord=' ';theord<='~';theord++) { + readfontchar(fontfile,theord); + } + for (theord=0;theord<=6;theord++) { + readfontchar(fontfile,deutsch[theord]); + } + while (myfgets(fileline,maxlen+1,fontfile)==NULL?0: + sscanf(fileline,"%li",&theord)==1) { + readfontchar(fontfile,theord); + } + Zclose(fontfile); +} + + +/**************************************************************************** + + linealloc + + Allocates & clears outputline, inchrline. Sets inchrlinelenlimit. + Called near beginning of main(). + +****************************************************************************/ + +void linealloc() +{ + int row; + + outputline = (outchr**)myalloc(sizeof(outchr*)*charheight); + for (row=0;roword!=c; + charptr=charptr->next) ; + if (charptr!=NULL) { + currchar = charptr->thechar; + } + else { + for (charptr=fcharlist;charptr==NULL?0:charptr->ord!=0; + charptr=charptr->next) ; + currchar = charptr->thechar; + } + previouscharwidth = currcharwidth; + currcharwidth = STRLEN(currchar[0]); +} + + +/**************************************************************************** + + smushem + + Given 2 characters, attempts to smush them into 1, according to + smushmode. Returns smushed character or '\0' if no smushing can be + done. + + smushmode values are sum of following (all values smush blanks): + 1: Smush equal chars (not hardblanks) + 2: Smush '_' with any char in hierarchy below + 4: hierarchy: "|", "/\", "[]", "{}", "()", "<>" + Each class in hier. can be replaced by later class. + 8: [ + ] -> |, { + } -> |, ( + ) -> | + 16: / + \ -> X, > + < -> X (only in that order) + 32: hardblank + hardblank -> hardblank + +****************************************************************************/ + +outchr smushem(lch,rch) +outchr lch,rch; +{ + if (lch==' ') return rch; + if (rch==' ') return lch; + + if (previouscharwidth<2 || currcharwidth<2) return '\0'; + /* Disallows overlapping if the previous character */ + /* or the current character has a width of 1 or zero. */ + + if ((smushmode & SM_SMUSH) == 0) return '\0'; /* kerning */ + + if ((smushmode & 63) == 0) { + /* This is smushing by universal overlapping. */ + if (lch==' ') return rch; + if (rch==' ') return lch; + if (lch==hardblank) return rch; + if (rch==hardblank) return lch; + /* Above four lines ensure overlapping preference to */ + /* visible characters. */ + if (right2left==1) return lch; + /* Above line ensures that the dominant (foreground) */ + /* fig-character for overlapping is the latter in the */ + /* user's text, not necessarily the rightmost character. */ + return rch; + /* Occurs in the absence of above exceptions. */ + } + + if (smushmode & SM_HARDBLANK) { + if (lch==hardblank && rch==hardblank) return lch; + } + + if (lch==hardblank || rch==hardblank) return '\0'; + + if (smushmode & SM_EQUAL) { + if (lch==rch) return lch; + } + + if (smushmode & SM_LOWLINE) { + if (lch=='_' && strchr("|/\\[]{}()<>",rch)) return rch; + if (rch=='_' && strchr("|/\\[]{}()<>",lch)) return lch; + } + + if (smushmode & SM_HIERARCHY) { + if (lch=='|' && strchr("/\\[]{}()<>",rch)) return rch; + if (rch=='|' && strchr("/\\[]{}()<>",lch)) return lch; + if (strchr("/\\",lch) && strchr("[]{}()<>",rch)) return rch; + if (strchr("/\\",rch) && strchr("[]{}()<>",lch)) return lch; + if (strchr("[]",lch) && strchr("{}()<>",rch)) return rch; + if (strchr("[]",rch) && strchr("{}()<>",lch)) return lch; + if (strchr("{}",lch) && strchr("()<>",rch)) return rch; + if (strchr("{}",rch) && strchr("()<>",lch)) return lch; + if (strchr("()",lch) && strchr("<>",rch)) return rch; + if (strchr("()",rch) && strchr("<>",lch)) return lch; + } + + if (smushmode & SM_PAIR) { + if (lch=='[' && rch==']') return '|'; + if (rch=='[' && lch==']') return '|'; + if (lch=='{' && rch=='}') return '|'; + if (rch=='{' && lch=='}') return '|'; + if (lch=='(' && rch==')') return '|'; + if (rch=='(' && lch==')') return '|'; + } + + if (smushmode & SM_BIGX) { + if (lch=='/' && rch=='\\') return '|'; + if (rch=='/' && lch=='\\') return 'Y'; + if (lch=='>' && rch=='<') return 'X'; + /* Don't want the reverse of above to give 'X'. */ + } + + return '\0'; +} + + +/**************************************************************************** + + smushamt + + Returns the maximum amount that the current character can be smushed + into the current line. + +****************************************************************************/ + +int smushamt() +{ + int maxsmush,amt; + int row,linebd,charbd; + outchr ch1,ch2; + + if ((smushmode & (SM_SMUSH | SM_KERN)) == 0) { + return 0; + } + maxsmush = currcharwidth; + for (row=0;rowSTRLEN(outputline[row])) { + maxsmush=STRLEN(outputline[row]); + } + for (charbd=STRLEN(currchar[row]); + ch1=currchar[row][charbd],(charbd>0&&(!ch1||ch1==' '));charbd--) ; + for (linebd=0;ch2=outputline[row][linebd],ch2==' ';linebd++) ; + amt = linebd+currcharwidth-1-charbd; + } + else { + for (linebd=STRLEN(outputline[row]); + ch1 = outputline[row][linebd],(linebd>0&&(!ch1||ch1==' '));linebd--) ; + for (charbd=0;ch2=currchar[row][charbd],ch2==' ';charbd++) ; + amt = charbd+outlinelen-1-linebd; + } + if (!ch1||ch1==' ') { + amt++; + } + else if (ch2) { + if (smushem(ch1,ch2)!='\0') { + amt++; + } + } + if (amtoutlinelenlimit + ||inchrlinelen+1>inchrlinelenlimit) { + return 0; + } + + templine = (outchr*)myalloc(sizeof(outchr)*(outlinelenlimit+1)); + for (row=0;row1) { + if (len>outputwidth-1) { + len = outputwidth-1; + } + if (justification>0) { + for (i=1;(3-justification)*i+len+justification-2=0;i--) { + if (!gotspace && inchrline[i]==' ') { + gotspace = 1; + lastspace = i; + } + if (gotspace && inchrline[i]!=' ') { + break; + } + } + len1 = i+1; + len2 = inchrlinelen-lastspace-1; + for (i=0;ithecommand ? + (c >= cmptr->rangelo && c <= cmptr->rangehi) : 0) { + c += cmptr->offset; + while(cmptr!=NULL ? cmptr->thecommand : 0) { + cmptr=cmptr->next; + } + } + else { + cmptr=cmptr->next; + } + } + return c; +} + +/**************************************************************************** + + Agetchar + + Replacement to getchar(). + Acts exactly like getchar if -A is NOT specified, + else obtains input from All remaining command line words. + +****************************************************************************/ + +int Agetchar() +{ + extern int optind; /* current argv[] element under study */ + static int AgetMode = 0; /* >= 0 for displacement into argv[n], <0 EOF */ + char *arg; /* pointer to active character */ + int c; /* current character */ + + if ( ! cmdinput ) /* is -A active? */ + return( getchar() ); /* no: return stdin character */ + + if ( AgetMode < 0 || optind >= Myargc ) /* EOF is sticky: */ + return( EOF ); /* **ensure it now and forever more */ + + /* find next character */ + arg = Myargv[optind]; /* pointer to active arg */ + c = arg[AgetMode++]&0xFF; /* get appropriate char of arg */ + + if ( ! c ) /* at '\0' that terminates word? */ + { /* at end of word: return ' ' if normal word, '\n' if empty */ + c = ' '; /* suppose normal word and return blank */ + if ( AgetMode == 1 ) /* if ran out in very 1st char, force \n */ + c = '\n'; /* (allows "hello '' world" to do \n at '') */ + AgetMode = 0; /* return to char 0 in NEXT word */ + if ( ++optind >= Myargc ) /* run up word count and check if at "EOF" */ + { /* just ran out of arguments */ + c = EOF; /* return EOF */ + AgetMode = -1; /* ensure all future returns return EOF */ + } + } + + return( c ); /* return appropriate character */ + +} /* end: Agetchar() */ + + +/**************************************************************************** + + iso2022 + + Called by getinchr. Interprets ISO 2022 sequences + +******************************************************************************/ + +inchr iso2022() +{ + inchr ch; + inchr ch2; + int save_gl; + int save_gr; + + ch = Agetchar(); + if (ch == EOF) return ch; + if (ch == 27) ch = Agetchar() + 0x100; /* ESC x */ + if (ch == 0x100 + '$') ch = Agetchar() + 0x200; /* ESC $ x */ + switch (ch) { + case 14: /* invoke G1 into GL */ + gl = 1; + return iso2022(); + case 15: /* invoke G0 into GL */ + gl = 0; + return iso2022(); + case 142: case 'N' + 0x100: /* invoke G2 into GL for next char */ + save_gl = gl; save_gr = gr; + gl = gr = 2; + ch = iso2022(); + gl = save_gl; gr = save_gr; + return ch; + case 143: case 'O' + 0x100: /* invoke G3 into GL for next char */ + save_gl = gl; save_gr = gr; + gl = gr = 3; + ch = iso2022(); + gl = save_gl; gr = save_gr; + return ch; + case 'n' + 0x100: /* invoke G2 into GL */ + gl = 2; + return iso2022(); + case 'o' + 0x100: /* invoke G3 into GL */ + gl = 3; + return iso2022(); + case '~' + 0x100: /* invoke G1 into GR */ + gr = 1; + return iso2022(); + case '}' + 0x100: /* invoke G2 into GR */ + gr = 2; + return iso2022(); + case '|' + 0x100: /* invoke G3 into GR */ + gr = 3; + return iso2022(); + case '(' + 0x100: /* set G0 to 94-char set */ + ch = Agetchar(); + if (ch == 'B') ch = 0; /* ASCII */ + gn[0] = ch << 16; + gndbl[0] = 0; + return iso2022(); + case ')' + 0x100: /* set G1 to 94-char set */ + ch = Agetchar(); + if (ch == 'B') ch = 0; + gn[1] = ch << 16; + gndbl[1] = 0; + return iso2022(); + case '*' + 0x100: /* set G2 to 94-char set */ + ch = Agetchar(); + if (ch == 'B') ch = 0; + gn[2] = ch << 16; + gndbl[2] = 0; + return iso2022(); + case '+' + 0x100: /* set G3 to 94-char set */ + ch = Agetchar(); + if (ch == 'B') ch = 0; + gn[3] = ch << 16; + gndbl[3] = 0; + return iso2022(); + case '-' + 0x100: /* set G1 to 96-char set */ + ch = Agetchar(); + if (ch == 'A') ch = 0; /* Latin-1 top half */ + gn[1] = (ch << 16) | 0x80; + gndbl[1] = 0; + return iso2022(); + case '.' + 0x100: /* set G2 to 96-char set */ + ch = Agetchar(); + if (ch == 'A') ch = 0; + gn[2] = (ch << 16) | 0x80; + gndbl[2] = 0; + return iso2022(); + case '/' + 0x100: /* set G3 to 96-char set */ + ch = Agetchar(); + if (ch == 'A') ch = 0; + gn[3] = (ch << 16) | 0x80; + gndbl[3] = 0; + return iso2022(); + case '(' + 0x200: /* set G0 to 94 x 94 char set */ + ch = Agetchar(); + gn[0] = ch << 16; + gndbl[0] = 1; + return iso2022(); + case ')' + 0x200: /* set G1 to 94 x 94 char set */ + ch = Agetchar(); + gn[1] = ch << 16; + gndbl[1] = 1; + return iso2022(); + case '*' + 0x200: /* set G2 to 94 x 94 char set */ + ch = Agetchar(); + gn[2] = ch << 16; + gndbl[2] = 1; + return iso2022(); + case '+' + 0x200: /* set G3 to 94 x 94 char set */ + ch = Agetchar(); + gn[3] = ch << 16; + gndbl[3] = 1; + return iso2022(); + default: + if (ch & 0x200) { /* set G0 to 94 x 94 char set (deprecated) */ + gn[0] = (ch & ~0x200) << 16; + gndbl[0] = 1; + return iso2022(); + } + } + + if (ch >= 0x21 && ch <= 0x7E) { /* process GL */ + if (gndbl[gl]) { + ch2 = Agetchar(); + return gn[gl] | (ch << 8) | ch2; + } + else return gn[gl] | ch; + } + else if (ch >= 0xA0 && ch <= 0xFF) { /* process GR */ + if (gndbl[gr]) { + ch2 = Agetchar(); + return gn[gr] | (ch << 8) | ch2; + } + else return gn[gr] | (ch & ~0x80); + } + else return ch; + } + +/**************************************************************************** + + ungetinchr + + Called by main. Pushes back an "inchr" to be read by getinchr + on the next call. + +******************************************************************************/ +inchr getinchr_buffer; +int getinchr_flag; + +inchr ungetinchr(c) +inchr c; +{ + getinchr_buffer = c; + getinchr_flag = 1; + return c; +} + +/***************************************************************************** + + getinchr + + Called by main. Processes multibyte characters. Invokes Agetchar. + If multibyte = 0, ISO 2022 mode (see iso2022 routine). + If multibyte = 1, double-byte mode (0x00-0x7f bytes are characters, + 0x80-0xFF bytes are first byte of a double-byte character). + If multibyte = 2, Unicode UTF-8 mode (0x00-0x7F bytes are characters, + 0x80-0xBF bytes are nonfirst byte of a multibyte character, + 0xC0-0xFD bytes are first byte of a multibyte character, + 0xFE-0xFF bytes are errors (all errors return code 0x0080)). + If multibyte = 3, HZ mode ("~{" starts double-byte mode, "}~" ends it, + "~~" is a tilde, "~x" for all other x is ignored). + If multibyte = 4, Shift-JIS mode (0x80-0x9F and 0xE0-0xEF are first byte + of a double-byte character, all other bytes are characters). + + +*****************************************************************************/ + +inchr getinchr() +{ + int ch, ch2, ch3, ch4, ch5, ch6; + + if (getinchr_flag) { + getinchr_flag = 0; + return getinchr_buffer; + } + + switch(multibyte) { + case 0: /* single-byte */ + return iso2022(); + case 1: /* DBCS */ + ch = Agetchar(); + if ((ch >= 0x80 && ch <= 0x9F) || + (ch >= 0xE0 && ch <= 0xEF)) { + ch = (ch << 8) + Agetchar(); + } + return ch; + case 2: /* UTF-8 */ + ch = Agetchar(); + if (ch < 0x80) return ch; /* handles EOF, too */ + if (ch < 0xC0 || ch > 0xFD) + return 0x0080; /* illegal first character */ + ch2 = Agetchar() & 0x3F; + if (ch < 0xE0) return ((ch & 0x1F) << 6) + ch2; + ch3 = Agetchar() & 0x3F; + if (ch < 0xF0) + return ((ch & 0x0F) << 12) + (ch2 << 6) + ch3; + ch4 = Agetchar() & 0x3F; + if (ch < 0xF8) + return ((ch & 0x07) << 18) + (ch2 << 12) + (ch3 << 6) + ch4; + ch5 = Agetchar() & 0x3F; + if (ch < 0xFC) + return ((ch & 0x03) << 24) + (ch2 << 18) + (ch3 << 12) + + (ch4 << 6) + ch5; + ch6 = Agetchar() & 0x3F; + return ((ch & 0x01) << 30) + (ch2 << 24) + (ch3 << 18) + + (ch4 << 12) + (ch5 << 6) + ch6; + case 3: /* HZ */ + ch = Agetchar(); + if (ch == EOF) return ch; + if (hzmode) { + ch = (ch << 8) + Agetchar(); + if (ch == ('}' << 8) + '~') { + hzmode = 0; + return getinchr(); + } + return ch; + } + else if (ch == '~') { + ch = Agetchar(); + if (ch == '{') { + hzmode = 1; + return getinchr(); + } + else if (ch == '~') { + return ch; + } + else { + return getinchr(); + } + } + else return ch; + case 4: /* Shift-JIS */ + ch = Agetchar(); + if ((ch >= 0x80 && ch <= 0x9F) || + (ch >= 0xE0 && ch <= 0xEF)) { + ch = (ch << 8) + Agetchar(); + } + return ch; + default: + return 0x80; + } + } + +/**************************************************************************** + + main + + The main program, of course. + Reads characters 1 by 1 from stdin, and makes lines out of them using + addchar. Handles line breaking, (which accounts for most of the + complexity in this function). + +****************************************************************************/ + +int main(argc,argv) +int argc; +char *argv[]; +{ + inchr c,c2; + int i; + int last_was_eol_flag; +/*--------------------------------------------------------------------------- + wordbreakmode: + -1: /^$/ and blanks are to be absorbed (when line break was forced + by a blank or character larger than outlinelenlimit) + 0: /^ *$/ and blanks are not to be absorbed + 1: /[^ ]$/ no word break yet + 2: /[^ ] *$/ + 3: /[^ ]$/ had a word break +---------------------------------------------------------------------------*/ + int wordbreakmode; + int char_not_added; + + Myargc = argc; + Myargv = argv; + getparams(); + readcontrolfiles(); + readfont(); + linealloc(); + + wordbreakmode = 0; + last_was_eol_flag = 0; + +#ifdef TLF_FONTS + toiletfont = 0; +#endif + + while ((c = getinchr())!=EOF) { + + if (c=='\n'&¶graphflag&&!last_was_eol_flag) { + ungetinchr(c2 = getinchr()); + c = ((isascii(c2)&&isspace(c2))?'\n':' '); + } + last_was_eol_flag = (isascii(c)&&isspace(c)&&c!='\t'&&c!=' '); + + if (deutschflag) { + if (c>='[' && c<=']') { + c = deutsch[c-'[']; + } + else if (c >='{' && c <= '~') { + c = deutsch[c-'{'+3]; + } + } + + c = handlemapping(c); + + if (isascii(c)&&isspace(c)) { + c = (c=='\t'||c==' ') ? ' ' : '\n'; + } + + if ((c>'\0' && c<' ' && c!='\n') || c==127) continue; + +/* + Note: The following code is complex and thoroughly tested. + Be careful when modifying! +*/ + + do { + char_not_added = 0; + + if (wordbreakmode== -1) { + if (c==' ') { + break; + } + else if (c=='\n') { + wordbreakmode = 0; + break; + } + wordbreakmode = 0; + } + + if (c=='\n') { + printline(); + wordbreakmode = 0; + } + + else if (addchar(c)) { + if (c!=' ') { + wordbreakmode = (wordbreakmode>=2)?3:1; + } + else { + wordbreakmode = (wordbreakmode>0)?2:0; + } + } + + else if (outlinelen==0) { + for (i=0;i1) { + putstring(currchar[i]+STRLEN(currchar[i])-outlinelenlimit); + } + else { + putstring(currchar[i]); + } + } + wordbreakmode = -1; + } + + else if (c==' ') { + if (wordbreakmode==2) { + splitline(); + } + else { + printline(); + } + wordbreakmode = -1; + } + + else { + if (wordbreakmode>=2) { + splitline(); + } + else { + printline(); + } + wordbreakmode = (wordbreakmode==3)?1:0; + char_not_added = 1; + } + + } while (char_not_added); + } + + if (outlinelen!=0) { + printline(); + } + return 0; +} diff --git a/externals/figlet/figlist b/externals/figlet/figlist new file mode 100755 index 0000000000..6dea3b2cf8 --- /dev/null +++ b/externals/figlet/figlist @@ -0,0 +1,64 @@ +#!/bin/sh - +# figlist by Glenn Chappell +# figlet release 2.1.1 -- 25 Aug 1994 +# +# Lists all fonts and control files in figlet's default font directory. +# Replaces "figlet -F", which was removed from figlet version 2.1. +# +# Usage: figlist [ -d directory ] + +DIR=`dirname $0` +FIGLET=$DIR/figlet + +# Get figlet version +FIGLETVERSION=`$FIGLET -I1 2>/dev/null` +if [ -z "$FIGLETVERSION" ]; then + FIGLETVERSION=20000 +fi + +USAGE="Usage: `basename $0` [ -d directory ]" + +if [ "$1" = "-d" ]; then + FONTDIROPT="-d $2" + if [ $# -ne 2 ]; then + echo "$USAGE" + exit 1 + fi +else + FONTDIROPT="" + if [ $# -ne 0 ]; then + echo "$USAGE" + exit 1 + fi +fi + +if [ "$FIGLETVERSION" -lt 20100 ]; then + # figlet 2.0 + $FIGLET $FONTDIROPT -F + exit +fi + +# From here on we may assume figlet 2.1 or later + +FONTDIR=`$FIGLET $FONTDIROPT -I2` +FONT=`$FIGLET -I3` +echo "Default font: $FONT" +echo "Font directory: $FONTDIR" + +if [ -d "$FONTDIR" ] && [ -r "$FONTDIR" ]; then + cd "$FONTDIR" + if ls *.flf >/dev/null 2>&1 ; then + echo "Figlet fonts in this directory:" + ls *.flf 2>/dev/null | sed s/\.flf$// + else + echo 'No figlet fonts in this directory' + fi + if ls *.flc >/dev/null 2>&1 ; then + echo "Figlet control files in this directory:" + ls *.flc 2>/dev/null | sed s/\.flc$// + else + echo 'No figlet control files in this directory' + fi +else + echo 'Unable to open directory' +fi diff --git a/externals/figlet/figlist.6 b/externals/figlet/figlist.6 new file mode 100644 index 0000000000..c8b7cae5c9 --- /dev/null +++ b/externals/figlet/figlist.6 @@ -0,0 +1,52 @@ +.\" figlist by Glenn Chappell +.\" figlet release 2.1.1 -- 25 Aug 1994 +.\" +.\" Lists all fonts and control files in figlet's default font directory. +.\" Replaces "figlet -F", which was removed from figlet version 2.1. +.\" +.\" Usage: figlist [ -d directory ] +.\" +.\" Manual page by Jonathon Abbott, for the Debian Project +.\" slightly modified by Francesco Tapparo, for the Debian Project +.TH FIGLIST 6 "31 May 2012" "v2.2.5" + +.SH NAME +figlist \- lists figlet fonts and control files + +.SH SYNOPSIS +.B figlist +[ +.B \-d +.I directory +] + +.SH DESCRIPTION +Lists all fonts and control files in figlet's default font directory. +Replaces "figlet \-F", which was removed from figlet version 2.1. + +.SH EXAMPLES +To use +.B figlist +with its default settings, simply type +.RS + +.B example% figlist + +.RE + +To list all the font and control files in /usr/share/fonts/figlet +.RS + +.B example% figlist \-d /usr/share/fonts/figlet + +.RE + +.SH AUTHORS +figlist was written by Glenn Chappell + +This manual page was written by Jonathon Abbott for the Debian Project. + +.SH "SEE ALSO" +.BR figlet (6), +.BR chkfont (6), +.BR showfigfonts (6) diff --git a/externals/figlet/figmagic b/externals/figlet/figmagic new file mode 100644 index 0000000000..5e9a01a0de --- /dev/null +++ b/externals/figlet/figmagic @@ -0,0 +1,6 @@ +# Append this file to your /etc/magic or /usr/share/misc/magic file +# to enable the ``file'' command to report on FIGlet fonts and controlfiles. +0 string flf FIGlet font +>3 string >2a version %-2.2s +0 string flc FIGlet controlfile +>3 string >2a version %-2.2s diff --git a/externals/figlet/fonts/646-ca.flc b/externals/figlet/fonts/646-ca.flc new file mode 100644 index 0000000000..b5f3071183 --- /dev/null +++ b/externals/figlet/fonts/646-ca.flc @@ -0,0 +1,157 @@ +# +# Name: CSA_Z243.4-1985-1 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# CSA_Z243.4-1985-1 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the CSA_Z243.4-1985-1 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in CSA_Z243.4-1985-1 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-121 +# &g0esc x2877 &g1esc x2977 &g2esc x2a77 &g3esc x2b77 +# &alias ISO646-CA +# &alias csa7-1 +# &alias ca +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0x5C 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x5D 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0x5E 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0x5F 0x005F # LOW LINE +0x60 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0x7C 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0x7D 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0x7E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-ca2.flc b/externals/figlet/fonts/646-ca2.flc new file mode 100644 index 0000000000..a7be02f68c --- /dev/null +++ b/externals/figlet/fonts/646-ca2.flc @@ -0,0 +1,156 @@ +# +# Name: CSA_Z243.4-1985-2 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# CSA_Z243.4-1985-2 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the CSA_Z243.4-1985-2 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in CSA_Z243.4-1985-2 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-122 +# &alias ISO646-CA2 +# &g0esc x2878 &g1esc x2978 &g2esc x2a78 &g3esc x2b78 +# &alias csa7-2 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0x5C 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x5D 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0x5E 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0x5F 0x005F # LOW LINE +0x60 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0x7C 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0x7D 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0x7E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-cn.flc b/externals/figlet/fonts/646-cn.flc new file mode 100644 index 0000000000..fc42581b87 --- /dev/null +++ b/externals/figlet/fonts/646-cn.flc @@ -0,0 +1,156 @@ +# +# Name: GB_1988-80 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# GB_1988-80 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the GB_1988-80 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in GB_1988-80 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-57 +# &g0esc x2854 &g1esc x2954 &g2esc x2a54 &g3esc x2b54 +# &alias cn +# &alias ISO646-CN +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x00A5 # YEN SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-cu.flc b/externals/figlet/fonts/646-cu.flc new file mode 100644 index 0000000000..a9cd5fdb03 --- /dev/null +++ b/externals/figlet/fonts/646-cu.flc @@ -0,0 +1,156 @@ +# +# Name: NC_NC00-10:81 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# NC_NC00-10:81 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the NC_NC00-10:81 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in NC_NC00-10:81 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias cuba +# &alias iso-ir-151 +# &alias ISO646-CU +# &g0esc x282141 &g1esc x292141 &g2esc x2a2141 &g3esc x2b2141 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x00A4 # CURRENCY SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00A1 # INVERTED EXCLAMATION MARK +0x5C 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x00BF # INVERTED QUESTION MARK +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00B4 # ACUTE ACCENT +0x7C 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0x7D 0x005B # LEFT SQUARE BRACKET +0x7E 0x00A8 # DIAERESIS +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-de.flc b/externals/figlet/fonts/646-de.flc new file mode 100644 index 0000000000..716a42ffbf --- /dev/null +++ b/externals/figlet/fonts/646-de.flc @@ -0,0 +1,156 @@ +# +# Name: DIN_66003 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# DIN_66003 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the DIN_66003 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in DIN_66003 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-21 +# &g0esc x284b &g1esc x294b &g2esc x2a4b &g3esc x2b4b +# &alias de +# &alias ISO646-DE +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00A7 # SECTION SIGN +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0x5C 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0x5D 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0x7C 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0x7D 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0x7E 0x00DF # LATIN SMALL LETTER SHARP S (German) +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-dk.flc b/externals/figlet/fonts/646-dk.flc new file mode 100644 index 0000000000..3d9ddae013 --- /dev/null +++ b/externals/figlet/fonts/646-dk.flc @@ -0,0 +1,155 @@ +# +# Name: DS_2089 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# DS_2089 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the DS_2089 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in DS_2089 order +# +# Any comments or problems, contact +# +# &rem source: Danish Standard, DS 2089, February 1974 +# &alias DS2089 +# &alias ISO646-DK +# &alias dk +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C6 # LATIN CAPITAL LETTER AE +0x5C 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0x5D 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E6 # LATIN SMALL LETTER AE +0x7C 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0x7D 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-es.flc b/externals/figlet/fonts/646-es.flc new file mode 100644 index 0000000000..b996d786b3 --- /dev/null +++ b/externals/figlet/fonts/646-es.flc @@ -0,0 +1,155 @@ +# +# Name: ES to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# ES characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ES code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ES order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-17 +# &alias ISO646-ES +# &g0esc x285a &g1esc x295a &g2esc x2a5a &g3esc x2b5a +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x00A3 # POUND SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00A7 # SECTION SIGN +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00A1 # INVERTED EXCLAMATION MARK +0x5C 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0x5D 0x00BF # INVERTED QUESTION MARK +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00B0 # DEGREE SIGN +0x7C 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0x7D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-es2.flc b/externals/figlet/fonts/646-es2.flc new file mode 100644 index 0000000000..1f282ceb78 --- /dev/null +++ b/externals/figlet/fonts/646-es2.flc @@ -0,0 +1,155 @@ +# +# Name: ES2 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# ES2 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ES2 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ES2 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-85 +# &alias ISO646-ES2 +# &g0esc x2868 &g1esc x2968 &g2esc x2a68 &g3esc x2b68 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x2219 # BULLET OPERATOR +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00A1 # INVERTED EXCLAMATION MARK +0x5C 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0x5D 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0x5E 0x00BF # INVERTED QUESTION MARK +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00B4 # ACUTE ACCENT +0x7C 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0x7D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x7E 0x00A8 # DIAERESIS +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-fr.flc b/externals/figlet/fonts/646-fr.flc new file mode 100644 index 0000000000..225b2fb8e6 --- /dev/null +++ b/externals/figlet/fonts/646-fr.flc @@ -0,0 +1,156 @@ +# +# Name: NF_Z_62-010 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# NF_Z_62-010 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the NF_Z_62-010 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in NF_Z_62-010 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-69 +# &alias ISO646-FR +# &g0esc x2866 &g1esc x2966 &g2esc x2a66 &g3esc x2b66 +# &alias fr +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x00A3 # POUND SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00B0 # DEGREE SIGN +0x5C 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x5D 0x00A7 # SECTION SIGN +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x00B5 # MICRO SIGN +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0x7C 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0x7D 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0x7E 0x00A8 # DIAERESIS +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-gb.flc b/externals/figlet/fonts/646-gb.flc new file mode 100644 index 0000000000..4e9d648c9b --- /dev/null +++ b/externals/figlet/fonts/646-gb.flc @@ -0,0 +1,157 @@ +# +# Name: BS_4730 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# BS_4730 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the BS_4730 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in BS_4730 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-4 +# &alias ISO646-GB +# &g0esc x2841 &g1esc x2941 &g2esc x2a41 &g3esc x2b41 +# &alias gb +# &alias uk +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x00A3 # POUND SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-hu.flc b/externals/figlet/fonts/646-hu.flc new file mode 100644 index 0000000000..9ad58c31e7 --- /dev/null +++ b/externals/figlet/fonts/646-hu.flc @@ -0,0 +1,156 @@ +# +# Name: MSZ_7795.3 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# MSZ_7795.3 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the MSZ_7795.3 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in MSZ_7795.3 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-86 +# &alias ISO646-HU +# &g0esc x2869 &g1esc x2969 &g2esc x2a69 &g3esc x2b69 +# &alias hu +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x00A4 # CURRENCY SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0x5C 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0x5D 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0x7C 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0x7D 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0x7E 0x02DD # DOUBLE ACUTE ACCENT +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-irv.flc b/externals/figlet/fonts/646-irv.flc new file mode 100644 index 0000000000..caf629229c --- /dev/null +++ b/externals/figlet/fonts/646-irv.flc @@ -0,0 +1,155 @@ +# +# Name: ISO_646.irv:1983 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# ISO_646.irv:1983 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO_646.irv:1983 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO_646.irv:1983 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-2 +# &alias irv +# &g0esc x2840 &g1esc x2940 &g2esc x2a40 &g3esc x2b40 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x00A4 # CURRENCY SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-it.flc b/externals/figlet/fonts/646-it.flc new file mode 100644 index 0000000000..657125bd85 --- /dev/null +++ b/externals/figlet/fonts/646-it.flc @@ -0,0 +1,155 @@ +# +# Name: IT to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# IT characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the IT code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in IT order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-15 +# &alias ISO646-IT +# &g0esc x2859 &g1esc x2959 &g2esc x2a59 &g3esc x2b59 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x00A3 # POUND SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00A7 # SECTION SIGN +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00B0 # DEGREE SIGN +0x5C 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x5D 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0x7C 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0x7D 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0x7E 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-jp.flc b/externals/figlet/fonts/646-jp.flc new file mode 100644 index 0000000000..a3bc3513d6 --- /dev/null +++ b/externals/figlet/fonts/646-jp.flc @@ -0,0 +1,156 @@ +# +# Name: JIS_C6220-1969-ro to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# JIS_C6220-1969-ro characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the JIS_C6220-1969-ro code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in JIS_C6220-1969-ro order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-14 +# &g0esc x284a &g1esc x294a &g2esc x2a4a &g3esc x2b4a +# &alias jp +# &alias ISO646-JP +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x00A5 # YEN SIGN +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-kr.flc b/externals/figlet/fonts/646-kr.flc new file mode 100644 index 0000000000..6966895e56 --- /dev/null +++ b/externals/figlet/fonts/646-kr.flc @@ -0,0 +1,152 @@ +# +# Name: KSC5636 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# KSC5636 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the KSC5636 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in KSC5636 order +# +# Any comments or problems, contact +# +# &alias ISO646-KR +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x20A9 # WON SIGN +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-no.flc b/externals/figlet/fonts/646-no.flc new file mode 100644 index 0000000000..3f4776656f --- /dev/null +++ b/externals/figlet/fonts/646-no.flc @@ -0,0 +1,156 @@ +# +# Name: NS_4551-1 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# NS_4551-1 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the NS_4551-1 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in NS_4551-1 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-60 +# &alias ISO646-NO +# &g0esc x2860 &g1esc x2960 &g2esc x2a60 &g3esc x2b60 +# &alias no +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C6 # LATIN CAPITAL LETTER AE +0x5C 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0x5D 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E6 # LATIN SMALL LETTER AE +0x7C 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0x7D 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-no2.flc b/externals/figlet/fonts/646-no2.flc new file mode 100644 index 0000000000..c5ca075a2c --- /dev/null +++ b/externals/figlet/fonts/646-no2.flc @@ -0,0 +1,156 @@ +# +# Name: NS_4551-2 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# NS_4551-2 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the NS_4551-2 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in NS_4551-2 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias ISO646-NO2 +# &alias iso-ir-61 +# &g0esc x2861 &g1esc x2961 &g2esc x2a61 &g3esc x2b61 +# &alias no2 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x00B6 # PILCROW SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C6 # LATIN CAPITAL LETTER AE +0x5C 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0x5D 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E6 # LATIN SMALL LETTER AE +0x7C 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0x7D 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0x7E 0x007C # VERTICAL LINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-pt.flc b/externals/figlet/fonts/646-pt.flc new file mode 100644 index 0000000000..37571886c9 --- /dev/null +++ b/externals/figlet/fonts/646-pt.flc @@ -0,0 +1,155 @@ +# +# Name: PT to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# PT characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the PT code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in PT order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-16 +# &alias ISO646-PT +# &g0esc x284c &g1esc x294c &g2esc x2a4c &g3esc x2b4c +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00A7 # SECTION SIGN +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0x5C 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0x5D 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0x7C 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x7D 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0x7E 0x00B0 # DEGREE SIGN +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-pt2.flc b/externals/figlet/fonts/646-pt2.flc new file mode 100644 index 0000000000..8a00e61ec8 --- /dev/null +++ b/externals/figlet/fonts/646-pt2.flc @@ -0,0 +1,155 @@ +# +# Name: PT2 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# PT2 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the PT2 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in PT2 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-84 +# &alias ISO646-PT2 +# &g0esc x2867 &g1esc x2967 &g2esc x2a67 &g3esc x2b67 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00B4 # ACUTE ACCENT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0x5C 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0x5D 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0x7C 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0x7D 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-se.flc b/externals/figlet/fonts/646-se.flc new file mode 100644 index 0000000000..424e886a01 --- /dev/null +++ b/externals/figlet/fonts/646-se.flc @@ -0,0 +1,158 @@ +# +# Name: SEN_850200_B to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# SEN_850200_B characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the SEN_850200_B code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in SEN_850200_B order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-10 +# &alias FI +# &alias ISO646-FI +# &alias ISO646-SE +# &alias se +# &g0esc x2847 &g1esc x2947 &g2esc x2a47 &g3esc x2b47 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x00A4 # CURRENCY SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0x5C 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0x5D 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0x7C 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0x7D 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0x7E 0x203E # OVERLINE +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-se2.flc b/externals/figlet/fonts/646-se2.flc new file mode 100644 index 0000000000..38c86cd37c --- /dev/null +++ b/externals/figlet/fonts/646-se2.flc @@ -0,0 +1,156 @@ +# +# Name: SEN_850200_C to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# SEN_850200_C characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the SEN_850200_C code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in SEN_850200_C order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-11 +# &alias ISO646-SE2 +# &g0esc x2848 &g1esc x2948 &g2esc x2a48 &g3esc x2b48 +# &alias se2 +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x00A4 # CURRENCY SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0x5C 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0x5D 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0x5E 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0x5F 0x005F # LOW LINE +0x60 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0x7C 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0x7D 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0x7E 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/646-yu.flc b/externals/figlet/fonts/646-yu.flc new file mode 100644 index 0000000000..6307a6aff4 --- /dev/null +++ b/externals/figlet/fonts/646-yu.flc @@ -0,0 +1,157 @@ +# +# Name: JUS_I.B1.002 to Unicode +# Unicode version: 2.0 +# Table version: 0.1 +# Table format: Format A +# Date: 0097-01-24 +# Authors: John Cowan (conversion) +# Keld Simonsen (RFC 1345) +# +# General notes: +# +# This table contains data obtained from RFC 1345 on how +# JUS_I.B1.002 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the JUS_I.B1.002 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in JUS_I.B1.002 order +# +# Any comments or problems, contact +# +# &rem source: ECMA registry +# &alias iso-ir-141 +# &g0esc x287a &g1esc x297a &g2esc x2a7a &g3esc x2b7a +# &alias ISO646-YU +# &alias js +# &alias yu +0x00 0x0000 # NULL (NUL) +0x01 0x0001 # START OF HEADING (SOH) +0x02 0x0002 # START OF TEXT (STX) +0x03 0x0003 # END OF TEXT (ETX) +0x04 0x0004 # END OF TRANSMISSION (EOT) +0x05 0x0005 # ENQUIRY (ENQ) +0x06 0x0006 # ACKNOWLEDGE (ACK) +0x07 0x0007 # BELL (BEL) +0x08 0x0008 # BACKSPACE (BS) +0x09 0x0009 # CHARACTER TABULATION (HT) +0x0A 0x000A # LINE FEED (LF) +0x0B 0x000B # LINE TABULATION (VT) +0x0C 0x000C # FORM FEED (FF) +0x0D 0x000D # CARRIAGE RETURN (CR) +0x0E 0x000E # SHIFT OUT (SO) +0x0F 0x000F # SHIFT IN (SI) +0x10 0x0010 # DATALINK ESCAPE (DLE) +0x11 0x0011 # DEVICE CONTROL ONE (DC1) +0x12 0x0012 # DEVICE CONTROL TWO (DC2) +0x13 0x0013 # DEVICE CONTROL THREE (DC3) +0x14 0x0014 # DEVICE CONTROL FOUR (DC4) +0x15 0x0015 # NEGATIVE ACKNOWLEDGE (NAK) +0x16 0x0016 # SYNCRONOUS IDLE (SYN) +0x17 0x0017 # END OF TRANSMISSION BLOCK (ETB) +0x18 0x0018 # CANCEL (CAN) +0x19 0x0019 # END OF MEDIUM (EM) +0x1A 0x001A # SUBSTITUTE (SUB) +0x1B 0x001B # ESCAPE (ESC) +0x1C 0x001C # FILE SEPARATOR (IS4) +0x1D 0x001D # GROUP SEPARATOR (IS3) +0x1E 0x001E # RECORD SEPARATOR (IS2) +0x1F 0x001F # UNIT SEPARATOR (IS1) +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0x5C 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0x5D 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE +0x5E 0x010C # LATIN CAPITAL LETTER C WITH CARON +0x5F 0x005F # LOW LINE +0x60 0x017E # LATIN SMALL LETTER Z WITH CARON +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x0161 # LATIN SMALL LETTER S WITH CARON +0x7C 0x0111 # LATIN SMALL LETTER D WITH STROKE +0x7D 0x0107 # LATIN SMALL LETTER C WITH ACUTE +0x7E 0x010D # LATIN SMALL LETTER C WITH CARON +0x7F 0x007F # DELETE (DEL) diff --git a/externals/figlet/fonts/8859-2.flc b/externals/figlet/fonts/8859-2.flc new file mode 100644 index 0000000000..e45df25eb8 --- /dev/null +++ b/externals/figlet/fonts/8859-2.flc @@ -0,0 +1,303 @@ +# +# Name: ISO 8859-2:1999 to Unicode +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-2:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-2 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact +# Please note that is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xA2 0x02D8 # BREVE +0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x013D # LATIN CAPITAL LETTER L WITH CARON +0xA6 0x015A # LATIN CAPITAL LETTER S WITH ACUTE +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA +0xAB 0x0164 # LATIN CAPITAL LETTER T WITH CARON +0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xB2 0x02DB # OGONEK +0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x013E # LATIN SMALL LETTER L WITH CARON +0xB6 0x015B # LATIN SMALL LETTER S WITH ACUTE +0xB7 0x02C7 # CARON +0xB8 0x00B8 # CEDILLA +0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON +0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA +0xBB 0x0165 # LATIN SMALL LETTER T WITH CARON +0xBC 0x017A # LATIN SMALL LETTER Z WITH ACUTE +0xBD 0x02DD # DOUBLE ACUTE ACCENT +0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON +0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE +0xC0 0x0154 # LATIN CAPITAL LETTER R WITH ACUTE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x0139 # LATIN CAPITAL LETTER L WITH ACUTE +0xC6 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x011A # LATIN CAPITAL LETTER E WITH CARON +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x010E # LATIN CAPITAL LETTER D WITH CARON +0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE +0xD2 0x0147 # LATIN CAPITAL LETTER N WITH CARON +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x0158 # LATIN CAPITAL LETTER R WITH CARON +0xD9 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE +0xDE 0x0162 # LATIN CAPITAL LETTER T WITH CEDILLA +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x0155 # LATIN SMALL LETTER R WITH ACUTE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x013A # LATIN SMALL LETTER L WITH ACUTE +0xE6 0x0107 # LATIN SMALL LETTER C WITH ACUTE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x010D # LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x011B # LATIN SMALL LETTER E WITH CARON +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x010F # LATIN SMALL LETTER D WITH CARON +0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE +0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE +0xF2 0x0148 # LATIN SMALL LETTER N WITH CARON +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x0159 # LATIN SMALL LETTER R WITH CARON +0xF9 0x016F # LATIN SMALL LETTER U WITH RING ABOVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE +0xFE 0x0163 # LATIN SMALL LETTER T WITH CEDILLA +0xFF 0x02D9 # DOT ABOVE diff --git a/externals/figlet/fonts/8859-3.flc b/externals/figlet/fonts/8859-3.flc new file mode 100644 index 0000000000..9b6ac69dd8 --- /dev/null +++ b/externals/figlet/fonts/8859-3.flc @@ -0,0 +1,296 @@ +# +# Name: ISO/IEC 8859-3:1999 to Unicode +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-3:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-3 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact +# Please note that is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0126 # LATIN CAPITAL LETTER H WITH STROKE +0xA2 0x02D8 # BREVE +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA6 0x0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE +0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA +0xAB 0x011E # LATIN CAPITAL LETTER G WITH BREVE +0xAC 0x0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0xAD 0x00AD # SOFT HYPHEN +0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0127 # LATIN SMALL LETTER H WITH STROKE +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x0131 # LATIN SMALL LETTER DOTLESS I +0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA +0xBB 0x011F # LATIN SMALL LETTER G WITH BREVE +0xBC 0x0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE +0xC6 0x0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x016C # LATIN CAPITAL LETTER U WITH BREVE +0xDE 0x015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE +0xE6 0x0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x011D # LATIN SMALL LETTER G WITH CIRCUMFLEX +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x016D # LATIN SMALL LETTER U WITH BREVE +0xFE 0x015D # LATIN SMALL LETTER S WITH CIRCUMFLEX +0xFF 0x02D9 # DOT ABOVE diff --git a/externals/figlet/fonts/8859-4.flc b/externals/figlet/fonts/8859-4.flc new file mode 100644 index 0000000000..662e698ab2 --- /dev/null +++ b/externals/figlet/fonts/8859-4.flc @@ -0,0 +1,303 @@ +# +# Name: ISO/IEC 8859-4:1998 to Unicode +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-4:1998 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-4 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact +# Please note that is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK +0xA2 0x0138 # LATIN SMALL LETTER KRA +0xA3 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE +0xA6 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON +0xAA 0x0112 # LATIN CAPITAL LETTER E WITH MACRON +0xAB 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA +0xAC 0x0166 # LATIN CAPITAL LETTER T WITH STROKE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK +0xB2 0x02DB # OGONEK +0xB3 0x0157 # LATIN SMALL LETTER R WITH CEDILLA +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE +0xB6 0x013C # LATIN SMALL LETTER L WITH CEDILLA +0xB7 0x02C7 # CARON +0xB8 0x00B8 # CEDILLA +0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON +0xBA 0x0113 # LATIN SMALL LETTER E WITH MACRON +0xBB 0x0123 # LATIN SMALL LETTER G WITH CEDILLA +0xBC 0x0167 # LATIN SMALL LETTER T WITH STROKE +0xBD 0x014A # LATIN CAPITAL LETTER ENG +0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON +0xBF 0x014B # LATIN SMALL LETTER ENG +0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK +0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x012A # LATIN CAPITAL LETTER I WITH MACRON +0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE +0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA +0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON +0xD3 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x0168 # LATIN CAPITAL LETTER U WITH TILDE +0xDE 0x016A # LATIN CAPITAL LETTER U WITH MACRON +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK +0xE8 0x010D # LATIN SMALL LETTER C WITH CARON +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x012B # LATIN SMALL LETTER I WITH MACRON +0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE +0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA +0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON +0xF3 0x0137 # LATIN SMALL LETTER K WITH CEDILLA +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x0169 # LATIN SMALL LETTER U WITH TILDE +0xFE 0x016B # LATIN SMALL LETTER U WITH MACRON +0xFF 0x02D9 # DOT ABOVE diff --git a/externals/figlet/fonts/8859-5.flc b/externals/figlet/fonts/8859-5.flc new file mode 100644 index 0000000000..a7ed1ce2ab --- /dev/null +++ b/externals/figlet/fonts/8859-5.flc @@ -0,0 +1,303 @@ +# +# Name: ISO 8859-5:1999 to Unicode +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-5:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-5 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact +# Please note that is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x0401 # CYRILLIC CAPITAL LETTER IO +0xA2 0x0402 # CYRILLIC CAPITAL LETTER DJE +0xA3 0x0403 # CYRILLIC CAPITAL LETTER GJE +0xA4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE +0xA5 0x0405 # CYRILLIC CAPITAL LETTER DZE +0xA6 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0xA7 0x0407 # CYRILLIC CAPITAL LETTER YI +0xA8 0x0408 # CYRILLIC CAPITAL LETTER JE +0xA9 0x0409 # CYRILLIC CAPITAL LETTER LJE +0xAA 0x040A # CYRILLIC CAPITAL LETTER NJE +0xAB 0x040B # CYRILLIC CAPITAL LETTER TSHE +0xAC 0x040C # CYRILLIC CAPITAL LETTER KJE +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x040E # CYRILLIC CAPITAL LETTER SHORT U +0xAF 0x040F # CYRILLIC CAPITAL LETTER DZHE +0xB0 0x0410 # CYRILLIC CAPITAL LETTER A +0xB1 0x0411 # CYRILLIC CAPITAL LETTER BE +0xB2 0x0412 # CYRILLIC CAPITAL LETTER VE +0xB3 0x0413 # CYRILLIC CAPITAL LETTER GHE +0xB4 0x0414 # CYRILLIC CAPITAL LETTER DE +0xB5 0x0415 # CYRILLIC CAPITAL LETTER IE +0xB6 0x0416 # CYRILLIC CAPITAL LETTER ZHE +0xB7 0x0417 # CYRILLIC CAPITAL LETTER ZE +0xB8 0x0418 # CYRILLIC CAPITAL LETTER I +0xB9 0x0419 # CYRILLIC CAPITAL LETTER SHORT I +0xBA 0x041A # CYRILLIC CAPITAL LETTER KA +0xBB 0x041B # CYRILLIC CAPITAL LETTER EL +0xBC 0x041C # CYRILLIC CAPITAL LETTER EM +0xBD 0x041D # CYRILLIC CAPITAL LETTER EN +0xBE 0x041E # CYRILLIC CAPITAL LETTER O +0xBF 0x041F # CYRILLIC CAPITAL LETTER PE +0xC0 0x0420 # CYRILLIC CAPITAL LETTER ER +0xC1 0x0421 # CYRILLIC CAPITAL LETTER ES +0xC2 0x0422 # CYRILLIC CAPITAL LETTER TE +0xC3 0x0423 # CYRILLIC CAPITAL LETTER U +0xC4 0x0424 # CYRILLIC CAPITAL LETTER EF +0xC5 0x0425 # CYRILLIC CAPITAL LETTER HA +0xC6 0x0426 # CYRILLIC CAPITAL LETTER TSE +0xC7 0x0427 # CYRILLIC CAPITAL LETTER CHE +0xC8 0x0428 # CYRILLIC CAPITAL LETTER SHA +0xC9 0x0429 # CYRILLIC CAPITAL LETTER SHCHA +0xCA 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN +0xCB 0x042B # CYRILLIC CAPITAL LETTER YERU +0xCC 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN +0xCD 0x042D # CYRILLIC CAPITAL LETTER E +0xCE 0x042E # CYRILLIC CAPITAL LETTER YU +0xCF 0x042F # CYRILLIC CAPITAL LETTER YA +0xD0 0x0430 # CYRILLIC SMALL LETTER A +0xD1 0x0431 # CYRILLIC SMALL LETTER BE +0xD2 0x0432 # CYRILLIC SMALL LETTER VE +0xD3 0x0433 # CYRILLIC SMALL LETTER GHE +0xD4 0x0434 # CYRILLIC SMALL LETTER DE +0xD5 0x0435 # CYRILLIC SMALL LETTER IE +0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE +0xD7 0x0437 # CYRILLIC SMALL LETTER ZE +0xD8 0x0438 # CYRILLIC SMALL LETTER I +0xD9 0x0439 # CYRILLIC SMALL LETTER SHORT I +0xDA 0x043A # CYRILLIC SMALL LETTER KA +0xDB 0x043B # CYRILLIC SMALL LETTER EL +0xDC 0x043C # CYRILLIC SMALL LETTER EM +0xDD 0x043D # CYRILLIC SMALL LETTER EN +0xDE 0x043E # CYRILLIC SMALL LETTER O +0xDF 0x043F # CYRILLIC SMALL LETTER PE +0xE0 0x0440 # CYRILLIC SMALL LETTER ER +0xE1 0x0441 # CYRILLIC SMALL LETTER ES +0xE2 0x0442 # CYRILLIC SMALL LETTER TE +0xE3 0x0443 # CYRILLIC SMALL LETTER U +0xE4 0x0444 # CYRILLIC SMALL LETTER EF +0xE5 0x0445 # CYRILLIC SMALL LETTER HA +0xE6 0x0446 # CYRILLIC SMALL LETTER TSE +0xE7 0x0447 # CYRILLIC SMALL LETTER CHE +0xE8 0x0448 # CYRILLIC SMALL LETTER SHA +0xE9 0x0449 # CYRILLIC SMALL LETTER SHCHA +0xEA 0x044A # CYRILLIC SMALL LETTER HARD SIGN +0xEB 0x044B # CYRILLIC SMALL LETTER YERU +0xEC 0x044C # CYRILLIC SMALL LETTER SOFT SIGN +0xED 0x044D # CYRILLIC SMALL LETTER E +0xEE 0x044E # CYRILLIC SMALL LETTER YU +0xEF 0x044F # CYRILLIC SMALL LETTER YA +0xF0 0x2116 # NUMERO SIGN +0xF1 0x0451 # CYRILLIC SMALL LETTER IO +0xF2 0x0452 # CYRILLIC SMALL LETTER DJE +0xF3 0x0453 # CYRILLIC SMALL LETTER GJE +0xF4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE +0xF5 0x0455 # CYRILLIC SMALL LETTER DZE +0xF6 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0xF7 0x0457 # CYRILLIC SMALL LETTER YI +0xF8 0x0458 # CYRILLIC SMALL LETTER JE +0xF9 0x0459 # CYRILLIC SMALL LETTER LJE +0xFA 0x045A # CYRILLIC SMALL LETTER NJE +0xFB 0x045B # CYRILLIC SMALL LETTER TSHE +0xFC 0x045C # CYRILLIC SMALL LETTER KJE +0xFD 0x00A7 # SECTION SIGN +0xFE 0x045E # CYRILLIC SMALL LETTER SHORT U +0xFF 0x045F # CYRILLIC SMALL LETTER DZHE diff --git a/externals/figlet/fonts/8859-7.flc b/externals/figlet/fonts/8859-7.flc new file mode 100644 index 0000000000..bc46b74719 --- /dev/null +++ b/externals/figlet/fonts/8859-7.flc @@ -0,0 +1,308 @@ +# +# Name: ISO 8859-7:2003 to Unicode +# Unicode version: 4.0 +# Table version: 2.0 +# Table format: Format A +# Date: 2003-Nov-12 +# Authors: Ken Whistler +# +# Copyright (c) 1991-2003 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO 8859-7:2003 characters map into Unicode. +# +# ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928, +# and ECMA 118. ISO 8859-7:2003 adds two currency signs +# and one other character not in the earlier standard. +# +# Format: Three tab-separated columns +# Column #1 is the ISO 8859-7 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO 8859-7 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7 +# Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7 +# +# 2.0 version updates 1.0 version by adding mappings for the +# three newly added characters 0xA4, 0xA5, 0xAA. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact the Unicode Consortium at: +# +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x2018 # LEFT SINGLE QUOTATION MARK +0xA2 0x2019 # RIGHT SINGLE QUOTATION MARK +0xA3 0x00A3 # POUND SIGN +0xA4 0x20AC # EURO SIGN +0xA5 0x20AF # DRACHMA SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x037A # GREEK YPOGEGRAMMENI +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAF 0x2015 # HORIZONTAL BAR +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x0384 # GREEK TONOS +0xB5 0x0385 # GREEK DIALYTIKA TONOS +0xB6 0x0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS +0xB9 0x0389 # GREEK CAPITAL LETTER ETA WITH TONOS +0xBA 0x038A # GREEK CAPITAL LETTER IOTA WITH TONOS +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x038C # GREEK CAPITAL LETTER OMICRON WITH TONOS +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x038E # GREEK CAPITAL LETTER UPSILON WITH TONOS +0xBF 0x038F # GREEK CAPITAL LETTER OMEGA WITH TONOS +0xC0 0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0xC1 0x0391 # GREEK CAPITAL LETTER ALPHA +0xC2 0x0392 # GREEK CAPITAL LETTER BETA +0xC3 0x0393 # GREEK CAPITAL LETTER GAMMA +0xC4 0x0394 # GREEK CAPITAL LETTER DELTA +0xC5 0x0395 # GREEK CAPITAL LETTER EPSILON +0xC6 0x0396 # GREEK CAPITAL LETTER ZETA +0xC7 0x0397 # GREEK CAPITAL LETTER ETA +0xC8 0x0398 # GREEK CAPITAL LETTER THETA +0xC9 0x0399 # GREEK CAPITAL LETTER IOTA +0xCA 0x039A # GREEK CAPITAL LETTER KAPPA +0xCB 0x039B # GREEK CAPITAL LETTER LAMDA +0xCC 0x039C # GREEK CAPITAL LETTER MU +0xCD 0x039D # GREEK CAPITAL LETTER NU +0xCE 0x039E # GREEK CAPITAL LETTER XI +0xCF 0x039F # GREEK CAPITAL LETTER OMICRON +0xD0 0x03A0 # GREEK CAPITAL LETTER PI +0xD1 0x03A1 # GREEK CAPITAL LETTER RHO +0xD3 0x03A3 # GREEK CAPITAL LETTER SIGMA +0xD4 0x03A4 # GREEK CAPITAL LETTER TAU +0xD5 0x03A5 # GREEK CAPITAL LETTER UPSILON +0xD6 0x03A6 # GREEK CAPITAL LETTER PHI +0xD7 0x03A7 # GREEK CAPITAL LETTER CHI +0xD8 0x03A8 # GREEK CAPITAL LETTER PSI +0xD9 0x03A9 # GREEK CAPITAL LETTER OMEGA +0xDA 0x03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +0xDB 0x03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +0xDC 0x03AC # GREEK SMALL LETTER ALPHA WITH TONOS +0xDD 0x03AD # GREEK SMALL LETTER EPSILON WITH TONOS +0xDE 0x03AE # GREEK SMALL LETTER ETA WITH TONOS +0xDF 0x03AF # GREEK SMALL LETTER IOTA WITH TONOS +0xE0 0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +0xE1 0x03B1 # GREEK SMALL LETTER ALPHA +0xE2 0x03B2 # GREEK SMALL LETTER BETA +0xE3 0x03B3 # GREEK SMALL LETTER GAMMA +0xE4 0x03B4 # GREEK SMALL LETTER DELTA +0xE5 0x03B5 # GREEK SMALL LETTER EPSILON +0xE6 0x03B6 # GREEK SMALL LETTER ZETA +0xE7 0x03B7 # GREEK SMALL LETTER ETA +0xE8 0x03B8 # GREEK SMALL LETTER THETA +0xE9 0x03B9 # GREEK SMALL LETTER IOTA +0xEA 0x03BA # GREEK SMALL LETTER KAPPA +0xEB 0x03BB # GREEK SMALL LETTER LAMDA +0xEC 0x03BC # GREEK SMALL LETTER MU +0xED 0x03BD # GREEK SMALL LETTER NU +0xEE 0x03BE # GREEK SMALL LETTER XI +0xEF 0x03BF # GREEK SMALL LETTER OMICRON +0xF0 0x03C0 # GREEK SMALL LETTER PI +0xF1 0x03C1 # GREEK SMALL LETTER RHO +0xF2 0x03C2 # GREEK SMALL LETTER FINAL SIGMA +0xF3 0x03C3 # GREEK SMALL LETTER SIGMA +0xF4 0x03C4 # GREEK SMALL LETTER TAU +0xF5 0x03C5 # GREEK SMALL LETTER UPSILON +0xF6 0x03C6 # GREEK SMALL LETTER PHI +0xF7 0x03C7 # GREEK SMALL LETTER CHI +0xF8 0x03C8 # GREEK SMALL LETTER PSI +0xF9 0x03C9 # GREEK SMALL LETTER OMEGA +0xFA 0x03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA +0xFB 0x03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA +0xFC 0x03CC # GREEK SMALL LETTER OMICRON WITH TONOS +0xFD 0x03CD # GREEK SMALL LETTER UPSILON WITH TONOS +0xFE 0x03CE # GREEK SMALL LETTER OMEGA WITH TONOS diff --git a/externals/figlet/fonts/8859-8.flc b/externals/figlet/fonts/8859-8.flc new file mode 100644 index 0000000000..bc8da4c7fd --- /dev/null +++ b/externals/figlet/fonts/8859-8.flc @@ -0,0 +1,270 @@ +# +# Name: ISO/IEC 8859-8:1999 to Unicode +# Unicode version: 3.0 +# Table version: 1.1 +# Table format: Format A +# Date: 2000-Jan-03 +# Authors: Ken Whistler +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on optical media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-8:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-8 order. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# 1.1 version updates to the published 8859-8:1999, correcting +# the mapping of 0xAF and adding mappings for LRM and RLM. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact +# Please note that is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x00A5 # YEN SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x00D7 # MULTIPLICATION SIGN +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x00F7 # DIVISION SIGN +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC # VULGAR FRACTION ONE QUARTER +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS +0xDF 0x2017 # DOUBLE LOW LINE +0xE0 0x05D0 # HEBREW LETTER ALEF +0xE1 0x05D1 # HEBREW LETTER BET +0xE2 0x05D2 # HEBREW LETTER GIMEL +0xE3 0x05D3 # HEBREW LETTER DALET +0xE4 0x05D4 # HEBREW LETTER HE +0xE5 0x05D5 # HEBREW LETTER VAV +0xE6 0x05D6 # HEBREW LETTER ZAYIN +0xE7 0x05D7 # HEBREW LETTER HET +0xE8 0x05D8 # HEBREW LETTER TET +0xE9 0x05D9 # HEBREW LETTER YOD +0xEA 0x05DA # HEBREW LETTER FINAL KAF +0xEB 0x05DB # HEBREW LETTER KAF +0xEC 0x05DC # HEBREW LETTER LAMED +0xED 0x05DD # HEBREW LETTER FINAL MEM +0xEE 0x05DE # HEBREW LETTER MEM +0xEF 0x05DF # HEBREW LETTER FINAL NUN +0xF0 0x05E0 # HEBREW LETTER NUN +0xF1 0x05E1 # HEBREW LETTER SAMEKH +0xF2 0x05E2 # HEBREW LETTER AYIN +0xF3 0x05E3 # HEBREW LETTER FINAL PE +0xF4 0x05E4 # HEBREW LETTER PE +0xF5 0x05E5 # HEBREW LETTER FINAL TSADI +0xF6 0x05E6 # HEBREW LETTER TSADI +0xF7 0x05E7 # HEBREW LETTER QOF +0xF8 0x05E8 # HEBREW LETTER RESH +0xF9 0x05E9 # HEBREW LETTER SHIN +0xFA 0x05EA # HEBREW LETTER TAV +0xFD 0x200E # LEFT-TO-RIGHT MARK +0xFE 0x200F # RIGHT-TO-LEFT MARK + diff --git a/externals/figlet/fonts/8859-9.flc b/externals/figlet/fonts/8859-9.flc new file mode 100644 index 0000000000..22901f1077 --- /dev/null +++ b/externals/figlet/fonts/8859-9.flc @@ -0,0 +1,307 @@ +# +# Name: ISO/IEC 8859-9:1999 to Unicode +# Unicode version: 3.0 +# Table version: 1.0 +# Table format: Format A +# Date: 1999 July 27 +# Authors: Ken Whistler +# +# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. +# +# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). +# No claims are made as to fitness for any particular purpose. No +# warranties of any kind are expressed or implied. The recipient +# agrees to determine applicability of information provided. If this +# file has been provided on magnetic media by Unicode, Inc., the sole +# remedy for any claim will be exchange of defective media within 90 +# days of receipt. +# +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: +# +# This table contains the data the Unicode Consortium has on how +# ISO/IEC 8859-9:1999 characters map into Unicode. +# +# Format: Three tab-separated columns +# Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX) +# Column #2 is the Unicode (in hex as 0xXXXX) +# Column #3 the Unicode name (follows a comment sign, '#') +# +# The entries are in ISO/IEC 8859-9 order. +# +# ISO/IEC 8859-9 is also equivalent to ISO-IR-148. +# +# Version history +# 1.0 version updates 0.1 version by adding mappings for all +# control characters. +# +# Updated versions of this file may be found in: +# +# +# Any comments or problems, contact +# Please note that is an archival address; +# notices will be checked, but do not expect an immediate response. +# +0x00 0x0000 # NULL +0x01 0x0001 # START OF HEADING +0x02 0x0002 # START OF TEXT +0x03 0x0003 # END OF TEXT +0x04 0x0004 # END OF TRANSMISSION +0x05 0x0005 # ENQUIRY +0x06 0x0006 # ACKNOWLEDGE +0x07 0x0007 # BELL +0x08 0x0008 # BACKSPACE +0x09 0x0009 # HORIZONTAL TABULATION +0x0A 0x000A # LINE FEED +0x0B 0x000B # VERTICAL TABULATION +0x0C 0x000C # FORM FEED +0x0D 0x000D # CARRIAGE RETURN +0x0E 0x000E # SHIFT OUT +0x0F 0x000F # SHIFT IN +0x10 0x0010 # DATA LINK ESCAPE +0x11 0x0011 # DEVICE CONTROL ONE +0x12 0x0012 # DEVICE CONTROL TWO +0x13 0x0013 # DEVICE CONTROL THREE +0x14 0x0014 # DEVICE CONTROL FOUR +0x15 0x0015 # NEGATIVE ACKNOWLEDGE +0x16 0x0016 # SYNCHRONOUS IDLE +0x17 0x0017 # END OF TRANSMISSION BLOCK +0x18 0x0018 # CANCEL +0x19 0x0019 # END OF MEDIUM +0x1A 0x001A # SUBSTITUTE +0x1B 0x001B # ESCAPE +0x1C 0x001C # FILE SEPARATOR +0x1D 0x001D # GROUP SEPARATOR +0x1E 0x001E # RECORD SEPARATOR +0x1F 0x001F # UNIT SEPARATOR +0x20 0x0020 # SPACE +0x21 0x0021 # EXCLAMATION MARK +0x22 0x0022 # QUOTATION MARK +0x23 0x0023 # NUMBER SIGN +0x24 0x0024 # DOLLAR SIGN +0x25 0x0025 # PERCENT SIGN +0x26 0x0026 # AMPERSAND +0x27 0x0027 # APOSTROPHE +0x28 0x0028 # LEFT PARENTHESIS +0x29 0x0029 # RIGHT PARENTHESIS +0x2A 0x002A # ASTERISK +0x2B 0x002B # PLUS SIGN +0x2C 0x002C # COMMA +0x2D 0x002D # HYPHEN-MINUS +0x2E 0x002E # FULL STOP +0x2F 0x002F # SOLIDUS +0x30 0x0030 # DIGIT ZERO +0x31 0x0031 # DIGIT ONE +0x32 0x0032 # DIGIT TWO +0x33 0x0033 # DIGIT THREE +0x34 0x0034 # DIGIT FOUR +0x35 0x0035 # DIGIT FIVE +0x36 0x0036 # DIGIT SIX +0x37 0x0037 # DIGIT SEVEN +0x38 0x0038 # DIGIT EIGHT +0x39 0x0039 # DIGIT NINE +0x3A 0x003A # COLON +0x3B 0x003B # SEMICOLON +0x3C 0x003C # LESS-THAN SIGN +0x3D 0x003D # EQUALS SIGN +0x3E 0x003E # GREATER-THAN SIGN +0x3F 0x003F # QUESTION MARK +0x40 0x0040 # COMMERCIAL AT +0x41 0x0041 # LATIN CAPITAL LETTER A +0x42 0x0042 # LATIN CAPITAL LETTER B +0x43 0x0043 # LATIN CAPITAL LETTER C +0x44 0x0044 # LATIN CAPITAL LETTER D +0x45 0x0045 # LATIN CAPITAL LETTER E +0x46 0x0046 # LATIN CAPITAL LETTER F +0x47 0x0047 # LATIN CAPITAL LETTER G +0x48 0x0048 # LATIN CAPITAL LETTER H +0x49 0x0049 # LATIN CAPITAL LETTER I +0x4A 0x004A # LATIN CAPITAL LETTER J +0x4B 0x004B # LATIN CAPITAL LETTER K +0x4C 0x004C # LATIN CAPITAL LETTER L +0x4D 0x004D # LATIN CAPITAL LETTER M +0x4E 0x004E # LATIN CAPITAL LETTER N +0x4F 0x004F # LATIN CAPITAL LETTER O +0x50 0x0050 # LATIN CAPITAL LETTER P +0x51 0x0051 # LATIN CAPITAL LETTER Q +0x52 0x0052 # LATIN CAPITAL LETTER R +0x53 0x0053 # LATIN CAPITAL LETTER S +0x54 0x0054 # LATIN CAPITAL LETTER T +0x55 0x0055 # LATIN CAPITAL LETTER U +0x56 0x0056 # LATIN CAPITAL LETTER V +0x57 0x0057 # LATIN CAPITAL LETTER W +0x58 0x0058 # LATIN CAPITAL LETTER X +0x59 0x0059 # LATIN CAPITAL LETTER Y +0x5A 0x005A # LATIN CAPITAL LETTER Z +0x5B 0x005B # LEFT SQUARE BRACKET +0x5C 0x005C # REVERSE SOLIDUS +0x5D 0x005D # RIGHT SQUARE BRACKET +0x5E 0x005E # CIRCUMFLEX ACCENT +0x5F 0x005F # LOW LINE +0x60 0x0060 # GRAVE ACCENT +0x61 0x0061 # LATIN SMALL LETTER A +0x62 0x0062 # LATIN SMALL LETTER B +0x63 0x0063 # LATIN SMALL LETTER C +0x64 0x0064 # LATIN SMALL LETTER D +0x65 0x0065 # LATIN SMALL LETTER E +0x66 0x0066 # LATIN SMALL LETTER F +0x67 0x0067 # LATIN SMALL LETTER G +0x68 0x0068 # LATIN SMALL LETTER H +0x69 0x0069 # LATIN SMALL LETTER I +0x6A 0x006A # LATIN SMALL LETTER J +0x6B 0x006B # LATIN SMALL LETTER K +0x6C 0x006C # LATIN SMALL LETTER L +0x6D 0x006D # LATIN SMALL LETTER M +0x6E 0x006E # LATIN SMALL LETTER N +0x6F 0x006F # LATIN SMALL LETTER O +0x70 0x0070 # LATIN SMALL LETTER P +0x71 0x0071 # LATIN SMALL LETTER Q +0x72 0x0072 # LATIN SMALL LETTER R +0x73 0x0073 # LATIN SMALL LETTER S +0x74 0x0074 # LATIN SMALL LETTER T +0x75 0x0075 # LATIN SMALL LETTER U +0x76 0x0076 # LATIN SMALL LETTER V +0x77 0x0077 # LATIN SMALL LETTER W +0x78 0x0078 # LATIN SMALL LETTER X +0x79 0x0079 # LATIN SMALL LETTER Y +0x7A 0x007A # LATIN SMALL LETTER Z +0x7B 0x007B # LEFT CURLY BRACKET +0x7C 0x007C # VERTICAL LINE +0x7D 0x007D # RIGHT CURLY BRACKET +0x7E 0x007E # TILDE +0x7F 0x007F # DELETE +0x80 0x0080 # +0x81 0x0081 # +0x82 0x0082 # +0x83 0x0083 # +0x84 0x0084 # +0x85 0x0085 # +0x86 0x0086 # +0x87 0x0087 # +0x88 0x0088 # +0x89 0x0089 # +0x8A 0x008A # +0x8B 0x008B # +0x8C 0x008C # +0x8D 0x008D # +0x8E 0x008E # +0x8F 0x008F # +0x90 0x0090 # +0x91 0x0091 # +0x92 0x0092 # +0x93 0x0093 # +0x94 0x0094 # +0x95 0x0095 # +0x96 0x0096 # +0x97 0x0097 # +0x98 0x0098 # +0x99 0x0099 # +0x9A 0x009A # +0x9B 0x009B # +0x9C 0x009C # +0x9D 0x009D # +0x9E 0x009E # +0x9F 0x009F # +0xA0 0x00A0 # NO-BREAK SPACE +0xA1 0x00A1 # INVERTED EXCLAMATION MARK +0xA2 0x00A2 # CENT SIGN +0xA3 0x00A3 # POUND SIGN +0xA4 0x00A4 # CURRENCY SIGN +0xA5 0x00A5 # YEN SIGN +0xA6 0x00A6 # BROKEN BAR +0xA7 0x00A7 # SECTION SIGN +0xA8 0x00A8 # DIAERESIS +0xA9 0x00A9 # COPYRIGHT SIGN +0xAA 0x00AA # FEMININE ORDINAL INDICATOR +0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +0xAC 0x00AC # NOT SIGN +0xAD 0x00AD # SOFT HYPHEN +0xAE 0x00AE # REGISTERED SIGN +0xAF 0x00AF # MACRON +0xB0 0x00B0 # DEGREE SIGN +0xB1 0x00B1 # PLUS-MINUS SIGN +0xB2 0x00B2 # SUPERSCRIPT TWO +0xB3 0x00B3 # SUPERSCRIPT THREE +0xB4 0x00B4 # ACUTE ACCENT +0xB5 0x00B5 # MICRO SIGN +0xB6 0x00B6 # PILCROW SIGN +0xB7 0x00B7 # MIDDLE DOT +0xB8 0x00B8 # CEDILLA +0xB9 0x00B9 # SUPERSCRIPT ONE +0xBA 0x00BA # MASCULINE ORDINAL INDICATOR +0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +0xBC 0x00BC # VULGAR FRACTION ONE QUARTER +0xBD 0x00BD # VULGAR FRACTION ONE HALF +0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS +0xBF 0x00BF # INVERTED QUESTION MARK +0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE +0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE +0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE +0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS +0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE +0xC6 0x00C6 # LATIN CAPITAL LETTER AE +0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA +0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE +0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE +0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS +0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE +0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE +0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS +0xD0 0x011E # LATIN CAPITAL LETTER G WITH BREVE +0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE +0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE +0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE +0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE +0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS +0xD7 0x00D7 # MULTIPLICATION SIGN +0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE +0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE +0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE +0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS +0xDD 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE +0xDE 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA +0xDF 0x00DF # LATIN SMALL LETTER SHARP S +0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE +0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE +0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX +0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE +0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS +0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE +0xE6 0x00E6 # LATIN SMALL LETTER AE +0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA +0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE +0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE +0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX +0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS +0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE +0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE +0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX +0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS +0xF0 0x011F # LATIN SMALL LETTER G WITH BREVE +0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE +0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE +0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE +0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX +0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE +0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS +0xF7 0x00F7 # DIVISION SIGN +0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE +0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE +0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE +0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX +0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS +0xFD 0x0131 # LATIN SMALL LETTER DOTLESS I +0xFE 0x015F # LATIN SMALL LETTER S WITH CEDILLA +0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS + + diff --git a/externals/figlet/fonts/banner.flf b/externals/figlet/fonts/banner.flf new file mode 100644 index 0000000000..8fc3489f20 --- /dev/null +++ b/externals/figlet/fonts/banner.flf @@ -0,0 +1,2494 @@ +flf2a$ 8 7 54 0 12 0 64 185 +banner.flf version 2 by Ryan Youck (youck@cs.uregina.ca) +(From a unix program called banner) +I am not responsible for use of this font +Thanks to Glenn Chappell for his help +Katakana characters by Vinney Thai +Cyrillic characters from "koi8x8" BDF font. +Date: August 11, 1994 + +Merged by John Cowan +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + $ $@ + $ $@ + $ $@ + $ $@ + $ $@ + $ $@ + $ $@ + $ $@@ + ###$@ + ###$@ + ###$@ + # $@ + $@ + ###$@ + ###$@ + $@@ + ### ###$@ + ### ###$@ + # # $@ + $ $@ + $ $@ + $@ + $@ + $@@ + # # $@ + # # $@ + #######$@ + # # $@ + #######$@ + # # $@ + # # $@ + $@@ + ##### $@ + # # #$@ + # # $@ + ##### $@ + # #$@ + # # #$@ + ##### $@ + $@@ + ### #$@ + # # # $@ + ### # $@ + # $@ + # ###$@ + # # #$@ + # ###$@ + $@@ + ## $@ + # # $@ + ## $@ + ### $@ + # # #$@ + # # $@ + ### #$@ + $@@ + ###$@ + ###$@ + # $@ + # $@ + $@ + $@ + $@ + $@@ + ##$@ + # $@ + # $@ + # $@ + # $@ + # $@ + ##$@ + $@@ + ## $@ + # $@ + #$@ + #$@ + #$@ + # $@ + ## $@ + $@@ + $@ + # # $@ + # # $@ + #######$@ + # # $@ + # # $@ + $@ + $@@ + $@ + # $@ + # $@ + #####$@ + # $@ + # $@ + $@ + $@@ + $@ + $@ + $@ + $@ + ###$@ + ###$@ + # $@ + # $@@ + $@ + $@ + $@ + #####$@ + $@ + $@ + $@ + $@@ + $@ + $@ + $@ + $@ + ###$@ + ###$@ + ###$@ + $@@ + #$@ + # $@ + # $@ + # $@ + # $@ + # $@ + # $@ + $@@ + ### $@ + # # $@ + # #$@ + # #$@ + # #$@ + # # $@ + ### $@ + $@@ + # $@ + ## $@ + # # $@ + # $@ + # $@ + # $@ + #####$@ + $@@ + ##### $@ + # #$@ + #$@ + ##### $@ + # $@ + # $@ + #######$@ + $@@ + ##### $@ + # #$@ + #$@ + ##### $@ + #$@ + # #$@ + ##### $@ + $@@ + # $@ + # # $@ + # # $@ + # # $@ + #######$@ + # $@ + # $@ + $@@ + #######$@ + # $@ + # $@ + ###### $@ + #$@ + # #$@ + ##### $@ + $@@ + ##### $@ + # #$@ + # $@ + ###### $@ + # #$@ + # #$@ + ##### $@ + $@@ + #######$@ + # # $@ + # $@ + # $@ + # $@ + # $@ + # $@ + $@@ + ##### $@ + # #$@ + # #$@ + ##### $@ + # #$@ + # #$@ + ##### $@ + $@@ + ##### $@ + # #$@ + # #$@ + ######$@ + #$@ + # #$@ + ##### $@ + $@@ + # $@ + ###$@ + # $@ + $@ + # $@ + ###$@ + # $@ + $@@ + $@ + ###$@ + ###$@ + $@ + ###$@ + ###$@ + # $@ + # $@@ + #$@ + # $@ + # $@ + # $@ + # $@ + # $@ + #$@ + $@@ + $@ + $@ + #####$@ + $@ + #####$@ + $@ + $@ + $@@ + # $@ + # $@ + # $@ + #$@ + # $@ + # $@ + # $@ + $@@ + ##### $@ + # #$@ + #$@ + ### $@ + # $@ + $@ + # $@ + $@@ + ##### $@ + # #$@ + # ### #$@ + # ### #$@ + # #### $@ + # $@ + ##### $@ + $@@ + # $@ + # # $@ + # # $@ + # #$@ + #######$@ + # #$@ + # #$@ + $@@ + ###### $@ + # #$@ + # #$@ + ###### $@ + # #$@ + # #$@ + ###### $@ + $@@ + ##### $@ + # #$@ + # $@ + # $@ + # $@ + # #$@ + ##### $@ + $@@ + ###### $@ + # #$@ + # #$@ + # #$@ + # #$@ + # #$@ + ###### $@ + $@@ + #######$@ + # $@ + # $@ + ##### $@ + # $@ + # $@ + #######$@ + $@@ + #######$@ + # $@ + # $@ + ##### $@ + # $@ + # $@ + # $@ + $@@ + ##### $@ + # #$@ + # $@ + # ####$@ + # #$@ + # #$@ + ##### $@ + $@@ + # #$@ + # #$@ + # #$@ + #######$@ + # #$@ + # #$@ + # #$@ + $@@ + ###$@ + # $@ + # $@ + # $@ + # $@ + # $@ + ###$@ + $@@ + #$@ + #$@ + #$@ + #$@ + # #$@ + # #$@ + ##### $@ + $@@ + # #$@ + # # $@ + # # $@ + ### $@ + # # $@ + # # $@ + # #$@ + $@@ + # $@ + # $@ + # $@ + # $@ + # $@ + # $@ + #######$@ + $@@ + # #$@ + ## ##$@ + # # # #$@ + # # #$@ + # #$@ + # #$@ + # #$@ + $@@ + # #$@ + ## #$@ + # # #$@ + # # #$@ + # # #$@ + # ##$@ + # #$@ + $@@ + #######$@ + # #$@ + # #$@ + # #$@ + # #$@ + # #$@ + #######$@ + $@@ + ###### $@ + # #$@ + # #$@ + ###### $@ + # $@ + # $@ + # $@ + $@@ + ##### $@ + # #$@ + # #$@ + # #$@ + # # #$@ + # # $@ + #### #$@ + $@@ + ###### $@ + # #$@ + # #$@ + ###### $@ + # # $@ + # # $@ + # #$@ + $@@ + ##### $@ + # #$@ + # $@ + ##### $@ + #$@ + # #$@ + ##### $@ + $@@ + #######$@ + # $@ + # $@ + # $@ + # $@ + # $@ + # $@ + $@@ + # #$@ + # #$@ + # #$@ + # #$@ + # #$@ + # #$@ + ##### $@ + $@@ + # #$@ + # #$@ + # #$@ + # #$@ + # # $@ + # # $@ + # $@ + $@@ + # #$@ + # # #$@ + # # #$@ + # # #$@ + # # #$@ + # # #$@ + ## ## $@ + $@@ + # #$@ + # # $@ + # # $@ + # $@ + # # $@ + # # $@ + # #$@ + $@@ + # #$@ + # # $@ + # # $@ + # $@ + # $@ + # $@ + # $@ + $@@ + #######$@ + # $@ + # $@ + # $@ + # $@ + # $@ + #######$@ + $@@ + #####$@ + # $@ + # $@ + # $@ + # $@ + # $@ + #####$@ + $@@ + # $@ + # $@ + # $@ + # $@ + # $@ + # $@ + #$@ + $@@ + #####$@ + #$@ + #$@ + #$@ + #$@ + #$@ + #####$@ + $@@ + # $@ + # # $@ + # #$@ + $@ + $@ + $@ + $@ + $@@ + $@ + $@ + $@ + $@ + $@ + $@ + $@ + #######$@@ + ###$@ + ###$@ + # $@ + #$@ + $@ + $@ + $@ + $@@ + $@ + ## $@ + # # $@ + # #$@ + ######$@ + # #$@ + # #$@ + $@@ + $@ + ##### $@ + # #$@ + ##### $@ + # #$@ + # #$@ + ##### $@ + $@@ + $@ + #### $@ + # #$@ + # $@ + # $@ + # #$@ + #### $@ + $@@ + $@ + ##### $@ + # #$@ + # #$@ + # #$@ + # #$@ + ##### $@ + $@@ + $@ + ######$@ + # $@ + ##### $@ + # $@ + # $@ + ######$@ + $@@ + $@ + ######$@ + # $@ + ##### $@ + # $@ + # $@ + # $@ + $@@ + $@ + #### $@ + # #$@ + # $@ + # ###$@ + # #$@ + #### $@ + $@@ + $@ + # #$@ + # #$@ + ######$@ + # #$@ + # #$@ + # #$@ + $@@ + $@ + #$@ + #$@ + #$@ + #$@ + #$@ + #$@ + $@@ + $@ + #$@ + #$@ + #$@ + #$@ + # #$@ + #### $@ + $@@ + $@ + # #$@ + # # $@ + #### $@ + # # $@ + # # $@ + # #$@ + $@@ + $@ + # $@ + # $@ + # $@ + # $@ + # $@ + ######$@ + $@@ + $@ + # #$@ + ## ##$@ + # ## #$@ + # #$@ + # #$@ + # #$@ + $@@ + $@ + # #$@ + ## #$@ + # # #$@ + # # #$@ + # ##$@ + # #$@ + $@@ + $@ + #### $@ + # #$@ + # #$@ + # #$@ + # #$@ + #### $@ + $@@ + $@ + ##### $@ + # #$@ + # #$@ + ##### $@ + # $@ + # $@ + $@@ + $@ + #### $@ + # #$@ + # #$@ + # # #$@ + # # $@ + ### #$@ + $@@ + $@ + ##### $@ + # #$@ + # #$@ + ##### $@ + # # $@ + # #$@ + $@@ + $@ + #### $@ + # $@ + #### $@ + #$@ + # #$@ + #### $@ + $@@ + $@ + #####$@ + # $@ + # $@ + # $@ + # $@ + # $@ + $@@ + $@ + # #$@ + # #$@ + # #$@ + # #$@ + # #$@ + #### $@ + $@@ + $@ + # #$@ + # #$@ + # #$@ + # #$@ + # # $@ + ## $@ + $@@ + $@ + # #$@ + # #$@ + # #$@ + # ## #$@ + ## ##$@ + # #$@ + $@@ + $@ + # #$@ + # # $@ + ## $@ + ## $@ + # # $@ + # #$@ + $@@ + $@ + # #$@ + # # $@ + # $@ + # $@ + # $@ + # $@ + $@@ + $@ + ######$@ + # $@ + # $@ + # $@ + # $@ + ######$@ + $@@ + ###$@ + # $@ + # $@ + ## $@ + # $@ + # $@ + ###$@ + $@@ + #$@ + #$@ + #$@ + $@ + #$@ + #$@ + #$@ + $@@ + ### $@ + # $@ + # $@ + ##$@ + # $@ + # $@ + ### $@ + $@@ + ## $@ + # # #$@ + ## $@ + $@ + $@ + $@ + $@ + $@@ + # # #$@ + # # $@ + # # $@ + # #$@ + #######$@ + # #$@ + # #$@ + $@@ + # #$@ + ##### $@ + # #$@ + # #$@ + # #$@ + # #$@ + ##### $@ + $@@ + # #$@ + $@ + # #$@ + # #$@ + # #$@ + # #$@ + ##### $@ + $@@ + $@ + # #$@ + #### $@ + # #$@ + ######$@ + # #$@ + # #$@ + $@@ + $@ + # #$@ + #### $@ + # #$@ + # #$@ + # #$@ + #### $@ + $@@ + $@ + # #$@ + $@ + # #$@ + # #$@ + # #$@ + #### $@ + $@@ + ###### $@ + # #$@ + # #$@ + ###### $@ + # #$@ + # #$@ + ###### $@ + # $@@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + ########$@ + ## $@ + ## $@ + ## $@@ +169 COPYRIGHT SIGN + $@ + $@ + $@ + $@ + $@ + $@ + $@ + $@@ +176 DEGREE SIGN + $@ + $@ + $@ + $@ + ########$@ + $@ + $@ + $@@ +178 SUPERSCRIPT TWO + ## $@ + ## $@ + ## $@ + ## $@ + ########$@ + ## $@ + ## $@ + ## $@@ +183 MIDDLE DOT + ## $@ + ## $@ + #####$@ + ## $@ + #####$@ + ## $@ + ## $@ + ## $@@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + # # #$@ + # # $@ + # # $@ + # #$@ + #######$@ + # #$@ + # #$@ + $@@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + # #$@ + ##### $@ + # #$@ + # #$@ + # #$@ + # #$@ + ##### $@ + $@@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + # #$@ + $@ + # #$@ + # #$@ + # #$@ + # #$@ + ##### $@ + $@@ +223 LATIN SMALL LETTER SHARP S + ###### $@ + # #$@ + # #$@ + ###### $@ + # #$@ + # #$@ + ###### $@ + # $@@ +228 LATIN SMALL LETTER A WITH DIAERESIS + $@ + # #$@ + #### $@ + # #$@ + ######$@ + # #$@ + # #$@ + $@@ +246 LATIN SMALL LETTER O WITH DIAERESIS + $@ + # #$@ + #### $@ + # #$@ + # #$@ + # #$@ + #### $@ + $@@ +247 DIVISION SIGN + #### $@ + #### $@ + #### $@ + #### $@ + #####$@ + #### $@ + #### $@ + #### $@@ +252 LATIN SMALL LETTER U WITH DIAERESIS + $@ + # #$@ + $@ + # #$@ + # #$@ + # #$@ + #### $@ + $@@ +0x0401 CYRILLIC CAPITAL LETTER IO + ########$@ + ########$@ + ########$@ + ########$@ + ########$@ + ########$@ + ########$@ + ########$@@ +0x0410 CYRILLIC CAPITAL LETTER A + ####$@ + ## ##$@ + ## ##$@ + ## ##$@ + #######$@ + ## ##$@ + ## ##$@ + $@@ +0x0411 CYRILLIC CAPITAL LETTER BE + #######$@ + ## $@ + ## $@ + ###### $@ + ## ##$@ + ## ##$@ + ###### $@ + $@@ +0x0412 CYRILLIC CAPITAL LETTER VE + ###### $@ + ## ##$@ + ## ##$@ + ###### $@ + ## ##$@ + ## ##$@ + ###### $@ + $@@ +0x0413 CYRILLIC CAPITAL LETTER GHE + #######$@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x0414 CYRILLIC CAPITAL LETTER DE + #### $@ + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + #######$@ + ## ##$@ + $@@ +0x0415 CYRILLIC CAPITAL LETTER IE + #######$@ + ## $@ + ## $@ + ###### $@ + ## $@ + ## $@ + #######$@ + $@@ +0x0416 CYRILLIC CAPITAL LETTER ZHE + ## # ##$@ + # # # $@ + ### $@ + ### $@ + # # # $@ + # # # $@ + ## # ##$@ + $@@ +0x0417 CYRILLIC CAPITAL LETTER ZE + ##### $@ + ## ##$@ + ##$@ + ## $@ + ##$@ + ## ##$@ + ##### $@ + $@@ +0x0418 CYRILLIC CAPITAL LETTER I + ## ##$@ + ## ###$@ + ## ###$@ + ## # ##$@ + ### ##$@ + ## ##$@ + ## ##$@ + $@@ +0x0419 CYRILLIC CAPITAL LETTER SHORT I + ## ## #$@ + ## ##$@ + ## ###$@ + ## # ##$@ + ### ##$@ + ## ##$@ + ## ##$@ + $@@ +0x041A CYRILLIC CAPITAL LETTER KA + ## ##$@ + ## ## $@ + ## ## $@ + ##### $@ + ## ## $@ + ## ##$@ + ## ##$@ + $@@ +0x041B CYRILLIC CAPITAL LETTER EL + #####$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x041C CYRILLIC CAPITAL LETTER EM + ## ##$@ + ## ##$@ + ### ###$@ + ## # ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x041D CYRILLIC CAPITAL LETTER EN + ## ##$@ + ## ##$@ + ## ##$@ + #######$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x041E CYRILLIC CAPITAL LETTER O + ##### $@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + ##### $@ + $@@ +0x041F CYRILLIC CAPITAL LETTER PE + #######$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x0420 CYRILLIC CAPITAL LETTER ER + ###### $@ + ## ##$@ + ## ##$@ + ###### $@ + ## $@ + ## $@ + ## $@ + $@@ +0x0421 CYRILLIC CAPITAL LETTER ES + ##### $@ + ## ##$@ + ## $@ + ## $@ + ## $@ + ## ##$@ + ##### $@ + $@@ +0x0422 CYRILLIC CAPITAL LETTER TE + ###### $@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x0423 CYRILLIC CAPITAL LETTER U + ## ##$@ + ## ##$@ + ## ##$@ + ######$@ + ##$@ + ## ##$@ + ##### $@ + $@@ +0x0424 CYRILLIC CAPITAL LETTER EF + # $@ + ##### $@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ##### $@ + # $@ + $@@ +0x0425 CYRILLIC CAPITAL LETTER HA + ## ##$@ + ## ## $@ + ### $@ + ### $@ + ### $@ + ## ## $@ + ## ##$@ + $@@ +0x0426 CYRILLIC CAPITAL LETTER TSE + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + #######$@ + #$@@ +0x0427 CYRILLIC CAPITAL LETTER CHE + ## ##$@ + ## ##$@ + ## ##$@ + ######$@ + ##$@ + ##$@ + ##$@ + $@@ +0x0428 CYRILLIC CAPITAL LETTER SHA + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + #######$@ + $@@ +0x0429 CYRILLIC CAPITAL LETTER SHCHA + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + #######$@ + #$@@ +0x042A CYRILLIC CAPITAL LETTER HARD SIGN + ### $@ + ### $@ + ## $@ + ##### $@ + ## ##$@ + ## ##$@ + ##### $@ + $@@ +0x042B CYRILLIC CAPITAL LETTER YERU + ## ##$@ + ## ##$@ + ## ##$@ + #### #$@ + ## # #$@ + ## # #$@ + #### #$@ + $@@ +0x042C CYRILLIC CAPITAL LETTER SOFT SIGN + ## $@ + ## $@ + ## $@ + ###### $@ + ## ##$@ + ## ##$@ + ###### $@ + $@@ +0x042D CYRILLIC CAPITAL LETTER E + ##### $@ + ## ##$@ + ##$@ + #####$@ + ##$@ + ## ##$@ + ##### $@ + $@@ +0x042E CYRILLIC CAPITAL LETTER YU + ## ## $@ + ## # ##$@ + ## # ##$@ + #### ##$@ + ## # ##$@ + ## # ##$@ + ## ## $@ + $@@ +0x042F CYRILLIC CAPITAL LETTER YA + #####$@ + ## ##$@ + ## ##$@ + #####$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x0430 CYRILLIC SMALL LETTER A + $@ + $@ + #### $@ + ## $@ + ##### $@ + ## ## $@ + ######$@ + $@@ +0x0431 CYRILLIC SMALL LETTER BE + $@ + ## $@ + #### $@ + ## $@ + ###### $@ + ## ##$@ + ##### $@ + $@@ +0x0432 CYRILLIC SMALL LETTER VE + $@ + $@ + ##### $@ + ## ## $@ + ###### $@ + ## ##$@ + ###### $@ + $@@ +0x0433 CYRILLIC SMALL LETTER GHE + $@ + $@ + ##### $@ + ##$@ + ##### $@ + ## $@ + ######$@ + $@@ +0x0434 CYRILLIC SMALL LETTER DE + $@ + #### $@ + ##$@ + #####$@ + ## ##$@ + ## ##$@ + ##### $@ + $@@ +0x0435 CYRILLIC SMALL LETTER IE + $@ + $@ + ##### $@ + ## ##$@ + ###### $@ + ## $@ + ##### $@ + $@@ +0x0436 CYRILLIC SMALL LETTER ZHE + $@ + $@ + ## # ##$@ + # # # $@ + ### $@ + # # # $@ + ## # ##$@ + $@@ +0x0437 CYRILLIC SMALL LETTER ZE + $@ + $@ + ##### $@ + ## ##$@ + ### $@ + ## ##$@ + ##### $@ + $@@ +0x0438 CYRILLIC SMALL LETTER I + $@ + $@ + ## ##$@ + ## ###$@ + ## # ##$@ + ### ##$@ + ## ##$@ + $@@ +0x0439 CYRILLIC SMALL LETTER SHORT I + $@ + ## $@ + ## ##$@ + ## ###$@ + ## # ##$@ + ### ##$@ + ## ##$@ + $@@ +0x043A CYRILLIC SMALL LETTER KA + $@ + $@ + ## ##$@ + ## ## $@ + ##### $@ + ## ## $@ + ## ##$@ + $@@ +0x043B CYRILLIC SMALL LETTER EL + $@ + $@ + #####$@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x043C CYRILLIC SMALL LETTER EM + $@ + $@ + ## ##$@ + ### ###$@ + ## # ##$@ + ## ##$@ + ## ##$@ + $@@ +0x043D CYRILLIC SMALL LETTER EN + $@ + $@ + ## ##$@ + ## ##$@ + #######$@ + ## ##$@ + ## ##$@ + $@@ +0x043E CYRILLIC SMALL LETTER O + $@ + $@ + ##### $@ + ## ##$@ + ## ##$@ + ## ##$@ + ##### $@ + $@@ +0x043F CYRILLIC SMALL LETTER PE + $@ + $@ + ###### $@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + $@@ +0x0440 CYRILLIC SMALL LETTER ER + $@ + $@ + ###### $@ + ## ##$@ + ###### $@ + ## $@ + ## $@ + $@@ +0x0441 CYRILLIC SMALL LETTER ES + $@ + $@ + ##### $@ + ## $@ + ## $@ + ## $@ + ##### $@ + $@@ +0x0442 CYRILLIC SMALL LETTER TE + $@ + $@ + ###### $@ + ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x0443 CYRILLIC SMALL LETTER U + $@ + $@ + ## ##$@ + ## ##$@ + ## ##$@ + ######$@ + ##$@ + ##### $@@ +0x0444 CYRILLIC SMALL LETTER EF + $@ + # $@ + ##### $@ + ## # ##$@ + ## # ##$@ + ##### $@ + # $@ + $@@ +0x0445 CYRILLIC SMALL LETTER HA + $@ + $@ + ## ##$@ + ## ## $@ + ### $@ + ## ## $@ + ## ##$@ + $@@ +0x0446 CYRILLIC SMALL LETTER TSE + $@ + $@ + ## ##$@ + ## ##$@ + ## ##$@ + ## ## $@ + ### ##$@ + #$@@ +0x0447 CYRILLIC SMALL LETTER CHE + $@ + $@ + ## ##$@ + ## ##$@ + ######$@ + ##$@ + ##$@ + $@@ +0x0448 CYRILLIC SMALL LETTER SHA + $@ + $@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + #######$@ + $@@ +0x0449 CYRILLIC SMALL LETTER SHCHA + $@ + $@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + ## # ##$@ + #######$@ + #$@@ +0x044A CYRILLIC SMALL LETTER HARD SIGN + $@ + $@ + ### $@ + ## $@ + ##### $@ + ## ##$@ + ##### $@ + $@@ +0x044B CYRILLIC SMALL LETTER YERU + $@ + $@ + ## ##$@ + ## ##$@ + #### #$@ + ## # #$@ + #### #$@ + $@@ +0x044C CYRILLIC SMALL LETTER SOFT SIGN + $@ + $@ + ## $@ + ## $@ + ###### $@ + ## ##$@ + ###### $@ + $@@ +0x044D CYRILLIC SMALL LETTER E + $@ + $@ + ###### $@ + ##$@ + #####$@ + ##$@ + ###### $@ + $@@ +0x044E CYRILLIC SMALL LETTER YU + $@ + $@ + # ### $@ + # ## ##$@ + #### ##$@ + # ## ##$@ + # ### $@ + $@@ +0x044F CYRILLIC SMALL LETTER YA + $@ + $@ + #####$@ + ## ##$@ + #####$@ + ## ##$@ + ## ##$@ + $@@ +0x0451 CYRILLIC SMALL LETTER IO + $@ + $@ + ########$@ + $@ + #### ###$@ + ## ## $@ + ## ## $@ + ## ## $@@ +0x2219 BULLET OPERATOR + ## ##$@ + ## ##$@ + ## ##$@ + ## ##$@ + #######$@ + $@ + $@ + $@@ +0x221A SQUARE ROOT + ## $@ + ## $@ + ##### $@ + ## $@ + ##### $@ + $@ + $@ + $@@ +0x2248 ALMOST EQUAL TO + $@ + $@ + $@ + $@ + ##### $@ + ## $@ + ## $@ + ## $@@ +0x2264 LESS-THAN OR EQUAL TO + ## $@ + ## $@ + ## $@ + ## $@ + #####$@ + $@ + $@ + $@@ +0x2265 GREATER-THAN OR EQUAL TO + ## $@ + ## $@ + ## $@ + ## $@ + ########$@ + $@ + $@ + $@@ +0x2320 TOP HALF INTEGRAL + $@ + $@ + #######$@ + ##$@ + #### ##$@ + ## ##$@ + ## ##$@ + ## ##$@@ +0x2321 BOTTOM HALF INTEGRAL + ## $@ + ## $@ + ## $@ + ## $@ + #####$@ + ## $@ + ## $@ + ## $@@ +0x2500 BOX DRAWINGS LIGHT HORIZONTAL + ## $@ + $@ + ## $@ + ## $@ + ## $@ + ## ##$@ + #### $@ + $@@ +0x2502 BOX DRAWINGS LIGHT VERTICAL + $@ + $@ + $@ + ######$@ + ## $@ + ## $@ + $@ + $@@ +0x250C BOX DRAWINGS LIGHT DOWN AND RIGHT + $@ + $@ + $@ + ######$@ + ##$@ + ##$@ + $@ + $@@ +0x2510 BOX DRAWINGS LIGHT DOWN AND LEFT + ## ##$@ + ## ## $@ + ## ## $@ + ## #### $@ + ## ##$@ + ## ## $@ + ## ## $@ + ####$@@ +0x2514 BOX DRAWINGS LIGHT UP AND RIGHT + ## ##$@ + ## ## $@ + ## ## $@ + ## ## ##$@ + ## ###$@ + ## ####$@ + ## ####$@ + ##$@@ +0x2518 BOX DRAWINGS LIGHT UP AND LEFT + ## $@ + ## $@ + $@ + ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT + $@ + ## ##$@ + ## ## $@ + ## ## $@ + ## ## $@ + ## ##$@ + $@ + $@@ +0x2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT + $@ + ## ## $@ + ## ## $@ + ## ##$@ + ## ## $@ + ## ## $@ + $@ + $@@ +0x252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + # #$@ + # # $@ + # #$@ + # # $@ + # #$@ + # # $@ + # #$@ + # # $@@ +0x2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL + # # # #$@ + # # # # $@ + # # # #$@ + # # # # $@ + # # # #$@ + # # # # $@ + # # # #$@ + # # # # $@@ +0x253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + ## ## ##$@ + ### ###$@ + ## ## ##$@ + ### ### $@ + ## ## ##$@ + ### ###$@ + ## ## ##$@ + ### ### $@@ +0x2550 BOX DRAWINGS DOUBLE HORIZONTAL + ## ## $@ + ## ## $@ + ## ###$@ + ## $@ + ######$@ + $@ + $@ + $@@ +0x2551 BOX DRAWINGS DOUBLE VERTICAL + $@ + $@ + ######$@ + ## $@ + ## ###$@ + ## ## $@ + ## ## $@ + ## ## $@@ +0x2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + ## ## $@ + ## ## $@ + #### ###$@ + $@ + ########$@ + $@ + $@ + $@@ +0x2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE + #### $@ + #### $@ + #####$@ + ## $@ + #####$@ + #### $@ + #### $@ + #### $@@ +0x2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT + $@ + $@ + ########$@ + $@ + ########$@ + $@ + $@ + $@@ +0x2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE + #### $@ + #### $@ + #######$@ + $@ + #######$@ + #### $@ + #### $@ + #### $@@ +0x2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE + ## $@ + ## $@ + ########$@ + $@ + ########$@ + $@ + $@ + $@@ +0x2557 BOX DRAWINGS DOUBLE DOWN AND LEFT + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + ########$@ + $@ + $@ + $@@ +0x2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + $@ + $@ + ########$@ + $@ + ########$@ + ## $@ + ## $@ + ## $@@ +0x2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + $@ + $@ + $@ + $@ + ########$@ + ## ## $@ + ## ## $@ + ## ## $@@ +0x255A BOX DRAWINGS DOUBLE UP AND RIGHT + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + ######$@ + $@ + $@ + $@@ +0x255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + ## $@ + ## $@ + #####$@ + ## $@ + #####$@ + $@ + $@ + $@@ +0x255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE + $@ + $@ + #####$@ + ## $@ + #####$@ + ## $@ + ## $@ + ## $@@ +0x255D BOX DRAWINGS DOUBLE UP AND LEFT + $@ + $@ + $@ + $@ + ######$@ + ## ## $@ + ## ## $@ + ## ## $@@ +0x255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + ########$@ + ## ## $@ + ## ## $@ + ## ## $@@ +0x255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + ## $@ + ## $@ + ########$@ + ## $@ + ########$@ + ## $@ + ## $@ + ## $@@ +0x2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + ## $@ + ## $@ + ## $@ + ## $@ + ##### $@ + $@ + $@ + $@@ +0x2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + $@ + $@ + $@ + $@ + #####$@ + ## $@ + ## $@ + ## $@@ +0x2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE + $@ + $@ + $@ + $@ + ########$@ + ########$@ + ########$@ + ########$@@ +0x2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT + #### $@ + #### $@ + #### $@ + #### $@ + #### $@ + #### $@ + #### $@ + #### $@@ +0x2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE + ####$@ + ####$@ + ####$@ + ####$@ + ####$@ + ####$@ + ####$@ + ####$@@ +0x2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE + ########$@ + ########$@ + ########$@ + ########$@ + $@ + $@ + $@ + $@@ +0x2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + ### $@ + ## ## $@ + ## ## $@ + ### $@ + $@ + $@ + $@ + $@@ +0x2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + $@ + $@ + $@ + ## $@ + ## $@ + $@ + $@ + $@@ +0x2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + $@ + $@ + $@ + $@ + ## $@ + $@ + $@ + $@@ +0x2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL + ####$@ + ## $@ + ## $@ + ## $@ + ### ## $@ + ## ## $@ + #### $@ + ### $@@ +0x256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + #### $@ + ## ## $@ + ## ## $@ + ## ## $@ + ## ## $@ + $@ + $@ + $@@ +0x256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE + ### $@ + ## $@ + ## $@ + ## $@ + #### $@ + $@ + $@ + $@@ +0x256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + $@ + $@ + #### $@ + #### $@ + #### $@ + #### $@ + $@ + $@@ +0x2580 UPPER HALF BLOCK + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@ + ## $@@ +0x2584 LOWER HALF BLOCK + ## $@ + ## $@ + ## $@ + ## $@ + ##### $@ + ## $@ + ## $@ + ## $@@ +0x2588 FULL BLOCK + ## $@ + ## $@ + ##### $@ + ## $@ + ##### $@ + ## $@ + ## $@ + ## $@@ +0x258C LEFT HALF BLOCK + ####$@ + ####$@ + ####$@ + ####$@ + ######$@ + ####$@ + ####$@ + ####$@@ +0x2590 RIGHT HALF BLOCK + $@ + $@ + $@ + $@ + #######$@ + ## ##$@ + ## ##$@ + ## ##$@@ +0x2591 LIGHT SHADE + $@ + $@ + ##### $@ + ## $@ + ##### $@ + ## $@ + ## $@ + ## $@@ +0x2592 MEDIUM SHADE + ####$@ + ####$@ + ######$@ + ##$@ + ######$@ + ####$@ + ####$@ + ####$@@ +0x2593 DARK SHADE + ####$@ + ####$@ + ####$@ + ####$@ + ####$@ + ####$@ + ####$@ + ####$@@ +0x25A0 BLACK SQUARE + ## ##$@ + ## ##$@ + #### ##$@ + ##$@ + #######$@ + $@ + $@ + $@@ +0x30A2 A + ##########$@ + ### $@ + # $@ + # $@ + # $@ + # $@ + # $@ + $@@ +0x30A4 I + ##$@ + ## $@ + ## # $@ + ## # $@ + # $@ + # $@ + # $@ + $@@ +0x30A6 U + # $@ + ##########$@ + # #$@ + ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30A8 E + $@ + ####### $@ + # $@ + # $@ + # $@ + # $@ + ##########$@ + $@@ +0x30AA O + # $@ + ##########$@ + ## $@ + ## # $@ + ## # $@ + ## ## $@ + # $@ + $@@ +0x30AB KA + # $@ + ##########$@ + # #$@ + # #$@ + # #$@ + # # # $@ + # # $@ + $@@ +0x30AD KI + # # $@ + # # $@ + # # # $@ + # $@ + # # $@ + # # $@ + #$@ + $@@ +0x30AF KU + # $@ + ########$@ + # #$@ + # ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30B1 KE + # $@ + ########$@ + # # $@ + # # $@ + # $@ + # $@ + # $@ + $@@ +0x30B3 KO + $@ + ##########$@ + #$@ + #$@ + #$@ + #$@ + ######### $@ + $@@ +0x30B5 SA + # # $@ + ##########$@ + # # $@ + # $@ + # $@ + # $@ + # $@ + $@@ +0x30B7 SI (SHI) + # #$@ + # # # $@ + # # $@ + ## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30B9 SU + ########$@ + #$@ + # $@ + ## $@ + ## # $@ + ## # $@ + # #$@ + $@@ +0x30BB SE + # $@ + # $@ + ##########$@ + # # $@ + # $@ + # $@ + ###### $@ + $@@ +0x30BD SO + # #$@ + # #$@ + # $@ + # $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30BF TA + # $@ + #######$@ + # # $@ + # # # $@ + ### $@ + ## $@ + ## $@ + $@@ +0x30C1 TI (CHI) + ## $@ + ###### $@ + # $@ + ##########$@ + # $@ + # $@ + ## $@ + $@@ +0x30C4 TU (TSU) + # # #$@ + # # #$@ + # $@ + # $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30C6 TE + ###### $@ + $@ + ##########$@ + # $@ + # $@ + # $@ + ## $@ + $@@ +0x30C8 TO + # $@ + # $@ + ## $@ + # # $@ + # #$@ + # $@ + # $@ + $@@ +0x30CA NA + # $@ + ##########$@ + # $@ + # $@ + # $@ + # $@ + ## $@ + $@@ +0x30CB NI + $@ + $@ + ###### $@ + $@ + $@ + ##########$@ + $@ + $@@ +0x30CC NU + ##########$@ + #$@ + # # $@ + # ## $@ + ## $@ + ## # $@ + ## # $@ + $@@ +0x30CD NE + # $@ + ##########$@ + # $@ + ### $@ + ###### $@ + ## # ##$@ + # $@ + $@@ +0x30CE NO + #$@ + #$@ + # $@ + # $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30CF HA + $@ + $@ + # # $@ + # # $@ + # #$@ + # $@ + $@ + $@@ +0x30D2 HI + # $@ + # ### $@ + #### $@ + # $@ + # $@ + # $@ + #######$@ + $@@ +0x30D5 HU (FU) + ########$@ + #$@ + #$@ + # $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30D8 HE + $@ + $@ + ## $@ + # ## $@ + # ## $@ + ##$@ + $@ + $@@ +0x30DB HO + # $@ + ##########$@ + # $@ + # # # $@ + # # # $@ + # ## #$@ + # $@ + $@@ +0x30DE MA + $@ + ##########$@ + # $@ + # $@ + # # $@ + # $@ + # $@ + $@@ +0x30DF MI + #### $@ + ##$@ + ### $@ + ###$@ + $@ + ### $@ + ###$@ + $@@ +0x30E0 MU + # $@ + # $@ + # $@ + # $@ + # # $@ + ######### $@ + #$@ + $@@ +0x30E1 ME + #$@ + # $@ + # # $@ + # # $@ + # $@ + ## # $@ + ## # $@ + $@@ +0x30E2 MO + ###### $@ + # $@ + ##########$@ + # $@ + # $@ + # $@ + #### $@ + $@@ +0x30E4 YA + # ## $@ + # ## # $@ + ### $@ + # # $@ + # $@ + # $@ + # $@ + $@@ +0x30E6 YU + $@ + ###### $@ + # $@ + # $@ + # $@ + ##########$@ + $@ + $@@ +0x30E8 YO + $@ + ###### $@ + # $@ + # $@ + # $@ + ##########$@ + $@ + $@@ +0x30E9 RA + ###### $@ + $@ + ##########$@ + # #$@ + ## $@ + ## $@ + ## $@ + $@@ +0x30EA RI + # #$@ + # #$@ + # #$@ + # #$@ + # $@ + # $@ + ## $@ + $@@ +0x30EB RU + # # $@ + # # $@ + # # $@ + # # #$@ + # # # $@ + # # # $@ + # ## $@ + $@@ +0x30EC RE + # $@ + # $@ + # $@ + # ##$@ + # ## $@ + # ## $@ + ## $@ + $@@ +0x30ED RO + $@ + #########$@ + # #$@ + # #$@ + # #$@ + #########$@ + $@ + $@@ +0x30EF WA + ##########$@ + # #$@ + # $@ + # $@ + # $@ + ## $@ + ## $@ + $@@ +0x30F0 WI + # $@ + ####### $@ + # # $@ + # # $@ + ##########$@ + # $@ + # $@ + $@@ +0x30F1 WE + #########$@ + #$@ + #$@ + ######## $@ + # $@ + # $@ + ######## $@ + $@@ +0x30F2 WO + ##########$@ + #$@ + # $@ + ######## $@ + ## $@ + ## $@ + ## $@ + $@@ +0x30F3 N + #$@ + # #$@ + # # $@ + # $@ + ## $@ + ## $@ + ## $@ + $@@ +-0x0004 KATAMAP + @ +a-A i-B u-C e-D o-E ka-F ki-G ku-H ke-I ko-J @ +sa-K shi-L su-M se-N so-O ta-P chi-Q tsu-R te-S to-T@ +na-U ni-V nu-W ne-X no-Y ha-Z hi-a fu-b he-c ho-d @ +ma-e mi-f mu-g me-h mo-i ya-j yu-k we-l yo-m @ +ra-n ri-o ru-p re-q ro-r wa-s wi-t wo-u @ +n-v @ + @@ +-0x0006 MOSCOWMAP +a-a, b-b, v-v, g-g, d-d, e-e, zh-j, z-z, i-i@ +short i->, k-k, l-l, m-m, n-n, o-o, p-p, r-r@ +s-s, t-t, u-u, f-f, kh-h, ts-q, ch-c, sh-w @ +shch-x, hard-\, yeru-|, soft-/, reverse e-~ @ +yu-`, ya-y @ +Capitals use Latin capital letters, except: @ +Reverse E-<, Yu-@ @ +No caps for short i, hard, yeru, soft. @@ diff --git a/externals/figlet/fonts/big.flf b/externals/figlet/fonts/big.flf new file mode 100644 index 0000000000..07c468c9e5 --- /dev/null +++ b/externals/figlet/fonts/big.flf @@ -0,0 +1,2204 @@ +flf2a$ 8 6 59 15 10 0 24463 153 +Big by Glenn Chappell 4/93 -- based on Standard +Includes ISO Latin-1 +Greek characters by Bruce Jakeway +figlet release 2.2 -- November 1996 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + $@ + $@ + $@ + $@ + $@ + $@ + $@ + $@@ + _ @ + | |@ + | |@ + | |@ + |_|@ + (_)@ + @ + @@ + _ _ @ + ( | )@ + V V @ + $ @ + $ @ + $ @ + @ + @@ + _ _ @ + _| || |_ @ + |_ __ _|@ + _| || |_ @ + |_ __ _|@ + |_||_| @ + @ + @@ + _ @ + | | @ + / __)@ + \__ \@ + ( /@ + |_| @ + @ + @@ + _ __@ + (_) / /@ + / / @ + / / @ + / / _ @ + /_/ (_)@ + @ + @@ + @ + ___ @ + ( _ ) @ + / _ \/\@ + | (_> <@ + \___/\/@ + @ + @@ + _ @ + ( )@ + |/ @ + $ @ + $ @ + $ @ + @ + @@ + __@ + / /@ + | | @ + | | @ + | | @ + | | @ + \_\@ + @@ + __ @ + \ \ @ + | |@ + | |@ + | |@ + | |@ + /_/ @ + @@ + _ @ + /\| |/\ @ + \ ` ' / @ + |_ _|@ + / , . \ @ + \/|_|\/ @ + @ + @@ + @ + _ @ + _| |_ @ + |_ _|@ + |_| @ + $ @ + @ + @@ + @ + @ + @ + @ + _ @ + ( )@ + |/ @ + @@ + @ + @ + ______ @ + |______|@ + $ @ + $ @ + @ + @@ + @ + @ + @ + @ + _ @ + (_)@ + @ + @@ + __@ + / /@ + / / @ + / / @ + / / @ + /_/ @ + @ + @@ + ___ @ + / _ \ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ + __ @ + /_ |@ + | |@ + | |@ + | |@ + |_|@ + @ + @@ + ___ @ + |__ \ @ + $) |@ + / / @ + / /_ @ + |____|@ + @ + @@ + ____ @ + |___ \ @ + __) |@ + |__ < @ + ___) |@ + |____/ @ + @ + @@ + _ _ @ + | || | @ + | || |_ @ + |__ _|@ + | | @ + |_| @ + @ + @@ + _____ @ + | ____|@ + | |__ @ + |___ \ @ + ___) |@ + |____/ @ + @ + @@ + __ @ + / / @ + / /_ @ + | '_ \ @ + | (_) |@ + \___/ @ + @ + @@ + ______ @ + |____ |@ + $/ / @ + / / @ + / / @ + /_/ @ + @ + @@ + ___ @ + / _ \ @ + | (_) |@ + > _ < @ + | (_) |@ + \___/ @ + @ + @@ + ___ @ + / _ \ @ + | (_) |@ + \__, |@ + / / @ + /_/ @ + @ + @@ + @ + _ @ + (_)@ + $ @ + _ @ + (_)@ + @ + @@ + @ + _ @ + (_)@ + $ @ + _ @ + ( )@ + |/ @ + @@ + __@ + / /@ + / / @ + < < @ + \ \ @ + \_\@ + @ + @@ + @ + ______ @ + |______|@ + ______ @ + |______|@ + @ + @ + @@ + __ @ + \ \ @ + \ \ @ + > >@ + / / @ + /_/ @ + @ + @@ + ___ @ + |__ \ @ + ) |@ + / / @ + |_| @ + (_) @ + @ + @@ + @ + ____ @ + / __ \ @ + / / _` |@ + | | (_| |@ + \ \__,_|@ + \____/ @ + @@ + @ + /\ @ + / \ @ + / /\ \ @ + / ____ \ @ + /_/ \_\@ + @ + @@ + ____ @ + | _ \ @ + | |_) |@ + | _ < @ + | |_) |@ + |____/ @ + @ + @@ + _____ @ + / ____|@ + | | $ @ + | | $ @ + | |____ @ + \_____|@ + @ + @@ + _____ @ + | __ \ @ + | | | |@ + | | | |@ + | |__| |@ + |_____/ @ + @ + @@ + ______ @ + | ____|@ + | |__ @ + | __| @ + | |____ @ + |______|@ + @ + @@ + ______ @ + | ____|@ + | |__ @ + | __| @ + | | @ + |_| @ + @ + @@ + _____ @ + / ____|@ + | | __ @ + | | |_ |@ + | |__| |@ + \_____|@ + @ + @@ + _ _ @ + | | | |@ + | |__| |@ + | __ |@ + | | | |@ + |_| |_|@ + @ + @@ + _____ @ + |_ _|@ + | | @ + | | @ + _| |_ @ + |_____|@ + @ + @@ + _ @ + | |@ + | |@ + _ | |@ + | |__| |@ + \____/ @ + @ + @@ + _ __@ + | |/ /@ + | ' / @ + | < @ + | . \ @ + |_|\_\@ + @ + @@ + _ @ + | | @ + | | @ + | | @ + | |____ @ + |______|@ + @ + @@ + __ __ @ + | \/ |@ + | \ / |@ + | |\/| |@ + | | | |@ + |_| |_|@ + @ + @@ + _ _ @ + | \ | |@ + | \| |@ + | . ` |@ + | |\ |@ + |_| \_|@ + @ + @@ + ____ @ + / __ \ @ + | | | |@ + | | | |@ + | |__| |@ + \____/ @ + @ + @@ + _____ @ + | __ \ @ + | |__) |@ + | ___/ @ + | | @ + |_| @ + @ + @@ + ____ @ + / __ \ @ + | | | |@ + | | | |@ + | |__| |@ + \___\_\@ + @ + @@ + _____ @ + | __ \ @ + | |__) |@ + | _ / @ + | | \ \ @ + |_| \_\@ + @ + @@ + _____ @ + / ____|@ + | (___ @ + \___ \ @ + ____) |@ + |_____/ @ + @ + @@ + _______ @ + |__ __|@ + | | @ + | | @ + | | @ + |_| @ + @ + @@ + _ _ @ + | | | |@ + | | | |@ + | | | |@ + | |__| |@ + \____/ @ + @ + @@ + __ __@ + \ \ / /@ + \ \ / / @ + \ \/ / @ + \ / @ + \/ @ + @ + @@ + __ __@ + \ \ / /@ + \ \ /\ / / @ + \ \/ \/ / @ + \ /\ / @ + \/ \/ @ + @ + @@ + __ __@ + \ \ / /@ + \ V / @ + > < @ + / . \ @ + /_/ \_\@ + @ + @@ + __ __@ + \ \ / /@ + \ \_/ / @ + \ / @ + | | @ + |_| @ + @ + @@ + ______@ + |___ /@ + $/ / @ + / / @ + / /__ @ + /_____|@ + @ + @@ + ___ @ + | _|@ + | | @ + | | @ + | | @ + | |_ @ + |___|@ + @@ + __ @ + \ \ @ + \ \ @ + \ \ @ + \ \ @ + \_\@ + @ + @@ + ___ @ + |_ |@ + | |@ + | |@ + | |@ + _| |@ + |___|@ + @@ + /\ @ + |/\|@ + $ @ + $ @ + $ @ + $ @ + @ + @@ + @ + @ + @ + @ + @ + $ @ + ______ @ + |______|@@ + _ @ + ( )@ + \|@ + $ @ + $ @ + $ @ + @ + @@ + @ + @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ + _ @ + | | @ + | |__ @ + | '_ \ @ + | |_) |@ + |_.__/ @ + @ + @@ + @ + @ + ___ @ + / __|@ + | (__ @ + \___|@ + @ + @@ + _ @ + | |@ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ + @ + @ + ___ @ + / _ \@ + | __/@ + \___|@ + @ + @@ + __ @ + / _|@ + | |_ @ + | _|@ + | | @ + |_| @ + @ + @@ + @ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + __/ |@ + |___/ @@ + _ @ + | | @ + | |__ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @ + @@ + _ @ + (_)@ + _ @ + | |@ + | |@ + |_|@ + @ + @@ + _ @ + (_)@ + _ @ + | |@ + | |@ + | |@ + _/ |@ + |__/ @@ + _ @ + | | @ + | | __@ + | |/ /@ + | < @ + |_|\_\@ + @ + @@ + _ @ + | |@ + | |@ + | |@ + | |@ + |_|@ + @ + @@ + @ + @ + _ __ ___ @ + | '_ ` _ \ @ + | | | | | |@ + |_| |_| |_|@ + @ + @@ + @ + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @ + @@ + @ + @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ + @ + @ + _ __ @ + | '_ \ @ + | |_) |@ + | .__/ @ + | | @ + |_| @@ + @ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + | |@ + |_|@@ + @ + @ + _ __ @ + | '__|@ + | | @ + |_| @ + @ + @@ + @ + @ + ___ @ + / __|@ + \__ \@ + |___/@ + @ + @@ + _ @ + | | @ + | |_ @ + | __|@ + | |_ @ + \__|@ + @ + @@ + @ + @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @ + @@ + @ + @ + __ __@ + \ \ / /@ + \ V / @ + \_/ @ + @ + @@ + @ + @ + __ __@ + \ \ /\ / /@ + \ V V / @ + \_/\_/ @ + @ + @@ + @ + @ + __ __@ + \ \/ /@ + > < @ + /_/\_\@ + @ + @@ + @ + @ + _ _ @ + | | | |@ + | |_| |@ + \__, |@ + __/ |@ + |___/ @@ + @ + @ + ____@ + |_ /@ + / / @ + /___|@ + @ + @@ + __@ + / /@ + | | @ + / / @ + \ \ @ + | | @ + \_\@ + @@ + _ @ + | |@ + | |@ + | |@ + | |@ + | |@ + | |@ + |_|@@ + __ @ + \ \ @ + | | @ + \ \@ + / /@ + | | @ + /_/ @ + @@ + /\/|@ + |/\/ @ + $ @ + $ @ + $ @ + $ @ + @ + @@ + _ _ @ + (_)_(_) @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ + _ _ @ + (_) (_)@ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ + _ _ @ + (_) (_)@ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ + _ _ @ + (_) (_)@ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @ + @@ + ___ @ + / _ \ @ + | | ) |@ + | |< < @ + | | ) |@ + | ||_/ @ + |_| @ + @@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + $@ + $@ + $@ + $@@ +161 INVERTED EXCLAMATION MARK + _ @ + (_)@ + | |@ + | |@ + | |@ + |_|@ + @ + @@ +162 CENT SIGN + @ + _ @ + | | @ + / __)@ + | (__ @ + \ )@ + |_| @ + @@ +163 POUND SIGN + ___ @ + / ,_\ @ + _| |_ @ + |__ __| @ + | |____ @ + (_,_____|@ + @ + @@ +164 CURRENCY SIGN + @ + /\___/\@ + \ _ /@ + | (_) |@ + / ___ \@ + \/ \/@ + @ + @@ +165 YEN SIGN + __ __ @ + \ \ / / @ + _\ V /_ @ + |___ ___|@ + |___ ___|@ + |_| @ + @ + @@ +166 BROKEN BAR + _ @ + | |@ + | |@ + |_|@ + _ @ + | |@ + | |@ + |_|@@ +167 SECTION SIGN + __ @ + _/ _)@ + / \ \ @ + \ \\ \@ + \ \_/@ + (__/ @ + @ + @@ +168 DIAERESIS + _ _ @ + (_) (_)@ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + @ + @@ +169 COPYRIGHT SIGN + ________ @ + / ____ \ @ + / / ___| \ @ + | | | |@ + | | |___ |@ + \ \____| / @ + \________/ @ + @@ +170 FEMININE ORDINAL INDICATOR + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + |_____|@ + $ @ + @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + ____@ + / / /@ + / / / @ + < < < @ + \ \ \ @ + \_\_\@ + @ + @@ +172 NOT SIGN + @ + @ + ______ @ + |____ |@ + |_|@ + $ @ + @ + @@ +173 SOFT HYPHEN + @ + @ + _____ @ + |_____|@ + $ @ + $ @ + @ + @@ +174 REGISTERED SIGN + ________ @ + / ____ \ @ + / | _ \ \ @ + | | |_) | |@ + | | _ < |@ + \ |_| \_\ / @ + \________/ @ + @@ +175 MACRON + ______ @ + |______|@ + $ @ + $ @ + $ @ + $ @ + @ + @@ +176 DEGREE SIGN + __ @ + / \ @ + | () |@ + \__/ @ + $ @ + $ @ + @ + @@ +177 PLUS-MINUS SIGN + _ @ + _| |_ @ + |_ _|@ + |_| @ + _____ @ + |_____|@ + @ + @@ +178 SUPERSCRIPT TWO + ___ @ + |_ )@ + / / @ + /___|@ + $ @ + $ @ + @ + @@ +179 SUPERSCRIPT THREE + ____@ + |__ /@ + |_ \@ + |___/@ + $ @ + $ @ + @ + @@ +180 ACUTE ACCENT + __@ + /_/@ + $ @ + $ @ + $ @ + $ @ + @ + @@ +181 MICRO SIGN + @ + @ + _ _ @ + | | | |@ + | |_| |@ + | ._,_|@ + | | @ + |_| @@ +182 PILCROW SIGN + ______ @ + / |@ + | (| || |@ + \__ || |@ + | || |@ + |_||_|@ + @ + @@ +183 MIDDLE DOT + @ + @ + _ @ + (_)@ + $ @ + $ @ + @ + @@ +184 CEDILLA + @ + @ + @ + @ + @ + _ @ + )_)@ + @@ +185 SUPERSCRIPT ONE + _ @ + / |@ + | |@ + |_|@ + $ @ + $ @ + @ + @@ +186 MASCULINE ORDINAL INDICATOR + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + |_____|@ + $ @ + @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + ____ @ + \ \ \ @ + \ \ \ @ + > > >@ + / / / @ + /_/_/ @ + @ + @@ +188 VULGAR FRACTION ONE QUARTER + _ __ @ + / | / / @ + | |/ / _ @ + |_/ / | | @ + / /|_ _|@ + /_/ |_| @ + @ + @@ +189 VULGAR FRACTION ONE HALF + _ __ @ + / | / / @ + | |/ /__ @ + |_/ /_ )@ + / / / / @ + /_/ /___|@ + @ + @@ +190 VULGAR FRACTION THREE QUARTERS + ____ __ @ + |__ / / / @ + |_ \/ / _ @ + |___/ / | | @ + / /|_ _|@ + /_/ |_| @ + @ + @@ +191 INVERTED QUESTION MARK + _ @ + (_) @ + | | @ + / / @ + | (__ @ + \___|@ + @ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + __ @ + \_\ @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + __ @ + /_/ @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + //\ @ + |/_\| @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/| @ + |/\/ @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_) @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _ @ + (o) @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @ + @@ +198 LATIN CAPITAL LETTER AE + _______ @ + / ____|@ + / |__ @ + / /| __| @ + / ___ |____ @ + /_/ |______|@ + @ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + _____ @ + / ____|@ + | | $ @ + | | $ @ + | |____ @ + \_____|@ + )_) @ + @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + __ @ + _\_\_ @ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + __ @ + _/_/_ @ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + //\ @ + |/ \| @ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ _ @ + (_) (_)@ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + __ @ + \_\ @ + |_ _|@ + | | @ + | | @ + |___|@ + @ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __ @ + /_/ @ + |_ _|@ + | | @ + | | @ + |___|@ + @ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + |_ _|@ + | | @ + | | @ + |___|@ + @ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + |_ _| @ + | | @ + | | @ + |___| @ + @ + @@ +208 LATIN CAPITAL LETTER ETH + _____ @ + | __ \ @ + _| |_ | |@ + |__ __|| |@ + | |__| |@ + |_____/ @ + @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\/| @ + |/\/_ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + __ @ + \_\ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + __ @ + /_/ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/| @ + |/\/ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +215 MULTIPLICATION SIGN + @ + @ + /\/\@ + > <@ + \/\/@ + $ @ + @ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + _____ @ + / __// @ + | | // |@ + | |//| |@ + | //_| |@ + //___/ @ + @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + __ @ + _\_\_ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + __ @ + __/_/__@ + \ \ / /@ + \ V / @ + | | @ + |_| @ + @ + @@ +222 LATIN CAPITAL LETTER THORN + _ @ + | |___ @ + | __ \ @ + | |__) |@ + | ___/ @ + |_| @ + @ + @@ +223 LATIN SMALL LETTER SHARP S + ___ @ + / _ \ @ + | | ) |@ + | |< < @ + | | ) |@ + | ||_/ @ + |_| @ + @@ +224 LATIN SMALL LETTER A WITH GRAVE + __ @ + \_\ @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + __ @ + /_/ @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + //\ @ + |/ \| @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/| @ + |/\/ @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_) (_)@ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + __ @ + (()) @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @ + @@ +230 LATIN SMALL LETTER AE + @ + @ + __ ____ @ + / _` _ \@ + | (_| __/@ + \__,____|@ + @ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + @ + ___ @ + / __|@ + | (__ @ + \___|@ + )_) @ + @@ +232 LATIN SMALL LETTER E WITH GRAVE + __ @ + \_\ @ + ___ @ + / _ \@ + | __/@ + \___|@ + @ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + __ @ + /_/ @ + ___ @ + / _ \@ + | __/@ + \___|@ + @ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + //\ @ + |/ \|@ + ___ @ + / _ \@ + | __/@ + \___|@ + @ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ _ @ + (_) (_)@ + ___ @ + / _ \ @ + | __/ @ + \___| @ + @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + __ @ + \_\@ + _ @ + | |@ + | |@ + |_|@ + @ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + __@ + /_/@ + _ @ + | |@ + | |@ + |_|@ + @ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + //\ @ + |/ \|@ + _ @ + | | @ + | | @ + |_| @ + @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ _ @ + (_) (_)@ + _ @ + | | @ + | | @ + |_| @ + @ + @@ +240 LATIN SMALL LETTER ETH + /\/\ @ + > < @ + \/\ \ @ + / _` |@ + | (_) |@ + \___/ @ + @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/| @ + |/\/ @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + __ @ + \_\ @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + __ @ + /_/ @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + //\ @ + |/ \| @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/| @ + |/\/ @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_) (_)@ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @ + @@ +247 DIVISION SIGN + _ @ + (_) @ + _______ @ + |_______|@ + _ @ + (_) @ + @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + @ + ____ @ + / _//\ @ + | (//) |@ + \//__/ @ + @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + __ @ + \_\ @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + __ @ + /_/ @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + __ @ + /_/ @ + _ _ @ + | | | |@ + | |_| |@ + \__, |@ + __/ |@ + |___/ @@ +254 LATIN SMALL LETTER THORN + _ @ + | | @ + | |__ @ + | '_ \ @ + | |_) |@ + | .__/ @ + | | @ + |_| @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ _ @ + (_) (_)@ + _ _ @ + | | | |@ + | |_| |@ + \__, |@ + __/ |@ + |___/ @@ +0x02BC MODIFIER LETTER APOSTROPHE + @ + @ + ))@ + @ + @ + @ + @ + @@ +0x02BD MODIFIER LETTER REVERSED COMMA + @ + @ + ((@ + @ + @ + @ + @ + @@ +0x037A GREEK YPOGEGRAMMENI + @ + @ + @ + @ + @ + @ + @ + ||@@ +0x0387 GREEK ANO TELEIA + @ + $ @ + _ @ + (_)@ + @ + $ @ + @ + @@ +0x0391 GREEK CAPITAL LETTER ALPHA + ___ @ + / _ \ @ + | |_| |@ + | _ |@ + | | | |@ + |_| |_|@ + @ + @@ +0x0392 GREEK CAPITAL LETTER BETA + ____ @ + | _ \ @ + | |_) )@ + | _ ( @ + | |_) )@ + |____/ @ + @ + @@ +0x0393 GREEK CAPITAL LETTER GAMMA + _____ @ + | ___)@ + | |$ @ + | |$ @ + | | @ + |_| @ + @ + @@ +0x0394 GREEK CAPITAL LETTER DELTA + @ + /\ @ + / \ @ + / /\ \ @ + / /__\ \ @ + /________\@ + @ + @@ +0x0395 GREEK CAPITAL LETTER EPSILON + _____ @ + | ___)@ + | |_ @ + | _) @ + | |___ @ + |_____)@ + @ + @@ +0x0396 GREEK CAPITAL LETTER ZETA + ______@ + (___ /@ + / / @ + / / @ + / /__ @ + /_____)@ + @ + @@ +0x0397 GREEK CAPITAL LETTER ETA + _ _ @ + | | | |@ + | |_| |@ + | _ |@ + | | | |@ + |_| |_|@ + @ + @@ +0x0398 GREEK CAPITAL LETTER THETA + ____ @ + / __ \ @ + | |__| |@ + | __ |@ + | |__| |@ + \____/ @ + @ + @@ +0x0399 GREEK CAPITAL LETTER IOTA + ___ @ + ( )@ + | | @ + | | @ + | | @ + (___)@ + @ + @@ +0x039A GREEK CAPITAL LETTER KAPPA + _ __@ + | | / /@ + | |/ / @ + | < @ + | |\ \ @ + |_| \_\@ + @ + @@ +0x039B GREEK CAPITAL LETTER LAMDA + @ + /\ @ + / \ @ + / /\ \ @ + / / \ \ @ + /_/ \_\@ + @ + @@ +0x039C GREEK CAPITAL LETTER MU + __ __ @ + | \ / |@ + | v |@ + | |\_/| |@ + | | | |@ + |_| |_|@ + @ + @@ +0x039D GREEK CAPITAL LETTER NU + _ _ @ + | \ | |@ + | \| |@ + | |@ + | |\ |@ + |_| \_|@ + @ + @@ +0x039E GREEK CAPITAL LETTER XI + _____ @ + (_____)@ + ___ @ + (___) @ + _____ @ + (_____)@ + @ + @@ +0x039F GREEK CAPITAL LETTER OMICRON + ___ @ + / _ \ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +0x03A0 GREEK CAPITAL LETTER PI + _______ @ + ( _ )@ + | | | | @ + | | | | @ + | | | | @ + |_| |_| @ + @ + @@ +0x03A1 GREEK CAPITAL LETTER RHO + ____ @ + | _ \ @ + | |_) )@ + | __/ @ + | | @ + |_| @ + @ + @@ +0x03A3 GREEK CAPITAL LETTER SIGMA + ______ @ + \ ___)@ + \ \ @ + > > @ + / /__ @ + /_____)@ + @ + @@ +0x03A4 GREEK CAPITAL LETTER TAU + _____ @ + (_ _)@ + | | @ + | | @ + | | @ + |_| @ + @ + @@ +0x03A5 GREEK CAPITAL LETTER UPSILON + __ __ @ + (_ \ / _)@ + \ v / @ + | | @ + | | @ + |_| @ + @ + @@ +0x03A6 GREEK CAPITAL LETTER PHI + _ @ + _| |_ @ + / \ @ + ( (| |) )@ + \_ _/ @ + |_| @ + @ + @@ +0x03A7 GREEK CAPITAL LETTER CHI + __ __@ + \ \ / /@ + \ v / @ + > < @ + / ^ \ @ + /_/ \_\@ + @ + @@ +0x03A8 GREEK CAPITAL LETTER PSI + _ _ _ @ + | || || |@ + | \| |/ |@ + \_ _/ @ + | | @ + |_| @ + @ + @@ +0x03A9 GREEK CAPITAL LETTER OMEGA + ____ @ + / __ \ @ + | | | | @ + | | | | @ + _\ \/ /_ @ + (___||___)@ + @ + @@ +0x03B1 GREEK SMALL LETTER ALPHA + @ + @ + __ __@ + / \/ /@ + ( () < @ + \__/\_\@ + @ + @@ +0x03B2 GREEK SMALL LETTER BETA + ___ @ + / _ \ @ + | |_) )@ + | _ < @ + | |_) )@ + | __/ @ + | | @ + |_| @@ +0x03B3 GREEK SMALL LETTER GAMMA + @ + @ + _ _ @ + ( \ / )@ + \ v / @ + | | @ + | | @ + |_| @@ +0x03B4 GREEK SMALL LETTER DELTA + __ @ + / _) @ + \ \ @ + / _ \ @ + ( (_) )@ + \___/ @ + @ + @@ +0x03B5 GREEK SMALL LETTER EPSILON + @ + @ + ___ @ + / __)@ + > _) @ + \___)@ + @ + @@ +0x03B6 GREEK SMALL LETTER ZETA + _____ @ + \__ ) @ + / / @ + / / @ + | |__ @ + \__ \ @ + ) )@ + (_/ @@ +0x03B7 GREEK SMALL LETTER ETA + @ + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| | |@ + | |@ + |_|@@ +0x03B8 GREEK SMALL LETTER THETA + ___ @ + / _ \ @ + | |_| |@ + | _ |@ + | |_| |@ + \___/ @ + @ + @@ +0x03B9 GREEK SMALL LETTER IOTA + @ + @ + _ @ + | | @ + | | @ + \_)@ + @ + @@ +0x03BA GREEK SMALL LETTER KAPPA + @ + @ + _ __@ + | |/ /@ + | < @ + |_|\_\@ + @ + @@ +0x03BB GREEK SMALL LETTER LAMDA + __ @ + \ \ @ + \ \ @ + > \ @ + / ^ \ @ + /_/ \_\@ + @ + @@ +0x03BC GREEK SMALL LETTER MU + @ + @ + _ _ @ + | | | |@ + | |_| |@ + | ._,_|@ + | | @ + |_| @@ +0x03BD GREEK SMALL LETTER NU + @ + @ + _ __@ + | |/ /@ + | / / @ + |__/ @ + @ + @@ +0x03BE GREEK SMALL LETTER XI + \=\__ @ + > __) @ + ( (_ @ + > _) @ + ( (__ @ + \__ \ @ + ) )@ + (_/ @@ +0x03BF GREEK SMALL LETTER OMICRON + @ + @ + ___ @ + / _ \ @ + ( (_) )@ + \___/ @ + @ + @@ +0x03C0 GREEK SMALL LETTER PI + @ + @ + ______ @ + ( __ )@ + | || | @ + |_||_| @ + @ + @@ +0x03C1 GREEK SMALL LETTER RHO + @ + @ + ___ @ + / _ \ @ + | |_) )@ + | __/ @ + | | @ + |_| @@ +0x03C2 GREEK SMALL LETTER FINAL SIGMA + @ + @ + ____ @ + / ___)@ + ( (__ @ + \__ \ @ + _) )@ + (__/ @@ +0x03C3 GREEK SMALL LETTER SIGMA + @ + @ + ____ @ + / ._)@ + ( () ) @ + \__/ @ + @ + @@ +0x03C4 GREEK SMALL LETTER TAU + @ + @ + ___ @ + ( )@ + | | @ + \_)@ + @ + @@ +0x03C5 GREEK SMALL LETTER UPSILON + @ + @ + _ _ @ + | | | |@ + | |_| |@ + \___/ @ + @ + @@ +0x03C6 GREEK SMALL LETTER PHI + _ @ + | | @ + _| |_ @ + / \ @ + ( (| |) )@ + \_ _/ @ + | | @ + |_| @@ +0x03C7 GREEK SMALL LETTER CHI + @ + @ + __ __@ + \ \ / /@ + \ v / @ + > < @ + / ^ \ @ + /_/ \_\@@ +0x03C8 GREEK SMALL LETTER PSI + @ + @ + _ _ _ @ + | || || |@ + | \| |/ |@ + \_ _/ @ + | | @ + |_| @@ +0x03C9 GREEK SMALL LETTER OMEGA + @ + @ + __ __ @ + / / _ \ \ @ + | |_/ \_| |@ + \___^___/ @ + @ + @@ +0x03D1 GREEK THETA SYMBOL + ___ @ + / _ \ @ + ( (_| |_ @ + _ \ _ _)@ + | |___| | @ + \_____/ @ + @ + @@ +0x03D5 GREEK PHI SYMBOL + @ + @ + _ __ @ + | | / \ @ + | || || )@ + \_ _/ @ + | | @ + |_| @@ +0x03D6 GREEK PI SYMBOL + @ + @ + _________ @ + ( _____ )@ + | |_/ \_| |@ + \___^___/ @ + @ + @@ +-0x0005 +alpha = a, beta = b, gamma = g, delta = d, epsilon = e @ +zeta = z, eta = h, theta = q, iota = i, lamda = l, mu = m@ +nu = n, xi = x, omicron = o, pi = p, rho = r, sigma = s @ +phi = f, chi = c, psi = y, omega = w, final sigma = V @ + pi symbol = v, theta symbol = J, phi symbol = j @ + middle dot = :, ypogegrammeni = _ @ + rough breathing = (, smooth breathing = ) @ + acute accent = ', grave accent = `, dialytika = ^ @@ diff --git a/externals/figlet/fonts/block.flf b/externals/figlet/fonts/block.flf new file mode 100644 index 0000000000..b1172f049e --- /dev/null +++ b/externals/figlet/fonts/block.flf @@ -0,0 +1,1691 @@ +flf2a$ 8 6 27 0 10 0 576 96 +Block by Glenn Chappell 4/93 -- straight version of Lean +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@@ + $$@ + _| $@ + _| $@ + _| $@ + $$@ + _| $@ + $$@ + @@ + _| _| $@ + _| _| $@ + $$@ + $$ @ + $$ @ + $$ @ + @ + @@ + $$ @ + _| _| $@ + _|_|_|_|_| $@ + _| _| $@ + _|_|_|_|_| $@ + _| _| $@ + $$ @ + @@ + $$ @ + _| $@ + _|_|_| $@ + _|_| $@ + _|_| $@ + _|_|_| $@ + _| $@ + $$ @@ + $$@ + _|_| _| $@ + _|_| _| $@ + _| $@ + _| _|_| $@ + _| _|_| $@ + $$@ + @@ + $$ @ + _| $ @ + _| _| $@ + _|_| _| $@ + _| _| $@ + _|_| _| $@ + $$@ + @@ + _| $@ + _| $@ + $$ @ + $$ @ + $$ @ + $$ @ + @ + @@ + _| $@ + _| $@ + _| $ @ + _| $ @ + _| $ @ + _| $@ + _| $@ + $$@@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + $$ @@ + $$@ + _| _| _| $@ + _|_|_| $@ + _|_|_|_|_| $@ + _|_|_| $@ + _| _| _| $@ + $$@ + @@ + $$ @ + _| $ @ + _| $@ + _|_|_|_|_| $@ + _| $@ + _| $ @ + $$ @ + @@ + @ + @ + @ + @ + $$@ + _| $@ + _| $@ + $$ @@ + @ + @ + $$@ + _|_|_|_|_| $@ + $$@ + @ + @ + @@ + @ + @ + @ + @ + $$@ + _| $@ + $$@ + @@ + $$@ + _| $@ + _| $@ + _| $ @ + _| $ @ + _| $ @ + $$ @ + @@ + $$ @ + _| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _| $@ + $$ @ + @@ + $$@ + _| $@ + _|_| $@ + _| $@ + _| $@ + _| $@ + $$@ + @@ + $$ @ + _|_| $@ + _| _| $@ + _| $@ + _| $@ + _|_|_|_| $@ + $$@ + @@ + $$ @ + _|_|_| $@ + _| $@ + _|_| $@ + _| $@ + _|_|_| $@ + $$ @ + @@ + $$ @ + _| _| $ @ + _| _| $@ + _|_|_|_| $@ + _| $@ + _| $ @ + $$ @ + @@ + $$@ + _|_|_|_| $@ + _| $@ + _|_|_| $@ + _| $@ + _|_|_| $@ + $$ @ + @@ + $$@ + _|_|_| $@ + _| $@ + _|_|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + $$@ + _|_|_|_|_| $@ + _| $@ + _| $@ + _| $ @ + _| $ @ + $$ @ + @@ + $$ @ + _|_| $@ + _| _| $@ + _|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + $$ @ + _|_| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _|_|_| $@ + $$ @ + @@ + @ + $$@ + _| $@ + $$@ + $$@ + _| $@ + $$@ + @@ + @ + $$@ + _| $@ + $$@ + $$@ + _| $@ + _| $@ + $$ @@ + $$@ + _| $@ + _| $@ + _| $ @ + _| $@ + _| $@ + $$@ + @@ + @ + $$@ + _|_|_|_|_| $@ + $$@ + _|_|_|_|_| $@ + $$@ + @ + @@ + $$ @ + _| $ @ + _| $@ + _| $@ + _| $@ + _| $ @ + $$ @ + @@ + $$ @ + _|_| $@ + _| $@ + _|_| $@ + $$ @ + _| $ @ + $$ @ + @@ + $$ @ + _|_|_|_|_| $@ + _| _| $@ + _| _|_|_| _| $@ + _| _| _| _| $@ + _| _|_|_|_| $@ + _| $@ + _|_|_|_|_|_| $@@ + $$ @ + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + $$ @ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$ @ + @@ + $$@ + _|_|_| $@ + _| $@ + _| $ @ + _| $@ + _|_|_| $@ + $$@ + @@ + $$ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$ @ + @@ + $$@ + _|_|_|_| $@ + _| $@ + _|_|_| $ @ + _| $@ + _|_|_|_| $@ + $$@ + @@ + $$@ + _|_|_|_| $@ + _| $@ + _|_|_| $ @ + _| $ @ + _| $ @ + $$ @ + @@ + $$@ + _|_|_| $@ + _| $@ + _| _|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ + $$@ + _| _| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + $$@ + _|_|_| $@ + _| $@ + _| $ @ + _| $@ + _|_|_| $@ + $$@ + @@ + $$@ + _| $@ + _| $@ + _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + $$@ + _| _| $@ + _| _| $@ + _|_| $ @ + _| _| $@ + _| _| $@ + $$@ + @@ + $$ @ + _| $ @ + _| $ @ + _| $ @ + _| $@ + _|_|_|_| $@ + $$@ + @@ + $$@ + _| _| $@ + _|_| _|_| $@ + _| _| _| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + $$@ + _| _| $@ + _|_| _| $@ + _| _| _| $@ + _| _|_| $@ + _| _| $@ + $$@ + @@ + $$ @ + _|_| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + $$ @ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + _| $ @ + _| $ @ + $$ @ + @@ + $$ @ + _|_| $ @ + _| _| $ @ + _| _|_| $ @ + _| _| $@ + _|_| _| $@ + $$@ + @@ + $$ @ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + $$@ + _|_|_| $@ + _| $@ + _|_| $@ + _| $@ + _|_|_| $@ + $$ @ + @@ + $$@ + _|_|_|_|_| $@ + _| $@ + _| $ @ + _| $ @ + _| $ @ + $$ @ + @@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _| $ @ + $$ @ + @@ + $$@ + _| _| $@ + _| _| $@ + _| _| _| $@ + _| _| _| $@ + _| _| $ @ + $$ @ + @@ + $$@ + _| _| $@ + _| _| $@ + _| $ @ + _| _| $@ + _| _| $@ + $$@ + @@ + $$@ + _| _| $@ + _| _| $@ + _| $ @ + _| $ @ + _| $ @ + $$ @ + @@ + $$@ + _|_|_|_|_| $@ + _| $@ + _| $ @ + _| $@ + _|_|_|_|_| $@ + $$@ + @@ + _|_| $@ + _| $@ + _| $ @ + _| $ @ + _| $ @ + _| $@ + _|_| $@ + $$@@ + $$ @ + _| $ @ + _| $ @ + _| $ @ + _| $@ + _| $@ + $$@ + @@ + _|_| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _|_| $@ + $$@@ + _| $@ + _| _| $@ + $$@ + $$ @ + $$ @ + $$ @ + @ + @@ + @ + @ + $$ @ + $$ @ + $$ @ + $$ @ + $$@ + _|_|_|_|_| $@@ + _| $@ + _| $@ + $$@ + $$ @ + $$ @ + $$ @ + @ + @@ + @ + $$@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ + $$ @ + _| $ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$ @ + @@ + @ + $$@ + _|_|_| $@ + _| $@ + _| $@ + _|_|_| $@ + $$@ + @@ + $$@ + _| $@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ + @ + $$ @ + _|_| $@ + _|_|_|_| $@ + _| $@ + _|_|_| $@ + $$@ + @@ + $$@ + _|_| $@ + _| $@ + _|_|_|_| $@ + _| $@ + _| $ @ + $$ @ + @@ + @ + $$@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _|_| $@@ + $$ @ + _| $ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + $$@ + _| $@ + $$@ + _| $@ + _| $@ + _| $@ + $$@ + @@ + $$@ + _| $@ + $$@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@@ + $$ @ + _| $ @ + _| _| $ @ + _|_| $ @ + _| _| $@ + _| _| $@ + $$@ + @@ + $$@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + $$@ + @@ + @ + $$ @ + _|_|_| _|_| $@ + _| _| _| $@ + _| _| _| $@ + _| _| _| $@ + $$@ + @@ + @ + $$ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + @ + $$ @ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + @ + $$ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $ @ + _| $ @@ + @ + $$@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _| $@@ + @ + $$@ + _| _|_| $@ + _|_| $@ + _| $ @ + _| $ @ + $$ @ + @@ + @ + $$@ + _|_|_| $@ + _|_| $@ + _|_| $@ + _|_|_| $@ + $$ @ + @@ + $$ @ + _| $@ + _|_|_|_| @ + _| $@ + _| $@ + _|_| $@ + $$@ + @@ + @ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ + @ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _| $ @ + $$ @ + @@ + @ + $$@ + _| _| _| $@ + _| _| _| $@ + _| _| _| _| $@ + _| _| $ @ + $$ @ + @@ + @ + $$@ + _| _| $@ + _|_| $@ + _| _| $@ + _| _| $@ + $$@ + @@ + @ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _|_| $@@ + @ + $$@ + _|_|_|_| $@ + _| $@ + _| $@ + _|_|_|_| $@ + $$@ + @@ + _| $@ + _| $@ + _| $@ + _| $ @ + _| $@ + _| $@ + _| $@ + $$@@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@@ + _| $ @ + _| $@ + _| $@ + _| $@ + _| $@ + _| $@ + _| $ @ + $$ @@ + _| _| $@ + _| _| $@ + $$ @ + $$ @ + $$ @ + $$ @ + @ + @@ + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + _| _| $@ + $$@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ + $$ @ + _|_| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _| $ @ + $$ @@ +160 NO-BREAK SPACE + $ $@ + $ $@ + $ $@ + $ $@ + $ $@ + $ $@ + $ $@ + $ $@@ +161 INVERTED EXCLAMATION MARK + $$@ + _| $@ + $$@ + _| $@ + _| $@ + _| $@ + $$@ + @@ +162 CENT SIGN + $$ @ + _| $@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + $$ @@ +163 POUND SIGN + $$ @ + _|_| $ @ + _| _| $ @ + _|_|_| $ @ + _| $@ + _|_|_| _| $@ + _|_| _|_| $@ + @@ +164 CURRENCY SIGN + $$@ + _| _| $@ + _|_|_|_| $@ + _| _| $ @ + _| _| $ @ + _|_|_|_| $@ + _| _| $@ + $$@@ +165 YEN SIGN + $$@ + _| _| $@ + _| _| $@ + _|_|_|_|_| $@ + _| $@ + _|_|_|_|_| $@ + _| $@ + $$ @@ +166 BROKEN BAR + _| $@ + _| $@ + _| $@ + $$@ + $$@ + _| $@ + _| $@ + _| $@@ +167 SECTION SIGN + _|_| $@ + _| $@ + _| $@ + _| _| $@ + _| $@ + _| $@ + _|_| $@ + $$ @@ +168 DIAERESIS + _| _| $@ + $$@ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + @ + @@ +169 COPYRIGHT SIGN + _|_|_|_| $ @ + _| _| $@ + _| _|_|_| _| $@ + _| _| _| $@ + _| _| _| $@ + _| _|_|_| _| $@ + _| _| $@ + _|_|_|_| $ @@ +170 FEMININE ORDINAL INDICATOR + $$@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + _|_|_|_| $@ + @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + $$@ + _| _| $@ + _| _| $@ + _| _| $ @ + _| _| $@ + _| _| $@ + $$@ + @@ +172 NOT SIGN + @ + @ + $$@ + _|_|_|_|_| $@ + _| $@ + $$@ + @ + @@ +173 SOFT HYPHEN + @ + @ + $$@ + _|_|_|_| $@ + $$@ + $$ @ + @ + @@ +174 REGISTERED SIGN + _|_|_|_| $ @ + _| _| $@ + _| _|_|_| _| $@ + _| _| _| _| $@ + _| _|_|_| _| $@ + _| _| _| _| $@ + _| _| $@ + _|_|_|_| $ @@ +175 MACRON + _|_|_|_|_| $@ + $$@ + $$ @ + $$ @ + $$ @ + $$ @ + @ + @@ +176 DEGREE SIGN + _| $@ + _| _| $@ + _| $@ + $$ @ + $$ @ + $$ @ + @ + @@ +177 PLUS-MINUS SIGN + $$ @ + _| $ @ + _| $@ + _|_|_|_|_| $@ + _| $@ + _|_|_|_|_| $@ + $$@ + @@ +178 SUPERSCRIPT TWO + $$ @ + _|_| $@ + _| $@ + _| $@ + _|_|_| $@ + $$@ + @ + @@ +179 SUPERSCRIPT THREE + $$@ + _|_|_| $@ + _| $@ + _| $@ + _|_| $@ + $$ @ + @ + @@ +180 ACUTE ACCENT + _| $@ + _| $@ + $$ @ + $$ @ + $$ @ + $$ @ + @ + @@ +181 MICRO SIGN + @ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_|_| $@ + _| $@ + _| $ @@ +182 PILCROW SIGN + $$@ + _|_|_|_| $@ + _|_|_| _| $@ + _|_| _| $@ + _| _| $@ + _| _| $@ + $$@ + @@ +183 MIDDLE DOT + @ + @ + $$@ + _| $@ + $$@ + $$ @ + @ + @@ +184 CEDILLA + @ + @ + @ + @ + @ + $$@ + _| $@ + _|_| $@@ +185 SUPERSCRIPT ONE + $$@ + _| $@ + _|_| $@ + _| $@ + _| $@ + $$@ + @ + @@ +186 MASCULINE ORDINAL INDICATOR + $$ @ + _|_| $@ + _| _| $@ + _|_| $@ + $$@ + _|_|_|_| $@ + @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + $$ @ + _| _| $ @ + _| _| $@ + _| _| $@ + _| _| $@ + _| _| $ @ + $$ @ + @@ +188 VULGAR FRACTION ONE QUARTER + $$ @ + _| _| $ @ + _|_| _| _| _| $ @ + _| _| _| _| $@ + _| _| _|_|_|_| $@ + _| _| $@ + $$ @ + @@ +189 VULGAR FRACTION ONE HALF + $$ @ + _| _| $ @ + _|_| _| _|_| $@ + _| _| _| $@ + _| _| _| $@ + _| _|_|_| $@ + $$@ + @@ +190 VULGAR FRACTION THREE QUARTERS + $$ @ + _|_|_| _| $ @ + _| _| _| _| $ @ + _| _| _| _| $@ + _|_| _| _|_|_|_| $@ + _| _| $@ + $$ @ + @@ +191 INVERTED QUESTION MARK + $$@ + _| $@ + $$@ + _|_| $@ + _| $@ + _|_| $@ + $$@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + _| $ @ + _| $ @ + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + _| $ @ + _| $ @ + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + $$@ + _|_| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + _| _| $@ + _| _| $@ + $$ @ + _|_| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _|_| $@ + _| _| $@ + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _| _| $@ + $$@ + @@ +198 LATIN CAPITAL LETTER AE + $$@ + _|_|_|_|_|_| $@ + _| _| $@ + _|_|_|_|_|_| $ @ + _| _| $@ + _| _|_|_|_| $@ + $$@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + $$@ + _|_|_| $@ + _| $@ + _| $ @ + _| $@ + _|_|_| $@ + _| $@ + _|_| $ @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + _| $ @ + _| $@ + _|_|_|_| $@ + _|_|_| $ @ + _| $@ + _|_|_|_| $@ + $$@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + _| $ @ + _| $@ + _|_|_|_| $@ + _|_|_| $ @ + _| $@ + _|_|_|_| $@ + $$@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + _|_|_|_| $@ + _|_|_| $ @ + _| $@ + _|_|_|_| $@ + $$@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _| _| $@ + $$@ + _|_|_|_| $@ + _|_|_| $ @ + _| $@ + _|_|_|_| $@ + $$@ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + _| $ @ + _| $@ + _|_|_| $@ + _| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + _| $@ + _| $@ + _|_|_| $@ + _| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _| _| $@ + $$@ + _|_|_| $@ + _| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +208 LATIN CAPITAL LETTER ETH + $$ @ + _|_|_| $@ + _| _| $@ + _|_|_| _| $@ + _| _| $@ + _|_|_| $@ + $$ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + _| _| $@ + _| _| $@ + _| _| $@ + _|_| _| $@ + _| _|_| $@ + _| _| $@ + $$@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + _| $ @ + _| $ @ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + _| $ @ + _| $ @ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + _| _| $@ + _| _| $@ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +215 MULTIPLICATION SIGN + @ + $$@ + _| _| $@ + _| $@ + _| _| $@ + $$@ + @ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + $$@ + _|_|_|_| $@ + _| _|_| $@ + _| _| _| $@ + _|_| _| $@ + _|_|_|_| $@ + $$ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + _| $ @ + _| $ @ + $$@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + _| $ @ + _| $ @ + $$@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + _| $ @ + _| $@ + _| _| $@ + _| _| $@ + _| $ @ + _| $ @ + $$ @ + @@ +222 LATIN CAPITAL LETTER THORN + $$ @ + _| $ @ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + _| $ @ + $$ @ + @@ +223 LATIN SMALL LETTER SHARP S + $$ @ + _|_| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _| _| $@ + _| $ @ + $$ @@ +224 LATIN SMALL LETTER A WITH GRAVE + _| $ @ + _| $ @ + $$@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + _| $@ + _| $@ + $$@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + _| $@ + _| _| $@ + $$@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + _| _| $@ + _| _| $@ + $$@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _| _| $@ + $$@ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + _| $@ + _| _| $@ + _| $@ + _|_|_| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +230 LATIN SMALL LETTER AE + @ + $$ @ + _|_|_| _|_| $@ + _| _|_|_|_|_| $@ + _| _|_| $@ + _|_|_| _|_|_| $@ + $$@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + $$@ + _|_|_| $@ + _| $@ + _| $@ + _|_|_| $@ + _| $@ + _|_| $ @@ +232 LATIN SMALL LETTER E WITH GRAVE + _| $@ + _| $ @ + _|_| $@ + _|_|_|_| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + _| $@ + _| $@ + _|_| $@ + _|_|_|_| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + _|_| $@ + _|_|_|_| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _| _| $@ + $$@ + _|_| $@ + _|_|_|_| $@ + _| $@ + _|_|_| $@ + $$@ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + _| $@ + _| $@ + $$@ + _| $@ + _| $@ + _| $@ + $$@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + _| $@ + _| $@ + $$ @ + _| $ @ + _| $ @ + _| $ @ + $$ @ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + _| $@ + _| _| $@ + $$@ + _| $ @ + _| $ @ + _| $ @ + $$ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _| _| $@ + $$@ + _| $ @ + _| $ @ + _| $ @ + _| $ @ + $$ @ + @@ +240 LATIN SMALL LETTER ETH + _| _| $ @ + _| $ @ + _| _| $@ + _|_|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + _| _| $@ + _| _| $@ + $$ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + $$@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + _| $ @ + _| $ @ + $$ @ + _|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + _| $ @ + _| $ @ + $$ @ + _|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + _|_|_| $@ + _| _| $@ + $$ @ + _|_| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _| _| $@ + $$@ + _|_| $@ + _| _| $@ + _| _| $@ + _|_| $@ + $$ @ + @@ +247 DIVISION SIGN + $$ @ + _| $ @ + $$@ + _|_|_|_|_| $@ + $$@ + _| $ @ + $$ @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + $$@ + _|_|_| $@ + _| _|_| $@ + _|_| _| $@ + _|_|_| $@ + $$ @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + _| $ @ + _| $ @ + $$@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + _| $@ + _| $@ + $$@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + _|_| $@ + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + $$@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + _| $ @ + _| $ @ + $$@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _|_| $@@ +254 LATIN SMALL LETTER THORN + $$ @ + _| $ @ + _|_|_| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $ @ + _| $ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _| _| $@ + $$@ + _| _| $@ + _| _| $@ + _| _| $@ + _|_|_| $@ + _| $@ + _|_| $@@ diff --git a/externals/figlet/fonts/bubble.flf b/externals/figlet/fonts/bubble.flf new file mode 100644 index 0000000000..efd0a71964 --- /dev/null +++ b/externals/figlet/fonts/bubble.flf @@ -0,0 +1,1630 @@ +flf2a 4 3 8 15 11 0 10127 242 +Bubble by Glenn Chappell 4/93 +Includes characters 128-255 +Enhanced for Latin-2,3,4 by John Cowan +Latin character sets supported only if your screen font does +figlet release 2.2 -- November 1996 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + @ + @ + @ + @@ + _ @ + / \ @ + ( ! )@ + \_/ @@ + _ @ + / \ @ + ( " )@ + \_/ @@ + _ @ + / \ @ + ( # )@ + \_/ @@ + _ @ + / \ @ + ( $ )@ + \_/ @@ + _ @ + / \ @ + ( % )@ + \_/ @@ + _ @ + / \ @ + ( & )@ + \_/ @@ + _ @ + / \ @ + ( ' )@ + \_/ @@ + _ @ + / \ @ + ( ( )@ + \_/ @@ + _ @ + / \ @ + ( ) )@ + \_/ @@ + _ @ + / \ @ + ( * )@ + \_/ @@ + _ @ + / \ @ + ( + )@ + \_/ @@ + _ @ + / \ @ + ( , )@ + \_/ @@ + _ @ + / \ @ + ( - )@ + \_/ @@ + _ @ + / \ @ + ( . )@ + \_/ @@ + _ @ + / \ @ + ( / )@ + \_/ @@ + _ @ + / \ @ + ( 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 )@ + \_/ @@ + _ @ + / \ @ + ( { )@ + \_/ @@ + _ @ + / \ @ + ( | )@ + \_/ @@ + _ @ + / \ @ + ( } )@ + \_/ @@ + _ @ + / \ @ + ( ~ )@ + \_/ @@ + _ @ + / \ @ + ( Ä )@ + \_/ @@ + _ @ + / \ @ + ( Ö )@ + \_/ @@ + _ @ + / \ @ + ( Ü )@ + \_/ @@ + _ @ + / \ @ + ( ä )@ + \_/ @@ + _ @ + / \ @ + ( ö )@ + \_/ @@ + _ @ + / \ @ + ( ü )@ + \_/ @@ + _ @ + / \ @ + ( ß )@ + \_/ @@ +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 NO-BREAK SPACE + _ @ + / \ @ + (   )@ + \_/ @@ +161 INVERTED EXCLAMATION MARK + _ @ + / \ @ + ( ¡ )@ + \_/ @@ +162 CENT SIGN + _ @ + / \ @ + ( ¢ )@ + \_/ @@ +163 POUND SIGN + _ @ + / \ @ + ( £ )@ + \_/ @@ +164 CURRENCY SIGN + _ @ + / \ @ + ( ¤ )@ + \_/ @@ +165 YEN SIGN + _ @ + / \ @ + ( ¥ )@ + \_/ @@ +166 BROKEN BAR + _ @ + / \ @ + ( ¦ )@ + \_/ @@ +167 SECTION SIGN + _ @ + / \ @ + ( § )@ + \_/ @@ +168 DIAERESIS + _ @ + / \ @ + ( ¨ )@ + \_/ @@ +169 COPYRIGHT SIGN + _ @ + / \ @ + ( © )@ + \_/ @@ +170 FEMININE ORDINAL INDICATOR + _ @ + / \ @ + ( ª )@ + \_/ @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + _ @ + / \ @ + ( « )@ + \_/ @@ +172 NOT SIGN + _ @ + / \ @ + ( ¬ )@ + \_/ @@ +173 SOFT HYPHEN + _ @ + / \ @ + ( ­ )@ + \_/ @@ +174 REGISTERED SIGN + _ @ + / \ @ + ( ® )@ + \_/ @@ +175 MACRON + _ @ + / \ @ + ( ¯ )@ + \_/ @@ +176 DEGREE SIGN + _ @ + / \ @ + ( ° )@ + \_/ @@ +177 PLUS-MINUS SIGN + _ @ + / \ @ + ( ± )@ + \_/ @@ +178 SUPERSCRIPT TWO + _ @ + / \ @ + ( ² )@ + \_/ @@ +179 SUPERSCRIPT THREE + _ @ + / \ @ + ( ³ )@ + \_/ @@ +180 ACUTE ACCENT + _ @ + / \ @ + ( ´ )@ + \_/ @@ +181 MICRO SIGN + _ @ + / \ @ + ( µ )@ + \_/ @@ +182 PILCROW SIGN + _ @ + / \ @ + ( ¶ )@ + \_/ @@ +183 MIDDLE DOT + _ @ + / \ @ + ( · )@ + \_/ @@ +184 CEDILLA + _ @ + / \ @ + ( ¸ )@ + \_/ @@ +185 SUPERSCRIPT ONE + _ @ + / \ @ + ( ¹ )@ + \_/ @@ +186 MASCULINE ORDINAL INDICATOR + _ @ + / \ @ + ( º )@ + \_/ @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + _ @ + / \ @ + ( » )@ + \_/ @@ +188 VULGAR FRACTION ONE QUARTER + _ @ + / \ @ + ( ¼ )@ + \_/ @@ +189 VULGAR FRACTION ONE HALF + _ @ + / \ @ + ( ½ )@ + \_/ @@ +190 VULGAR FRACTION THREE QUARTERS + _ @ + / \ @ + ( ¾ )@ + \_/ @@ +191 INVERTED QUESTION MARK + _ @ + / \ @ + ( ¿ )@ + \_/ @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + _ @ + / \ @ + ( À )@ + \_/ @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + _ @ + / \ @ + ( Á )@ + \_/ @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + _ @ + / \ @ + (  )@ + \_/ @@ +195 LATIN CAPITAL LETTER A WITH TILDE + _ @ + / \ @ + ( à )@ + \_/ @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ @ + / \ @ + ( Ä )@ + \_/ @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _ @ + / \ @ + ( Å )@ + \_/ @@ +198 LATIN CAPITAL LETTER AE + _ @ + / \ @ + ( Æ )@ + \_/ @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + _ @ + / \ @ + ( Ç )@ + \_/ @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + _ @ + / \ @ + ( È )@ + \_/ @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + _ @ + / \ @ + ( É )@ + \_/ @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + _ @ + / \ @ + ( Ê )@ + \_/ @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ @ + / \ @ + ( Ë )@ + \_/ @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + _ @ + / \ @ + ( Ì )@ + \_/ @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + _ @ + / \ @ + ( Í )@ + \_/ @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + _ @ + / \ @ + ( Î )@ + \_/ @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ @ + / \ @ + ( Ï )@ + \_/ @@ +208 LATIN CAPITAL LETTER ETH + _ @ + / \ @ + ( Ð )@ + \_/ @@ +209 LATIN CAPITAL LETTER N WITH TILDE + _ @ + / \ @ + ( Ñ )@ + \_/ @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + _ @ + / \ @ + ( Ò )@ + \_/ @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + _ @ + / \ @ + ( Ó )@ + \_/ @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + _ @ + / \ @ + ( Ô )@ + \_/ @@ +213 LATIN CAPITAL LETTER O WITH TILDE + _ @ + / \ @ + ( Õ )@ + \_/ @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ @ + / \ @ + ( Ö )@ + \_/ @@ +215 MULTIPLICATION SIGN + _ @ + / \ @ + ( × )@ + \_/ @@ +216 LATIN CAPITAL LETTER O WITH STROKE + _ @ + / \ @ + ( Ø )@ + \_/ @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + _ @ + / \ @ + ( Ù )@ + \_/ @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + _ @ + / \ @ + ( Ú )@ + \_/ @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + _ @ + / \ @ + ( Û )@ + \_/ @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ @ + / \ @ + ( Ü )@ + \_/ @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + _ @ + / \ @ + ( Ý )@ + \_/ @@ +222 LATIN CAPITAL LETTER THORN + _ @ + / \ @ + ( Þ )@ + \_/ @@ +223 LATIN SMALL LETTER SHARP S + _ @ + / \ @ + ( ß )@ + \_/ @@ +224 LATIN SMALL LETTER A WITH GRAVE + _ @ + / \ @ + ( à )@ + \_/ @@ +225 LATIN SMALL LETTER A WITH ACUTE + _ @ + / \ @ + ( á )@ + \_/ @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + _ @ + / \ @ + ( â )@ + \_/ @@ +227 LATIN SMALL LETTER A WITH TILDE + _ @ + / \ @ + ( ã )@ + \_/ @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ @ + / \ @ + ( ä )@ + \_/ @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + _ @ + / \ @ + ( å )@ + \_/ @@ +230 LATIN SMALL LETTER AE + _ @ + / \ @ + ( æ )@ + \_/ @@ +231 LATIN SMALL LETTER C WITH CEDILLA + _ @ + / \ @ + ( ç )@ + \_/ @@ +232 LATIN SMALL LETTER E WITH GRAVE + _ @ + / \ @ + ( è )@ + \_/ @@ +233 LATIN SMALL LETTER E WITH ACUTE + _ @ + / \ @ + ( é )@ + \_/ @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + _ @ + / \ @ + ( ê )@ + \_/ @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ @ + / \ @ + ( ë )@ + \_/ @@ +236 LATIN SMALL LETTER I WITH GRAVE + _ @ + / \ @ + ( ì )@ + \_/ @@ +237 LATIN SMALL LETTER I WITH ACUTE + _ @ + / \ @ + ( í )@ + \_/ @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + _ @ + / \ @ + ( î )@ + \_/ @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ @ + / \ @ + ( ï )@ + \_/ @@ +240 LATIN SMALL LETTER ETH + _ @ + / \ @ + ( ð )@ + \_/ @@ +241 LATIN SMALL LETTER N WITH TILDE + _ @ + / \ @ + ( ñ )@ + \_/ @@ +242 LATIN SMALL LETTER O WITH GRAVE + _ @ + / \ @ + ( ò )@ + \_/ @@ +243 LATIN SMALL LETTER O WITH ACUTE + _ @ + / \ @ + ( ó )@ + \_/ @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + _ @ + / \ @ + ( ô )@ + \_/ @@ +245 LATIN SMALL LETTER O WITH TILDE + _ @ + / \ @ + ( õ )@ + \_/ @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ @ + / \ @ + ( ö )@ + \_/ @@ +247 DIVISION SIGN + _ @ + / \ @ + ( ÷ )@ + \_/ @@ +248 LATIN SMALL LETTER O WITH STROKE + _ @ + / \ @ + ( ø )@ + \_/ @@ +249 LATIN SMALL LETTER U WITH GRAVE + _ @ + / \ @ + ( ù )@ + \_/ @@ +250 LATIN SMALL LETTER U WITH ACUTE + _ @ + / \ @ + ( ú )@ + \_/ @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + _ @ + / \ @ + ( û )@ + \_/ @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ @ + / \ @ + ( ü )@ + \_/ @@ +253 LATIN SMALL LETTER Y WITH ACUTE + _ @ + / \ @ + ( ý )@ + \_/ @@ +254 LATIN SMALL LETTER THORN + _ @ + / \ @ + ( þ )@ + \_/ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ @ + / \ @ + ( ÿ )@ + \_/ @@ +0x0100 LATIN CAPITAL LETTER A WITH MACRON + _ @ + / \ @ + ( À )@ + \_/ @@ +0x0101 LATIN SMALL LETTER A WITH MACRON + _ @ + / \ @ + ( à )@ + \_/ @@ +0x0102 LATIN CAPITAL LETTER A WITH BREVE + _ @ + / \ @ + ( à )@ + \_/ @@ +0x0103 LATIN SMALL LETTER A WITH BREVE + _ @ + / \ @ + ( ã )@ + \_/ @@ +0x0104 LATIN CAPITAL LETTER A WITH OGONEK + _ @ + / \ @ + ( ¡ )@ + \_/ @@ +0x0105 LATIN SMALL LETTER A WITH OGONEK + _ @ + / \ @ + ( ± )@ + \_/ @@ +0x0106 LATIN CAPITAL LETTER C WITH ACUTE + _ @ + / \ @ + ( Æ )@ + \_/ @@ +0x0107 LATIN SMALL LETTER C WITH ACUTE + _ @ + / \ @ + ( æ )@ + \_/ @@ +0x0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX + _ @ + / \ @ + ( Æ )@ + \_/ @@ +0x0109 LATIN SMALL LETTER C WITH CIRCUMFLEX + _ @ + / \ @ + ( æ )@ + \_/ @@ +0x010A LATIN CAPITAL LETTER C WITH DOT ABOVE + _ @ + / \ @ + ( Å )@ + \_/ @@ +0x010B LATIN SMALL LETTER C WITH DOT ABOVE + _ @ + / \ @ + ( å )@ + \_/ @@ +0x010C LATIN CAPITAL LETTER C WITH CARON + _ @ + / \ @ + ( È )@ + \_/ @@ +0x010D LATIN SMALL LETTER C WITH CARON + _ @ + / \ @ + ( è )@ + \_/ @@ +0x010E LATIN CAPITAL LETTER D WITH CARON + _ @ + / \ @ + ( Ï )@ + \_/ @@ +0x010F LATIN SMALL LETTER D WITH CARON + _ @ + / \ @ + ( ï )@ + \_/ @@ +0x0110 LATIN CAPITAL LETTER D WITH STROKE + _ @ + / \ @ + ( Ð )@ + \_/ @@ +0x0111 LATIN SMALL LETTER D WITH STROKE + _ @ + / \ @ + ( ð )@ + \_/ @@ +0x0112 LATIN CAPITAL LETTER E WITH MACRON + _ @ + / \ @ + ( ª )@ + \_/ @@ +0x0113 LATIN SMALL LETTER E WITH MACRON + _ @ + / \ @ + ( º )@ + \_/ @@ +0x0116 LATIN CAPITAL LETTER E WITH DOT ABOVE + _ @ + / \ @ + ( Ì )@ + \_/ @@ +0x0117 LATIN SMALL LETTER E WITH DOT ABOVE + _ @ + / \ @ + ( ì )@ + \_/ @@ +0x0118 LATIN CAPITAL LETTER E WITH OGONEK + _ @ + / \ @ + ( Ê )@ + \_/ @@ +0x0119 LATIN SMALL LETTER E WITH OGONEK + _ @ + / \ @ + ( ê )@ + \_/ @@ +0x011A LATIN CAPITAL LETTER E WITH CARON + _ @ + / \ @ + ( Ì )@ + \_/ @@ +0x011B LATIN SMALL LETTER E WITH CARON + _ @ + / \ @ + ( ì )@ + \_/ @@ +0x011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX + _ @ + / \ @ + ( Ø )@ + \_/ @@ +0x011D LATIN SMALL LETTER G WITH CIRCUMFLEX + _ @ + / \ @ + ( ø )@ + \_/ @@ +0x011E LATIN CAPITAL LETTER G WITH BREVE + _ @ + / \ @ + ( « )@ + \_/ @@ +0x011F LATIN SMALL LETTER G WITH BREVE + _ @ + / \ @ + ( » )@ + \_/ @@ +0x0120 LATIN CAPITAL LETTER G WITH DOT ABOVE + _ @ + / \ @ + ( Õ )@ + \_/ @@ +0x0121 LATIN SMALL LETTER G WITH DOT ABOVE + _ @ + / \ @ + ( õ )@ + \_/ @@ +0x0122 LATIN CAPITAL LETTER G WITH CEDILLA + _ @ + / \ @ + ( « )@ + \_/ @@ +0x0123 LATIN SMALL LETTER G WITH CEDILLA + _ @ + / \ @ + ( » )@ + \_/ @@ +0x0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX + _ @ + / \ @ + ( ¦ )@ + \_/ @@ +0x0125 LATIN SMALL LETTER H WITH CIRCUMFLEX + _ @ + / \ @ + ( ¶ )@ + \_/ @@ +0x0126 LATIN CAPITAL LETTER H WITH STROKE + _ @ + / \ @ + ( ¡ )@ + \_/ @@ +0x0127 LATIN SMALL LETTER H WITH STROKE + _ @ + / \ @ + ( ± )@ + \_/ @@ +0x0128 LATIN CAPITAL LETTER I WITH TILDE + _ @ + / \ @ + ( ¥ )@ + \_/ @@ +0x0129 LATIN SMALL LETTER I WITH TILDE + _ @ + / \ @ + ( µ )@ + \_/ @@ +0x012A LATIN CAPITAL LETTER I WITH MACRON + _ @ + / \ @ + ( Ï )@ + \_/ @@ +0x012B LATIN SMALL LETTER I WITH MACRON + _ @ + / \ @ + ( ï )@ + \_/ @@ +0x012E LATIN CAPITAL LETTER I WITH OGONEK + _ @ + / \ @ + ( Ç )@ + \_/ @@ +0x012F LATIN SMALL LETTER I WITH OGONEK + _ @ + / \ @ + ( ç )@ + \_/ @@ +0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE + _ @ + / \ @ + ( © )@ + \_/ @@ +0x0131 LATIN SMALL LETTER DOTLESS I + _ @ + / \ @ + ( ¹ )@ + \_/ @@ +0x0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX + _ @ + / \ @ + ( ¬ )@ + \_/ @@ +0x0135 LATIN SMALL LETTER J WITH CIRCUMFLEX + _ @ + / \ @ + ( ¼ )@ + \_/ @@ +0x0136 LATIN CAPITAL LETTER K WITH CEDILLA + _ @ + / \ @ + ( Ó )@ + \_/ @@ +0x0137 LATIN SMALL LETTER K WITH CEDILLA + _ @ + / \ @ + ( ó )@ + \_/ @@ +0x0138 LATIN SMALL LETTER KRA + _ @ + / \ @ + ( ¢ )@ + \_/ @@ +0x0139 LATIN CAPITAL LETTER L WITH ACUTE + _ @ + / \ @ + ( Å )@ + \_/ @@ +0x013A LATIN SMALL LETTER L WITH ACUTE + _ @ + / \ @ + ( å )@ + \_/ @@ +0x013B LATIN CAPITAL LETTER L WITH CEDILLA + _ @ + / \ @ + ( ¦ )@ + \_/ @@ +0x013C LATIN SMALL LETTER L WITH CEDILLA + _ @ + / \ @ + ( ¶ )@ + \_/ @@ +0x013D LATIN CAPITAL LETTER L WITH CARON + _ @ + / \ @ + ( ¥ )@ + \_/ @@ +0x013E LATIN SMALL LETTER L WITH CARON + _ @ + / \ @ + ( µ )@ + \_/ @@ +0x0141 LATIN CAPITAL LETTER L WITH STROKE + _ @ + / \ @ + ( £ )@ + \_/ @@ +0x0142 LATIN SMALL LETTER L WITH STROKE + _ @ + / \ @ + ( ³ )@ + \_/ @@ +0x0143 LATIN CAPITAL LETTER N WITH ACUTE + _ @ + / \ @ + ( Ñ )@ + \_/ @@ +0x0144 LATIN SMALL LETTER N WITH ACUTE + _ @ + / \ @ + ( ñ )@ + \_/ @@ +0x0145 LATIN CAPITAL LETTER N WITH CEDILLA + _ @ + / \ @ + ( Ñ )@ + \_/ @@ +0x0146 LATIN SMALL LETTER N WITH CEDILLA + _ @ + / \ @ + ( ñ )@ + \_/ @@ +0x0147 LATIN CAPITAL LETTER N WITH CARON + _ @ + / \ @ + ( Ò )@ + \_/ @@ +0x0148 LATIN SMALL LETTER N WITH CARON + _ @ + / \ @ + ( ò )@ + \_/ @@ +0x014A LATIN CAPITAL LETTER ENG + _ @ + / \ @ + ( ½ )@ + \_/ @@ +0x014B LATIN SMALL LETTER ENG + _ @ + / \ @ + ( ¿ )@ + \_/ @@ +0x014C LATIN CAPITAL LETTER O WITH MACRON + _ @ + / \ @ + ( Ò )@ + \_/ @@ +0x014D LATIN SMALL LETTER O WITH MACRON + _ @ + / \ @ + ( ò )@ + \_/ @@ +0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + _ @ + / \ @ + ( Õ )@ + \_/ @@ +0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE + _ @ + / \ @ + ( õ )@ + \_/ @@ +0x0154 LATIN CAPITAL LETTER R WITH ACUTE + _ @ + / \ @ + ( À )@ + \_/ @@ +0x0155 LATIN SMALL LETTER R WITH ACUTE + _ @ + / \ @ + ( à )@ + \_/ @@ +0x0156 LATIN CAPITAL LETTER R WITH CEDILLA + _ @ + / \ @ + ( £ )@ + \_/ @@ +0x0157 LATIN SMALL LETTER R WITH CEDILLA + _ @ + / \ @ + ( ³ )@ + \_/ @@ +0x0158 LATIN CAPITAL LETTER R WITH CARON + _ @ + / \ @ + ( Ø )@ + \_/ @@ +0x0159 LATIN SMALL LETTER R WITH CARON + _ @ + / \ @ + ( ø )@ + \_/ @@ +0x015A LATIN CAPITAL LETTER S WITH ACUTE + _ @ + / \ @ + ( ¦ )@ + \_/ @@ +0x015B LATIN SMALL LETTER S WITH ACUTE + _ @ + / \ @ + ( ¶ )@ + \_/ @@ +0x015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX + _ @ + / \ @ + ( Þ )@ + \_/ @@ +0x015D LATIN SMALL LETTER S WITH CIRCUMFLEX + _ @ + / \ @ + ( þ )@ + \_/ @@ +0x015E LATIN CAPITAL LETTER S WITH CEDILLA + _ @ + / \ @ + ( ª )@ + \_/ @@ +0x015F LATIN SMALL LETTER S WITH CEDILLA + _ @ + / \ @ + ( º )@ + \_/ @@ +0x0160 LATIN CAPITAL LETTER S WITH CARON + _ @ + / \ @ + ( © )@ + \_/ @@ +0x0161 LATIN SMALL LETTER S WITH CARON + _ @ + / \ @ + ( ¹ )@ + \_/ @@ +0x0162 LATIN CAPITAL LETTER T WITH CEDILLA + _ @ + / \ @ + ( Þ )@ + \_/ @@ +0x0163 LATIN SMALL LETTER T WITH CEDILLA + _ @ + / \ @ + ( þ )@ + \_/ @@ +0x0164 LATIN CAPITAL LETTER T WITH CARON + _ @ + / \ @ + ( « )@ + \_/ @@ +0x0165 LATIN SMALL LETTER T WITH CARON + _ @ + / \ @ + ( » )@ + \_/ @@ +0x0166 LATIN CAPITAL LETTER T WITH STROKE + _ @ + / \ @ + ( ¬ )@ + \_/ @@ +0x0167 LATIN SMALL LETTER T WITH STROKE + _ @ + / \ @ + ( ¼ )@ + \_/ @@ +0x0168 LATIN CAPITAL LETTER U WITH TILDE + _ @ + / \ @ + ( Ý )@ + \_/ @@ +0x0169 LATIN SMALL LETTER U WITH TILDE + _ @ + / \ @ + ( ý )@ + \_/ @@ +0x016A LATIN CAPITAL LETTER U WITH MACRON + _ @ + / \ @ + ( Þ )@ + \_/ @@ +0x016B LATIN SMALL LETTER U WITH MACRON + _ @ + / \ @ + ( þ )@ + \_/ @@ +0x016C LATIN CAPITAL LETTER U WITH BREVE + _ @ + / \ @ + ( Ý )@ + \_/ @@ +0x016D LATIN SMALL LETTER U WITH BREVE + _ @ + / \ @ + ( ý )@ + \_/ @@ +0x016E LATIN CAPITAL LETTER U WITH RING ABOVE + _ @ + / \ @ + ( Ù )@ + \_/ @@ +0x016F LATIN SMALL LETTER U WITH RING ABOVE + _ @ + / \ @ + ( ù )@ + \_/ @@ +0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + _ @ + / \ @ + ( Û )@ + \_/ @@ +0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE + _ @ + / \ @ + ( û )@ + \_/ @@ +0x0172 LATIN CAPITAL LETTER U WITH OGONEK + _ @ + / \ @ + ( Ù )@ + \_/ @@ +0x0173 LATIN SMALL LETTER U WITH OGONEK + _ @ + / \ @ + ( ù )@ + \_/ @@ +0x0179 LATIN CAPITAL LETTER Z WITH ACUTE + _ @ + / \ @ + ( ¬ )@ + \_/ @@ +0x017A LATIN SMALL LETTER Z WITH ACUTE + _ @ + / \ @ + ( ¼ )@ + \_/ @@ +0x017B LATIN CAPITAL LETTER Z WITH DOT ABOVE + _ @ + / \ @ + ( ¯ )@ + \_/ @@ +0x017C LATIN SMALL LETTER Z WITH DOT ABOVE + _ @ + / \ @ + ( ¿ )@ + \_/ @@ +0x017D LATIN CAPITAL LETTER Z WITH CARON + _ @ + / \ @ + ( ® )@ + \_/ @@ +0x017E LATIN SMALL LETTER Z WITH CARON + _ @ + / \ @ + ( ¾ )@ + \_/ @@ +0x02C7 CARON + _ @ + / \ @ + ( · )@ + \_/ @@ +0x02D8 BREVE + _ @ + / \ @ + ( ¢ )@ + \_/ @@ +0x02D9 DOT ABOVE + _ @ + / \ @ + ( ÿ )@ + \_/ @@ +0x02DB OGONEK + _ @ + / \ @ + ( ² )@ + \_/ @@ +0x02DD DOUBLE ACUTE ACCENT + _ @ + / \ @ + ( ½ )@ + \_/ @@ diff --git a/externals/figlet/fonts/digital.flf b/externals/figlet/fonts/digital.flf new file mode 100644 index 0000000000..6b7a1cabbf --- /dev/null +++ b/externals/figlet/fonts/digital.flf @@ -0,0 +1,1286 @@ +flf2a 3 2 6 1 11 0 16513 242 +Digital by Glenn Chappell 1/94 -- based on Bubble +Includes characters 128-255 +Enhanced for Latin-2,3,4 by John Cowan +Latin character sets supported only if your screen font does +figlet release 2.2 -- November 1996 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + @ + @ + @@ + +-+@ + |!|@ + +-+@@ + +-+@ + |"|@ + +-+@@ + +-+@ + |#|@ + +-+@@ + +-+@ + |$|@ + +-+@@ + +-+@ + |%|@ + +-+@@ + +-+@ + |&|@ + +-+@@ + +-+@ + |'|@ + +-+@@ + +-+@ + |(|@ + +-+@@ + +-+@ + |)|@ + +-+@@ + +-+@ + |*|@ + +-+@@ + +-+@ + |+|@ + +-+@@ + +-+@ + |,|@ + +-+@@ + +-+@ + |-|@ + +-+@@ + +-+@ + |.|@ + +-+@@ + +-+@ + |/|@ + +-+@@ + +-+@ + |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|@ + +-+@@ + +-+@ + |{|@ + +-+@@ + +-+@ + |||@ + +-+@@ + +-+@ + |}|@ + +-+@@ + +-+@ + |~|@ + +-+@@ + +-+@ + |Ä|@ + +-+@@ + +-+@ + |Ö|@ + +-+@@ + +-+@ + |Ü|@ + +-+@@ + +-+@ + |ä|@ + +-+@@ + +-+@ + |ö|@ + +-+@@ + +-+@ + |ü|@ + +-+@@ + +-+@ + |ß|@ + +-+@@ +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 NO-BREAK SPACE + +-+@ + | |@ + +-+@@ +161 INVERTED EXCLAMATION MARK + +-+@ + |¡|@ + +-+@@ +162 CENT SIGN + +-+@ + |¢|@ + +-+@@ +163 POUND SIGN + +-+@ + |£|@ + +-+@@ +164 CURRENCY SIGN + +-+@ + |¤|@ + +-+@@ +165 YEN SIGN + +-+@ + |¥|@ + +-+@@ +166 BROKEN BAR + +-+@ + |¦|@ + +-+@@ +167 SECTION SIGN + +-+@ + |§|@ + +-+@@ +168 DIAERESIS + +-+@ + |¨|@ + +-+@@ +169 COPYRIGHT SIGN + +-+@ + |©|@ + +-+@@ +170 FEMININE ORDINAL INDICATOR + +-+@ + |ª|@ + +-+@@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + +-+@ + |«|@ + +-+@@ +172 NOT SIGN + +-+@ + |¬|@ + +-+@@ +173 SOFT HYPHEN + +-+@ + |­|@ + +-+@@ +174 REGISTERED SIGN + +-+@ + |®|@ + +-+@@ +175 MACRON + +-+@ + |¯|@ + +-+@@ +176 DEGREE SIGN + +-+@ + |°|@ + +-+@@ +177 PLUS-MINUS SIGN + +-+@ + |±|@ + +-+@@ +178 SUPERSCRIPT TWO + +-+@ + |²|@ + +-+@@ +179 SUPERSCRIPT THREE + +-+@ + |³|@ + +-+@@ +180 ACUTE ACCENT + +-+@ + |´|@ + +-+@@ +181 MICRO SIGN + +-+@ + |µ|@ + +-+@@ +182 PILCROW SIGN + +-+@ + |¶|@ + +-+@@ +183 MIDDLE DOT + +-+@ + |·|@ + +-+@@ +184 CEDILLA + +-+@ + |¸|@ + +-+@@ +185 SUPERSCRIPT ONE + +-+@ + |¹|@ + +-+@@ +186 MASCULINE ORDINAL INDICATOR + +-+@ + |º|@ + +-+@@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + +-+@ + |»|@ + +-+@@ +188 VULGAR FRACTION ONE QUARTER + +-+@ + |¼|@ + +-+@@ +189 VULGAR FRACTION ONE HALF + +-+@ + |½|@ + +-+@@ +190 VULGAR FRACTION THREE QUARTERS + +-+@ + |¾|@ + +-+@@ +191 INVERTED QUESTION MARK + +-+@ + |¿|@ + +-+@@ +192 LATIN CAPITAL LETTER A WITH GRAVE + +-+@ + |À|@ + +-+@@ +193 LATIN CAPITAL LETTER A WITH ACUTE + +-+@ + |Á|@ + +-+@@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + +-+@ + |Â|@ + +-+@@ +195 LATIN CAPITAL LETTER A WITH TILDE + +-+@ + |Ã|@ + +-+@@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + +-+@ + |Ä|@ + +-+@@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + +-+@ + |Å|@ + +-+@@ +198 LATIN CAPITAL LETTER AE + +-+@ + |Æ|@ + +-+@@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + +-+@ + |Ç|@ + +-+@@ +200 LATIN CAPITAL LETTER E WITH GRAVE + +-+@ + |È|@ + +-+@@ +201 LATIN CAPITAL LETTER E WITH ACUTE + +-+@ + |É|@ + +-+@@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + +-+@ + |Ê|@ + +-+@@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + +-+@ + |Ë|@ + +-+@@ +204 LATIN CAPITAL LETTER I WITH GRAVE + +-+@ + |Ì|@ + +-+@@ +205 LATIN CAPITAL LETTER I WITH ACUTE + +-+@ + |Í|@ + +-+@@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + +-+@ + |Î|@ + +-+@@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + +-+@ + |Ï|@ + +-+@@ +208 LATIN CAPITAL LETTER ETH + +-+@ + |Ð|@ + +-+@@ +209 LATIN CAPITAL LETTER N WITH TILDE + +-+@ + |Ñ|@ + +-+@@ +210 LATIN CAPITAL LETTER O WITH GRAVE + +-+@ + |Ò|@ + +-+@@ +211 LATIN CAPITAL LETTER O WITH ACUTE + +-+@ + |Ó|@ + +-+@@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + +-+@ + |Ô|@ + +-+@@ +213 LATIN CAPITAL LETTER O WITH TILDE + +-+@ + |Õ|@ + +-+@@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + +-+@ + |Ö|@ + +-+@@ +215 MULTIPLICATION SIGN + +-+@ + |×|@ + +-+@@ +216 LATIN CAPITAL LETTER O WITH STROKE + +-+@ + |Ø|@ + +-+@@ +217 LATIN CAPITAL LETTER U WITH GRAVE + +-+@ + |Ù|@ + +-+@@ +218 LATIN CAPITAL LETTER U WITH ACUTE + +-+@ + |Ú|@ + +-+@@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + +-+@ + |Û|@ + +-+@@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + +-+@ + |Ü|@ + +-+@@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + +-+@ + |Ý|@ + +-+@@ +222 LATIN CAPITAL LETTER THORN + +-+@ + |Þ|@ + +-+@@ +223 LATIN SMALL LETTER SHARP S + +-+@ + |ß|@ + +-+@@ +224 LATIN SMALL LETTER A WITH GRAVE + +-+@ + |à|@ + +-+@@ +225 LATIN SMALL LETTER A WITH ACUTE + +-+@ + |á|@ + +-+@@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + +-+@ + |â|@ + +-+@@ +227 LATIN SMALL LETTER A WITH TILDE + +-+@ + |ã|@ + +-+@@ +228 LATIN SMALL LETTER A WITH DIAERESIS + +-+@ + |ä|@ + +-+@@ +229 LATIN SMALL LETTER A WITH RING ABOVE + +-+@ + |å|@ + +-+@@ +230 LATIN SMALL LETTER AE + +-+@ + |æ|@ + +-+@@ +231 LATIN SMALL LETTER C WITH CEDILLA + +-+@ + |ç|@ + +-+@@ +232 LATIN SMALL LETTER E WITH GRAVE + +-+@ + |è|@ + +-+@@ +233 LATIN SMALL LETTER E WITH ACUTE + +-+@ + |é|@ + +-+@@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + +-+@ + |ê|@ + +-+@@ +235 LATIN SMALL LETTER E WITH DIAERESIS + +-+@ + |ë|@ + +-+@@ +236 LATIN SMALL LETTER I WITH GRAVE + +-+@ + |ì|@ + +-+@@ +237 LATIN SMALL LETTER I WITH ACUTE + +-+@ + |í|@ + +-+@@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + +-+@ + |î|@ + +-+@@ +239 LATIN SMALL LETTER I WITH DIAERESIS + +-+@ + |ï|@ + +-+@@ +240 LATIN SMALL LETTER ETH + +-+@ + |ð|@ + +-+@@ +241 LATIN SMALL LETTER N WITH TILDE + +-+@ + |ñ|@ + +-+@@ +242 LATIN SMALL LETTER O WITH GRAVE + +-+@ + |ò|@ + +-+@@ +243 LATIN SMALL LETTER O WITH ACUTE + +-+@ + |ó|@ + +-+@@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + +-+@ + |ô|@ + +-+@@ +245 LATIN SMALL LETTER O WITH TILDE + +-+@ + |õ|@ + +-+@@ +246 LATIN SMALL LETTER O WITH DIAERESIS + +-+@ + |ö|@ + +-+@@ +247 DIVISION SIGN + +-+@ + |÷|@ + +-+@@ +248 LATIN SMALL LETTER O WITH STROKE + +-+@ + |ø|@ + +-+@@ +249 LATIN SMALL LETTER U WITH GRAVE + +-+@ + |ù|@ + +-+@@ +250 LATIN SMALL LETTER U WITH ACUTE + +-+@ + |ú|@ + +-+@@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + +-+@ + |û|@ + +-+@@ +252 LATIN SMALL LETTER U WITH DIAERESIS + +-+@ + |ü|@ + +-+@@ +253 LATIN SMALL LETTER Y WITH ACUTE + +-+@ + |ý|@ + +-+@@ +254 LATIN SMALL LETTER THORN + +-+@ + |þ|@ + +-+@@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + +-+@ + |ÿ|@ + +-+@@ +0x0100 LATIN CAPITAL LETTER A WITH MACRON + +-+@ + |À|@ + +-+@@ +0x0101 LATIN SMALL LETTER A WITH MACRON + +-+@ + |à|@ + +-+@@ +0x0102 LATIN CAPITAL LETTER A WITH BREVE + +-+@ + |Ã|@ + +-+@@ +0x0103 LATIN SMALL LETTER A WITH BREVE + +-+@ + |ã|@ + +-+@@ +0x0104 LATIN CAPITAL LETTER A WITH OGONEK + +-+@ + |¡|@ + +-+@@ +0x0105 LATIN SMALL LETTER A WITH OGONEK + +-+@ + |±|@ + +-+@@ +0x0106 LATIN CAPITAL LETTER C WITH ACUTE + +-+@ + |Æ|@ + +-+@@ +0x0107 LATIN SMALL LETTER C WITH ACUTE + +-+@ + |æ|@ + +-+@@ +0x0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX + +-+@ + |Æ|@ + +-+@@ +0x0109 LATIN SMALL LETTER C WITH CIRCUMFLEX + +-+@ + |æ|@ + +-+@@ +0x010A LATIN CAPITAL LETTER C WITH DOT ABOVE + +-+@ + |Å|@ + +-+@@ +0x010B LATIN SMALL LETTER C WITH DOT ABOVE + +-+@ + |å|@ + +-+@@ +0x010C LATIN CAPITAL LETTER C WITH CARON + +-+@ + |È|@ + +-+@@ +0x010D LATIN SMALL LETTER C WITH CARON + +-+@ + |è|@ + +-+@@ +0x010E LATIN CAPITAL LETTER D WITH CARON + +-+@ + |Ï|@ + +-+@@ +0x010F LATIN SMALL LETTER D WITH CARON + +-+@ + |ï|@ + +-+@@ +0x0110 LATIN CAPITAL LETTER D WITH STROKE + +-+@ + |Ð|@ + +-+@@ +0x0111 LATIN SMALL LETTER D WITH STROKE + +-+@ + |ð|@ + +-+@@ +0x0112 LATIN CAPITAL LETTER E WITH MACRON + +-+@ + |ª|@ + +-+@@ +0x0113 LATIN SMALL LETTER E WITH MACRON + +-+@ + |º|@ + +-+@@ +0x0116 LATIN CAPITAL LETTER E WITH DOT ABOVE + +-+@ + |Ì|@ + +-+@@ +0x0117 LATIN SMALL LETTER E WITH DOT ABOVE + +-+@ + |ì|@ + +-+@@ +0x0118 LATIN CAPITAL LETTER E WITH OGONEK + +-+@ + |Ê|@ + +-+@@ +0x0119 LATIN SMALL LETTER E WITH OGONEK + +-+@ + |ê|@ + +-+@@ +0x011A LATIN CAPITAL LETTER E WITH CARON + +-+@ + |Ì|@ + +-+@@ +0x011B LATIN SMALL LETTER E WITH CARON + +-+@ + |ì|@ + +-+@@ +0x011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX + +-+@ + |Ø|@ + +-+@@ +0x011D LATIN SMALL LETTER G WITH CIRCUMFLEX + +-+@ + |ø|@ + +-+@@ +0x011E LATIN CAPITAL LETTER G WITH BREVE + +-+@ + |«|@ + +-+@@ +0x011F LATIN SMALL LETTER G WITH BREVE + +-+@ + |»|@ + +-+@@ +0x0120 LATIN CAPITAL LETTER G WITH DOT ABOVE + +-+@ + |Õ|@ + +-+@@ +0x0121 LATIN SMALL LETTER G WITH DOT ABOVE + +-+@ + |õ|@ + +-+@@ +0x0122 LATIN CAPITAL LETTER G WITH CEDILLA + +-+@ + |«|@ + +-+@@ +0x0123 LATIN SMALL LETTER G WITH CEDILLA + +-+@ + |»|@ + +-+@@ +0x0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX + +-+@ + |¦|@ + +-+@@ +0x0125 LATIN SMALL LETTER H WITH CIRCUMFLEX + +-+@ + |¶|@ + +-+@@ +0x0126 LATIN CAPITAL LETTER H WITH STROKE + +-+@ + |¡|@ + +-+@@ +0x0127 LATIN SMALL LETTER H WITH STROKE + +-+@ + |±|@ + +-+@@ +0x0128 LATIN CAPITAL LETTER I WITH TILDE + +-+@ + |¥|@ + +-+@@ +0x0129 LATIN SMALL LETTER I WITH TILDE + +-+@ + |µ|@ + +-+@@ +0x012A LATIN CAPITAL LETTER I WITH MACRON + +-+@ + |Ï|@ + +-+@@ +0x012B LATIN SMALL LETTER I WITH MACRON + +-+@ + |ï|@ + +-+@@ +0x012E LATIN CAPITAL LETTER I WITH OGONEK + +-+@ + |Ç|@ + +-+@@ +0x012F LATIN SMALL LETTER I WITH OGONEK + +-+@ + |ç|@ + +-+@@ +0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE + +-+@ + |©|@ + +-+@@ +0x0131 LATIN SMALL LETTER DOTLESS I + +-+@ + |¹|@ + +-+@@ +0x0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX + +-+@ + |¬|@ + +-+@@ +0x0135 LATIN SMALL LETTER J WITH CIRCUMFLEX + +-+@ + |¼|@ + +-+@@ +0x0136 LATIN CAPITAL LETTER K WITH CEDILLA + +-+@ + |Ó|@ + +-+@@ +0x0137 LATIN SMALL LETTER K WITH CEDILLA + +-+@ + |ó|@ + +-+@@ +0x0138 LATIN SMALL LETTER KRA + +-+@ + |¢|@ + +-+@@ +0x0139 LATIN CAPITAL LETTER L WITH ACUTE + +-+@ + |Å|@ + +-+@@ +0x013A LATIN SMALL LETTER L WITH ACUTE + +-+@ + |å|@ + +-+@@ +0x013B LATIN CAPITAL LETTER L WITH CEDILLA + +-+@ + |¦|@ + +-+@@ +0x013C LATIN SMALL LETTER L WITH CEDILLA + +-+@ + |¶|@ + +-+@@ +0x013D LATIN CAPITAL LETTER L WITH CARON + +-+@ + |¥|@ + +-+@@ +0x013E LATIN SMALL LETTER L WITH CARON + +-+@ + |µ|@ + +-+@@ +0x0141 LATIN CAPITAL LETTER L WITH STROKE + +-+@ + |£|@ + +-+@@ +0x0142 LATIN SMALL LETTER L WITH STROKE + +-+@ + |³|@ + +-+@@ +0x0143 LATIN CAPITAL LETTER N WITH ACUTE + +-+@ + |Ñ|@ + +-+@@ +0x0144 LATIN SMALL LETTER N WITH ACUTE + +-+@ + |ñ|@ + +-+@@ +0x0145 LATIN CAPITAL LETTER N WITH CEDILLA + +-+@ + |Ñ|@ + +-+@@ +0x0146 LATIN SMALL LETTER N WITH CEDILLA + +-+@ + |ñ|@ + +-+@@ +0x0147 LATIN CAPITAL LETTER N WITH CARON + +-+@ + |Ò|@ + +-+@@ +0x0148 LATIN SMALL LETTER N WITH CARON + +-+@ + |ò|@ + +-+@@ +0x014A LATIN CAPITAL LETTER ENG + +-+@ + |½|@ + +-+@@ +0x014B LATIN SMALL LETTER ENG + +-+@ + |¿|@ + +-+@@ +0x014C LATIN CAPITAL LETTER O WITH MACRON + +-+@ + |Ò|@ + +-+@@ +0x014D LATIN SMALL LETTER O WITH MACRON + +-+@ + |ò|@ + +-+@@ +0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + +-+@ + |Õ|@ + +-+@@ +0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE + +-+@ + |õ|@ + +-+@@ +0x0154 LATIN CAPITAL LETTER R WITH ACUTE + +-+@ + |À|@ + +-+@@ +0x0155 LATIN SMALL LETTER R WITH ACUTE + +-+@ + |à|@ + +-+@@ +0x0156 LATIN CAPITAL LETTER R WITH CEDILLA + +-+@ + |£|@ + +-+@@ +0x0157 LATIN SMALL LETTER R WITH CEDILLA + +-+@ + |³|@ + +-+@@ +0x0158 LATIN CAPITAL LETTER R WITH CARON + +-+@ + |Ø|@ + +-+@@ +0x0159 LATIN SMALL LETTER R WITH CARON + +-+@ + |ø|@ + +-+@@ +0x015A LATIN CAPITAL LETTER S WITH ACUTE + +-+@ + |¦|@ + +-+@@ +0x015B LATIN SMALL LETTER S WITH ACUTE + +-+@ + |¶|@ + +-+@@ +0x015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX + +-+@ + |Þ|@ + +-+@@ +0x015D LATIN SMALL LETTER S WITH CIRCUMFLEX + +-+@ + |þ|@ + +-+@@ +0x015E LATIN CAPITAL LETTER S WITH CEDILLA + +-+@ + |ª|@ + +-+@@ +0x015F LATIN SMALL LETTER S WITH CEDILLA + +-+@ + |º|@ + +-+@@ +0x0160 LATIN CAPITAL LETTER S WITH CARON + +-+@ + |©|@ + +-+@@ +0x0161 LATIN SMALL LETTER S WITH CARON + +-+@ + |¹|@ + +-+@@ +0x0162 LATIN CAPITAL LETTER T WITH CEDILLA + +-+@ + |Þ|@ + +-+@@ +0x0163 LATIN SMALL LETTER T WITH CEDILLA + +-+@ + |þ|@ + +-+@@ +0x0164 LATIN CAPITAL LETTER T WITH CARON + +-+@ + |«|@ + +-+@@ +0x0165 LATIN SMALL LETTER T WITH CARON + +-+@ + |»|@ + +-+@@ +0x0166 LATIN CAPITAL LETTER T WITH STROKE + +-+@ + |¬|@ + +-+@@ +0x0167 LATIN SMALL LETTER T WITH STROKE + +-+@ + |¼|@ + +-+@@ +0x0168 LATIN CAPITAL LETTER U WITH TILDE + +-+@ + |Ý|@ + +-+@@ +0x0169 LATIN SMALL LETTER U WITH TILDE + +-+@ + |ý|@ + +-+@@ +0x016A LATIN CAPITAL LETTER U WITH MACRON + +-+@ + |Þ|@ + +-+@@ +0x016B LATIN SMALL LETTER U WITH MACRON + +-+@ + |þ|@ + +-+@@ +0x016C LATIN CAPITAL LETTER U WITH BREVE + +-+@ + |Ý|@ + +-+@@ +0x016D LATIN SMALL LETTER U WITH BREVE + +-+@ + |ý|@ + +-+@@ +0x016E LATIN CAPITAL LETTER U WITH RING ABOVE + +-+@ + |Ù|@ + +-+@@ +0x016F LATIN SMALL LETTER U WITH RING ABOVE + +-+@ + |ù|@ + +-+@@ +0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + +-+@ + |Û|@ + +-+@@ +0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE + +-+@ + |û|@ + +-+@@ +0x0172 LATIN CAPITAL LETTER U WITH OGONEK + +-+@ + |Ù|@ + +-+@@ +0x0173 LATIN SMALL LETTER U WITH OGONEK + +-+@ + |ù|@ + +-+@@ +0x0179 LATIN CAPITAL LETTER Z WITH ACUTE + +-+@ + |¬|@ + +-+@@ +0x017A LATIN SMALL LETTER Z WITH ACUTE + +-+@ + |¼|@ + +-+@@ +0x017B LATIN CAPITAL LETTER Z WITH DOT ABOVE + +-+@ + |¯|@ + +-+@@ +0x017C LATIN SMALL LETTER Z WITH DOT ABOVE + +-+@ + |¿|@ + +-+@@ +0x017D LATIN CAPITAL LETTER Z WITH CARON + +-+@ + |®|@ + +-+@@ +0x017E LATIN SMALL LETTER Z WITH CARON + +-+@ + |¾|@ + +-+@@ +0x02C7 CARON + +-+@ + |·|@ + +-+@@ +0x02D8 BREVE + +-+@ + |¢|@ + +-+@@ +0x02D9 DOT ABOVE + +-+@ + |ÿ|@ + +-+@@ +0x02DB OGONEK + +-+@ + |²|@ + +-+@@ +0x02DD DOUBLE ACUTE ACCENT + +-+@ + |½|@ + +-+@@ diff --git a/externals/figlet/fonts/frango.flc b/externals/figlet/fonts/frango.flc new file mode 100644 index 0000000000..0196230a2e --- /dev/null +++ b/externals/figlet/fonts/frango.flc @@ -0,0 +1,65 @@ +flc2a +# This file can be used with a Unicode-Greek FIGfont +# to convert "frangovlakhika" (Greek written in Latin +# letters) into real Greek. +# +# The mapping is the same as that used by the "ntgreek" FIGfont. + +t ( \0x02BD +t ) \0x02BC +t : \0x0387 +t A \0x0391 +t B \0x0392 +t C \0x03A7 +t D \0x0394 +t E \0x0395 +t F \0x03A6 +t G \0x0393 +t H \0x0397 +t I \0x0399 +t J \0x03D1 +t K \0x039A +t L \0x039B +t M \0x039C +t N \0x039D +t O \0x039F +t P \0x03A0 +t Q \0x0398 +t R \0x03A1 +t S \0x03A3 +t T \0x03A4 +t U \0x03A5 +t V \0x03C2 sigma +t W \0x03A9 +t X \0x039E +t Y \0x03A8 +t Z \0x0396 +t _ \0x037A +t a \0x03b1 +t b \0x03b2 +t c \0x03C7 +t d \0x03B4 +t e \0x03B5 +t f \0x03C6 +t g \0x03B3 +t h \0x03B7 +t i \0x03B9 +t j \0x03D5 +t k \0x03BA +t l \0x03BB +t m \0x03BC +t n \0x03BD +t o \0x03BF +t p \0x03C0 +t q \0x03B8 +t r \0x03C1 +t s \0x03C3 +t t \0x03C4 +t u \0x03C5 +t v \0x03D6 +t w \0x03C9 +t x \0x03BE +t y \0x03C8 +t z \0x03B6 +t ' \0x00A8 +t ~ \-5 diff --git a/externals/figlet/fonts/hz.flc b/externals/figlet/fonts/hz.flc new file mode 100644 index 0000000000..2d89e4bcf8 --- /dev/null +++ b/externals/figlet/fonts/hz.flc @@ -0,0 +1,4 @@ +flc2a +# Set HZ input mode (a 7-bit encoding of GB Chinese text) +# Meaningful only to FIGlet 2.2 beta 4 or better +h diff --git a/externals/figlet/fonts/ilhebrew.flc b/externals/figlet/fonts/ilhebrew.flc new file mode 100644 index 0000000000..1b46d79563 --- /dev/null +++ b/externals/figlet/fonts/ilhebrew.flc @@ -0,0 +1,38 @@ +flc2a +# implements a natural mapping from the Hebrew keyboard +# to Hebrew letters in the Ivrit font. +# Note that capital letters remain unchanged. + +t t \0x05d0 +t c \0x05d1 +t d \0x05d2 +t s \0x05d3 +t v \0x05d4 +t u \0x05d5 +t z \0x05d6 +t j \0x05d7 +t y \0x05d8 +t h \0x05d9 +t f \0x05db +t l \0x05da +t k \0x05dc +t n \0x05de +t o \0x05dd +t b \0x05e0 +t i \0x05df +t x \0x05e1 +t g \0x05e2 +t p \0x05e3 +t ; \0x05e4 +t m \0x05e6 +t . \0x05e5 +t e \0x05e7 +t r \0x05e8 +t a \0x05e9 +t , \0x05ea +t ' , +t / . +t ` ; +t q / +t w ' +t ~ \-2 diff --git a/externals/figlet/fonts/ivrit.flf b/externals/figlet/fonts/ivrit.flf new file mode 100644 index 0000000000..69f16d4948 --- /dev/null +++ b/externals/figlet/fonts/ivrit.flf @@ -0,0 +1,900 @@ +flf2a$ 6 5 76 15 14 1 16271 39 +Ivrit (Hebrew) Unicode font assembled by John Cowan +Latin chars from Standard by G. Chappell & Ian Chai +Hebrew chars from Jerusalem by Gedaliah Friedenberg + Use "ilhebrew.flc" for Hebrew keyboard mapping + Use "ushebrew.flc" for U.S.-style keyboard mapping ("febrew" script) + Use "8859-8.flc" for ISO 8859-8 text + Or use UTF-8 +WARNING! FIGfonts aren't bidirectional; this is strictly right-to-left + (by default) even for the Latin characters. +figlet release 2.2 -- November 1996 + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + $@ + $@ + $@ + $@ + $@ + $@@ + _ @ + | |@ + | |@ + |_|@ + (_)@ + @@ + _ _ @ + ( | )@ + V V @ + $ @ + $ @ + @@ + _ _ @ + _| || |_ @ + |_ .. _|@ + |_ _|@ + |_||_| @ + @@ + _ @ + | | @ + / __)@ + \__ \@ + ( /@ + |_| @@ + _ __@ + (_)/ /@ + / / @ + / /_ @ + /_/(_)@ + @@ + ___ @ + ( _ ) @ + / _ \/\@ + | (_> <@ + \___/\/@ + @@ + _ @ + ( )@ + |/ @ + $ @ + $ @ + @@ + __@ + / /@ + | | @ + | | @ + | | @ + \_\@@ + __ @ + \ \ @ + | |@ + | |@ + | |@ + /_/ @@ + @ + __/\__@ + \ /@ + /_ _\@ + \/ @ + @@ + @ + _ @ + _| |_ @ + |_ _|@ + |_| @ + @@ + @ + @ + @ + _ @ + ( )@ + |/ @@ + @ + @ + _____ @ + |_____|@ + $ @ + @@ + @ + @ + @ + _ @ + (_)@ + @@ + __@ + / /@ + / / @ + / / @ + /_/ @ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + _ @ + / |@ + | |@ + | |@ + |_|@ + @@ + ____ @ + |___ \ @ + __) |@ + / __/ @ + |_____|@ + @@ + _____ @ + |___ / @ + |_ \ @ + ___) |@ + |____/ @ + @@ + _ _ @ + | || | @ + | || |_ @ + |__ _|@ + |_| @ + @@ + ____ @ + | ___| @ + |___ \ @ + ___) |@ + |____/ @ + @@ + __ @ + / /_ @ + | '_ \ @ + | (_) |@ + \___/ @ + @@ + _____ @ + |___ |@ + / / @ + / / @ + /_/ @ + @@ + ___ @ + ( _ ) @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + ___ @ + / _ \ @ + | (_) |@ + \__, |@ + /_/ @ + @@ + @ + _ @ + (_)@ + _ @ + (_)@ + @@ + @ + _ @ + (_)@ + _ @ + ( )@ + |/ @@ + __@ + / /@ + / / @ + \ \ @ + \_\@ + @@ + @ + _____ @ + |_____|@ + |_____|@ + $ @ + @@ + __ @ + \ \ @ + \ \@ + / /@ + /_/ @ + @@ + ___ @ + |__ \@ + / /@ + |_| @ + (_) @ + @@ + ____ @ + / __ \ @ + / / _` |@ + | | (_| |@ + \ \__,_|@ + \____/ @@ + _ @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @@ + ____ @ + | __ ) @ + | _ \ @ + | |_) |@ + |____/ @ + @@ + ____ @ + / ___|@ + | | @ + | |___ @ + \____|@ + @@ + ____ @ + | _ \ @ + | | | |@ + | |_| |@ + |____/ @ + @@ + _____ @ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @@ + _____ @ + | ___|@ + | |_ @ + | _| @ + |_| @ + @@ + ____ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ + _ _ @ + | | | |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ + ___ @ + |_ _|@ + | | @ + | | @ + |___|@ + @@ + _ @ + | |@ + _ | |@ + | |_| |@ + \___/ @ + @@ + _ __@ + | |/ /@ + | ' / @ + | . \ @ + |_|\_\@ + @@ + _ @ + | | @ + | | @ + | |___ @ + |_____|@ + @@ + __ __ @ + | \/ |@ + | |\/| |@ + | | | |@ + |_| |_|@ + @@ + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + ____ @ + | _ \ @ + | |_) |@ + | __/ @ + |_| @ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \__\_\@ + @@ + ____ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ + ____ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + @@ + _ _ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @@ + __ __@ + \ \ / /@ + \ \ / / @ + \ V / @ + \_/ @ + @@ + __ __@ + \ \ / /@ + \ \ /\ / / @ + \ V V / @ + \_/\_/ @ + @@ + __ __@ + \ \/ /@ + \ / @ + / \ @ + /_/\_\@ + @@ + __ __@ + \ \ / /@ + \ V / @ + | | @ + |_| @ + @@ + _____@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ + __ @ + | _|@ + | | @ + | | @ + | | @ + |__|@@ + __ @ + \ \ @ + \ \ @ + \ \ @ + \_\@ + @@ + __ @ + |_ |@ + | |@ + | |@ + | |@ + |__|@@ + /\ @ + |/\|@ + $ @ + $ @ + $ @ + @@ + @ + @ + @ + @ + _____ @ + |_____|@@ + _ @ + ( )@ + \|@ + $ @ + $ @ + @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ + _ @ + | |__ @ + | '_ \ @ + | |_) |@ + |_.__/ @ + @@ + @ + ___ @ + / __|@ + | (__ @ + \___|@ + @@ + _ @ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ + @ + ___ @ + / _ \@ + | __/@ + \___|@ + @@ + __ @ + / _|@ + | |_ @ + | _|@ + |_| @ + @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ + _ @ + | |__ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ + _ @ + (_)@ + | |@ + | |@ + |_|@ + @@ + _ @ + (_)@ + | |@ + | |@ + _/ |@ + |__/ @@ + _ @ + | | __@ + | |/ /@ + | < @ + |_|\_\@ + @@ + _ @ + | |@ + | |@ + | |@ + |_|@ + @@ + @ + _ __ ___ @ + | '_ ` _ \ @ + | | | | | |@ + |_| |_| |_|@ + @@ + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ + @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + @ + _ __ @ + | '_ \ @ + | |_) |@ + | .__/ @ + |_| @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |_|@@ + @ + _ __ @ + | '__|@ + | | @ + |_| @ + @@ + @ + ___ @ + / __|@ + \__ \@ + |___/@ + @@ + _ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + @@ + @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ + @ + __ __@ + \ \ / /@ + \ V / @ + \_/ @ + @@ + @ + __ __@ + \ \ /\ / /@ + \ V V / @ + \_/\_/ @ + @@ + @ + __ __@ + \ \/ /@ + > < @ + /_/\_\@ + @@ + @ + _ _ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ + @ + ____@ + |_ /@ + / / @ + /___|@ + @@ + __@ + / /@ + | | @ + < < @ + | | @ + \_\@@ + _ @ + | |@ + | |@ + | |@ + | |@ + |_|@@ + __ @ + \ \ @ + | | @ + > >@ + | | @ + /_/ @@ + /\/|@ + |/\/ @ + $ @ + $ @ + $ @ + @@ + _ _ @ + (_)_(_)@ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_)_(_)@ + / _` |@ + | (_| |@ + \__,_|@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | (_) |@ + \___/ @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__,_|@ + @@ + ___ @ + / _ \@ + | |/ /@ + | |\ \@ + | ||_/@ + |_| @@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + $@ + $@@ +173 SOFT HYPHEN + @ + @ + _____ @ + |_____|@ + $ @ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \___/ @ + @@ +223 LATIN SMALL LETTER SHARP S + ___ @ + / _ \@ + | |/ /@ + | |\ \@ + | ||_/@ + |_| @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | (_) |@ + \___/ @ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x05D0 HEBREW LETTER ALEF + __ __@ + \ \ / /@ + | V / @ + | |\ \ @ + |_| \_\@ + @@ +0x05D1 HEBREW LETTER BET + ______ @ + |____ | @ + | | @ + _____| |_@ + /________/@ + @@ +0x05D2 HEBREW LETTER GIMEL + ____ @ + |__ | @ + | | @ + ____| | @ + /____/\_\@ + @@ +0x05D3 HEBREW LETTER DALET + _______ @ + |____ |@ + | | @ + | | @ + |_| @ + @@ +0x05D4 HEBREW LETTER HE + _______ @ + |_____ |@ + _ | |@ + | | | |@ + |_| |_|@ + @@ +0x05D5 HEBREW LETTER VAV + ___ @ + |_ |@ + | |@ + | |@ + |_|@ + @@ +0x05D6 HEBREW LETTER ZAYIN + ________ @ + \__ __\@ + | | @ + | | @ + |_| @ + @@ +0x05D7 HEBREW LETTER HET + _______ @ + |. __ |@ + | | | |@ + | | | |@ + |_| |_|@ + @@ +0x05D8 HEBREW LETTER TET + __ ___ @ + |. | /_ |@ + | | | |@ + | |___| |@ + |_______|@ + @@ +0x05D9 HEBREW LETTER YOD + ___ @ + |_ |@ + |_|@ + $ @ + $ @ + @@ +0x05DA HEBREW LETTER FINAL KAF + _______ @ + |____ .|@ + | | @ + | | @ + | | @ + |_| @@ +0x05DB HEBREW LETTER KAF + _____ @ + |____ \ @ + | |@ + ____| |@ + |_____/ @ + @@ +0x05DC HEBREW LETTER LAMED + |=|____ @ + |____ |@ + / / @ + / / @ + /_/ @ + @@ +0x05DD HEBREW LETTER FINAL MEM + ________ @ + |. ___ |@ + | | | |@ + | |___| |@ + |_______|@ + @@ +0x05DE HEBREW LETTER MEM + _______ @ + |. __ |@ + | | | |@ + | | _| |@ + |_||___|@ + @@ +0x05DF HEBREW LETTER FINAL NUN + ___ @ + |_ |@ + | |@ + | |@ + | |@ + |_|@@ +0x05E0 HEBREW LETTER NUN + ___ @ + |_ |@ + | |@ + __| |@ + |____|@ + @@ +0x05E1 HEBREW LETTER SAMEKH + _______ @ + |. __ |@ + | | | |@ + | |__/ |@ + |_____/ @ + @@ +0x05E2 HEBREW LETTER AYIN + __ _ @ + \ \ | |@ + \ \| |@ + __\ ` |@ + |______|@ + @@ +0x05E3 HEBREW LETTER FINAL PE + ______ @ + | __ |@ + | |_ | |@ + |___|| |@ + | |@ + |_|@@ +0x05E4 HEBREW LETTER PE + _______ @ + | ___ |@ + \_\ | |@ + _____| |@ + |_______|@ + @@ +0x05E5 HEBREW LETTER FINAL TSADI + __ _ @ + |. | | |@ + | | // @ + | |// @ + | | @ + |_| @@ +0x05E6 HEBREW LETTER TSADI + __ __.@ + \ \ / / @ + \ V / @ + ___\ \ @ + |______| @ + @@ +0x05E7 HEBREW LETTER QOF + ______ @ + |____ |@ + _ | |@ + | | |_|@ + | | @ + |_| @@ +0x05E8 HEBREW LETTER RESH + ______ @ + |____ |@ + | |@ + | |@ + |_|@ + @@ +0x05E9 HEBREW LETTER SHIN + _ _ _ @ + | | | | | |@ + | | | | | |@ + | |/ /_/ / @ + |_______/ @ + @@ +0x05EA HEBREW LETTER TAV + ______ @ + | __ |@ + | | | |@ + _| | | |@ + |___| |_|@ + @@ +0x2721 STAR OF DAVID + @ + __/\__@ + \ /@ + /_ _\@ + \/ @ + @@ +-0x0002 +aleph = t, bet/vet = c, gimel = d, dalet = s, he = v, vav = u, zayin = z @ +het = j, tet = y, yod = h, kaf/chaf = f, final kaf = l, lamed = k, mem = n@ +final mem = o, nun = b, final nun = i, samekh = x, ayin = g, pe/fe = p, @ +final pe = ;, tsadi = m, final tsadi = ., qof = e, resh = r, shin/sin = a @ +tav = , comma = ', period = /, semicolon = `, slash = q, apostrophe = w @ +Star of David = * @@ +-0x0003 +aleph = a, bet/vet = b, gimel = g, dalet = d, he = h, vav = v, zayin = z @ +het = c, tet = t, yod = y, kaf/chaf = k, final kaf = f, lamed = l, mem = m@ +final mem = o, nun = n, final nun = i, samekh = e, ayin = _, pe/fe = p, @ +final pe = u, tsadi = j, final tsadi = w, qof = q, resh = r, shin/sin = s @ +tav = x @ +Star of David = * @@ diff --git a/externals/figlet/fonts/jis0201.flc b/externals/figlet/fonts/jis0201.flc new file mode 100644 index 0000000000..6a32e62ef9 --- /dev/null +++ b/externals/figlet/fonts/jis0201.flc @@ -0,0 +1,249 @@ +# JIS X 0201 (1976) mappings for ISO 2022 usage. + +# Invoke JIS Roman in G0/GL, and JIS Katakana ("halfwidth" katakana, but +# we map it to fullwidth for compatibility with existing fonts) in +# G1/GR. +# +# This means that the Katakana is available in the high bytes, or you +# can use SHIFT OUT (0x1E) to cause the low-value bytes (in the ASCII +# code value range) to invoke Katakana characters (using SHIFT IN (0x1F) +# to switch back). Of course, this being ISO 2022, you can also use the +# escape sequences ESC ( I and ESC ( J to shift it in and out. + +g 0 94 J +g 1 94 I +g L 0 +g R 1 + +# JIS Roman: ISO 646 variant just like ASCII, but with for +# , and for . + +0x4A0020 0x20 +0x4A0021 0x21 +0x4A0022 0x22 +0x4A0023 0x23 +0x4A0024 0x24 +0x4A0025 0x25 +0x4A0026 0x26 +0x4A0027 0x27 +0x4A0028 0x28 +0x4A0029 0x29 +0x4A002A 0x2A +0x4A002B 0x2B +0x4A002C 0x2C +0x4A002D 0x2D +0x4A002E 0x2E +0x4A002F 0x2F +0x4A0030 0x30 +0x4A0031 0x31 +0x4A0032 0x32 +0x4A0033 0x33 +0x4A0034 0x34 +0x4A0035 0x35 +0x4A0036 0x36 +0x4A0037 0x37 +0x4A0038 0x38 +0x4A0039 0x39 +0x4A003A 0x3A +0x4A003B 0x3B +0x4A003C 0x3C +0x4A003D 0x3D +0x4A003E 0x3E +0x4A003F 0x3F +0x4A0040 0x40 +0x4A0041 0x41 +0x4A0042 0x42 +0x4A0043 0x43 +0x4A0044 0x44 +0x4A0045 0x45 +0x4A0046 0x46 +0x4A0047 0x47 +0x4A0048 0x48 +0x4A0049 0x49 +0x4A004A 0x4A +0x4A004B 0x4B +0x4A004C 0x4C +0x4A004D 0x4D +0x4A004E 0x4E +0x4A004F 0x4F +0x4A0050 0x50 +0x4A0051 0x51 +0x4A0052 0x52 +0x4A0053 0x53 +0x4A0054 0x54 +0x4A0055 0x55 +0x4A0056 0x56 +0x4A0057 0x57 +0x4A0058 0x58 +0x4A0059 0x59 +0x4A005A 0x5A +0x4A005B 0x5B +0x4A005C 0xA5 # \ -> Yen +0x4A005D 0x5D +0x4A005E 0x5E +0x4A005F 0x5F +0x4A0060 0x60 +0x4A0061 0x61 +0x4A0062 0x62 +0x4A0063 0x63 +0x4A0064 0x64 +0x4A0065 0x65 +0x4A0066 0x66 +0x4A0067 0x67 +0x4A0068 0x68 +0x4A0069 0x69 +0x4A006A 0x6A +0x4A006B 0x6B +0x4A006C 0x6C +0x4A006D 0x6D +0x4A006E 0x6E +0x4A006F 0x6F +0x4A0070 0x70 +0x4A0071 0x71 +0x4A0072 0x72 +0x4A0073 0x73 +0x4A0074 0x74 +0x4A0075 0x75 +0x4A0076 0x76 +0x4A0077 0x77 +0x4A0078 0x78 +0x4A0079 0x79 +0x4A007A 0x7A +0x4A007B 0x7B +0x4A007C 0x7C +0x4A007D 0x7D +0x4A007E 0x203E + + +# Mappings for JIS Katakana. + +0x490021 0x3002 +0x490022 0x300C +0x490023 0x300D +0x490024 0x3001 +0x490025 0x30FB +0x490026 0x30F2 +0x490027 0x30A1 +0x490028 0x30A3 +0x490029 0x30A5 +0x49002A 0x30A7 +0x49002B 0x30A9 +0x49002C 0x30E3 +0x49002D 0x30E5 +0x49002E 0x30E7 +0x49002F 0x30C3 +0x490030 0x30FC +0x490031 0x30A2 +0x490032 0x30A4 +0x490033 0x30A6 +0x490034 0x30A8 +0x490035 0x30AA +0x490036 0x30AB +0x490037 0x30AD +0x490038 0x30AF +0x490039 0x30B1 +0x49003A 0x30B3 +0x49003B 0x30B5 +0x49003C 0x30B7 +0x49003D 0x30B9 +0x49003E 0x30BB +0x49003F 0x30BD +0x490040 0x30BF +0x490041 0x30C1 +0x490042 0x30C4 +0x490043 0x30C6 +0x490044 0x30C8 +0x490045 0x30CA +0x490046 0x30CB +0x490047 0x30CC +0x490048 0x30CD +0x490049 0x30CE +0x49004A 0x30CF +0x49004B 0x30D2 +0x49004C 0x30D5 +0x49004D 0x30D8 +0x49004E 0x30DB +0x49004F 0x30DE +0x490050 0x30DF +0x490051 0x30E0 +0x490052 0x30E1 +0x490053 0x30E2 +0x490054 0x30E4 +0x490055 0x30E6 +0x490056 0x30E8 +0x490057 0x30E9 +0x490058 0x30EA +0x490059 0x30EB +0x49005A 0x30EC +0x49005B 0x30ED +0x49005C 0x30EF +0x49005D 0x30F3 +0x49005E 0x309B +0x49005F 0x309C + +# For reference, here's what they'd map to if we were mapping to +# halfwidth Katakana. +# +# 0x490021 0xFF61 +# 0x490022 0xFF62 +# 0x490023 0xFF63 +# 0x490024 0xFF64 +# 0x490025 0xFF65 +# 0x490026 0xFF66 +# 0x490027 0xFF67 +# 0x490028 0xFF68 +# 0x490029 0xFF69 +# 0x49002A 0xFF6A +# 0x49002B 0xFF6B +# 0x49002C 0xFF6C +# 0x49002D 0xFF6D +# 0x49002E 0xFF6E +# 0x49002F 0xFF6F +# 0x490030 0xFF70 +# 0x490031 0xFF71 +# 0x490032 0xFF72 +# 0x490033 0xFF73 +# 0x490034 0xFF74 +# 0x490035 0xFF75 +# 0x490036 0xFF76 +# 0x490037 0xFF77 +# 0x490038 0xFF78 +# 0x490039 0xFF79 +# 0x49003A 0xFF7A +# 0x49003B 0xFF7B +# 0x49003C 0xFF7C +# 0x49003D 0xFF7D +# 0x49003E 0xFF7E +# 0x49003F 0xFF7F +# 0x490040 0xFF80 +# 0x490041 0xFF81 +# 0x490042 0xFF82 +# 0x490043 0xFF83 +# 0x490044 0xFF84 +# 0x490045 0xFF85 +# 0x490046 0xFF86 +# 0x490047 0xFF87 +# 0x490048 0xFF88 +# 0x490049 0xFF89 +# 0x49004A 0xFF8A +# 0x49004B 0xFF8B +# 0x49004C 0xFF8C +# 0x49004D 0xFF8D +# 0x49004E 0xFF8E +# 0x49004F 0xFF8F +# 0x490050 0xFF90 +# 0x490051 0xFF91 +# 0x490052 0xFF92 +# 0x490053 0xFF93 +# 0x490054 0xFF94 +# 0x490055 0xFF95 +# 0x490056 0xFF96 +# 0x490057 0xFF97 +# 0x490058 0xFF98 +# 0x490059 0xFF99 +# 0x49005A 0xFF9A +# 0x49005B 0xFF9B +# 0x49005C 0xFF9C +# 0x49005D 0xFF9D +# 0x49005E 0xFF9E +# 0x49005F 0xFF9F diff --git a/externals/figlet/fonts/koi8r.flc b/externals/figlet/fonts/koi8r.flc new file mode 100644 index 0000000000..e324d8b049 --- /dev/null +++ b/externals/figlet/fonts/koi8r.flc @@ -0,0 +1,128 @@ +t \0x80 \0x2500 +t \0x81 \0x2502 +t \0x82 \0x250c +t \0x83 \0x2510 +t \0x84 \0x2514 +t \0x85 \0x2518 +t \0x86 \0x251c +t \0x87 \0x2524 +t \0x88 \0x252c +t \0x89 \0x2534 +t \0x8a \0x253c +t \0x8b \0x2580 +t \0x8c \0x2584 +t \0x8d \0x2588 +t \0x8e \0x258c +t \0x8f \0x2590 +t \0x90 \0x2591 +t \0x91 \0x2592 +t \0x92 \0x2593 +t \0x93 \0x2320 +t \0x94 \0x25a0 +t \0x95 \0x2219 +t \0x96 \0x221a +t \0x97 \0x2248 +t \0x98 \0x2264 +t \0x99 \0x2265 +t \0x9a \0x00a0 +t \0x9b \0x2321 +t \0x9c \0x00b0 +t \0x9d \0x00b2 +t \0x9e \0x00b7 +t \0x9f \0x00f7 +t \0xa0 \0x2550 +t \0xa1 \0x2551 +t \0xa2 \0x2552 +t \0xa3 \0x0451 +t \0xa4 \0x2553 +t \0xa5 \0x2554 +t \0xa6 \0x2555 +t \0xa7 \0x2556 +t \0xa8 \0x2557 +t \0xa9 \0x2558 +t \0xaa \0x2559 +t \0xab \0x255a +t \0xac \0x255b +t \0xad \0x255c +t \0xae \0x255d +t \0xaf \0x255e +t \0xb0 \0x255f +t \0xb1 \0x2560 +t \0xb2 \0x2561 +t \0xb3 \0x0401 +t \0xb4 \0x2562 +t \0xb5 \0x2563 +t \0xb6 \0x2564 +t \0xb7 \0x2565 +t \0xb8 \0x2566 +t \0xb9 \0x2567 +t \0xba \0x2568 +t \0xbb \0x2569 +t \0xbc \0x256a +t \0xbd \0x256b +t \0xbe \0x256c +t \0xbf \0x00a9 +t \0xc0 \0x044e +t \0xc1 \0x0430 +t \0xc2 \0x0431 +t \0xc3 \0x0446 +t \0xc4 \0x0434 +t \0xc5 \0x0435 +t \0xc6 \0x0444 +t \0xc7 \0x0433 +t \0xc8 \0x0445 +t \0xc9 \0x0438 +t \0xca \0x0439 +t \0xcb \0x043a +t \0xcc \0x043b +t \0xcd \0x043c +t \0xce \0x043d +t \0xcf \0x043e +t \0xd0 \0x043f +t \0xd1 \0x044f +t \0xd2 \0x0440 +t \0xd3 \0x0441 +t \0xd4 \0x0442 +t \0xd5 \0x0443 +t \0xd6 \0x0436 +t \0xd7 \0x0432 +t \0xd8 \0x044c +t \0xd9 \0x044b +t \0xda \0x0437 +t \0xdb \0x0448 +t \0xdc \0x044d +t \0xdd \0x0449 +t \0xde \0x0447 +t \0xdf \0x044a +t \0xe0 \0x042e +t \0xe1 \0x0410 +t \0xe2 \0x0411 +t \0xe3 \0x0426 +t \0xe4 \0x0414 +t \0xe5 \0x0415 +t \0xe6 \0x0424 +t \0xe7 \0x0413 +t \0xe8 \0x0425 +t \0xe9 \0x0418 +t \0xea \0x0419 +t \0xeb \0x041a +t \0xec \0x041b +t \0xed \0x041c +t \0xee \0x041d +t \0xef \0x041e +t \0xf0 \0x041f +t \0xf1 \0x042f +t \0xf2 \0x0420 +t \0xf3 \0x0421 +t \0xf4 \0x0422 +t \0xf5 \0x0423 +t \0xf6 \0x0416 +t \0xf7 \0x0412 +t \0xf8 \0x042c +t \0xf9 \0x042b +t \0xfa \0x0417 +t \0xfb \0x0428 +t \0xfc \0x042d +t \0xfd \0x0429 +t \0xfe \0x0427 +t \0xff \0x042a diff --git a/externals/figlet/fonts/lean.flf b/externals/figlet/fonts/lean.flf new file mode 100644 index 0000000000..7e53563c0a --- /dev/null +++ b/externals/figlet/fonts/lean.flf @@ -0,0 +1,1691 @@ +flf2a$ 8 6 27 0 10 0 576 96 +Lean by Glenn Chappell 4/93 -- based on various .sig's +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + + $ $@ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ +$ $ @@ + $$@ + _/ $ @ + _/ $ @ + _/ $ @ + $$ @ +_/ $ @ + $$ @ + @@ + _/ _/ $@ + _/ _/ $ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ + $$ @ + _/ _/ $@ + _/_/_/_/_/ $ @ + _/ _/ $ @ +_/_/_/_/_/ $ @ + _/ _/ $ @ + $$ @ + @@ + $$ @ + _/ $@ + _/_/_/ $ @ + _/_/ $ @ + _/_/ $ @ +_/_/_/ $ @ + _/ $ @ + $$ @@ + $$@ + _/_/ _/ $ @ + _/_/ _/ $ @ + _/ $ @ + _/ _/_/ $ @ +_/ _/_/ $ @ + $$ @ + @@ + $$ @ + _/ $ @ + _/ _/ $@ + _/_/ _/ $ @ +_/ _/ $ @ + _/_/ _/ $ @ + $$ @ + @@ + _/ $@ + _/ $ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ + _/ $@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + _/ $ @ + $$ @@ + _/ $@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @@ + $$@ + _/ _/ _/ $ @ + _/_/_/ $ @ + _/_/_/_/_/ $ @ + _/_/_/ $ @ +_/ _/ _/ $ @ + $$ @ + @@ + $$ @ + _/ $ @ + _/ $@ +_/_/_/_/_/ $ @ + _/ $ @ + _/ $ @ + $$ @ + @@ + @ + @ + @ + @ + $$@ + _/ $ @ +_/ $ @ + $$ @@ + @ + @ + $$@ +_/_/_/_/_/ $ @ + $$ @ + @ + @ + @@ + @ + @ + @ + @ + $$@ +_/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$ @ + _/ $@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + _/_/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ + $$ @ + _/_/_/ $@ + _/ $ @ + _/_/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $@ +_/_/_/_/ $ @ + _/ $ @ + _/ $ @ + $$ @ + @@ + $$@ + _/_/_/_/ $ @ + _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$@ + _/_/_/ $ @ + _/ $ @ + _/_/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + $$@ + _/_/_/_/_/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + @ + $$@ + _/ $ @ + $$ @ + $$ @ +_/ $ @ + $$ @ + @@ + @ + $$@ + _/ $ @ + $$ @ + $$ @ + _/ $ @ +_/ $ @ + $$ @@ + $$@ + _/ $ @ + _/ $ @ +_/ $ @ + _/ $ @ + _/ $ @ + $$ @ + @@ + @ + $$@ + _/_/_/_/_/ $ @ + $$ @ +_/_/_/_/_/ $ @ + $$ @ + @ + @@ + $$ @ + _/ $ @ + _/ $@ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ $ @ + _/_/ $ @ + $$ @ +_/ $ @ + $$ @ + @@ + $$ @ + _/_/_/_/_/ $@ + _/ _/ $ @ + _/ _/_/_/ _/ $ @ + _/ _/ _/ _/ $ @ +_/ _/_/_/_/ $ @ + _/ $ @ + _/_/_/_/_/_/ $ @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/_/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$ @ + _/_/_/ $@ + _/ _/ $ @ + _/_/_/ $ @ + _/ _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$@ + _/_/_/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ + $$ @ + _/_/_/ $@ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$@ + _/_/_/_/ $ @ + _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ + $$@ + _/_/_/_/ $ @ + _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$@ + _/_/_/ $ @ + _/ $ @ + _/ _/_/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$@ + _/_/_/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + _/ $ @ + _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $@ +_/_/_/_/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/_/ _/_/ $ @ + _/ _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/_/ _/ $ @ + _/ _/ _/ $ @ + _/ _/_/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + $$ @ + _/_/_/ $@ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/ _/_/ $ @ +_/ _/ $ @ + _/_/ _/ $ @ + $$ @ + @@ + $$ @ + _/_/_/ $@ + _/ _/ $ @ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$@ + _/_/_/ $ @ + _/ $ @ + _/_/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$@ +_/_/_/_/_/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/ _/ $ @ + _/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ _/ $ @ + _/ _/ _/ $ @ + _/ _/ $ @ + $$ @ + @@ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$@ +_/ _/ $ @ + _/ _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$@ + _/_/_/_/_/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/_/_/_/_/ $ @ + $$ @ + @@ + _/_/ $@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/_/ $ @ + $$ @@ + $$ @ +_/ $ @ + _/ $ @ + _/ $ @ + _/ $@ + _/ $ @ + $$ @ + @@ + _/_/ $@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/_/ $ @ + $$ @@ + _/ $@ + _/ _/ $ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ + @ + @ + @ + @ + @ + $$ @ + $$@ +_/_/_/_/_/ $ @@ + _/ $@ + _/ $ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ + @ + $$@ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ + $$ @ + _/ $ @ + _/_/_/ $@ + _/ _/ $ @ + _/ _/ $ @ +_/_/_/ $ @ + $$ @ + @@ + @ + $$@ + _/_/_/ $ @ + _/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ + @ + $$ @ + _/_/ $@ + _/_/_/_/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ + $$@ + _/_/ $ @ + _/ $ @ +_/_/_/_/ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + @ + $$@ + _/_/_/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/ $ @@ + $$ @ + _/ $ @ + _/_/_/ $@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + $$ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + $$ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @@ + $$ @ + _/ $@ + _/ _/ $ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + $$@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + @ + $$ @ + _/_/_/ _/_/ $@ + _/ _/ _/ $ @ + _/ _/ _/ $ @ +_/ _/ _/ $ @ + $$ @ + @@ + @ + $$ @ + _/_/_/ $@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + @ + $$ @ + _/_/ $@ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + @ + $$ @ + _/_/_/ $@ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/ $ @@ + @ + $$@ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + _/ $ @ + _/ $ @@ + @ + $$@ + _/ _/_/ $ @ + _/_/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ + @ + $$@ + _/_/_/ $ @ + _/_/ $ @ + _/_/ $ @ +_/_/_/ $ @ + $$ @ + @@ + $$ @ + _/ $@ +_/_/_/_/ @ + _/ $ @ +_/ $ @ + _/_/ $ @ + $$ @ + @@ + @ + $$@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ + @ + $$@ + _/ _/ $ @ +_/ _/ $ @ + _/ _/ $ @ + _/ $ @ + $$ @ + @@ + @ + $$@ + _/ _/ _/ $ @ +_/ _/ _/ $ @ + _/ _/ _/ _/ $ @ + _/ _/ $ @ + $$ @ + @@ + @ + $$@ + _/ _/ $ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ + @ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/ $ @@ + @ + $$@ + _/_/_/_/ $ @ + _/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ + _/ $@ + _/ $ @ + _/ $ @ +_/ $ @ + _/ $ @ +_/ $ @ + _/ $ @ + $$ @@ + _/ $@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @@ + _/ $ @ + _/ $@ + _/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @@ + _/ _/ $@ +_/ _/ $ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ + _/ _/ $@ + $$ @ + _/_/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ + _/ _/ $@ + $$ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + _/ _/ $@ + $$ @ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + _/ _/ $@ + $$ @ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ + _/ _/ $@ + $$ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ + _/ _/ $@ + $$ @ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ + $$ @ + _/_/ $@ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ +_/ $ @ + $$ @@ +160 NO-BREAK SPACE + $ $@ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ +$ $ @@ +161 INVERTED EXCLAMATION MARK + $$@ + _/ $ @ + $$ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ +162 CENT SIGN + $$ @ + _/ $@ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + _/ $ @ + $$ @@ +163 POUND SIGN + $$ @ + _/_/ $@ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ + _/_/_/ _/ $ @ +_/_/ _/_/ $ @ + @@ +164 CURRENCY SIGN + $$@ + _/ _/ $ @ + _/_/_/_/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @@ +165 YEN SIGN + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/_/_/ $ @ + _/ $ @ +_/_/_/_/_/ $ @ + _/ $ @ + $$ @@ +166 BROKEN BAR + _/ $@ + _/ $ @ + _/ $ @ + $$ @ + $$ @ + _/ $ @ + _/ $ @ +_/ $ @@ +167 SECTION SIGN + _/_/ $@ + _/ $ @ + _/ $ @ + _/ _/ $ @ + _/ $ @ + _/ $ @ +_/_/ $ @ + $$ @@ +168 DIAERESIS + _/ _/ $@ + $$ @ + $ $ @ + $ $ @ + $ $ @ +$ $ @ + @ + @@ +169 COPYRIGHT SIGN + _/_/_/_/ $ @ + _/ _/ $@ + _/ _/_/_/ _/ $ @ + _/ _/ _/ $ @ + _/ _/ _/ $ @ +_/ _/_/_/ _/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @@ +170 FEMININE ORDINAL INDICATOR + $$@ + _/_/_/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + $$ @ +_/_/_/_/ $ @ + @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + $$@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + $$ @ + @@ +172 NOT SIGN + @ + @ + $$@ +_/_/_/_/_/ $ @ + _/ $ @ + $$ @ + @ + @@ +173 SOFT HYPHEN + @ + @ + $$@ +_/_/_/_/ $ @ + $$ @ + $$ @ + @ + @@ +174 REGISTERED SIGN + _/_/_/_/ $ @ + _/ _/ $@ + _/ _/_/_/ _/ $ @ + _/ _/ _/ _/ $ @ + _/ _/_/_/ _/ $ @ +_/ _/ _/ _/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @@ +175 MACRON + _/_/_/_/_/ $@ + $$ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ +176 DEGREE SIGN + _/ $@ + _/ _/ $ @ + _/ $ @ + $$ @ + $$ @ +$$ @ + @ + @@ +177 PLUS-MINUS SIGN + $$ @ + _/ $ @ + _/ $@ + _/_/_/_/_/ $ @ + _/ $ @ +_/_/_/_/_/ $ @ + $$ @ + @@ +178 SUPERSCRIPT TWO + $$ @ + _/_/ $@ + _/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @ + @@ +179 SUPERSCRIPT THREE + $$@ + _/_/_/ $ @ + _/ $ @ + _/ $ @ +_/_/ $ @ + $$ @ + @ + @@ +180 ACUTE ACCENT + _/ $@ + _/ $ @ + $$ @ + $$ @ + $$ @ +$$ @ + @ + @@ +181 MICRO SIGN + @ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @ + _/ $ @ +_/ $ @@ +182 PILCROW SIGN + $$@ + _/_/_/_/ $ @ +_/_/_/ _/ $ @ + _/_/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + $$ @ + @@ +183 MIDDLE DOT + @ + @ + $$@ + _/ $ @ + $$ @ +$$ @ + @ + @@ +184 CEDILLA + @ + @ + @ + @ + @ + $$@ + _/ $ @ +_/_/ $ @@ +185 SUPERSCRIPT ONE + $$@ + _/ $ @ +_/_/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @ + @@ +186 MASCULINE ORDINAL INDICATOR + $$ @ + _/_/ $@ + _/ _/ $ @ + _/_/ $ @ + $$ @ +_/_/_/_/ $ @ + @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + $$ @ + _/ _/ $ @ + _/ _/ $@ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ +188 VULGAR FRACTION ONE QUARTER + $$ @ + _/ _/ $@ +_/_/ _/ _/ _/ $ @ + _/ _/ _/ _/ $@ +_/ _/ _/_/_/_/ $ @ + _/ _/ $ @ + $$ @ + @@ +189 VULGAR FRACTION ONE HALF + $$ @ + _/ _/ $ @ +_/_/ _/ _/_/ $@ + _/ _/ _/ $ @ +_/ _/ _/ $ @ + _/ _/_/_/ $ @ + $$ @ + @@ +190 VULGAR FRACTION THREE QUARTERS + $$ @ + _/_/_/ _/ $@ + _/ _/ _/ _/ $ @ + _/ _/ _/ _/ $@ +_/_/ _/ _/_/_/_/ $ @ + _/ _/ $ @ + $$ @ + @@ +191 INVERTED QUESTION MARK + $$@ + _/ $ @ + $$ @ + _/_/ $ @ +_/ $ @ + _/_/ $ @ + $$ @ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + _/ $@ + _/ $ @ + _/_/ $@ + _/ _/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + _/ $@ + _/ $ @ + _/_/ $@ + _/ _/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + $$ @ + _/_/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + _/ _/ $@ + _/ _/ $ @ + $$ @ + _/_/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _/_/ $@ + _/ _/ $ @ + _/_/ $ @ + _/ _/ $ @ + _/_/_/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +198 LATIN CAPITAL LETTER AE + $$@ + _/_/_/_/_/_/ $ @ + _/ _/ $ @ + _/_/_/_/_/_/ $ @ + _/ _/ $ @ +_/ _/_/_/_/ $ @ + $$ @ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + $$@ + _/_/_/ $ @ + _/ $ @ + _/ $ @ + _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/ $ @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + _/ $ @ + _/ $@ + _/_/_/_/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + _/ $ @ + _/ $@ + _/_/_/_/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + _/_/_/_/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/_/_/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + _/ $ @ + _/ $@ + _/_/_/ $ @ + _/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + _/ $@ + _/ $ @ + _/_/_/ $ @ + _/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + _/ $@ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/_/ $ @ + _/ $ @ + _/ $ @ +_/_/_/ $ @ + $$ @ + @@ +208 LATIN CAPITAL LETTER ETH + $$ @ + _/_/_/ $@ + _/ _/ $ @ +_/_/_/ _/ $ @ + _/ _/ $ @ +_/_/_/ $ @ + $$ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + _/ _/ $@ + _/ _/ $ @ + _/ _/ $ @ + _/_/ _/ $ @ + _/ _/_/ $ @ +_/ _/ $ @ + $$ @ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + _/ $@ + _/ $ @ + _/_/ $@ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + _/ $@ + _/ $ @ + _/_/ $@ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + _/ _/ $@ + _/ _/ $ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +215 MULTIPLICATION SIGN + @ + $$@ + _/ _/ $ @ + _/ $ @ +_/ _/ $ @ + $$ @ + @ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + $$@ + _/_/_/_/ $ @ + _/ _/_/ $ @ + _/ _/ _/ $ @ + _/_/ _/ $ @ +_/_/_/_/ $ @ + $$ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + _/ $@ + _/ $ @ + $$@ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + _/ $@ + _/ $ @ + $$@ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + $$ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _/ _/ $@ + $$ @ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + _/ $ @ + _/ $@ +_/ _/ $ @ + _/ _/ $ @ + _/ $ @ + _/ $ @ + $$ @ + @@ +222 LATIN CAPITAL LETTER THORN + $$ @ + _/ $ @ + _/_/_/ $@ + _/ _/ $ @ + _/_/_/ $ @ +_/ $ @ + $$ @ + @@ +223 LATIN SMALL LETTER SHARP S + $$ @ + _/_/ $@ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ +_/ $ @ + $$ @@ +224 LATIN SMALL LETTER A WITH GRAVE + _/ $@ + _/ $ @ + $$@ + _/_/_/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + _/ $@ + _/ $ @ + $$ @ + _/_/_/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + _/ $@ + _/ _/ $ @ + $$ @ + _/_/_/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +227 LATIN SMALL LETTER A WITH TILDE + _/ _/ $@ + _/ _/ $ @ + $$ @ + _/_/_/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + _/ $@ + _/ _/ $ @ + _/ $ @ + _/_/_/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +230 LATIN SMALL LETTER AE + @ + $$ @ + _/_/_/ _/_/ $@ + _/ _/_/_/_/_/ $ @ +_/ _/_/ $ @ + _/_/_/ _/_/_/ $ @ + $$ @ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + $$@ + _/_/_/ $ @ + _/ $ @ + _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/ $ @@ +232 LATIN SMALL LETTER E WITH GRAVE + _/ $@ + _/ $ @ + _/_/ $ @ + _/_/_/_/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + _/ $@ + _/ $ @ + _/_/ $ @ + _/_/_/_/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + _/_/ $ @ + _/_/_/_/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/ $ @ + _/_/_/_/ $ @ +_/ $ @ + _/_/_/ $ @ + $$ @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + _/ $@ + _/ $ @ + $$ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + _/ $@ + _/ $ @ + $$ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + _/ $@ + _/ _/ $ @ + $$ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _/ _/ $@ + $$ @ + _/ $ @ + _/ $ @ + _/ $ @ +_/ $ @ + $$ @ + @@ +240 LATIN SMALL LETTER ETH + _/ _/ $@ + _/ $ @ + _/ _/ $@ + _/_/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + _/ _/ $@ + _/ _/ $ @ + $$ @ + _/_/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + $$ @ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + _/ $@ + _/ $ @ + $$ @ + _/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + _/ $@ + _/ $ @ + $$ @ + _/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + $$ @ + _/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + _/_/_/ $@ + _/ _/ $ @ + $$ @ + _/_/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _/ _/ $@ + $$ @ + _/_/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/ $ @ + $$ @ + @@ +247 DIVISION SIGN + $$ @ + _/ $ @ + $$@ +_/_/_/_/_/ $ @ + $$ @ + _/ $ @ + $$ @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + $$@ + _/_/_/ $ @ + _/ _/_/ $ @ + _/_/ _/ $ @ +_/_/_/ $ @ + $$ @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + _/ $ @ + _/ $ @ + $$@ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + _/ $@ + _/ $ @ + $$ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + _/_/ $@ + _/ _/ $ @ + $$ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _/ _/ $@ + $$ @ + _/ _/ $ @ + _/ _/ $ @ +_/ _/ $ @ + _/_/_/ $ @ + $$ @ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + _/ $@ + _/ $ @ + $$@ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/ $ @@ +254 LATIN SMALL LETTER THORN + $$ @ + _/ $ @ + _/_/_/ $@ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/ $ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _/ _/ $@ + $$ @ + _/ _/ $ @ + _/ _/ $ @ + _/ _/ $ @ + _/_/_/ $ @ + _/ $ @ +_/_/ $ @@ diff --git a/externals/figlet/fonts/mini.flf b/externals/figlet/fonts/mini.flf new file mode 100644 index 0000000000..3b72606ca0 --- /dev/null +++ b/externals/figlet/fonts/mini.flf @@ -0,0 +1,899 @@ +flf2a$ 4 3 10 0 10 0 1920 96 +Mini by Glenn Chappell 4/93 +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + +$$@ +$$@ +$$@ +$$@@ + @ + |$@ + o$@ + @@ + @ + ||$@ + @ + @@ + @ + -|-|-$@ + -|-|-$@ + @@ + _$@ + (|$ @ + _|)$@ + @@ + @ + O/$@ + /O$@ + @@ + @ + ()$ @ + (_X$@ + @@ + @ + /$@ + @ + @@ + @ + /$@ + |$ @ + \$@@ + @ + \$ @ + |$@ + /$ @@ + @ + \|/$@ + /|\$@ + @@ + @ + _|_$@ + |$ @ + @@ + @ + @ + o$@ + /$@@ + @ + __$@ + @ + @@ + @ + @ + o$@ + @@ + @ + /$@ + /$ @ + @@ + _$ @ + / \$@ + \_/$@ + @@ + @ + /|$@ + |$@ + @@ + _$ @ + )$@ + /_$@ + @@ + _$ @ + _)$@ + _)$@ + @@ + @ + |_|_$@ + |$ @ + @@ + _$ @ + |_$ @ + _)$@ + @@ + _$ @ + |_$ @ + |_)$@ + @@ + __$@ + /$@ + /$ @ + @@ + _$ @ + (_)$@ + (_)$@ + @@ + _$ @ + (_|$@ + |$@ + @@ + @ + o$@ + o$@ + @@ + @ + o$@ + o$@ + /$@@ + @ + /$@ + \$@ + @@ + @ + --$@ + --$@ + @@ + @ + \$@ + /$@ + @@ + _$ @ + )$@ + o$ @ + @@ + __$ @ + / \$@ + | (|/$@ + \__$ @@ + @ + /\$ @ + /--\$@ + @@ + _$ @ + |_)$@ + |_)$@ + @@ + _$@ + /$ @ + \_$@ + @@ + _$ @ + | \$@ + |_/$@ + @@ + _$@ + |_$@ + |_$@ + @@ + _$@ + |_$@ + |$ @ + @@ + __$@ + /__$@ + \_|$@ + @@ + @ + |_|$@ + | |$@ + @@ + ___$@ + |$ @ + _|_$@ + @@ + @ + |$@ + \_|$@ + @@ + @ + |/$@ + |\$@ + @@ + @ + |$ @ + |_$@ + @@ + @ + |\/|$@ + | |$@ + @@ + @ + |\ |$@ + | \|$@ + @@ + _$ @ + / \$@ + \_/$@ + @@ + _$ @ + |_)$@ + |$ @ + @@ + _$ @ + / \$@ + \_X$@ + @@ + _$ @ + |_)$@ + | \$@ + @@ + __$@ + (_$ @ + __)$@ + @@ + ___$@ + |$ @ + |$ @ + @@ + @ + | |$@ + |_|$@ + @@ + @ + \ /$@ + \/$ @ + @@ + @ + \ /$@ + \/\/$ @ + @@ + @ + \/$@ + /\$@ + @@ + @ + \_/$@ + |$ @ + @@ + __$@ + /$@ + /_$@ + @@ + _$@ + |$ @ + |_$@ + @@ + @ + \$ @ + \$@ + @@ + _$ @ + |$@ + _|$@ + @@ + /\$@ + @ + @ + @@ + @ + @ + @ + __$@@ + @ + \$@ + @ + @@ + @ + _.$@ + (_|$@ + @@ + @ + |_$ @ + |_)$@ + @@ + @ + _$@ + (_$@ + @@ + @ + _|$@ + (_|$@ + @@ + @ + _$ @ + (/_$@ + @@ + _$@ + _|_$@ + |$ @ + @@ + @ + _$ @ + (_|$@ + _|$@@ + @ + |_$ @ + | |$@ + @@ + @ + o$@ + |$@ + @@ + @ + o$@ + |$@ + _|$@@ + @ + |$ @ + |<$@ + @@ + @ + |$@ + |$@ + @@ + @ + ._ _$ @ + | | |$@ + @@ + @ + ._$ @ + | |$@ + @@ + @ + _$ @ + (_)$@ + @@ + @ + ._$ @ + |_)$@ + |$ @@ + @ + _.$@ + (_|$@ + |$@@ + @ + ._$@ + |$ @ + @@ + @ + _$@ + _>$@ + @@ + @ + _|_$@ + |_$@ + @@ + @ + @ + |_|$@ + @@ + @ + @ + \/$@ + @@ + @ + @ + \/\/$@ + @@ + @ + @ + ><$@ + @@ + @ + @ + \/$@ + /$ @@ + @ + _$ @ + /_$@ + @@ + ,-$@ + _|$ @ + |$ @ + `-$@@ + |$@ + |$@ + |$@ + |$@@ + -.$ @ + |_$@ + |$ @ + -'$ @@ + /\/$@ + @ + @ + @@ + o o$@ + /\$ @ + /--\$@ + @@ + o_o$@ + / \$@ + \_/$@ + @@ + o o$@ + | |$@ + |_|$@ + @@ + o o$@ + _.$@ + (_|$@ + @@ + o o$@ + _$ @ + (_)$@ + @@ + o o$@ + @ + |_|$@ + @@ + _$ @ + | )$@ + | )$@ + |$ @@ +160 NO-BREAK SPACE + $$@ + $$@ + $$@ + $$@@ +161 INVERTED EXCLAMATION MARK + @ + o$@ + |$@ + @@ +162 CENT SIGN + @ + |_$@ + (__$@ + |$ @@ +163 POUND SIGN + _$ @ + _/_`$ @ + |___$@ + @@ +164 CURRENCY SIGN + @ + `o'$@ + ' `$@ + @@ +165 YEN SIGN + @ + _\_/_$@ + --|--$@ + @@ +166 BROKEN BAR + |$@ + |$@ + |$@ + |$@@ +167 SECTION SIGN + _$@ + ($ @ + ()$@ + _)$@@ +168 DIAERESIS + o o$@ + @ + @ + @@ +169 COPYRIGHT SIGN + _$ @ + |C|$@ + `-'$@ + @@ +170 FEMININE ORDINAL INDICATOR + _.$@ + (_|$@ + ---$@ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + @ + //$@ + \\$@ + @@ +172 NOT SIGN + @ + __$ @ + |$@ + @@ +173 SOFT HYPHEN + @ + _$@ + @ + @@ +174 REGISTERED SIGN + _$ @ + |R|$@ + `-'$@ + @@ +175 MACRON + __$@ + @ + @ + @@ +176 DEGREE SIGN + O$@ + @ + @ + @@ +177 PLUS-MINUS SIGN + @ + _|_$@ + _|_$@ + @@ +178 SUPERSCRIPT TWO + 2$@ + @ + @ + @@ +179 SUPERSCRIPT THREE + 3$@ + @ + @ + @@ +180 ACUTE ACCENT + /$@ + @ + @ + @@ +181 MICRO SIGN + @ + @ + |_|$@ + |$ @@ +182 PILCROW SIGN + __$ @ + (| |$@ + | |$@ + @@ +183 MIDDLE DOT + @ + o$@ + @ + @@ +184 CEDILLA + @ + @ + @ + S$@@ +185 SUPERSCRIPT ONE + 1$@ + @ + @ + @@ +186 MASCULINE ORDINAL INDICATOR + _$ @ + (_)$@ + ---$@ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + @ + \\$@ + //$@ + @@ +188 VULGAR FRACTION ONE QUARTER + @ + 1/$@ + /4$@ + @@ +189 VULGAR FRACTION ONE HALF + @ + 1/$@ + /2$@ + @@ +190 VULGAR FRACTION THREE QUARTERS + @ + 3/$@ + /4$@ + @@ +191 INVERTED QUESTION MARK + @ + o$@ + (_$@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + \$ @ + /\$ @ + /--\$@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + /$ @ + /\$ @ + /--\$@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /\$ @ + /\$ @ + /--\$@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/$@ + /\$ @ + /--\$@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + o o$@ + /\$ @ + /--\$@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + O$ @ + / \$ @ + /---\$@ + @@ +198 LATIN CAPITAL LETTER AE + _$@ + /|_$@ + /-|_$@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + _$@ + /$ @ + \_$@ + S$@@ +200 LATIN CAPITAL LETTER E WITH GRAVE + \_$@ + |_$@ + |_$@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + _/$@ + |_$ @ + |_$ @ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /\$@ + |_$ @ + |_$ @ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + o_o$@ + |_$ @ + |_$ @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + \__$@ + |$ @ + _|_$@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __/$@ + |$ @ + _|_$@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /\$@ + ___$@ + _|_$@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + o_o$@ + |$ @ + _|_$@ + @@ +208 LATIN CAPITAL LETTER ETH + _$ @ + _|_\$@ + |_/$@ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\/$@ + |\ |$@ + | \|$@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + \$ @ + / \$@ + \_/$@ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + /$ @ + / \$@ + \_/$@ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /\$@ + / \$@ + \_/$@ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/$@ + / \$@ + \_/$@ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + o_o$@ + / \$@ + \_/$@ + @@ +215 MULTIPLICATION SIGN + @ + @ + X$@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + __$ @ + / /\$@ + \/_/$@ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + \$ @ + | |$@ + |_|$@ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + /$ @ + | |$@ + |_|$@ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /\$@ + | |$@ + |_|$@ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + o o$@ + | |$@ + |_|$@ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + /$ @ + \_/$@ + |$ @ + @@ +222 LATIN CAPITAL LETTER THORN + |_$ @ + |_)$@ + |$ @ + @@ +223 LATIN SMALL LETTER SHARP S + _$ @ + | )$@ + | )$@ + |$ @@ +224 LATIN SMALL LETTER A WITH GRAVE + \$ @ + _.$@ + (_|$@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + /$ @ + _.$@ + (_|$@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + /\$@ + _.$@ + (_|$@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/$@ + _.$@ + (_|$@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + o o$@ + _.$@ + (_|$@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + O$ @ + _.$@ + (_|$@ + @@ +230 LATIN SMALL LETTER AE + @ + ___$ @ + (_|/_$@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + _$@ + (_$@ + S$@@ +232 LATIN SMALL LETTER E WITH GRAVE + \$ @ + _$ @ + (/_$@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + /$ @ + _$ @ + (/_$@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + /\$@ + _$ @ + (/_$@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + o o$@ + _$ @ + (/_$@ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + \$@ + @ + |$@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + /$@ + @ + |$@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + /\$@ + @ + |$ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + o o$@ + @ + |$ @ + @@ +240 LATIN SMALL LETTER ETH + X$ @ + \$ @ + (_|$@ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/$@ + ._$ @ + | |$@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + \$ @ + _$ @ + (_)$@ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + /$ @ + _$ @ + (_)$@ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + /\$@ + _$ @ + (_)$@ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/$@ + _$ @ + (_)$@ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + o o$@ + _$ @ + (_)$@ + @@ +247 DIVISION SIGN + o$ @ + ---$@ + o$ @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + _$ @ + (/)$@ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + \$ @ + @ + |_|$@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + /$ @ + @ + |_|$@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + /\$@ + @ + |_|$@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + o o$@ + @ + |_|$@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + /$@ + @ + \/$@ + /$ @@ +254 LATIN SMALL LETTER THORN + @ + |_$ @ + |_)$@ + |$ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + oo$@ + @ + \/$@ + /$ @@ diff --git a/externals/figlet/fonts/mnemonic.flf b/externals/figlet/fonts/mnemonic.flf new file mode 100644 index 0000000000..03e4baa786 --- /dev/null +++ b/externals/figlet/fonts/mnemonic.flf @@ -0,0 +1,3702 @@ +flf2a$ 1 1 12 -1 5 0 0 1797 +mnemonic - a FIGfont by John Cowan +This font uses the mnemonics of RFC1345 +(http://ds.internic.net/rfc/rfc1345.txt) to implement a really large character +set rather crudely, but reversibly. Two-letter mnemonics +are prefixed by &; larger mnemonics are prefixed by &_ and followed by _. +&SP@@ +!@@ +"@@ +&Nb@@ +&DO@@ +%@@ +&@@ +'@@ +(@@ +)@@ +*@@ ++@@ +,@@ +-@@ +.@@ +/@@ +0@@ +1@@ +2@@ +3@@ +4@@ +5@@ +6@@ +7@@ +8@@ +9@@ +:@@ +;@@ +<@@ +=@@ +>@@ +?@@ +&At@@ +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@@ +&(!@@ +&!!@@ +&!)@@ +&'?@@ +&A:@@ +&O:@@ +&U:@@ +&a:@@ +&o:@@ +&u:@@ +&ss@@ +0x0001 START OF HEADING (SOH) +&SH@@ +0x0002 START OF TEXT (STX) +&SX@@ +0x0003 END OF TEXT (ETX) +&EX@@ +0x0004 END OF TRANSMISSION (EOT) +&ET@@ +0x0005 ENQUIRY (ENQ) +&EQ@@ +0x0006 ACKNOWLEDGE (ACK) +&AK@@ +0x0007 BELL (BEL) +&BL@@ +0x0008 BACKSPACE (BS) +&BS@@ +0x0009 CHARACTER TABULATION (HT) +&HT@@ +0x000a LINE FEED (LF) +&LF@@ +0x000b LINE TABULATION (VT) +&VT@@ +0x000c FORM FEED (FF) +&FF@@ +0x000d CARRIAGE RETURN (CR) +&CR@@ +0x000e SHIFT OUT (SO) +&SO@@ +0x000f SHIFT IN (SI) +&SI@@ +0x0010 DATALINK ESCAPE (DLE) +&DL@@ +0x0011 DEVICE CONTROL ONE (DC1) +&D1@@ +0x0012 DEVICE CONTROL TWO (DC2) +&D2@@ +0x0013 DEVICE CONTROL THREE (DC3) +&D3@@ +0x0014 DEVICE CONTROL FOUR (DC4) +&D4@@ +0x0015 NEGATIVE ACKNOWLEDGE (NAK) +&NK@@ +0x0016 SYNCRONOUS IDLE (SYN) +&SY@@ +0x0017 END OF TRANSMISSION BLOCK (ETB) +&EB@@ +0x0018 CANCEL (CAN) +&CN@@ +0x0019 END OF MEDIUM (EM) +&EM@@ +0x001a SUBSTITUTE (SUB) +&SB@@ +0x001b ESCAPE (ESC) +&EC@@ +0x001c FILE SEPARATOR (IS4) +&FS@@ +0x001d GROUP SEPARATOR (IS3) +&GS@@ +0x001e RECORD SEPARATOR (IS2) +&RS@@ +0x001f UNIT SEPARATOR (IS1) +&US@@ +0x007f DELETE (DEL) +&DT@@ +0x0080 PADDING CHARACTER (PAD) +&PA@@ +0x0081 HIGH OCTET PRESET (HOP) +&HO@@ +0x0082 BREAK PERMITTED HERE (BPH) +&BH@@ +0x0083 NO BREAK HERE (NBH) +&NH@@ +0x0084 INDEX (IND) +&IN@@ +0x0085 NEXT LINE (NEL) +&NL@@ +0x0086 START OF SELECTED AREA (SSA) +&SA@@ +0x0087 END OF SELECTED AREA (ESA) +&ES@@ +0x0088 CHARACTER TABULATION SET (HTS) +&HS@@ +0x0089 CHARACTER TABULATION WITH JUSTIFICATION (HTJ) +&HJ@@ +0x008a LINE TABULATION SET (VTS) +&VS@@ +0x008b PARTIAL LINE FORWARD (PLD) +&PD@@ +0x008c PARTIAL LINE BACKWARD (PLU) +&PU@@ +0x008d REVERSE LINE FEED (RI) +&RI@@ +0x008e SINGLE-SHIFT TWO (SS2) +&S2@@ +0x008f SINGLE-SHIFT THREE (SS3) +&S3@@ +0x0090 DEVICE CONTROL STRING (DCS) +&DC@@ +0x0091 PRIVATE USE ONE (PU1) +&P1@@ +0x0092 PRIVATE USE TWO (PU2) +&P2@@ +0x0093 SET TRANSMIT STATE (STS) +&TS@@ +0x0094 CANCEL CHARACTER (CCH) +&CC@@ +0x0095 MESSAGE WAITING (MW) +&MW@@ +0x0096 START OF GUARDED AREA (SPA) +&SG@@ +0x0097 END OF GUARDED AREA (EPA) +&EG@@ +0x0098 START OF STRING (SOS) +&SS@@ +0x0099 SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) +&GC@@ +0x009a SINGLE CHARACTER INTRODUCER (SCI) +&SC@@ +0x009b CONTROL SEQUENCE INTRODUCER (CSI) +&CI@@ +0x009c STRING TERMINATOR (ST) +&ST@@ +0x009d OPERATING SYSTEM COMMAND (OSC) +&OC@@ +0x009e PRIVACY MESSAGE (PM) +&PM@@ +0x009f APPLICATION PROGRAM COMMAND (APC) +&AC@@ +0x00a0 NO-BREAK SPACE +&NS@@ +0x00a1 INVERTED EXCLAMATION MARK +&!I@@ +0x00a2 CENT SIGN +&Ct@@ +0x00a3 POUND SIGN +&Pd@@ +0x00a4 CURRENCY SIGN +&Cu@@ +0x00a5 YEN SIGN +&Ye@@ +0x00a6 BROKEN BAR +&BB@@ +0x00a7 SECTION SIGN +&SE@@ +0x00a8 DIAERESIS +&':@@ +0x00a9 COPYRIGHT SIGN +&Co@@ +0x00aa FEMININE ORDINAL INDICATOR +&-a@@ +0x00ab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +&<<@@ +0x00ac NOT SIGN +&NO@@ +0x00ad SOFT HYPHEN +&--@@ +0x00ae REGISTERED SIGN +&Rg@@ +0x00af MACRON +&'m@@ +0x00b0 DEGREE SIGN +&DG@@ +0x00b1 PLUS-MINUS SIGN +&+-@@ +0x00b2 SUPERSCRIPT TWO +&2S@@ +0x00b3 SUPERSCRIPT THREE +&3S@@ +0x00b4 ACUTE ACCENT +&''@@ +0x00b5 MICRO SIGN +&My@@ +0x00b6 PILCROW SIGN +&PI@@ +0x00b7 MIDDLE DOT +&.M@@ +0x00b8 CEDILLA +&',@@ +0x00b9 SUPERSCRIPT ONE +&1S@@ +0x00ba MASCULINE ORDINAL INDICATOR +&-o@@ +0x00bb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +&>>@@ +0x00bc VULGAR FRACTION ONE QUARTER +&14@@ +0x00bd VULGAR FRACTION ONE HALF +&12@@ +0x00be VULGAR FRACTION THREE QUARTERS +&34@@ +0x00bf INVERTED QUESTION MARK +&?I@@ +0x00c0 LATIN CAPITAL LETTER A WITH GRAVE +&A!@@ +0x00c1 LATIN CAPITAL LETTER A WITH ACUTE +&A'@@ +0x00c2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +&A>@@ +0x00c3 LATIN CAPITAL LETTER A WITH TILDE +&A?@@ +0x00c4 LATIN CAPITAL LETTER A WITH DIAERESIS +&A:@@ +0x00c5 LATIN CAPITAL LETTER A WITH RING ABOVE +&AA@@ +0x00c6 LATIN CAPITAL LETTER AE +&AE@@ +0x00c7 LATIN CAPITAL LETTER C WITH CEDILLA +&C,@@ +0x00c8 LATIN CAPITAL LETTER E WITH GRAVE +&E!@@ +0x00c9 LATIN CAPITAL LETTER E WITH ACUTE +&E'@@ +0x00ca LATIN CAPITAL LETTER E WITH CIRCUMFLEX +&E>@@ +0x00cb LATIN CAPITAL LETTER E WITH DIAERESIS +&E:@@ +0x00cc LATIN CAPITAL LETTER I WITH GRAVE +&I!@@ +0x00cd LATIN CAPITAL LETTER I WITH ACUTE +&I'@@ +0x00ce LATIN CAPITAL LETTER I WITH CIRCUMFLEX +&I>@@ +0x00cf LATIN CAPITAL LETTER I WITH DIAERESIS +&I:@@ +0x00d0 LATIN CAPITAL LETTER ETH (Icelandic) +&D-@@ +0x00d1 LATIN CAPITAL LETTER N WITH TILDE +&N?@@ +0x00d2 LATIN CAPITAL LETTER O WITH GRAVE +&O!@@ +0x00d3 LATIN CAPITAL LETTER O WITH ACUTE +&O'@@ +0x00d4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX +&O>@@ +0x00d5 LATIN CAPITAL LETTER O WITH TILDE +&O?@@ +0x00d6 LATIN CAPITAL LETTER O WITH DIAERESIS +&O:@@ +0x00d7 MULTIPLICATION SIGN +&*X@@ +0x00d8 LATIN CAPITAL LETTER O WITH STROKE +&O/@@ +0x00d9 LATIN CAPITAL LETTER U WITH GRAVE +&U!@@ +0x00da LATIN CAPITAL LETTER U WITH ACUTE +&U'@@ +0x00db LATIN CAPITAL LETTER U WITH CIRCUMFLEX +&U>@@ +0x00dc LATIN CAPITAL LETTER U WITH DIAERESIS +&U:@@ +0x00dd LATIN CAPITAL LETTER Y WITH ACUTE +&Y'@@ +0x00de LATIN CAPITAL LETTER THORN (Icelandic) +&TH@@ +0x00df LATIN SMALL LETTER SHARP S (German) +&ss@@ +0x00e0 LATIN SMALL LETTER A WITH GRAVE +&a!@@ +0x00e1 LATIN SMALL LETTER A WITH ACUTE +&a'@@ +0x00e2 LATIN SMALL LETTER A WITH CIRCUMFLEX +&a>@@ +0x00e3 LATIN SMALL LETTER A WITH TILDE +&a?@@ +0x00e4 LATIN SMALL LETTER A WITH DIAERESIS +&a:@@ +0x00e5 LATIN SMALL LETTER A WITH RING ABOVE +&aa@@ +0x00e6 LATIN SMALL LETTER AE +&ae@@ +0x00e7 LATIN SMALL LETTER C WITH CEDILLA +&c,@@ +0x00e8 LATIN SMALL LETTER E WITH GRAVE +&e!@@ +0x00e9 LATIN SMALL LETTER E WITH ACUTE +&e'@@ +0x00ea LATIN SMALL LETTER E WITH CIRCUMFLEX +&e>@@ +0x00eb LATIN SMALL LETTER E WITH DIAERESIS +&e:@@ +0x00ec LATIN SMALL LETTER I WITH GRAVE +&i!@@ +0x00ed LATIN SMALL LETTER I WITH ACUTE +&i'@@ +0x00ee LATIN SMALL LETTER I WITH CIRCUMFLEX +&i>@@ +0x00ef LATIN SMALL LETTER I WITH DIAERESIS +&i:@@ +0x00f0 LATIN SMALL LETTER ETH (Icelandic) +&d-@@ +0x00f1 LATIN SMALL LETTER N WITH TILDE +&n?@@ +0x00f2 LATIN SMALL LETTER O WITH GRAVE +&o!@@ +0x00f3 LATIN SMALL LETTER O WITH ACUTE +&o'@@ +0x00f4 LATIN SMALL LETTER O WITH CIRCUMFLEX +&o>@@ +0x00f5 LATIN SMALL LETTER O WITH TILDE +&o?@@ +0x00f6 LATIN SMALL LETTER O WITH DIAERESIS +&o:@@ +0x00f7 DIVISION SIGN +&-:@@ +0x00f8 LATIN SMALL LETTER O WITH STROKE +&o/@@ +0x00f9 LATIN SMALL LETTER U WITH GRAVE +&u!@@ +0x00fa LATIN SMALL LETTER U WITH ACUTE +&u'@@ +0x00fb LATIN SMALL LETTER U WITH CIRCUMFLEX +&u>@@ +0x00fc LATIN SMALL LETTER U WITH DIAERESIS +&u:@@ +0x00fd LATIN SMALL LETTER Y WITH ACUTE +&y'@@ +0x00fe LATIN SMALL LETTER THORN (Icelandic) +&th@@ +0x00ff LATIN SMALL LETTER Y WITH DIAERESIS +&y:@@ +0x0100 LATIN CAPITAL LETTER A WITH MACRON +&A-@@ +0x0101 LATIN SMALL LETTER A WITH MACRON +&a-@@ +0x0102 LATIN CAPITAL LETTER A WITH BREVE +&A(@@ +0x0103 LATIN SMALL LETTER A WITH BREVE +&a(@@ +0x0104 LATIN CAPITAL LETTER A WITH OGONEK +&A;@@ +0x0105 LATIN SMALL LETTER A WITH OGONEK +&a;@@ +0x0106 LATIN CAPITAL LETTER C WITH ACUTE +&C'@@ +0x0107 LATIN SMALL LETTER C WITH ACUTE +&c'@@ +0x0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX +&C>@@ +0x0109 LATIN SMALL LETTER C WITH CIRCUMFLEX +&c>@@ +0x010a LATIN CAPITAL LETTER C WITH DOT ABOVE +&C.@@ +0x010b LATIN SMALL LETTER C WITH DOT ABOVE +&c.@@ +0x010c LATIN CAPITAL LETTER C WITH CARON +&C<@@ +0x010d LATIN SMALL LETTER C WITH CARON +&c<@@ +0x010e LATIN CAPITAL LETTER D WITH CARON +&D<@@ +0x010f LATIN SMALL LETTER D WITH CARON +&d<@@ +0x0110 LATIN CAPITAL LETTER D WITH STROKE +&D/@@ +0x0111 LATIN SMALL LETTER D WITH STROKE +&d/@@ +0x0112 LATIN CAPITAL LETTER E WITH MACRON +&E-@@ +0x0113 LATIN SMALL LETTER E WITH MACRON +&e-@@ +0x0114 LATIN CAPITAL LETTER E WITH BREVE +&E(@@ +0x0115 LATIN SMALL LETTER E WITH BREVE +&e(@@ +0x0116 LATIN CAPITAL LETTER E WITH DOT ABOVE +&E.@@ +0x0117 LATIN SMALL LETTER E WITH DOT ABOVE +&e.@@ +0x0118 LATIN CAPITAL LETTER E WITH OGONEK +&E;@@ +0x0119 LATIN SMALL LETTER E WITH OGONEK +&e;@@ +0x011a LATIN CAPITAL LETTER E WITH CARON +&E<@@ +0x011b LATIN SMALL LETTER E WITH CARON +&e<@@ +0x011c LATIN CAPITAL LETTER G WITH CIRCUMFLEX +&G>@@ +0x011d LATIN SMALL LETTER G WITH CIRCUMFLEX +&g>@@ +0x011e LATIN CAPITAL LETTER G WITH BREVE +&G(@@ +0x011f LATIN SMALL LETTER G WITH BREVE +&g(@@ +0x0120 LATIN CAPITAL LETTER G WITH DOT ABOVE +&G.@@ +0x0121 LATIN SMALL LETTER G WITH DOT ABOVE +&g.@@ +0x0122 LATIN CAPITAL LETTER G WITH CEDILLA +&G,@@ +0x0123 LATIN SMALL LETTER G WITH CEDILLA +&g,@@ +0x0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX +&H>@@ +0x0125 LATIN SMALL LETTER H WITH CIRCUMFLEX +&h>@@ +0x0126 LATIN CAPITAL LETTER H WITH STROKE +&H/@@ +0x0127 LATIN SMALL LETTER H WITH STROKE +&h/@@ +0x0128 LATIN CAPITAL LETTER I WITH TILDE +&I?@@ +0x0129 LATIN SMALL LETTER I WITH TILDE +&i?@@ +0x012a LATIN CAPITAL LETTER I WITH MACRON +&I-@@ +0x012b LATIN SMALL LETTER I WITH MACRON +&i-@@ +0x012c LATIN CAPITAL LETTER I WITH BREVE +&I(@@ +0x012d LATIN SMALL LETTER I WITH BREVE +&i(@@ +0x012e LATIN CAPITAL LETTER I WITH OGONEK +&I;@@ +0x012f LATIN SMALL LETTER I WITH OGONEK +&i;@@ +0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE +&I.@@ +0x0131 LATIN SMALL LETTER I DOTLESS +&i.@@ +0x0132 LATIN CAPITAL LIGATURE IJ +&IJ@@ +0x0133 LATIN SMALL LIGATURE IJ +&ij@@ +0x0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX +&J>@@ +0x0135 LATIN SMALL LETTER J WITH CIRCUMFLEX +&j>@@ +0x0136 LATIN CAPITAL LETTER K WITH CEDILLA +&K,@@ +0x0137 LATIN SMALL LETTER K WITH CEDILLA +&k,@@ +0x0138 LATIN SMALL LETTER KRA (Greenlandic) +&kk@@ +0x0139 LATIN CAPITAL LETTER L WITH ACUTE +&L'@@ +0x013a LATIN SMALL LETTER L WITH ACUTE +&l'@@ +0x013b LATIN CAPITAL LETTER L WITH CEDILLA +&L,@@ +0x013c LATIN SMALL LETTER L WITH CEDILLA +&l,@@ +0x013d LATIN CAPITAL LETTER L WITH CARON +&L<@@ +0x013e LATIN SMALL LETTER L WITH CARON +&l<@@ +0x013f LATIN CAPITAL LETTER L WITH MIDDLE DOT +&L.@@ +0x0140 LATIN SMALL LETTER L WITH MIDDLE DOT +&l.@@ +0x0141 LATIN CAPITAL LETTER L WITH STROKE +&L/@@ +0x0142 LATIN SMALL LETTER L WITH STROKE +&l/@@ +0x0143 LATIN CAPITAL LETTER N WITH ACUTE +&N'@@ +0x0144 LATIN SMALL LETTER N WITH ACUTE +&n'@@ +0x0145 LATIN CAPITAL LETTER N WITH CEDILLA +&N,@@ +0x0146 LATIN SMALL LETTER N WITH CEDILLA +&n,@@ +0x0147 LATIN CAPITAL LETTER N WITH CARON +&N<@@ +0x0148 LATIN SMALL LETTER N WITH CARON +&n<@@ +0x0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +&'n@@ +0x014a LATIN CAPITAL LETTER ENG (Lappish) +&NG@@ +0x014b LATIN SMALL LETTER ENG (Lappish) +&ng@@ +0x014c LATIN CAPITAL LETTER O WITH MACRON +&O-@@ +0x014d LATIN SMALL LETTER O WITH MACRON +&o-@@ +0x014e LATIN CAPITAL LETTER O WITH BREVE +&O(@@ +0x014f LATIN SMALL LETTER O WITH BREVE +&o(@@ +0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +&O"@@ +0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE +&o"@@ +0x0152 LATIN CAPITAL LIGATURE OE +&OE@@ +0x0153 LATIN SMALL LIGATURE OE +&oe@@ +0x0154 LATIN CAPITAL LETTER R WITH ACUTE +&R'@@ +0x0155 LATIN SMALL LETTER R WITH ACUTE +&r'@@ +0x0156 LATIN CAPITAL LETTER R WITH CEDILLA +&R,@@ +0x0157 LATIN SMALL LETTER R WITH CEDILLA +&r,@@ +0x0158 LATIN CAPITAL LETTER R WITH CARON +&R<@@ +0x0159 LATIN SMALL LETTER R WITH CARON +&r<@@ +0x015a LATIN CAPITAL LETTER S WITH ACUTE +&S'@@ +0x015b LATIN SMALL LETTER S WITH ACUTE +&s'@@ +0x015c LATIN CAPITAL LETTER S WITH CIRCUMFLEX +&S>@@ +0x015d LATIN SMALL LETTER S WITH CIRCUMFLEX +&s>@@ +0x015e LATIN CAPITAL LETTER S WITH CEDILLA +&S,@@ +0x015f LATIN SMALL LETTER S WITH CEDILLA +&s,@@ +0x0160 LATIN CAPITAL LETTER S WITH CARON +&S<@@ +0x0161 LATIN SMALL LETTER S WITH CARON +&s<@@ +0x0162 LATIN CAPITAL LETTER T WITH CEDILLA +&T,@@ +0x0163 LATIN SMALL LETTER T WITH CEDILLA +&t,@@ +0x0164 LATIN CAPITAL LETTER T WITH CARON +&T<@@ +0x0165 LATIN SMALL LETTER T WITH CARON +&t<@@ +0x0166 LATIN CAPITAL LETTER T WITH STROKE +&T/@@ +0x0167 LATIN SMALL LETTER T WITH STROKE +&t/@@ +0x0168 LATIN CAPITAL LETTER U WITH TILDE +&U?@@ +0x0169 LATIN SMALL LETTER U WITH TILDE +&u?@@ +0x016a LATIN CAPITAL LETTER U WITH MACRON +&U-@@ +0x016b LATIN SMALL LETTER U WITH MACRON +&u-@@ +0x016c LATIN CAPITAL LETTER U WITH BREVE +&U(@@ +0x016d LATIN SMALL LETTER U WITH BREVE +&u(@@ +0x016e LATIN CAPITAL LETTER U WITH RING ABOVE +&U0@@ +0x016f LATIN SMALL LETTER U WITH RING ABOVE +&u0@@ +0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +&U"@@ +0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE +&u"@@ +0x0172 LATIN CAPITAL LETTER U WITH OGONEK +&U;@@ +0x0173 LATIN SMALL LETTER U WITH OGONEK +&u;@@ +0x0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX +&W>@@ +0x0175 LATIN SMALL LETTER W WITH CIRCUMFLEX +&w>@@ +0x0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +&Y>@@ +0x0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX +&y>@@ +0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS +&Y:@@ +0x0179 LATIN CAPITAL LETTER Z WITH ACUTE +&Z'@@ +0x017a LATIN SMALL LETTER Z WITH ACUTE +&z'@@ +0x017b LATIN CAPITAL LETTER Z WITH DOT ABOVE +&Z.@@ +0x017c LATIN SMALL LETTER Z WITH DOT ABOVE +&z.@@ +0x017d LATIN CAPITAL LETTER Z WITH CARON +&Z<@@ +0x017e LATIN SMALL LETTER Z WITH CARON +&z<@@ +0x01a0 LATIN CAPITAL LETTER O WITH HORN +&O9@@ +0x01a1 LATIN SMALL LETTER O WITH HORN +&o9@@ +0x01a2 LATIN CAPITAL LETTER OI +&OI@@ +0x01a3 LATIN SMALL LETTER OI +&oi@@ +0x01a6 LATIN LETTER YR +&yr@@ +0x01af LATIN CAPITAL LETTER U WITH HORN +&U9@@ +0x01b0 LATIN SMALL LETTER U WITH HORN +&u9@@ +0x01b5 LATIN CAPITAL LETTER Z WITH STROKE +&Z/@@ +0x01b6 LATIN SMALL LETTER Z WITH STROKE +&z/@@ +0x01b7 LATIN CAPITAL LETTER EZH +&ED@@ +0x01cd LATIN CAPITAL LETTER A WITH CARON +&A<@@ +0x01ce LATIN SMALL LETTER A WITH CARON +&a<@@ +0x01cf LATIN CAPITAL LETTER I WITH CARON +&I<@@ +0x01d0 LATIN SMALL LETTER I WITH CARON +&i<@@ +0x01d1 LATIN CAPITAL LETTER O WITH CARON +&O<@@ +0x01d2 LATIN SMALL LETTER O WITH CARON +&o<@@ +0x01d3 LATIN CAPITAL LETTER U WITH CARON +&U<@@ +0x01d4 LATIN SMALL LETTER U WITH CARON +&u<@@ +0x01d5 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +&_U:-_@@ +0x01d6 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +&_u:-_@@ +0x01d7 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +&_U:'_@@ +0x01d8 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +&_u:'_@@ +0x01d9 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +&_U:<_@@ +0x01da LATIN SMALL LETTER U WITH DIAERESIS AND CARON +&_u:<_@@ +0x01db LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +&_U:!_@@ +0x01dc LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE +&_u:!_@@ +0x01de LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +&A1@@ +0x01df LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +&a1@@ +0x01e0 LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +&A7@@ +0x01e1 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON +&a7@@ +0x01e2 LATIN CAPITAL LETTER AE WITH MACRON +&A3@@ +0x01e3 LATIN SMALL LETTER AE WITH MACRON +&a3@@ +0x01e4 LATIN CAPITAL LETTER G WITH STROKE +&G/@@ +0x01e5 LATIN SMALL LETTER G WITH STROKE +&g/@@ +0x01e6 LATIN CAPITAL LETTER G WITH CARON +&G<@@ +0x01e7 LATIN SMALL LETTER G WITH CARON +&g<@@ +0x01e8 LATIN CAPITAL LETTER K WITH CARON +&K<@@ +0x01e9 LATIN SMALL LETTER K WITH CARON +&k<@@ +0x01ea LATIN CAPITAL LETTER O WITH OGONEK +&O;@@ +0x01eb LATIN SMALL LETTER O WITH OGONEK +&o;@@ +0x01ec LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +&O1@@ +0x01ed LATIN SMALL LETTER O WITH OGONEK AND MACRON +&o1@@ +0x01ee LATIN CAPITAL LETTER EZH WITH CARON +&EZ@@ +0x01ef LATIN SMALL LETTER EZH WITH CARON +&ez@@ +0x01f0 LATIN SMALL LETTER J WITH CARON +&j<@@ +0x01f4 LATIN CAPITAL LETTER G WITH ACUTE +&G'@@ +0x01f5 LATIN SMALL LETTER G WITH ACUTE +&g'@@ +0x01fa LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +&_AA'_@@ +0x01fb LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +&_aa'_@@ +0x01fc LATIN CAPITAL LETTER AE WITH ACUTE +&_AE'_@@ +0x01fd LATIN SMALL LETTER AE WITH ACUTE +&_ae'_@@ +0x01fe LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +&_O/'_@@ +0x01ff LATIN SMALL LETTER O WITH STROKE AND ACUTE +&_o/'_@@ +0x02bf MODIFIER LETTER LEFT HALF RING +&;S@@ +0x02c7 CARON +&'<@@ +0x02d8 BREVE +&'(@@ +0x02d9 DOT ABOVE +&'.@@ +0x02da RING ABOVE +&'0@@ +0x02db OGONEK +&';@@ +0x02dd DOUBLE ACUTE ACCENT +&'"@@ +0x0386 GREEK CAPITAL LETTER ALPHA WITH ACUTE +&A%@@ +0x0388 GREEK CAPITAL LETTER EPSILON WITH ACUTE +&E%@@ +0x0389 GREEK CAPITAL LETTER ETA WITH ACUTE +&Y%@@ +0x038a GREEK CAPITAL LETTER IOTA WITH ACUTE +&I%@@ +0x038c GREEK CAPITAL LETTER OMICRON WITH ACUTE +&O%@@ +0x038e GREEK CAPITAL LETTER UPSILON WITH ACUTE +&U%@@ +0x038f GREEK CAPITAL LETTER OMEGA WITH ACUTE +&W%@@ +0x0390 GREEK SMALL LETTER IOTA WITH ACUTE AND DIAERESIS +&i3@@ +0x0391 GREEK CAPITAL LETTER ALPHA +&A*@@ +0x0392 GREEK CAPITAL LETTER BETA +&B*@@ +0x0393 GREEK CAPITAL LETTER GAMMA +&G*@@ +0x0394 GREEK CAPITAL LETTER DELTA +&D*@@ +0x0395 GREEK CAPITAL LETTER EPSILON +&E*@@ +0x0396 GREEK CAPITAL LETTER ZETA +&Z*@@ +0x0397 GREEK CAPITAL LETTER ETA +&Y*@@ +0x0398 GREEK CAPITAL LETTER THETA +&H*@@ +0x0399 GREEK CAPITAL LETTER IOTA +&I*@@ +0x039a GREEK CAPITAL LETTER KAPPA +&K*@@ +0x039b GREEK CAPITAL LETTER LAMDA +&L*@@ +0x039c GREEK CAPITAL LETTER MU +&M*@@ +0x039d GREEK CAPITAL LETTER NU +&N*@@ +0x039e GREEK CAPITAL LETTER XI +&C*@@ +0x039f GREEK CAPITAL LETTER OMICRON +&O*@@ +0x03a0 GREEK CAPITAL LETTER PI +&P*@@ +0x03a1 GREEK CAPITAL LETTER RHO +&R*@@ +0x03a3 GREEK CAPITAL LETTER SIGMA +&S*@@ +0x03a4 GREEK CAPITAL LETTER TAU +&T*@@ +0x03a5 GREEK CAPITAL LETTER UPSILON +&U*@@ +0x03a6 GREEK CAPITAL LETTER PHI +&F*@@ +0x03a7 GREEK CAPITAL LETTER CHI +&X*@@ +0x03a8 GREEK CAPITAL LETTER PSI +&Q*@@ +0x03a9 GREEK CAPITAL LETTER OMEGA +&W*@@ +0x03aa GREEK CAPITAL LETTER IOTA WITH DIAERESIS +&J*@@ +0x03ab GREEK CAPITAL LETTER UPSILON WITH DIAERESIS +&V*@@ +0x03ac GREEK SMALL LETTER ALPHA WITH ACUTE +&a%@@ +0x03ad GREEK SMALL LETTER EPSILON WITH ACUTE +&e%@@ +0x03ae GREEK SMALL LETTER ETA WITH ACUTE +&y%@@ +0x03af GREEK SMALL LETTER IOTA WITH ACUTE +&i%@@ +0x03b0 GREEK SMALL LETTER UPSILON WITH ACUTE AND DIAERESIS +&u3@@ +0x03b1 GREEK SMALL LETTER ALPHA +&a*@@ +0x03b2 GREEK SMALL LETTER BETA +&b*@@ +0x03b3 GREEK SMALL LETTER GAMMA +&g*@@ +0x03b4 GREEK SMALL LETTER DELTA +&d*@@ +0x03b5 GREEK SMALL LETTER EPSILON +&e*@@ +0x03b6 GREEK SMALL LETTER ZETA +&z*@@ +0x03b7 GREEK SMALL LETTER ETA +&y*@@ +0x03b8 GREEK SMALL LETTER THETA +&h*@@ +0x03b9 GREEK SMALL LETTER IOTA +&i*@@ +0x03ba GREEK SMALL LETTER KAPPA +&k*@@ +0x03bb GREEK SMALL LETTER LAMDA +&l*@@ +0x03bc GREEK SMALL LETTER MU +&m*@@ +0x03bd GREEK SMALL LETTER NU +&n*@@ +0x03be GREEK SMALL LETTER XI +&c*@@ +0x03bf GREEK SMALL LETTER OMICRON +&o*@@ +0x03c0 GREEK SMALL LETTER PI +&p*@@ +0x03c1 GREEK SMALL LETTER RHO +&r*@@ +0x03c2 GREEK SMALL LETTER FINAL SIGMA +&*s@@ +0x03c3 GREEK SMALL LETTER SIGMA +&s*@@ +0x03c4 GREEK SMALL LETTER TAU +&t*@@ +0x03c5 GREEK SMALL LETTER UPSILON +&u*@@ +0x03c6 GREEK SMALL LETTER PHI +&f*@@ +0x03c7 GREEK SMALL LETTER CHI +&x*@@ +0x03c8 GREEK SMALL LETTER PSI +&q*@@ +0x03c9 GREEK SMALL LETTER OMEGA +&w*@@ +0x03ca GREEK SMALL LETTER IOTA WITH DIAERESIS +&j*@@ +0x03cb GREEK SMALL LETTER UPSILON WITH DIAERESIS +&v*@@ +0x03cc GREEK SMALL LETTER OMICRON WITH ACUTE +&o%@@ +0x03cd GREEK SMALL LETTER UPSILON WITH ACUTE +&u%@@ +0x03ce GREEK SMALL LETTER OMEGA WITH ACUTE +&w%@@ +0x03d8 GREEK NUMERAL SIGN +&'G@@ +0x03d9 GREEK LOWER NUMERAL SIGN +&,G@@ +0x03da GREEK CAPITAL LETTER STIGMA +&T3@@ +0x03db GREEK SMALL LETTER STIGMA +&t3@@ +0x03dc GREEK CAPITAL LETTER DIGAMMA +&M3@@ +0x03dd GREEK SMALL LETTER DIGAMMA +&m3@@ +0x03de GREEK CAPITAL LETTER KOPPA +&K3@@ +0x03df GREEK SMALL LETTER KOPPA +&k3@@ +0x03e0 GREEK CAPITAL LETTER SAMPI +&P3@@ +0x03e1 GREEK SMALL LETTER SAMPI +&p3@@ +0x03f4 ACUTE ACCENT AND DIAERESIS (Tonos and Dialytika) +&'%@@ +0x03f5 GREEK IOTA BELOW +&j3@@ +0x0401 CYRILLIC CAPITAL LETTER IO +&IO@@ +0x0402 CYRILLIC CAPITAL LETTER DJE (Serbocroatian) +&D%@@ +0x0403 CYRILLIC CAPITAL LETTER GJE (Macedonian) +&G%@@ +0x0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE +&IE@@ +0x0405 CYRILLIC CAPITAL LETTER DZE (Macedonian) +&DS@@ +0x0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +&II@@ +0x0407 CYRILLIC CAPITAL LETTER YI (Ukrainian) +&YI@@ +0x0408 CYRILLIC CAPITAL LETTER JE +&J%@@ +0x0409 CYRILLIC CAPITAL LETTER LJE +&LJ@@ +0x040a CYRILLIC CAPITAL LETTER NJE +&NJ@@ +0x040b CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) +&Ts@@ +0x040c CYRILLIC CAPITAL LETTER KJE (Macedonian) +&KJ@@ +0x040e CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) +&V%@@ +0x040f CYRILLIC CAPITAL LETTER DZHE +&DZ@@ +0x0410 CYRILLIC CAPITAL LETTER A +&A=@@ +0x0411 CYRILLIC CAPITAL LETTER BE +&B=@@ +0x0412 CYRILLIC CAPITAL LETTER VE +&V=@@ +0x0413 CYRILLIC CAPITAL LETTER GHE +&G=@@ +0x0414 CYRILLIC CAPITAL LETTER DE +&D=@@ +0x0415 CYRILLIC CAPITAL LETTER IE +&E=@@ +0x0416 CYRILLIC CAPITAL LETTER ZHE +&Z%@@ +0x0417 CYRILLIC CAPITAL LETTER ZE +&Z=@@ +0x0418 CYRILLIC CAPITAL LETTER I +&I=@@ +0x0419 CYRILLIC CAPITAL LETTER SHORT I +&J=@@ +0x041a CYRILLIC CAPITAL LETTER KA +&K=@@ +0x041b CYRILLIC CAPITAL LETTER EL +&L=@@ +0x041c CYRILLIC CAPITAL LETTER EM +&M=@@ +0x041d CYRILLIC CAPITAL LETTER EN +&N=@@ +0x041e CYRILLIC CAPITAL LETTER O +&O=@@ +0x041f CYRILLIC CAPITAL LETTER PE +&P=@@ +0x0420 CYRILLIC CAPITAL LETTER ER +&R=@@ +0x0421 CYRILLIC CAPITAL LETTER ES +&S=@@ +0x0422 CYRILLIC CAPITAL LETTER TE +&T=@@ +0x0423 CYRILLIC CAPITAL LETTER U +&U=@@ +0x0424 CYRILLIC CAPITAL LETTER EF +&F=@@ +0x0425 CYRILLIC CAPITAL LETTER HA +&H=@@ +0x0426 CYRILLIC CAPITAL LETTER TSE +&C=@@ +0x0427 CYRILLIC CAPITAL LETTER CHE +&C%@@ +0x0428 CYRILLIC CAPITAL LETTER SHA +&S%@@ +0x0429 CYRILLIC CAPITAL LETTER SHCHA +&Sc@@ +0x042a CYRILLIC CAPITAL LETTER HARD SIGN +&="@@ +0x042b CYRILLIC CAPITAL LETTER YERU +&Y=@@ +0x042c CYRILLIC CAPITAL LETTER SOFT SIGN +&%"@@ +0x042d CYRILLIC CAPITAL LETTER E +&JE@@ +0x042e CYRILLIC CAPITAL LETTER YU +&JU@@ +0x042f CYRILLIC CAPITAL LETTER YA +&JA@@ +0x0430 CYRILLIC SMALL LETTER A +&a=@@ +0x0431 CYRILLIC SMALL LETTER BE +&b=@@ +0x0432 CYRILLIC SMALL LETTER VE +&v=@@ +0x0433 CYRILLIC SMALL LETTER GHE +&g=@@ +0x0434 CYRILLIC SMALL LETTER DE +&d=@@ +0x0435 CYRILLIC SMALL LETTER IE +&e=@@ +0x0436 CYRILLIC SMALL LETTER ZHE +&z%@@ +0x0437 CYRILLIC SMALL LETTER ZE +&z=@@ +0x0438 CYRILLIC SMALL LETTER I +&i=@@ +0x0439 CYRILLIC SMALL LETTER SHORT I +&j=@@ +0x043a CYRILLIC SMALL LETTER KA +&k=@@ +0x043b CYRILLIC SMALL LETTER EL +&l=@@ +0x043c CYRILLIC SMALL LETTER EM +&m=@@ +0x043d CYRILLIC SMALL LETTER EN +&n=@@ +0x043e CYRILLIC SMALL LETTER O +&o=@@ +0x043f CYRILLIC SMALL LETTER PE +&p=@@ +0x0440 CYRILLIC SMALL LETTER ER +&r=@@ +0x0441 CYRILLIC SMALL LETTER ES +&s=@@ +0x0442 CYRILLIC SMALL LETTER TE +&t=@@ +0x0443 CYRILLIC SMALL LETTER U +&u=@@ +0x0444 CYRILLIC SMALL LETTER EF +&f=@@ +0x0445 CYRILLIC SMALL LETTER HA +&h=@@ +0x0446 CYRILLIC SMALL LETTER TSE +&c=@@ +0x0447 CYRILLIC SMALL LETTER CHE +&c%@@ +0x0448 CYRILLIC SMALL LETTER SHA +&s%@@ +0x0449 CYRILLIC SMALL LETTER SHCHA +&sc@@ +0x044a CYRILLIC SMALL LETTER HARD SIGN +&='@@ +0x044b CYRILLIC SMALL LETTER YERU +&y=@@ +0x044c CYRILLIC SMALL LETTER SOFT SIGN +&%'@@ +0x044d CYRILLIC SMALL LETTER E +&je@@ +0x044e CYRILLIC SMALL LETTER YU +&ju@@ +0x044f CYRILLIC SMALL LETTER YA +&ja@@ +0x0451 CYRILLIC SMALL LETTER IO +&io@@ +0x0452 CYRILLIC SMALL LETTER DJE (Serbocroatian) +&d%@@ +0x0453 CYRILLIC SMALL LETTER GJE (Macedonian) +&g%@@ +0x0454 CYRILLIC SMALL LETTER UKRAINIAN IE +&ie@@ +0x0455 CYRILLIC SMALL LETTER DZE (Macedonian) +&ds@@ +0x0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +&ii@@ +0x0457 CYRILLIC SMALL LETTER YI (Ukrainian) +&yi@@ +0x0458 CYRILLIC SMALL LETTER JE +&j%@@ +0x0459 CYRILLIC SMALL LETTER LJE +&lj@@ +0x045a CYRILLIC SMALL LETTER NJE +&nj@@ +0x045b CYRILLIC SMALL LETTER TSHE (Serbocroatian) +&ts@@ +0x045c CYRILLIC SMALL LETTER KJE (Macedonian) +&kj@@ +0x045e CYRILLIC SMALL LETTER SHORT U (Byelorussian) +&v%@@ +0x045f CYRILLIC SMALL LETTER DZHE +&dz@@ +0x0462 CYRILLIC CAPITAL LETTER YAT +&Y3@@ +0x0463 CYRILLIC SMALL LETTER YAT +&y3@@ +0x046a CYRILLIC CAPITAL LETTER BIG YUS +&O3@@ +0x046b CYRILLIC SMALL LETTER BIG YUS +&o3@@ +0x0472 CYRILLIC CAPITAL LETTER FITA +&F3@@ +0x0473 CYRILLIC SMALL LETTER FITA +&f3@@ +0x0474 CYRILLIC CAPITAL LETTER IZHITSA +&V3@@ +0x0475 CYRILLIC SMALL LETTER IZHITSA +&v3@@ +0x0480 CYRILLIC CAPITAL LETTER KOPPA +&C3@@ +0x0481 CYRILLIC SMALL LETTER KOPPA +&c3@@ +0x0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN +&G3@@ +0x0491 CYRILLIC SMALL LETTER GHE WITH UPTURN +&g3@@ +0x05d0 HEBREW LETTER ALEF +&A+@@ +0x05d1 HEBREW LETTER BET +&B+@@ +0x05d2 HEBREW LETTER GIMEL +&G+@@ +0x05d3 HEBREW LETTER DALET +&D+@@ +0x05d4 HEBREW LETTER HE +&H+@@ +0x05d5 HEBREW LETTER VAV +&W+@@ +0x05d6 HEBREW LETTER ZAYIN +&Z+@@ +0x05d7 HEBREW LETTER HET +&X+@@ +0x05d8 HEBREW LETTER TET +&Tj@@ +0x05d9 HEBREW LETTER YOD +&J+@@ +0x05da HEBREW LETTER FINAL KAF +&K%@@ +0x05db HEBREW LETTER KAF +&K+@@ +0x05dc HEBREW LETTER LAMED +&L+@@ +0x05dd HEBREW LETTER FINAL MEM +&M%@@ +0x05de HEBREW LETTER MEM +&M+@@ +0x05df HEBREW LETTER FINAL NUN +&N%@@ +0x05e0 HEBREW LETTER NUN +&N+@@ +0x05e1 HEBREW LETTER SAMEKH +&S+@@ +0x05e2 HEBREW LETTER AYIN +&E+@@ +0x05e3 HEBREW LETTER FINAL PE +&P%@@ +0x05e4 HEBREW LETTER PE +&P+@@ +0x05e5 HEBREW LETTER FINAL TSADI +&Zj@@ +0x05e6 HEBREW LETTER TSADI +&ZJ@@ +0x05e7 HEBREW LETTER QOF +&Q+@@ +0x05e8 HEBREW LETTER RESH +&R+@@ +0x05e9 HEBREW LETTER SHIN +&Sh@@ +0x05ea HEBREW LETTER TAV +&T+@@ +0x060c ARABIC COMMA +&,+@@ +0x061b ARABIC SEMICOLON +&;+@@ +0x061f ARABIC QUESTION MARK +&?+@@ +0x0621 ARABIC LETTER HAMZA +&H'@@ +0x0622 ARABIC LETTER ALEF WITH MADDA ABOVE +&aM@@ +0x0623 ARABIC LETTER ALEF WITH HAMZA ABOVE +&aH@@ +0x0624 ARABIC LETTER WAW WITH HAMZA ABOVE +&wH@@ +0x0625 ARABIC LETTER ALEF WITH HAMZA BELOW +&ah@@ +0x0626 ARABIC LETTER YEH WITH HAMZA ABOVE +&yH@@ +0x0627 ARABIC LETTER ALEF +&a+@@ +0x0628 ARABIC LETTER BEH +&b+@@ +0x0629 ARABIC LETTER TEH MARBUTA +&tm@@ +0x062a ARABIC LETTER TEH +&t+@@ +0x062b ARABIC LETTER THEH +&tk@@ +0x062c ARABIC LETTER JEEM +&g+@@ +0x062d ARABIC LETTER HAH +&hk@@ +0x062e ARABIC LETTER KHAH +&x+@@ +0x062f ARABIC LETTER DAL +&d+@@ +0x0630 ARABIC LETTER THAL +&dk@@ +0x0631 ARABIC LETTER REH +&r+@@ +0x0632 ARABIC LETTER ZAIN +&z+@@ +0x0633 ARABIC LETTER SEEN +&s+@@ +0x0634 ARABIC LETTER SHEEN +&sn@@ +0x0635 ARABIC LETTER SAD +&c+@@ +0x0636 ARABIC LETTER DAD +&dd@@ +0x0637 ARABIC LETTER TAH +&tj@@ +0x0638 ARABIC LETTER ZAH +&zH@@ +0x0639 ARABIC LETTER AIN +&e+@@ +0x063a ARABIC LETTER GHAIN +&i+@@ +0x0640 ARABIC TATWEEL +&++@@ +0x0641 ARABIC LETTER FEH +&f+@@ +0x0642 ARABIC LETTER QAF +&q+@@ +0x0643 ARABIC LETTER KAF +&k+@@ +0x0644 ARABIC LETTER LAM +&l+@@ +0x0645 ARABIC LETTER MEEM +&m+@@ +0x0646 ARABIC LETTER NOON +&n+@@ +0x0647 ARABIC LETTER HEH +&h+@@ +0x0648 ARABIC LETTER WAW +&w+@@ +0x0649 ARABIC LETTER ALEF MAKSURA +&j+@@ +0x064a ARABIC LETTER YEH +&y+@@ +0x064b ARABIC FATHATAN +&:+@@ +0x064c ARABIC DAMMATAN +&"+@@ +0x064d ARABIC KASRATAN +&=+@@ +0x064e ARABIC FATHA +&/+@@ +0x064f ARABIC DAMMA +&'+@@ +0x0650 ARABIC KASRA +&1+@@ +0x0651 ARABIC SHADDA +&3+@@ +0x0652 ARABIC SUKUN +&0+@@ +0x0670 SUPERSCRIPT ARABIC LETTER ALEF +&aS@@ +0x067e ARABIC LETTER PEH +&p+@@ +0x06a4 ARABIC LETTER VEH +&v+@@ +0x06af ARABIC LETTER GAF +&gf@@ +0x06f0 EASTERN ARABIC-INDIC DIGIT ZERO +&0a@@ +0x06f1 EASTERN ARABIC-INDIC DIGIT ONE +&1a@@ +0x06f2 EASTERN ARABIC-INDIC DIGIT TWO +&2a@@ +0x06f3 EASTERN ARABIC-INDIC DIGIT THREE +&3a@@ +0x06f4 EASTERN ARABIC-INDIC DIGIT FOUR +&4a@@ +0x06f5 EASTERN ARABIC-INDIC DIGIT FIVE +&5a@@ +0x06f6 EASTERN ARABIC-INDIC DIGIT SIX +&6a@@ +0x06f7 EASTERN ARABIC-INDIC DIGIT SEVEN +&7a@@ +0x06f8 EASTERN ARABIC-INDIC DIGIT EIGHT +&8a@@ +0x06f9 EASTERN ARABIC-INDIC DIGIT NINE +&9a@@ +0x1e00 LATIN CAPITAL LETTER A WITH RING BELOW +&_A-0_@@ +0x1e01 LATIN SMALL LETTER A WITH RING BELOW +&_a-0_@@ +0x1e02 LATIN CAPITAL LETTER B WITH DOT ABOVE +&B.@@ +0x1e03 LATIN SMALL LETTER B WITH DOT ABOVE +&b.@@ +0x1e04 LATIN CAPITAL LETTER B WITH DOT BELOW +&_B-._@@ +0x1e05 LATIN SMALL LETTER B WITH DOT BELOW +&_b-._@@ +0x1e06 LATIN CAPITAL LETTER B WITH LINE BELOW +&B_@@ +0x1e07 LATIN SMALL LETTER B WITH LINE BELOW +&b_@@ +0x1e08 LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +&_C,'_@@ +0x1e09 LATIN SMALL LETTER C WITH CEDILLA AND ACUTE +&_c,'_@@ +0x1e0a LATIN CAPITAL LETTER D WITH DOT ABOVE +&D.@@ +0x1e0b LATIN SMALL LETTER D WITH DOT ABOVE +&d.@@ +0x1e0c LATIN CAPITAL LETTER D WITH DOT BELOW +&_D-._@@ +0x1e0d LATIN SMALL LETTER D WITH DOT BELOW +&_d-._@@ +0x1e0e LATIN CAPITAL LETTER D WITH LINE BELOW +&D_@@ +0x1e0f LATIN SMALL LETTER D WITH LINE BELOW +&d_@@ +0x1e10 LATIN CAPITAL LETTER D WITH CEDILLA +&D,@@ +0x1e11 LATIN SMALL LETTER D WITH CEDILLA +&d,@@ +0x1e12 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +&_D->_@@ +0x1e13 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW +&_d->_@@ +0x1e14 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +&_E-!_@@ +0x1e15 LATIN SMALL LETTER E WITH MACRON AND GRAVE +&_e-!_@@ +0x1e16 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +&_E-'_@@ +0x1e17 LATIN SMALL LETTER E WITH MACRON AND ACUTE +&_e-'_@@ +0x1e18 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +&_E->_@@ +0x1e19 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW +&_e->_@@ +0x1e1a LATIN CAPITAL LETTER E WITH TILDE BELOW +&_E-?_@@ +0x1e1b LATIN SMALL LETTER E WITH TILDE BELOW +&_e-?_@@ +0x1e1c LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +&_E,(_@@ +0x1e1d LATIN SMALL LETTER E WITH CEDILLA AND BREVE +&_e,(_@@ +0x1e1e LATIN CAPITAL LETTER F WITH DOT ABOVE +&F.@@ +0x1e1f LATIN SMALL LETTER F WITH DOT ABOVE +&f.@@ +0x1e20 LATIN CAPITAL LETTER G WITH MACRON +&G-@@ +0x1e21 LATIN SMALL LETTER G WITH MACRON +&g-@@ +0x1e22 LATIN CAPITAL LETTER H WITH DOT ABOVE +&H.@@ +0x1e23 LATIN SMALL LETTER H WITH DOT ABOVE +&h.@@ +0x1e24 LATIN CAPITAL LETTER H WITH DOT BELOW +&_H-._@@ +0x1e25 LATIN SMALL LETTER H WITH DOT BELOW +&_h-._@@ +0x1e26 LATIN CAPITAL LETTER H WITH DIAERESIS +&H:@@ +0x1e27 LATIN SMALL LETTER H WITH DIAERESIS +&h:@@ +0x1e28 LATIN CAPITAL LETTER H WITH CEDILLA +&H,@@ +0x1e29 LATIN SMALL LETTER H WITH CEDILLA +&h,@@ +0x1e2a LATIN CAPITAL LETTER H WITH BREVE BELOW +&_H-(_@@ +0x1e2b LATIN SMALL LETTER H WITH BREVE BELOW +&_h-(_@@ +0x1e2c LATIN CAPITAL LETTER I WITH TILDE BELOW +&_I-?_@@ +0x1e2d LATIN SMALL LETTER I WITH TILDE BELOW +&_i-?_@@ +0x1e2e LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +&_I:'_@@ +0x1e2f LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE +&_i:'_@@ +0x1e30 LATIN CAPITAL LETTER K WITH ACUTE +&K'@@ +0x1e31 LATIN SMALL LETTER K WITH ACUTE +&k'@@ +0x1e32 LATIN CAPITAL LETTER K WITH DOT BELOW +&_K-._@@ +0x1e33 LATIN SMALL LETTER K WITH DOT BELOW +&_k-._@@ +0x1e34 LATIN CAPITAL LETTER K WITH LINE BELOW +&K_@@ +0x1e35 LATIN SMALL LETTER K WITH LINE BELOW +&k_@@ +0x1e36 LATIN CAPITAL LETTER L WITH DOT BELOW +&_L-._@@ +0x1e37 LATIN SMALL LETTER L WITH DOT BELOW +&_l-._@@ +0x1e38 LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +&_L--._@@ +0x1e39 LATIN SMALL LETTER L WITH DOT BELOW AND MACRON +&_l--._@@ +0x1e3a LATIN CAPITAL LETTER L WITH LINE BELOW +&L_@@ +0x1e3b LATIN SMALL LETTER L WITH LINE BELOW +&l_@@ +0x1e3c LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +&_L->_@@ +0x1e3d LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW +&_l->_@@ +0x1e3e LATIN CAPITAL LETTER M WITH ACUTE +&M'@@ +0x1e3f LATIN SMALL LETTER M WITH ACUTE +&m'@@ +0x1e40 LATIN CAPITAL LETTER M WITH DOT ABOVE +&M.@@ +0x1e41 LATIN SMALL LETTER M WITH DOT ABOVE +&m.@@ +0x1e42 LATIN CAPITAL LETTER M WITH DOT BELOW +&_M-._@@ +0x1e43 LATIN SMALL LETTER M WITH DOT BELOW +&_m-._@@ +0x1e44 LATIN CAPITAL LETTER N WITH DOT ABOVE +&N.@@ +0x1e45 LATIN SMALL LETTER N WITH DOT ABOVE +&n.@@ +0x1e46 LATIN CAPITAL LETTER N WITH DOT BELOW +&_N-._@@ +0x1e47 LATIN SMALL LETTER N WITH DOT BELOW +&_n-._@@ +0x1e48 LATIN CAPITAL LETTER N WITH LINE BELOW +&N_@@ +0x1e49 LATIN SMALL LETTER N WITH LINE BELOW +&n_@@ +0x1e4a LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +&_N->_@@ +0x1e4b LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW +&_N->_@@ +0x1e4c LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +&_O?'_@@ +0x1e4d LATIN SMALL LETTER O WITH TILDE AND ACUTE +&_o?'_@@ +0x1e4e LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +&_O?:_@@ +0x1e4f LATIN SMALL LETTER O WITH TILDE AND DIAERESIS +&_o?:_@@ +0x1e50 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +&_O-!_@@ +0x1e51 LATIN SMALL LETTER O WITH MACRON AND GRAVE +&_o-!_@@ +0x1e52 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +&_O-'_@@ +0x1e53 LATIN SMALL LETTER O WITH MACRON AND ACUTE +&_o-'_@@ +0x1e54 LATIN CAPITAL LETTER P WITH ACUTE +&P'@@ +0x1e55 LATIN SMALL LETTER P WITH ACUTE +&p'@@ +0x1e56 LATIN CAPITAL LETTER P WITH DOT ABOVE +&P.@@ +0x1e57 LATIN SMALL LETTER P WITH DOT ABOVE +&p.@@ +0x1e58 LATIN CAPITAL LETTER R WITH DOT ABOVE +&R.@@ +0x1e59 LATIN SMALL LETTER R WITH DOT ABOVE +&r.@@ +0x1e5a LATIN CAPITAL LETTER R WITH DOT BELOW +&_R-._@@ +0x1e5b LATIN SMALL LETTER R WITH DOT BELOW +&_r-._@@ +0x1e5c LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +&_R--._@@ +0x1e5d LATIN SMALL LETTER R WITH DOT BELOW AND MACRON +&_r--._@@ +0x1e5e LATIN CAPITAL LETTER R WITH LINE BELOW +&R_@@ +0x1e5f LATIN SMALL LETTER R WITH LINE BELOW +&r_@@ +0x1e60 LATIN CAPITAL LETTER S WITH DOT ABOVE +&S.@@ +0x1e61 LATIN SMALL LETTER S WITH DOT ABOVE +&s.@@ +0x1e62 LATIN CAPITAL LETTER S WITH DOT BELOW +&_S-._@@ +0x1e63 LATIN SMALL LETTER S WITH DOT BELOW +&_s-._@@ +0x1e64 LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +&_S'._@@ +0x1e65 LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE +&_s'._@@ +0x1e66 LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +&_S<._@@ +0x1e67 LATIN SMALL LETTER S WITH CARON AND DOT ABOVE +&_s<._@@ +0x1e68 LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +&_S.-._@@ +0x1e69 LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE +&_S.-._@@ +0x1e6a LATIN CAPITAL LETTER T WITH DOT ABOVE +&T.@@ +0x1e6b LATIN SMALL LETTER T WITH DOT ABOVE +&t.@@ +0x1e6c LATIN CAPITAL LETTER T WITH DOT BELOW +&_T-._@@ +0x1e6d LATIN SMALL LETTER T WITH DOT BELOW +&_t-._@@ +0x1e6e LATIN CAPITAL LETTER T WITH LINE BELOW +&T_@@ +0x1e6f LATIN SMALL LETTER T WITH LINE BELOW +&t_@@ +0x1e70 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +&_T->_@@ +0x1e71 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW +&_t->_@@ +0x1e72 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +&_U--:_@@ +0x1e73 LATIN SMALL LETTER U WITH DIAERESIS BELOW +&_u--:_@@ +0x1e74 LATIN CAPITAL LETTER U WITH TILDE BELOW +&_U-?_@@ +0x1e75 LATIN SMALL LETTER U WITH TILDE BELOW +&_u-?_@@ +0x1e76 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +&_U->_@@ +0x1e77 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW +&_u->_@@ +0x1e78 LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +&_U?'_@@ +0x1e79 LATIN SMALL LETTER U WITH TILDE AND ACUTE +&_u?'_@@ +0x1e7a LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +&_U-:_@@ +0x1e7b LATIN SMALL LETTER U WITH MACRON AND DIAERESIS +&_u-:_@@ +0x1e7c LATIN CAPITAL LETTER V WITH TILDE +&V?@@ +0x1e7d LATIN SMALL LETTER V WITH TILDE +&v?@@ +0x1e7e LATIN CAPITAL LETTER V WITH DOT BELOW +&_V-._@@ +0x1e7f LATIN SMALL LETTER V WITH DOT BELOW +&_v-._@@ +0x1e80 LATIN CAPITAL LETTER W WITH GRAVE +&W!@@ +0x1e81 LATIN SMALL LETTER W WITH GRAVE +&w!@@ +0x1e82 LATIN CAPITAL LETTER W WITH ACUTE +&W'@@ +0x1e83 LATIN SMALL LETTER W WITH ACUTE +&w'@@ +0x1e84 LATIN CAPITAL LETTER W WITH DIAERESIS +&W:@@ +0x1e85 LATIN SMALL LETTER W WITH DIAERESIS +&w:@@ +0x1e86 LATIN CAPITAL LETTER W WITH DOT ABOVE +&W.@@ +0x1e87 LATIN SMALL LETTER W WITH DOT ABOVE +&w.@@ +0x1e88 LATIN CAPITAL LETTER W WITH DOT BELOW +&_W-._@@ +0x1e89 LATIN SMALL LETTER W WITH DOT BELOW +&_w-._@@ +0x1e8a LATIN CAPITAL LETTER X WITH DOT ABOVE +&X.@@ +0x1e8b LATIN SMALL LETTER X WITH DOT ABOVE +&x.@@ +0x1e8c LATIN CAPITAL LETTER X WITH DIAERESIS +&X:@@ +0x1e8d LATIN SMALL LETTER X WITH DIAERESIS +&x:@@ +0x1e8e LATIN CAPITAL LETTER Y WITH DOT ABOVE +&Y.@@ +0x1e8f LATIN SMALL LETTER Y WITH DOT ABOVE +&y.@@ +0x1e90 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +&Z>@@ +0x1e91 LATIN SMALL LETTER Z WITH CIRCUMFLEX +&z>@@ +0x1e92 LATIN CAPITAL LETTER Z WITH DOT BELOW +&_Z-._@@ +0x1e93 LATIN SMALL LETTER Z WITH DOT BELOW +&_z-._@@ +0x1e94 LATIN CAPITAL LETTER Z WITH LINE BELOW +&Z_@@ +0x1e95 LATIN SMALL LETTER Z WITH LINE BELOW +&z_@@ +0x1e96 LATIN SMALL LETTER H WITH LINE BELOW +&h_@@ +0x1e97 LATIN SMALL LETTER T WITH DIAERESIS +&t:@@ +0x1e98 LATIN SMALL LETTER W WITH RING ABOVE +&w0@@ +0x1e99 LATIN SMALL LETTER Y WITH RING ABOVE +&y0@@ +0x1ea0 LATIN CAPITAL LETTER A WITH DOT BELOW +&_A-._@@ +0x1ea1 LATIN SMALL LETTER A WITH DOT BELOW +&_a-._@@ +0x1ea2 LATIN CAPITAL LETTER A WITH HOOK ABOVE +&A2@@ +0x1ea3 LATIN SMALL LETTER A WITH HOOK ABOVE +&a2@@ +0x1ea4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +&_A>'_@@ +0x1ea5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +&_a>'_@@ +0x1ea6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +&_A>!_@@ +0x1ea7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +&_a>!_@@ +0x1ea8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +&_A>2_@@ +0x1ea9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +&_a>2_@@ +0x1eaa LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +&_A>?_@@ +0x1eab LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +&_a>?_@@ +0x1eac LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +&_A>-._@@ +0x1ead LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +&_a>-._@@ +0x1eae LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +&_A('_@@ +0x1eaf LATIN SMALL LETTER A WITH BREVE AND ACUTE +&_a('_@@ +0x1eb0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +&_A(!_@@ +0x1eb1 LATIN SMALL LETTER A WITH BREVE AND GRAVE +&_a(!_@@ +0x1eb2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +&_A(2_@@ +0x1eb3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +&_a(2_@@ +0x1eb4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE +&_A(?_@@ +0x1eb5 LATIN SMALL LETTER A WITH BREVE AND TILDE +&_a(?_@@ +0x1eb6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +&_A(-._@@ +0x1eb7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +&_a(-._@@ +0x1eb8 LATIN CAPITAL LETTER E WITH DOT BELOW +&_E-._@@ +0x1eb9 LATIN SMALL LETTER E WITH DOT BELOW +&_e-._@@ +0x1eba LATIN CAPITAL LETTER E WITH HOOK ABOVE +&E2@@ +0x1ebb LATIN SMALL LETTER E WITH HOOK ABOVE +&e2@@ +0x1ebc LATIN CAPITAL LETTER E WITH TILDE +&E?@@ +0x1ebd LATIN SMALL LETTER E WITH TILDE +&e?@@ +0x1ebe LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +&_E>'_@@ +0x1ebf LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +&_e>'_@@ +0x1ec0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +&_E>!_@@ +0x1ec1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +&_e>!_@@ +0x1ec2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +&_E>2_@@ +0x1ec3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +&_e>2_@@ +0x1ec4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +&_E>?_@@ +0x1ec5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +&_e>?_@@ +0x1ec6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +&_E>-._@@ +0x1ec7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +&_e>-._@@ +0x1ec8 LATIN CAPITAL LETTER I WITH HOOK ABOVE +&I2@@ +0x1ec9 LATIN SMALL LETTER I WITH HOOK ABOVE +&i2@@ +0x1eca LATIN CAPITAL LETTER I WITH DOT BELOW +&_I-._@@ +0x1ecb LATIN SMALL LETTER I WITH DOT BELOW +&_i-._@@ +0x1ecc LATIN CAPITAL LETTER O WITH DOT BELOW +&_O-._@@ +0x1ecd LATIN SMALL LETTER O WITH DOT BELOW +&_o-._@@ +0x1ece LATIN CAPITAL LETTER O WITH HOOK ABOVE +&O2@@ +0x1ecf LATIN SMALL LETTER O WITH HOOK ABOVE +&o2@@ +0x1ed0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +&_O>'_@@ +0x1ed1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +&_o>'_@@ +0x1ed2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +&_O>!_@@ +0x1ed3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +&_o>!_@@ +0x1ed4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +&_O>2_@@ +0x1ed5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +&_o>2_@@ +0x1ed6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +&_O>?_@@ +0x1ed7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +&_o>?_@@ +0x1ed8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +&_O>-._@@ +0x1ed9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +&_o>-._@@ +0x1eda LATIN CAPITAL LETTER O WITH HORN AND ACUTE +&_O9'_@@ +0x1edb LATIN SMALL LETTER O WITH HORN AND ACUTE +&_o9'_@@ +0x1edc LATIN CAPITAL LETTER O WITH HORN AND GRAVE +&_O9!_@@ +0x1edd LATIN SMALL LETTER O WITH HORN AND GRAVE +&_o9!_@@ +0x1ede LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +&_O92_@@ +0x1edf LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +&_o92_@@ +0x1ee0 LATIN CAPITAL LETTER O WITH HORN AND TILDE +&_O9?_@@ +0x1ee1 LATIN SMALL LETTER O WITH HORN AND TILDE +&_o9?_@@ +0x1ee2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +&_O9-._@@ +0x1ee3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW +&_o9-._@@ +0x1ee4 LATIN CAPITAL LETTER U WITH DOT BELOW +&_U-._@@ +0x1ee5 LATIN SMALL LETTER U WITH DOT BELOW +&_u-._@@ +0x1ee6 LATIN CAPITAL LETTER U WITH HOOK ABOVE +&U2@@ +0x1ee7 LATIN SMALL LETTER U WITH HOOK ABOVE +&u2@@ +0x1ee8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE +&_U9'_@@ +0x1ee9 LATIN SMALL LETTER U WITH HORN AND ACUTE +&_u9'_@@ +0x1eea LATIN CAPITAL LETTER U WITH HORN AND GRAVE +&_U9!_@@ +0x1eeb LATIN SMALL LETTER U WITH HORN AND GRAVE +&_u9!_@@ +0x1eec LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +&_U92_@@ +0x1eed LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +&_u92_@@ +0x1eee LATIN CAPITAL LETTER U WITH HORN AND TILDE +&_U9?_@@ +0x1eef LATIN SMALL LETTER U WITH HORN AND TILDE +&_u9?_@@ +0x1ef0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +&_U9-._@@ +0x1ef1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW +&_u9-._@@ +0x1ef2 LATIN CAPITAL LETTER Y WITH GRAVE +&Y!@@ +0x1ef3 LATIN SMALL LETTER Y WITH GRAVE +&y!@@ +0x1ef4 LATIN CAPITAL LETTER Y WITH DOT BELOW +&_Y-._@@ +0x1ef5 LATIN SMALL LETTER Y WITH DOT BELOW +&_y-._@@ +0x1ef6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE +&Y2@@ +0x1ef7 LATIN SMALL LETTER Y WITH HOOK ABOVE +&y2@@ +0x1ef8 LATIN CAPITAL LETTER Y WITH TILDE +&Y?@@ +0x1ef9 LATIN SMALL LETTER Y WITH TILDE +&y?@@ +0x1f00 GREEK DASIA AND ACUTE ACCENT +&;'@@ +0x1f01 GREEK PSILI AND ACUTE ACCENT +&,'@@ +0x1f02 GREEK DASIA AND VARIA +&;!@@ +0x1f03 GREEK PSILI AND VARIA +&,!@@ +0x1f04 GREEK DASIA AND PERISPOMENI +&?;@@ +0x1f05 GREEK PSILI AND PERISPOMENI +&?,@@ +0x1f06 GREEK DIAERESIS AND VARIA +&!:@@ +0x1f07 GREEK DIAERESIS AND PERISPOMENI +&?:@@ +0x2002 EN SPACE +&1N@@ +0x2003 EM SPACE +&1M@@ +0x2004 THREE-PER-EM SPACE +&3M@@ +0x2005 FOUR-PER-EM SPACE +&4M@@ +0x2006 SIX-PER-EM SPACE +&6M@@ +0x2009 THIN SPACE +&1T@@ +0x200a HAIR SPACE +&1H@@ +0x2010 HYPHEN +&-1@@ +0x2013 EN DASH +&-N@@ +0x2014 EM DASH +&-M@@ +0x2015 HORIZONTAL BAR +&-3@@ +0x2016 DOUBLE VERTICAL LINE +&!2@@ +0x2017 DOUBLE LOW LINE +&=2@@ +0x2018 LEFT SINGLE QUOTATION MARK +&'6@@ +0x2019 RIGHT SINGLE QUOTATION MARK +&'9@@ +0x201a SINGLE LOW-9 QUOTATION MARK +&.9@@ +0x201b SINGLE HIGH-REVERSED-9 QUOTATION MARK +&9'@@ +0x201c LEFT DOUBLE QUOTATION MARK +&"6@@ +0x201d RIGHT DOUBLE QUOTATION MARK +&"9@@ +0x201e DOUBLE LOW-9 QUOTATION MARK +&:9@@ +0x201f DOUBLE HIGH-REVERSED-9 QUOTATION MARK +&9"@@ +0x2020 DAGGER +&/-@@ +0x2021 DOUBLE DAGGER +&/=@@ +0x2025 TWO DOT LEADER +&..@@ +0x2030 PER MILLE SIGN +&%0@@ +0x2032 PRIME +&1'@@ +0x2033 DOUBLE PRIME +&2'@@ +0x2034 TRIPLE PRIME +&3'@@ +0x2035 REVERSED PRIME +&1"@@ +0x2036 REVERSED DOUBLE PRIME +&2"@@ +0x2037 REVERSED TRIPLE PRIME +&3"@@ +0x2038 CARET +&Ca@@ +0x2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK +&<1@@ +0x203a SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +&>1@@ +0x203b REFERENCE MARK +&:X@@ +0x203c DOUBLE EXCLAMATION MARK +&_!*2_@@ +0x203e OVERLINE +&'-@@ +0x2044 FRACTION SLASH +&/f@@ +0x2070 SUPERSCRIPT DIGIT ZERO +&0S@@ +0x2074 SUPERSCRIPT DIGIT FOUR +&4S@@ +0x2075 SUPERSCRIPT DIGIT FIVE +&5S@@ +0x2076 SUPERSCRIPT DIGIT SIX +&6S@@ +0x2077 SUPERSCRIPT DIGIT SEVEN +&7S@@ +0x2078 SUPERSCRIPT DIGIT EIGHT +&8S@@ +0x2079 SUPERSCRIPT DIGIT NINE +&9S@@ +0x207a SUPERSCRIPT PLUS SIGN +&+S@@ +0x207b SUPERSCRIPT MINUS +&-S@@ +0x207c SUPERSCRIPT EQUALS SIGN +&=S@@ +0x207d SUPERSCRIPT LEFT PARENTHESIS +&(S@@ +0x207e SUPERSCRIPT RIGHT PARENTHESIS +&)S@@ +0x207f SUPERSCRIPT LATIN SMALL LETTER N +&nS@@ +0x2080 SUBSCRIPT DIGIT ZERO +&0s@@ +0x2081 SUBSCRIPT DIGIT ONE +&1s@@ +0x2082 SUBSCRIPT DIGIT TWO +&2s@@ +0x2083 SUBSCRIPT DIGIT THREE +&3s@@ +0x2084 SUBSCRIPT DIGIT FOUR +&4s@@ +0x2085 SUBSCRIPT DIGIT FIVE +&5s@@ +0x2086 SUBSCRIPT DIGIT SIX +&6s@@ +0x2087 SUBSCRIPT DIGIT SEVEN +&7s@@ +0x2088 SUBSCRIPT DIGIT EIGHT +&8s@@ +0x2089 SUBSCRIPT DIGIT NINE +&9s@@ +0x208a SUBSCRIPT PLUS SIGN +&+s@@ +0x208b SUBSCRIPT MINUS +&-s@@ +0x208c SUBSCRIPT EQUALS SIGN +&=s@@ +0x208d SUBSCRIPT LEFT PARENTHESIS +&(s@@ +0x208e SUBSCRIPT RIGHT PARENTHESIS +&)s@@ +0x20a4 LIRA SIGN +&Li@@ +0x20a7 PESETA SIGN +&Pt@@ +0x20a9 WON SIGN +&W=@@ +0x2103 DEGREE CENTIGRADE +&oC@@ +0x2105 CARE OF +&co@@ +0x2109 DEGREE FAHRENHEIT +&oF@@ +0x2116 NUMERO SIGN +&N0@@ +0x2117 SOUND RECORDING COPYRIGHT +&PO@@ +0x211e PRESCRIPTION TAKE +&Rx@@ +0x2120 SERVICE MARK +&SM@@ +0x2122 TRADE MARK SIGN +&TM@@ +0x2126 OHM SIGN +&Om@@ +0x212b ANGSTROEM SIGN +&AO@@ +0x2153 VULGAR FRACTION ONE THIRD +&13@@ +0x2154 VULGAR FRACTION TWO THIRDS +&23@@ +0x2155 VULGAR FRACTION ONE FIFTH +&15@@ +0x2156 VULGAR FRACTION TWO FIFTHS +&25@@ +0x2157 VULGAR FRACTION THREE FIFTHS +&35@@ +0x2158 VULGAR FRACTION FOUR FIFTHS +&45@@ +0x2159 VULGAR FRACTION ONE SIXTH +&16@@ +0x215a VULGAR FRACTION FIVE SIXTHS +&56@@ +0x215b VULGAR FRACTION ONE EIGHTH +&18@@ +0x215c VULGAR FRACTION THREE EIGHTHS +&38@@ +0x215d VULGAR FRACTION FIVE EIGHTHS +&58@@ +0x215e VULGAR FRACTION SEVEN EIGHTHS +&78@@ +0x2160 ROMAN NUMERAL ONE +&1R@@ +0x2161 ROMAN NUMERAL TWO +&2R@@ +0x2162 ROMAN NUMERAL THREE +&3R@@ +0x2163 ROMAN NUMERAL FOUR +&4R@@ +0x2164 ROMAN NUMERAL FIVE +&5R@@ +0x2165 ROMAN NUMERAL SIX +&6R@@ +0x2166 ROMAN NUMERAL SEVEN +&7R@@ +0x2167 ROMAN NUMERAL EIGHT +&8R@@ +0x2168 ROMAN NUMERAL NINE +&9R@@ +0x2169 ROMAN NUMERAL TEN +&aR@@ +0x216a ROMAN NUMERAL ELEVEN +&bR@@ +0x216b ROMAN NUMERAL TWELVE +&cR@@ +0x216c ROMAN NUMERAL FIFTY +&_50R_@@ +0x216d ROMAN NUMERAL ONE HUNDRED +&_100R_@@ +0x216e ROMAN NUMERAL FIVE HUNDRED +&_500R_@@ +0x216f ROMAN NUMERAL ONE THOUSAND +&_1000R_@@ +0x2170 SMALL ROMAN NUMERAL ONE +&1r@@ +0x2171 SMALL ROMAN NUMERAL TWO +&2r@@ +0x2172 SMALL ROMAN NUMERAL THREE +&3r@@ +0x2173 SMALL ROMAN NUMERAL FOUR +&4r@@ +0x2174 SMALL ROMAN NUMERAL FIVE +&5r@@ +0x2175 SMALL ROMAN NUMERAL SIX +&6r@@ +0x2176 SMALL ROMAN NUMERAL SEVEN +&7r@@ +0x2177 SMALL ROMAN NUMERAL EIGHT +&8r@@ +0x2178 SMALL ROMAN NUMERAL NINE +&9r@@ +0x2179 SMALL ROMAN NUMERAL TEN +&ar@@ +0x217a SMALL ROMAN NUMERAL ELEVEN +&br@@ +0x217b SMALL ROMAN NUMERAL TWELVE +&cr@@ +0x217c SMALL ROMAN NUMERAL FIFTY +&_50r_@@ +0x217d SMALL ROMAN NUMERAL ONE HUNDRED +&_100r_@@ +0x217e SMALL ROMAN NUMERAL FIVE HUNDRED +&_500r_@@ +0x217f SMALL ROMAN NUMERAL ONE THOUSAND +&_1000r_@@ +0x2180 ROMAN NUMERAL ONE THOUSAND C D +&_1000RCD_@@ +0x2181 ROMAN NUMERAL FIVE THOUSAND +&_5000R_@@ +0x2182 ROMAN NUMERAL TEN THOUSAND +&_10000R_@@ +0x2190 LEFTWARDS ARROW +&<-@@ +0x2191 UPWARDS ARROW +&-!@@ +0x2192 RIGHTWARDS ARROW +&->@@ +0x2193 DOWNWARDS ARROW +&-v@@ +0x2194 LEFT RIGHT ARROW +&<>@@ +0x2195 UP DOWN ARROW +&UD@@ +0x2196 NORTH WEST ARROW +&__@@ +0x2198 SOUTH EAST ARROW +&_!!>_@@ +0x2199 SOUTH WEST ARROW +&_@@ +0x21d4 LEFT RIGHT DOUBLE ARROW +&==@@ +0x2200 FOR ALL +&FA@@ +0x2202 PARTIAL DIFFERENTIAL +&dP@@ +0x2203 THERE EXISTS +&TE@@ +0x2205 EMPTY SET +&/0@@ +0x2206 INCREMENT +&DE@@ +0x2207 NABLA +&NB@@ +0x2208 ELEMENT OF +&(-@@ +0x220b CONTAINS AS MEMBER +&-)@@ +0x220f N-ARY PRODUCT +&*P@@ +0x2211 N-ARY SUMMATION +&+Z@@ +0x2212 MINUS SIGN +&-2@@ +0x2213 MINUS-OR-PLUS SIGN +&-+@@ +0x2217 ASTERISK OPERATOR +&*-@@ +0x2218 RING OPERATOR +&Ob@@ +0x2219 BULLET OPERATOR +&Sb@@ +0x221a SQUARE ROOT +&RT@@ +0x221d PROPORTIONAL TO +&0(@@ +0x221e INFINITY +&00@@ +0x221f RIGHT ANGLE +&-L@@ +0x2220 ANGLE +&-V@@ +0x2225 PARALLEL TO +&PP@@ +0x2227 LOGICAL AND +&AN@@ +0x2228 LOGICAL OR +&OR@@ +0x2229 INTERSECTION +&(U@@ +0x222a UNION +&)U@@ +0x222b INTEGRAL +&In@@ +0x222c DOUBLE INTEGRAL +&DI@@ +0x222e CONTOUR INTEGRAL +&Io@@ +0x2234 THEREFORE +&.:@@ +0x2235 BECAUSE +&:.@@ +0x2236 RATIO +&:R@@ +0x2237 PROPORTION +&::@@ +0x223c TILDE OPERATOR +&?1@@ +0x223e INVERTED LAZY S +&CG@@ +0x2243 ASYMPTOTICALLY EQUAL TO +&?-@@ +0x2245 APPROXIMATELY EQUAL TO +&?=@@ +0x2248 ALMOST EQUAL TO +&?2@@ +0x224c ALL EQUAL TO +&=?@@ +0x2253 IMAGE OF OR APPROXIMATELY EQUAL TO +&HI@@ +0x2260 NOT EQUAL TO +&!=@@ +0x2261 IDENTICAL TO +&=3@@ +0x2264 LESS-THAN OR EQUAL TO +&=<@@ +0x2265 GREATER-THAN OR EQUAL TO +&>=@@ +0x226a MUCH LESS-THAN +&<*@@ +0x226b MUCH GREATER-THAN +&*>@@ +0x226e NOT LESS-THAN +&!<@@ +0x226f NOT GREATER-THAN +&!>@@ +0x2282 SUBSET OF +&(C@@ +0x2283 SUPERSET OF +&)C@@ +0x2286 SUBSET OF OR EQUAL TO +&(_@@ +0x2287 SUPERSET OF OR EQUAL TO +&)_@@ +0x2299 CIRCLED DOT OPERATOR +&0.@@ +0x229a CIRCLED RING OPERATOR +&02@@ +0x22a5 UP TACK +&-T@@ +0x22c5 DOT OPERATOR +&.P@@ +0x22ee VERTICAL ELLIPSIS +&:3@@ +0x22ef MIDLINE HORIZONTAL ELLIPSIS +&.3@@ +0x2302 HOUSE +&Eh@@ +0x2308 LEFT CEILING +&<7@@ +0x2309 RIGHT CEILING +&>7@@ +0x230a LEFT FLOOR +&7<@@ +0x230b RIGHT FLOOR +&7>@@ +0x2310 REVERSED NOT SIGN +&NI@@ +0x2312 ARC +&(A@@ +0x2315 TELEPHONE RECORDER +&TR@@ +0x2320 TOP HALF INTEGRAL +&Iu@@ +0x2321 BOTTOM HALF INTEGRAL +&Il@@ +0x2329 LEFT-POINTING ANGLE BRACKET +&@@ +0x2423 OPEN BOX +&Vs@@ +0x2440 OCR HOOK +&1h@@ +0x2441 OCR CHAIR +&3h@@ +0x2442 OCR FORK +&2h@@ +0x2443 OCR INVERTED FORK +&4h@@ +0x2446 OCR BRANCH BANK IDENTIFICATION +&1j@@ +0x2447 OCR AMOUNT OF CHECK +&2j@@ +0x2448 OCR DASH +&3j@@ +0x2449 OCR CUSTOMER ACCOUNT NUMBER +&4j@@ +0x2460 CIRCLED DIGIT ONE +&_1-o_@@ +0x2461 CIRCLED DIGIT TWO +&_2-o_@@ +0x2462 CIRCLED DIGIT THREE +&_3-o_@@ +0x2463 CIRCLED DIGIT FOUR +&_4-o_@@ +0x2464 CIRCLED DIGIT FIVE +&_5-o_@@ +0x2465 CIRCLED DIGIT SIX +&_6-o_@@ +0x2466 CIRCLED DIGIT SEVEN +&_7-o_@@ +0x2467 CIRCLED DIGIT EIGHT +&_8-o_@@ +0x2468 CIRCLED DIGIT NINE +&_9-o_@@ +0x2469 CIRCLED NUMBER TEN +&_10-o_@@ +0x246a CIRCLED NUMBER ELEVEN +&_11-o_@@ +0x246b CIRCLED NUMBER TWELVE +&_12-o_@@ +0x246c CIRCLED NUMBER THIRTEEN +&_13-o_@@ +0x246d CIRCLED NUMBER FOURTEEN +&_14-o_@@ +0x246e CIRCLED NUMBER FIFTEEN +&_15-o_@@ +0x246f CIRCLED NUMBER SIXTEEN +&_16-o_@@ +0x2470 CIRCLED NUMBER SEVENTEEN +&_17-o_@@ +0x2471 CIRCLED NUMBER EIGHTEEN +&_18-o_@@ +0x2472 CIRCLED NUMBER NINETEEN +&_19-o_@@ +0x2473 CIRCLED NUMBER TWENTY +&_20-o_@@ +0x2474 PARENTHESIZED DIGIT ONE +&_(1)_@@ +0x2475 PARENTHESIZED DIGIT TWO +&_(2)_@@ +0x2476 PARENTHESIZED DIGIT THREE +&_(3)_@@ +0x2477 PARENTHESIZED DIGIT FOUR +&_(4)_@@ +0x2478 PARENTHESIZED DIGIT FIVE +&_(5)_@@ +0x2479 PARENTHESIZED DIGIT SIX +&_(6)_@@ +0x247a PARENTHESIZED DIGIT SEVEN +&_(7)_@@ +0x247b PARENTHESIZED DIGIT EIGHT +&_(8)_@@ +0x247c PARENTHESIZED DIGIT NINE +&_(9)_@@ +0x247d PARENTHESIZED NUMBER TEN +&_(10)_@@ +0x247e PARENTHESIZED NUMBER ELEVEN +&_(11)_@@ +0x247f PARENTHESIZED NUMBER TWELVE +&_(12)_@@ +0x2480 PARENTHESIZED NUMBER THIRTEEN +&_(13)_@@ +0x2481 PARENTHESIZED NUMBER FOURTEEN +&_(14)_@@ +0x2482 PARENTHESIZED NUMBER FIFTEEN +&_(15)_@@ +0x2483 PARENTHESIZED NUMBER SIXTEEN +&_(16)_@@ +0x2484 PARENTHESIZED NUMBER SEVENTEEN +&_(17)_@@ +0x2485 PARENTHESIZED NUMBER EIGHTEEN +&_(18)_@@ +0x2486 PARENTHESIZED NUMBER NINETEEN +&_(19)_@@ +0x2487 PARENTHESIZED NUMBER TWENTY +&_(20)_@@ +0x2488 DIGIT ONE FULL STOP +&1.@@ +0x2489 DIGIT TWO FULL STOP +&2.@@ +0x248a DIGIT THREE FULL STOP +&3.@@ +0x248b DIGIT FOUR FULL STOP +&4.@@ +0x248c DIGIT FIVE FULL STOP +&5.@@ +0x248d DIGIT SIX FULL STOP +&6.@@ +0x248e DIGIT SEVEN FULL STOP +&7.@@ +0x248f DIGIT EIGHT FULL STOP +&8.@@ +0x2490 DIGIT NINE FULL STOP +&9.@@ +0x2491 NUMBER TEN FULL STOP +&_10._@@ +0x2492 NUMBER ELEVEN FULL STOP +&_11._@@ +0x2493 NUMBER TWELVE FULL STOP +&_12._@@ +0x2494 NUMBER THIRTEEN FULL STOP +&_13._@@ +0x2495 NUMBER FOURTEEN FULL STOP +&_14._@@ +0x2496 NUMBER FIFTEEN FULL STOP +&_15._@@ +0x2497 NUMBER SIXTEEN FULL STOP +&_16._@@ +0x2498 NUMBER SEVENTEEN FULL STOP +&_17._@@ +0x2499 NUMBER EIGHTEEN FULL STOP +&_18._@@ +0x249a NUMBER NINETEEN FULL STOP +&_19._@@ +0x249b NUMBER TWENTY FULL STOP +&_20._@@ +0x249c PARENTHESIZED LATIN SMALL LETTER A +&_(a)_@@ +0x249d PARENTHESIZED LATIN SMALL LETTER B +&_(b)_@@ +0x249e PARENTHESIZED LATIN SMALL LETTER C +&_(c)_@@ +0x249f PARENTHESIZED LATIN SMALL LETTER D +&_(d)_@@ +0x24a0 PARENTHESIZED LATIN SMALL LETTER E +&_(e)_@@ +0x24a1 PARENTHESIZED LATIN SMALL LETTER F +&_(f)_@@ +0x24a2 PARENTHESIZED LATIN SMALL LETTER G +&_(g)_@@ +0x24a3 PARENTHESIZED LATIN SMALL LETTER H +&_(h)_@@ +0x24a4 PARENTHESIZED LATIN SMALL LETTER I +&_(i)_@@ +0x24a5 PARENTHESIZED LATIN SMALL LETTER J +&_(j)_@@ +0x24a6 PARENTHESIZED LATIN SMALL LETTER K +&_(k)_@@ +0x24a7 PARENTHESIZED LATIN SMALL LETTER L +&_(l)_@@ +0x24a8 PARENTHESIZED LATIN SMALL LETTER M +&_(m)_@@ +0x24a9 PARENTHESIZED LATIN SMALL LETTER N +&_(n)_@@ +0x24aa PARENTHESIZED LATIN SMALL LETTER O +&_(o)_@@ +0x24ab PARENTHESIZED LATIN SMALL LETTER P +&_(p)_@@ +0x24ac PARENTHESIZED LATIN SMALL LETTER Q +&_(q)_@@ +0x24ad PARENTHESIZED LATIN SMALL LETTER R +&_(r)_@@ +0x24ae PARENTHESIZED LATIN SMALL LETTER S +&_(s)_@@ +0x24af PARENTHESIZED LATIN SMALL LETTER T +&_(t)_@@ +0x24b0 PARENTHESIZED LATIN SMALL LETTER U +&_(u)_@@ +0x24b1 PARENTHESIZED LATIN SMALL LETTER V +&_(v)_@@ +0x24b2 PARENTHESIZED LATIN SMALL LETTER W +&_(w)_@@ +0x24b3 PARENTHESIZED LATIN SMALL LETTER X +&_(x)_@@ +0x24b4 PARENTHESIZED LATIN SMALL LETTER Y +&_(y)_@@ +0x24b5 PARENTHESIZED LATIN SMALL LETTER Z +&_(z)_@@ +0x24b6 CIRCLED LATIN CAPITAL LETTER A +&_A-o_@@ +0x24b7 CIRCLED LATIN CAPITAL LETTER B +&_B-o_@@ +0x24b8 CIRCLED LATIN CAPITAL LETTER C +&_C-o_@@ +0x24b9 CIRCLED LATIN CAPITAL LETTER D +&_D-o_@@ +0x24ba CIRCLED LATIN CAPITAL LETTER E +&_E-o_@@ +0x24bb CIRCLED LATIN CAPITAL LETTER F +&_F-o_@@ +0x24bc CIRCLED LATIN CAPITAL LETTER G +&_G-o_@@ +0x24bd CIRCLED LATIN CAPITAL LETTER H +&_H-o_@@ +0x24be CIRCLED LATIN CAPITAL LETTER I +&_I-o_@@ +0x24bf CIRCLED LATIN CAPITAL LETTER J +&_J-o_@@ +0x24c0 CIRCLED LATIN CAPITAL LETTER K +&_K-o_@@ +0x24c1 CIRCLED LATIN CAPITAL LETTER L +&_L-o_@@ +0x24c2 CIRCLED LATIN CAPITAL LETTER M +&_M-o_@@ +0x24c3 CIRCLED LATIN CAPITAL LETTER N +&_N-o_@@ +0x24c4 CIRCLED LATIN CAPITAL LETTER O +&_O-o_@@ +0x24c5 CIRCLED LATIN CAPITAL LETTER P +&_P-o_@@ +0x24c6 CIRCLED LATIN CAPITAL LETTER Q +&_Q-o_@@ +0x24c7 CIRCLED LATIN CAPITAL LETTER R +&_R-o_@@ +0x24c8 CIRCLED LATIN CAPITAL LETTER S +&_S-o_@@ +0x24c9 CIRCLED LATIN CAPITAL LETTER T +&_T-o_@@ +0x24ca CIRCLED LATIN CAPITAL LETTER U +&_U-o_@@ +0x24cb CIRCLED LATIN CAPITAL LETTER V +&_V-o_@@ +0x24cc CIRCLED LATIN CAPITAL LETTER W +&_W-o_@@ +0x24cd CIRCLED LATIN CAPITAL LETTER X +&_X-o_@@ +0x24ce CIRCLED LATIN CAPITAL LETTER Y +&_Y-o_@@ +0x24cf CIRCLED LATIN CAPITAL LETTER Z +&_Z-o_@@ +0x24d0 CIRCLED LATIN SMALL LETTER A +&_a-o_@@ +0x24d1 CIRCLED LATIN SMALL LETTER B +&_b-o_@@ +0x24d2 CIRCLED LATIN SMALL LETTER C +&_c-o_@@ +0x24d3 CIRCLED LATIN SMALL LETTER D +&_d-o_@@ +0x24d4 CIRCLED LATIN SMALL LETTER E +&_e-o_@@ +0x24d5 CIRCLED LATIN SMALL LETTER F +&_f-o_@@ +0x24d6 CIRCLED LATIN SMALL LETTER G +&_g-o_@@ +0x24d7 CIRCLED LATIN SMALL LETTER H +&_h-o_@@ +0x24d8 CIRCLED LATIN SMALL LETTER I +&_i-o_@@ +0x24d9 CIRCLED LATIN SMALL LETTER J +&_j-o_@@ +0x24da CIRCLED LATIN SMALL LETTER K +&_k-o_@@ +0x24db CIRCLED LATIN SMALL LETTER L +&_l-o_@@ +0x24dc CIRCLED LATIN SMALL LETTER M +&_m-o_@@ +0x24dd CIRCLED LATIN SMALL LETTER N +&_n-o_@@ +0x24de CIRCLED LATIN SMALL LETTER O +&_o-o_@@ +0x24df CIRCLED LATIN SMALL LETTER P +&_p-o_@@ +0x24e0 CIRCLED LATIN SMALL LETTER Q +&_q-o_@@ +0x24e1 CIRCLED LATIN SMALL LETTER R +&_r-o_@@ +0x24e2 CIRCLED LATIN SMALL LETTER S +&_s-o_@@ +0x24e3 CIRCLED LATIN SMALL LETTER T +&_t-o_@@ +0x24e4 CIRCLED LATIN SMALL LETTER U +&_u-o_@@ +0x24e5 CIRCLED LATIN SMALL LETTER V +&_v-o_@@ +0x24e6 CIRCLED LATIN SMALL LETTER W +&_w-o_@@ +0x24e7 CIRCLED LATIN SMALL LETTER X +&_x-o_@@ +0x24e8 CIRCLED LATIN SMALL LETTER Y +&_y-o_@@ +0x24e9 CIRCLED LATIN SMALL LETTER Z +&_z-o_@@ +0x24ea CIRCLED DIGIT ZERO +&_0-o_@@ +0x2500 BOX DRAWINGS LIGHT HORIZONTAL +&hh@@ +0x2501 BOX DRAWINGS HEAVY HORIZONTAL +&HH@@ +0x2502 BOX DRAWINGS LIGHT VERTICAL +&vv@@ +0x2503 BOX DRAWINGS HEAVY VERTICAL +&VV@@ +0x2504 BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL +&3-@@ +0x2505 BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL +&3_@@ +0x2506 BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL +&3!@@ +0x2507 BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL +&3/@@ +0x2508 BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL +&4-@@ +0x2509 BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL +&4_@@ +0x250a BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL +&4!@@ +0x250b BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL +&4/@@ +0x250c BOX DRAWINGS LIGHT DOWN AND RIGHT +&dr@@ +0x250d BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY +&dR@@ +0x250e BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT +&Dr@@ +0x250f BOX DRAWINGS HEAVY DOWN AND RIGHT +&DR@@ +0x2510 BOX DRAWINGS LIGHT DOWN AND LEFT +&dl@@ +0x2511 BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY +&dL@@ +0x2512 BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT +&Dl@@ +0x2513 BOX DRAWINGS HEAVY DOWN AND LEFT +&LD@@ +0x2514 BOX DRAWINGS LIGHT UP AND RIGHT +&ur@@ +0x2515 BOX DRAWINGS UP LIGHT AND RIGHT HEAVY +&uR@@ +0x2516 BOX DRAWINGS UP HEAVY AND RIGHT LIGHT +&Ur@@ +0x2517 BOX DRAWINGS HEAVY UP AND RIGHT +&UR@@ +0x2518 BOX DRAWINGS LIGHT UP AND LEFT +&ul@@ +0x2519 BOX DRAWINGS UP LIGHT AND LEFT HEAVY +&uL@@ +0x251a BOX DRAWINGS UP HEAVY AND LEFT LIGHT +&Ul@@ +0x251b BOX DRAWINGS HEAVY UP AND LEFT +&UL@@ +0x251c BOX DRAWINGS LIGHT VERTICAL AND RIGHT +&vr@@ +0x251d BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY +&vR@@ +0x251e BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT +&_Udr_@@ +0x251f BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT +&_uDr_@@ +0x2520 BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT +&Vr@@ +0x2521 BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY +&_UdR_@@ +0x2522 BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY +&_uDR_@@ +0x2523 BOX DRAWINGS HEAVY VERTICAL AND RIGHT +&VR@@ +0x2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT +&vl@@ +0x2525 BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY +&vL@@ +0x2526 BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT +&_Udl_@@ +0x2527 BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT +&_uDl_@@ +0x2528 BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT +&Vl@@ +0x2529 BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY +&_UdL_@@ +0x252a BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY +&_uDL_@@ +0x252b BOX DRAWINGS HEAVY VERTICAL AND LEFT +&VL@@ +0x252c BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +&dh@@ +0x252d BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT +&_dLr_@@ +0x252e BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT +&_dlR_@@ +0x252f BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY +&dH@@ +0x2530 BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT +&Dh@@ +0x2531 BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY +&_DLr_@@ +0x2532 BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY +&_DlR_@@ +0x2533 BOX DRAWINGS HEAVY DOWN AND HORIZONTAL +&DH@@ +0x2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL +&uh@@ +0x2535 BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT +&_uLr_@@ +0x2536 BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT +&_ulR_@@ +0x2537 BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY +&uH@@ +0x2538 BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT +&Uh@@ +0x2539 BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY +&_ULr_@@ +0x253a BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY +&_UlR_@@ +0x253b BOX DRAWINGS HEAVY UP AND HORIZONTAL +&UH@@ +0x253c BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +&vh@@ +0x253d BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT +&_vLr_@@ +0x253e BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT +&_vlR_@@ +0x253f BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY +&vH@@ +0x2540 BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT +&_Udh_@@ +0x2541 BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT +&_uDh_@@ +0x2542 BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT +&Vh@@ +0x2543 BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT +&_UdLr_@@ +0x2544 BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT +&_UdlR_@@ +0x2545 BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT +&_uDLr_@@ +0x2546 BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT +&_uDlR_@@ +0x2547 BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY +&_UdH_@@ +0x2548 BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY +&_uDH_@@ +0x2549 BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY +&_VLr_@@ +0x254a BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY +&_VlR_@@ +0x254b BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL +&VH@@ +0x2571 BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT +&FD@@ +0x2572 BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT +&BD@@ +0x2580 UPPER HALF BLOCK +&TB@@ +0x2584 LOWER HALF BLOCK +&LB@@ +0x2588 FULL BLOCK +&FB@@ +0x258c LEFT HALF BLOCK +&lB@@ +0x2590 RIGHT HALF BLOCK +&RB@@ +0x2591 LIGHT SHADE +&.S@@ +0x2592 MEDIUM SHADE +&:S@@ +0x2593 DARK SHADE +&?S@@ +0x25a0 BLACK SQUARE +&fS@@ +0x25a1 WHITE SQUARE +&OS@@ +0x25a2 WHITE SQUARE WITH ROUNDED CORNERS +&RO@@ +0x25a3 WHITE SQUARE CONTAINING BLACK SMALL SQUARE +&Rr@@ +0x25a4 SQUARE WITH HORIZONTAL FILL +&RF@@ +0x25a5 SQUARE WITH VERTICAL FILL +&RY@@ +0x25a6 SQUARE WITH ORTHOGONAL CROSSHATCH FILL +&RH@@ +0x25a7 SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL +&RZ@@ +0x25a8 SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL +&RK@@ +0x25a9 SQUARE WITH DIAGONAL CROSSHATCH FILL +&RX@@ +0x25aa BLACK SMALL SQUARE +&sB@@ +0x25ac BLACK RECTANGLE +&SR@@ +0x25ad WHITE RECTANGLE +&Or@@ +0x25b2 BLACK UP-POINTING TRIANGLE +&UT@@ +0x25b3 WHITE UP-POINTING TRIANGLE +&uT@@ +0x25b6 BLACK RIGHT-POINTING TRIANGLE +&PR@@ +0x25b7 WHITE RIGHT-POINTING TRIANGLE +&Tr@@ +0x25bc BLACK DOWN-POINTING TRIANGLE +&Dt@@ +0x25bd WHITE DOWN-POINTING TRIANGLE +&dT@@ +0x25c0 BLACK LEFT-POINTING TRIANGLE +&PL@@ +0x25c1 WHITE LEFT-POINTING TRIANGLE +&Tl@@ +0x25c6 BLACK DIAMOND +&Db@@ +0x25c7 WHITE DIAMOND +&Dw@@ +0x25ca LOZENGE +&LZ@@ +0x25cb WHITE CIRCLE +&0m@@ +0x25ce BULLSEYE +&0o@@ +0x25cf BLACK CIRCLE +&0M@@ +0x25d0 CIRCLE WITH LEFT HALF BLACK +&0L@@ +0x25d1 CIRCLE WITH RIGHT HALF BLACK +&0R@@ +0x25d8 INVERSE BULLET +&Sn@@ +0x25d9 INVERSE WHITE CIRCLE +&Ic@@ +0x25e2 BLACK LOWER RIGHT TRIANGLE +&Fd@@ +0x25e3 BLACK LOWER LEFT TRIANGLE +&Bd@@ +0x2605 BLACK STAR +&*2@@ +0x2606 WHITE STAR +&*1@@ +0x260e BLACK TELEPHONE +&_TEL_@@ +0x260f WHITE TELEPHONE +&_tel_@@ +0x261c WHITE LEFT POINTING INDEX +&H@@ +0x263a WHITE SMILING FACE +&0u@@ +0x263b BLACK SMILING FACE +&0U@@ +0x263c WHITE SUN WITH RAYS +&SU@@ +0x2640 FEMALE SIGN +&Fm@@ +0x2642 MALE SIGN +&Ml@@ +0x2660 BLACK SPADE SUIT +&cS@@ +0x2661 WHITE HEART SUIT +&cH@@ +0x2662 WHITE DIAMOND SUIT +&cD@@ +0x2663 BLACK CLUB SUIT +&cC@@ +0x2664 WHITE SPADE SUIT +&_cS-_@@ +0x2665 BLACK HEART SUIT +&_cH-_@@ +0x2666 BLACK DIAMOND SUIT +&_cD-_@@ +0x2667 WHITE CLUB SUIT +&_cC-_@@ +0x2669 QUARTER NOTE +&Md@@ +0x266a EIGHTH NOTE +&M8@@ +0x266b BARRED EIGHTH NOTES +&M2@@ +0x266c BARRED SIXTEENTH NOTES +&_M16_@@ +0x266d MUSIC FLAT SIGN +&Mb@@ +0x266e MUSIC NATURAL SIGN +&Mx@@ +0x266f MUSIC SHARP SIGN +&MX@@ +0x2713 CHECK MARK +&OK@@ +0x2717 BALLOT X +&XX@@ +0x2720 MALTESE CROSS +&-X@@ +0x3000 IDEOGRAPHIC SPACE +&IS@@ +0x3001 IDEOGRAPHIC COMMA +&,_@@ +0x3002 IDEOGRAPHIC PERIOD +&._@@ +0x3003 DITTO MARK +&+"@@ +0x3004 IDEOGRAPHIC DITTO MARK +&+_@@ +0x3005 IDEOGRAPHIC ITERATION MARK +&*_@@ +0x3006 IDEOGRAPHIC CLOSING MARK +&;_@@ +0x3007 IDEOGRAPHIC NUMBER ZERO +&0_@@ +0x300a LEFT DOUBLE ANGLE BRACKET +&<+@@ +0x300b RIGHT DOUBLE ANGLE BRACKET +&>+@@ +0x300c LEFT CORNER BRACKET +&<'@@ +0x300d RIGHT CORNER BRACKET +&>'@@ +0x300e LEFT WHITE CORNER BRACKET +&<"@@ +0x300f RIGHT WHITE CORNER BRACKET +&>"@@ +0x3010 LEFT BLACK LENTICULAR BRACKET +&("@@ +0x3011 RIGHT BLACK LENTICULAR BRACKET +&)"@@ +0x3012 POSTAL MARK +&=T@@ +0x3013 GETA MARK +&=_@@ +0x3014 LEFT TORTOISE SHELL BRACKET +&('@@ +0x3015 RIGHT TORTOISE SHELL BRACKET +&)'@@ +0x3016 LEFT WHITE LENTICULAR BRACKET +&(I@@ +0x3017 RIGHT WHITE LENTICULAR BRACKET +&)I@@ +0x301c WAVE DASH +&-?@@ +0x3020 POSTAL MARK FACE +&_=T:)_@@ +0x3041 HIRAGANA LETTER SMALL A +&A5@@ +0x3042 HIRAGANA LETTER A +&a5@@ +0x3043 HIRAGANA LETTER SMALL I +&I5@@ +0x3044 HIRAGANA LETTER I +&i5@@ +0x3045 HIRAGANA LETTER SMALL U +&U5@@ +0x3046 HIRAGANA LETTER U +&u5@@ +0x3047 HIRAGANA LETTER SMALL E +&E5@@ +0x3048 HIRAGANA LETTER E +&e5@@ +0x3049 HIRAGANA LETTER SMALL O +&O5@@ +0x304a HIRAGANA LETTER O +&o5@@ +0x304b HIRAGANA LETTER KA +&ka@@ +0x304c HIRAGANA LETTER GA +&ga@@ +0x304d HIRAGANA LETTER KI +&ki@@ +0x304e HIRAGANA LETTER GI +&gi@@ +0x304f HIRAGANA LETTER KU +&ku@@ +0x3050 HIRAGANA LETTER GU +&gu@@ +0x3051 HIRAGANA LETTER KE +&ke@@ +0x3052 HIRAGANA LETTER GE +&ge@@ +0x3053 HIRAGANA LETTER KO +&ko@@ +0x3054 HIRAGANA LETTER GO +&go@@ +0x3055 HIRAGANA LETTER SA +&sa@@ +0x3056 HIRAGANA LETTER ZA +&za@@ +0x3057 HIRAGANA LETTER SI +&si@@ +0x3058 HIRAGANA LETTER ZI +&zi@@ +0x3059 HIRAGANA LETTER SU +&su@@ +0x305a HIRAGANA LETTER ZU +&zu@@ +0x305b HIRAGANA LETTER SE +&se@@ +0x305c HIRAGANA LETTER ZE +&ze@@ +0x305d HIRAGANA LETTER SO +&so@@ +0x305e HIRAGANA LETTER ZO +&zo@@ +0x305f HIRAGANA LETTER TA +&ta@@ +0x3060 HIRAGANA LETTER DA +&da@@ +0x3061 HIRAGANA LETTER TI +&ti@@ +0x3062 HIRAGANA LETTER DI +&di@@ +0x3063 HIRAGANA LETTER SMALL TU +&tU@@ +0x3064 HIRAGANA LETTER TU +&tu@@ +0x3065 HIRAGANA LETTER DU +&du@@ +0x3066 HIRAGANA LETTER TE +&te@@ +0x3067 HIRAGANA LETTER DE +&de@@ +0x3068 HIRAGANA LETTER TO +&to@@ +0x3069 HIRAGANA LETTER DO +&do@@ +0x306a HIRAGANA LETTER NA +&na@@ +0x306b HIRAGANA LETTER NI +&ni@@ +0x306c HIRAGANA LETTER NU +&nu@@ +0x306d HIRAGANA LETTER NE +&ne@@ +0x306e HIRAGANA LETTER NO +&no@@ +0x306f HIRAGANA LETTER HA +&ha@@ +0x3070 HIRAGANA LETTER BA +&ba@@ +0x3071 HIRAGANA LETTER PA +&pa@@ +0x3072 HIRAGANA LETTER HI +&hi@@ +0x3073 HIRAGANA LETTER BI +&bi@@ +0x3074 HIRAGANA LETTER PI +&pi@@ +0x3075 HIRAGANA LETTER HU +&hu@@ +0x3076 HIRAGANA LETTER BU +&bu@@ +0x3077 HIRAGANA LETTER PU +&pu@@ +0x3078 HIRAGANA LETTER HE +&he@@ +0x3079 HIRAGANA LETTER BE +&be@@ +0x307a HIRAGANA LETTER PE +&pe@@ +0x307b HIRAGANA LETTER HO +&ho@@ +0x307c HIRAGANA LETTER BO +&bo@@ +0x307d HIRAGANA LETTER PO +&po@@ +0x307e HIRAGANA LETTER MA +&ma@@ +0x307f HIRAGANA LETTER MI +&mi@@ +0x3080 HIRAGANA LETTER MU +&mu@@ +0x3081 HIRAGANA LETTER ME +&me@@ +0x3082 HIRAGANA LETTER MO +&mo@@ +0x3083 HIRAGANA LETTER SMALL YA +&yA@@ +0x3084 HIRAGANA LETTER YA +&ya@@ +0x3085 HIRAGANA LETTER SMALL YU +&yU@@ +0x3086 HIRAGANA LETTER YU +&yu@@ +0x3087 HIRAGANA LETTER SMALL YO +&yO@@ +0x3088 HIRAGANA LETTER YO +&yo@@ +0x3089 HIRAGANA LETTER RA +&ra@@ +0x308a HIRAGANA LETTER RI +&ri@@ +0x308b HIRAGANA LETTER RU +&ru@@ +0x308c HIRAGANA LETTER RE +&re@@ +0x308d HIRAGANA LETTER RO +&ro@@ +0x308e HIRAGANA LETTER SMALL WA +&wA@@ +0x308f HIRAGANA LETTER WA +&wa@@ +0x3090 HIRAGANA LETTER WI +&wi@@ +0x3091 HIRAGANA LETTER WE +&we@@ +0x3092 HIRAGANA LETTER WO +&wo@@ +0x3093 HIRAGANA LETTER N +&n5@@ +0x3094 HIRAGANA LETTER VU +&vu@@ +0x309b KATAKANA-HIRAGANA VOICED SOUND MARK +&"5@@ +0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +&05@@ +0x309d HIRAGANA ITERATION MARK +&*5@@ +0x309e HIRAGANA VOICED ITERATION MARK +&+5@@ +0x30a1 KATAKANA LETTER SMALL A +&a6@@ +0x30a2 KATAKANA LETTER A +&A6@@ +0x30a3 KATAKANA LETTER SMALL I +&i6@@ +0x30a4 KATAKANA LETTER I +&I6@@ +0x30a5 KATAKANA LETTER SMALL U +&u6@@ +0x30a6 KATAKANA LETTER U +&U6@@ +0x30a7 KATAKANA LETTER SMALL E +&e6@@ +0x30a8 KATAKANA LETTER E +&E6@@ +0x30a9 KATAKANA LETTER SMALL O +&o6@@ +0x30aa KATAKANA LETTER O +&O6@@ +0x30ab KATAKANA LETTER KA +&Ka@@ +0x30ac KATAKANA LETTER GA +&Ga@@ +0x30ad KATAKANA LETTER KI +&Ki@@ +0x30ae KATAKANA LETTER GI +&Gi@@ +0x30af KATAKANA LETTER KU +&Ku@@ +0x30b0 KATAKANA LETTER GU +&Gu@@ +0x30b1 KATAKANA LETTER KE +&Ke@@ +0x30b2 KATAKANA LETTER GE +&Ge@@ +0x30b3 KATAKANA LETTER KO +&Ko@@ +0x30b4 KATAKANA LETTER GO +&Go@@ +0x30b5 KATAKANA LETTER SA +&Sa@@ +0x30b6 KATAKANA LETTER ZA +&Za@@ +0x30b7 KATAKANA LETTER SI +&Si@@ +0x30b8 KATAKANA LETTER ZI +&Zi@@ +0x30b9 KATAKANA LETTER SU +&Su@@ +0x30ba KATAKANA LETTER ZU +&Zu@@ +0x30bb KATAKANA LETTER SE +&Se@@ +0x30bc KATAKANA LETTER ZE +&Ze@@ +0x30bd KATAKANA LETTER SO +&So@@ +0x30be KATAKANA LETTER ZO +&Zo@@ +0x30bf KATAKANA LETTER TA +&Ta@@ +0x30c0 KATAKANA LETTER DA +&Da@@ +0x30c1 KATAKANA LETTER TI +&Ti@@ +0x30c2 KATAKANA LETTER DI +&Di@@ +0x30c3 KATAKANA LETTER SMALL TU +&TU@@ +0x30c4 KATAKANA LETTER TU +&Tu@@ +0x30c5 KATAKANA LETTER DU +&Du@@ +0x30c6 KATAKANA LETTER TE +&Te@@ +0x30c7 KATAKANA LETTER DE +&De@@ +0x30c8 KATAKANA LETTER TO +&To@@ +0x30c9 KATAKANA LETTER DO +&Do@@ +0x30ca KATAKANA LETTER NA +&Na@@ +0x30cb KATAKANA LETTER NI +&Ni@@ +0x30cc KATAKANA LETTER NU +&Nu@@ +0x30cd KATAKANA LETTER NE +&Ne@@ +0x30ce KATAKANA LETTER NO +&No@@ +0x30cf KATAKANA LETTER HA +&Ha@@ +0x30d0 KATAKANA LETTER BA +&Ba@@ +0x30d1 KATAKANA LETTER PA +&Pa@@ +0x30d2 KATAKANA LETTER HI +&Hi@@ +0x30d3 KATAKANA LETTER BI +&Bi@@ +0x30d4 KATAKANA LETTER PI +&Pi@@ +0x30d5 KATAKANA LETTER HU +&Hu@@ +0x30d6 KATAKANA LETTER BU +&Bu@@ +0x30d7 KATAKANA LETTER PU +&Pu@@ +0x30d8 KATAKANA LETTER HE +&He@@ +0x30d9 KATAKANA LETTER BE +&Be@@ +0x30da KATAKANA LETTER PE +&Pe@@ +0x30db KATAKANA LETTER HO +&Ho@@ +0x30dc KATAKANA LETTER BO +&Bo@@ +0x30dd KATAKANA LETTER PO +&Po@@ +0x30de KATAKANA LETTER MA +&Ma@@ +0x30df KATAKANA LETTER MI +&Mi@@ +0x30e0 KATAKANA LETTER MU +&Mu@@ +0x30e1 KATAKANA LETTER ME +&Me@@ +0x30e2 KATAKANA LETTER MO +&Mo@@ +0x30e3 KATAKANA LETTER SMALL YA +&YA@@ +0x30e4 KATAKANA LETTER YA +&Ya@@ +0x30e5 KATAKANA LETTER SMALL YU +&YU@@ +0x30e6 KATAKANA LETTER YU +&Yu@@ +0x30e7 KATAKANA LETTER SMALL YO +&YO@@ +0x30e8 KATAKANA LETTER YO +&Yo@@ +0x30e9 KATAKANA LETTER RA +&Ra@@ +0x30ea KATAKANA LETTER RI +&Ri@@ +0x30eb KATAKANA LETTER RU +&Ru@@ +0x30ec KATAKANA LETTER RE +&Re@@ +0x30ed KATAKANA LETTER RO +&Ro@@ +0x30ee KATAKANA LETTER SMALL WA +&WA@@ +0x30ef KATAKANA LETTER WA +&Wa@@ +0x30f0 KATAKANA LETTER WI +&Wi@@ +0x30f1 KATAKANA LETTER WE +&We@@ +0x30f2 KATAKANA LETTER WO +&Wo@@ +0x30f3 KATAKANA LETTER N +&N6@@ +0x30f4 KATAKANA LETTER VU +&Vu@@ +0x30f5 KATAKANA LETTER SMALL KA +&KA@@ +0x30f6 KATAKANA LETTER SMALL KE +&KE@@ +0x30f7 KATAKANA LETTER VA +&Va@@ +0x30f8 KATAKANA LETTER VI +&Vi@@ +0x30f9 KATAKANA LETTER VE +&Ve@@ +0x30fa KATAKANA LETTER VO +&Vo@@ +0x30fb KATAKANA MIDDLE DOT +&.6@@ +0x30fc KATAKANA-HIRAGANA PROLONGED SOUND MARK +&-6@@ +0x30fd KATAKANA ITERATION MARK +&*6@@ +0x30fe KATAKANA VOICED ITERATION MARK +&+6@@ +0x3105 BOPOMOFO LETTER B +&b4@@ +0x3106 BOPOMOFO LETTER P +&p4@@ +0x3107 BOPOMOFO LETTER M +&m4@@ +0x3108 BOPOMOFO LETTER F +&f4@@ +0x3109 BOPOMOFO LETTER D +&d4@@ +0x310a BOPOMOFO LETTER T +&t4@@ +0x310b BOPOMOFO LETTER N +&n4@@ +0x310c BOPOMOFO LETTER L +&l4@@ +0x310d BOPOMOFO LETTER G +&g4@@ +0x310e BOPOMOFO LETTER K +&k4@@ +0x310f BOPOMOFO LETTER H +&h4@@ +0x3110 BOPOMOFO LETTER J +&j4@@ +0x3111 BOPOMOFO LETTER Q +&q4@@ +0x3112 BOPOMOFO LETTER X +&x4@@ +0x3113 BOPOMOFO LETTER ZH +&zh@@ +0x3114 BOPOMOFO LETTER CH +&ch@@ +0x3115 BOPOMOFO LETTER SH +&sh@@ +0x3116 BOPOMOFO LETTER R +&r4@@ +0x3117 BOPOMOFO LETTER Z +&z4@@ +0x3118 BOPOMOFO LETTER C +&c4@@ +0x3119 BOPOMOFO LETTER S +&s4@@ +0x311a BOPOMOFO LETTER A +&a4@@ +0x311b BOPOMOFO LETTER O +&o4@@ +0x311c BOPOMOFO LETTER E +&e4@@ +0x311d BOPOMOFO LETTER EH +&_eh4_@@ +0x311e BOPOMOFO LETTER AI +&ai@@ +0x311f BOPOMOFO LETTER EI +&ei@@ +0x3120 BOPOMOFO LETTER AU +&au@@ +0x3121 BOPOMOFO LETTER OU +&ou@@ +0x3122 BOPOMOFO LETTER AN +&an@@ +0x3123 BOPOMOFO LETTER EN +&en@@ +0x3124 BOPOMOFO LETTER ANG +&aN@@ +0x3125 BOPOMOFO LETTER ENG +&eN@@ +0x3126 BOPOMOFO LETTER ER +&er@@ +0x3127 BOPOMOFO LETTER I +&i4@@ +0x3128 BOPOMOFO LETTER U +&u4@@ +0x3129 BOPOMOFO LETTER IU +&iu@@ +0x312a BOPOMOFO LETTER V +&v4@@ +0x312b BOPOMOFO LETTER NG +&nG@@ +0x312c BOPOMOFO LETTER GN +&gn@@ +0x321c PARENTHESIZED HANGUL JU +&_(JU)_@@ +0x3220 PARENTHESIZED IDEOGRAPH ONE +&1c@@ +0x3221 PARENTHESIZED IDEOGRAPH TWO +&2c@@ +0x3222 PARENTHESIZED IDEOGRAPH THREE +&3c@@ +0x3223 PARENTHESIZED IDEOGRAPH FOUR +&4c@@ +0x3224 PARENTHESIZED IDEOGRAPH FIVE +&5c@@ +0x3225 PARENTHESIZED IDEOGRAPH SIX +&6c@@ +0x3226 PARENTHESIZED IDEOGRAPH SEVEN +&7c@@ +0x3227 PARENTHESIZED IDEOGRAPH EIGHT +&8c@@ +0x3228 PARENTHESIZED IDEOGRAPH NINE +&9c@@ +0x3229 PARENTHESIZED IDEOGRAPH TEN +&_10c_@@ +0x327f KOREAN STANDARD SYMBOL +&_KSC_@@ +0xe001 JOIN THIS LINE WITH NEXT LINE (Mnemonic) +&/c@@ +0xe002 Unit space A (ISO-IR-8-1 064) +&UA@@ +0xe003 Unit space B (ISO-IR-8-1 096) +&UB@@ +0xe004 NON-SPACING UMLAUT (ISO-IR-38 201) (character part) +&"3@@ +0xe005 NON-SPACING DIAERESIS WITH ACCENT (ISO-IR-70 192) (character part) +&"1@@ +0xe006 NON-SPACING GRAVE ACCENT (ISO-IR-103 193) (character part) +&"!@@ +0xe007 NON-SPACING ACUTE ACCENT (ISO-IR-103 194) (character part) +&"'@@ +0xe008 NON-SPACING CIRCUMFLEX ACCENT (ISO-IR-103 195) (character part) +&">@@ +0xe009 NON-SPACING TILDE (ISO-IR-103 196) (character part) +&"?@@ +0xe00a NON-SPACING MACRON (ISO-IR-103 197) (character part) +&"-@@ +0xe00b NON-SPACING BREVE (ISO-IR-103 198) (character part) +&"(@@ +0xe00c NON-SPACING DOT ABOVE (ISO-IR-103 199) (character part) +&".@@ +0xe00d NON-SPACING DIAERESIS (ISO-IR-103 200) (character part) +&":@@ +0xe00e NON-SPACING RING ABOVE (ISO-IR-103 202) (character part) +&"0@@ +0xe00f NON-SPACING DOUBLE ACCUTE (ISO-IR-103 204) (character part) +&""@@ +0xe010 NON-SPACING CARON (ISO-IR-103 206) (character part) +&"<@@ +0xe011 NON-SPACING CEDILLA (ISO-IR-103 203) (character part) +&",@@ +0xe012 NON-SPACING OGONEK (ISO-IR-103 206) (character part) +&";@@ +0xe013 NON-SPACING LOW LINE (ISO-IR-103 204) (character part) +&"_@@ +0xe014 NON-SPACING DOUBLE LOW LINE (ISO-IR-38 217) (character part) +&"=@@ +0xe015 NON-SPACING LONG SOLIDUS (ISO-IR-128 201) (character part) +&"/@@ +0xe016 GREEK NON-SPACING IOTA BELOW (ISO-IR-55 39) (character part) +&"i@@ +0xe017 GREEK NON-SPACING DASIA PNEUMATA (ISO-IR-55 38) (character part) +&"d@@ +0xe018 GREEK NON-SPACING PSILI PNEUMATA (ISO-IR-55 37) (character part) +&"p@@ +0xe019 GREEK DASIA PNEUMATA (ISO-IR-18 92) +&;;@@ +0xe01a GREEK PSILI PNEUMATA (ISO-IR-18 124) +&,,@@ +0xe01b GREEK SMALL LETTER MIDDLE BETA (ISO-IR-18 99) +&b3@@ +0xe01c CIRCLE (ISO-IR-83 0294) +&Ci@@ +0xe01d FUNCTION SIGN (ISO-IR-143 221) +&f(@@ +0xe01e LATIN SMALL LETTER EZH (ISO-IR-158 142) +&ed@@ +0xe01f ANTE MERIDIAM SIGN (ISO-IR-149 0267) +&am@@ +0xe020 POST MERIDIAM SIGN (ISO-IR-149 0268) +&pm@@ +0xe021 TEL COMPATIBILITY SIGN (ISO-IR-149 0269) +&_Tel_@@ +0xe022 ARABIC LETTER ALEF FINAL FORM COMPATIBILITY (IBM868 144) +&_a+:_@@ +0xe023 DUTCH GUILDER SIGN (IBM437 159) +&Fl@@ +0xe024 GAMMA FUNCTION SIGN (ISO-10646-1DIS 032/032/037/122) +&GF@@ +0xe025 RIGHTWARDS VECTOR ABOVE (ISO-10646-1DIS 032/032/038/046) +&>V@@ +0xe026 GREEK VARIA (ISO-10646-1DIS 032/032/042/164) +&!*@@ +0xe027 GREEK PERISPOMENI (ISO-10646-1DIS 032/032/042/165) +&?*@@ +0xe028 LATIN CAPITAL LETTER J WITH CARON (lowercase: 000/000/001/240) +&J<@@ +0xfb00 LATIN SMALL LIGATURE FF +&ff@@ +0xfb01 LATIN SMALL LIGATURE FI +&fi@@ +0xfb02 LATIN SMALL LIGATURE FL +&fl@@ +0xfb03 LATIN SMALL LIGATURE FFI +&_ffi_@@ +0xfb04 LATIN SMALL LIGATURE FFL +&_ffl_@@ +0xfb05 LATIN SMALL LIGATURE FT +&ft@@ +0xfb06 LATIN SMALL LIGATURE ST +&st@@ +0xfe7d ARABIC SHADDA MEDIAL FORM +&_3+;_@@ +0xfe82 ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM +&_aM._@@ +0xfe84 ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM +&_aH._@@ +0xfe8d ARABIC LETTER ALEF ISOLATED FORM +&_a+-_@@ +0xfe8e ARABIC LETTER ALEF FINAL FORM +&_a+._@@ +0xfe8f ARABIC LETTER BEH ISOLATED FORM +&_b+-_@@ +0xfe90 ARABIC LETTER BEH INITIAL FORM +&_b+,_@@ +0xfe91 ARABIC LETTER BEH MEDIAL FORM +&_b+;_@@ +0xfe92 ARABIC LETTER BEH FINAL FORM +&_b+._@@ +0xfe93 ARABIC LETTER TEH MARBUTA ISOLATED FORM +&_tm-_@@ +0xfe94 ARABIC LETTER TEH MARBUTA FINAL FORM +&_tm._@@ +0xfe95 ARABIC LETTER TEH ISOLATED FORM +&_t+-_@@ +0xfe96 ARABIC LETTER TEH INITIAL FORM +&_t+,_@@ +0xfe97 ARABIC LETTER TEH MEDIAL FORM +&_t+;_@@ +0xfe98 ARABIC LETTER TEH FINAL FORM +&_t+._@@ +0xfe99 ARABIC LETTER THEH ISOLATED FORM +&_tk-_@@ +0xfe9a ARABIC LETTER THEH INITIAL FORM +&_tk,_@@ +0xfe9b ARABIC LETTER THEH MEDIAL FORM +&_tk;_@@ +0xfe9c ARABIC LETTER THEH FINAL FORM +&_tk._@@ +0xfe9d ARABIC LETTER JEEM ISOLATED FORM +&_g+-_@@ +0xfe9e ARABIC LETTER JEEM INITIAL FORM +&_g+,_@@ +0xfe9f ARABIC LETTER JEEM MEDIAL FORM +&_g+;_@@ +0xfea0 ARABIC LETTER JEEM FINAL FORM +&_g+._@@ +0xfea1 ARABIC LETTER HAH ISOLATED FORM +&_hk-_@@ +0xfea2 ARABIC LETTER HAH INITIAL FORM +&_hk,_@@ +0xfea3 ARABIC LETTER HAH MEDIAL FORM +&_hk;_@@ +0xfea4 ARABIC LETTER HAH FINAL FORM +&_hk._@@ +0xfea5 ARABIC LETTER KHAH ISOLATED FORM +&_x+-_@@ +0xfea6 ARABIC LETTER KHAH INITIAL FORM +&_x+,_@@ +0xfea7 ARABIC LETTER KHAH MEDIAL FORM +&_x+;_@@ +0xfea8 ARABIC LETTER KHAH FINAL FORM +&_x+._@@ +0xfea9 ARABIC LETTER DAL ISOLATED FORM +&_d+-_@@ +0xfeaa ARABIC LETTER DAL FINAL FORM +&_d+._@@ +0xfeab ARABIC LETTER THAL ISOLATED FORM +&_dk-_@@ +0xfeac ARABIC LETTER THAL FINAL FORM +&_dk._@@ +0xfead ARABIC LETTER REH ISOLATED FORM +&_r+-_@@ +0xfeae ARABIC LETTER REH FINAL FORM +&_r+._@@ +0xfeaf ARABIC LETTER ZAIN ISOLATED FORM +&_z+-_@@ +0xfeb0 ARABIC LETTER ZAIN FINAL FORM +&_z+._@@ +0xfeb1 ARABIC LETTER SEEN ISOLATED FORM +&_s+-_@@ +0xfeb2 ARABIC LETTER SEEN INITIAL FORM +&_s+,_@@ +0xfeb3 ARABIC LETTER SEEN MEDIAL FORM +&_s+;_@@ +0xfeb4 ARABIC LETTER SEEN FINAL FORM +&_s+._@@ +0xfeb5 ARABIC LETTER SHEEN ISOLATED FORM +&_sn-_@@ +0xfeb6 ARABIC LETTER SHEEN INITIAL FORM +&_sn,_@@ +0xfeb7 ARABIC LETTER SHEEN MEDIAL FORM +&_sn;_@@ +0xfeb8 ARABIC LETTER SHEEN FINAL FORM +&_sn._@@ +0xfeb9 ARABIC LETTER SAD ISOLATED FORM +&_c+-_@@ +0xfeba ARABIC LETTER SAD INITIAL FORM +&_c+,_@@ +0xfebb ARABIC LETTER SAD MEDIAL FORM +&_c+;_@@ +0xfebc ARABIC LETTER SAD FINAL FORM +&_c+._@@ +0xfebd ARABIC LETTER DAD ISOLATED FORM +&_dd-_@@ +0xfebe ARABIC LETTER DAD INITIAL FORM +&_dd,_@@ +0xfebf ARABIC LETTER DAD MEDIAL FORM +&_dd;_@@ +0xfec0 ARABIC LETTER DAD FINAL FORM +&_dd._@@ +0xfec1 ARABIC LETTER TAH ISOLATED FORM +&_tj-_@@ +0xfec2 ARABIC LETTER TAH INITIAL FORM +&_tj,_@@ +0xfec3 ARABIC LETTER TAH MEDIAL FORM +&_tj;_@@ +0xfec4 ARABIC LETTER TAH FINAL FORM +&_tj._@@ +0xfec5 ARABIC LETTER ZAH ISOLATED FORM +&_zH-_@@ +0xfec6 ARABIC LETTER ZAH INITIAL FORM +&_zH,_@@ +0xfec7 ARABIC LETTER ZAH MEDIAL FORM +&_zH;_@@ +0xfec8 ARABIC LETTER ZAH FINAL FORM +&_zH._@@ +0xfec9 ARABIC LETTER AIN ISOLATED FORM +&_e+-_@@ +0xfeca ARABIC LETTER AIN INITIAL FORM +&_e+,_@@ +0xfecb ARABIC LETTER AIN MEDIAL FORM +&_e+;_@@ +0xfecc ARABIC LETTER AIN FINAL FORM +&_e+._@@ +0xfecd ARABIC LETTER GHAIN ISOLATED FORM +&_i+-_@@ +0xfece ARABIC LETTER GHAIN INITIAL FORM +&_i+,_@@ +0xfecf ARABIC LETTER GHAIN MEDIAL FORM +&_i+;_@@ +0xfed0 ARABIC LETTER GHAIN FINAL FORM +&_i+._@@ +0xfed1 ARABIC LETTER FEH ISOLATED FORM +&_f+-_@@ +0xfed2 ARABIC LETTER FEH INITIAL FORM +&_f+,_@@ +0xfed3 ARABIC LETTER FEH MEDIAL FORM +&_f+;_@@ +0xfed4 ARABIC LETTER FEH FINAL FORM +&_f+._@@ +0xfed5 ARABIC LETTER QAF ISOLATED FORM +&_q+-_@@ +0xfed6 ARABIC LETTER QAF INITIAL FORM +&_q+,_@@ +0xfed7 ARABIC LETTER QAF MEDIAL FORM +&_q+;_@@ +0xfed8 ARABIC LETTER QAF FINAL FORM +&_q+._@@ +0xfed9 ARABIC LETTER KAF ISOLATED FORM +&_k+-_@@ +0xfeda ARABIC LETTER KAF INITIAL FORM +&_k+,_@@ +0xfedb ARABIC LETTER KAF MEDIAL FORM +&_k+;_@@ +0xfedc ARABIC LETTER KAF FINAL FORM +&_k+._@@ +0xfedd ARABIC LETTER LAM ISOLATED FORM +&_l+-_@@ +0xfede ARABIC LETTER LAM INITIAL FORM +&_l+,_@@ +0xfedf ARABIC LETTER LAM MEDIAL FORM +&_l+;_@@ +0xfee0 ARABIC LETTER LAM FINAL FORM +&_l+._@@ +0xfee1 ARABIC LETTER MEEM ISOLATED FORM +&_m+-_@@ +0xfee2 ARABIC LETTER MEEM INITIAL FORM +&_m+,_@@ +0xfee3 ARABIC LETTER MEEM MEDIAL FORM +&_m+;_@@ +0xfee4 ARABIC LETTER MEEM FINAL FORM +&_m+._@@ +0xfee5 ARABIC LETTER NOON ISOLATED FORM +&_n+-_@@ +0xfee6 ARABIC LETTER NOON INITIAL FORM +&_n+,_@@ +0xfee7 ARABIC LETTER NOON MEDIAL FORM +&_n+;_@@ +0xfee8 ARABIC LETTER NOON FINAL FORM +&_n+._@@ +0xfee9 ARABIC LETTER HEH ISOLATED FORM +&_h+-_@@ +0xfeea ARABIC LETTER HEH INITIAL FORM +&_h+,_@@ +0xfeeb ARABIC LETTER HEH MEDIAL FORM +&_h+;_@@ +0xfeec ARABIC LETTER HEH FINAL FORM +&_h+._@@ +0xfeed ARABIC LETTER WAW ISOLATED FORM +&_w+-_@@ +0xfeee ARABIC LETTER WAW FINAL FORM +&_w+._@@ +0xfeef ARABIC LETTER ALEF MAKSURA ISOLATED FORM +&_j+-_@@ +0xfef0 ARABIC LETTER ALEF MAKSURA FINAL FORM +&_j+._@@ +0xfef1 ARABIC LETTER YEH ISOLATED FORM +&_y+-_@@ +0xfef2 ARABIC LETTER YEH INITIAL FORM +&_y+,_@@ +0xfef3 ARABIC LETTER YEH MEDIAL FORM +&_y+;_@@ +0xfef4 ARABIC LETTER YEH FINAL FORM +&_y+._@@ +0xfef5 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM +&_lM-_@@ +0xfef6 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM +&_lM._@@ +0xfef7 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM +&_lH-_@@ +0xfef8 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM +&_lH._@@ +0xfef9 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM +&_lh-_@@ +0xfefa ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM +&_lh._@@ +0xfefb ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM +&_la-_@@ +0xfefc ARABIC LIGATURE LAM WITH ALEF FINAL FORM +&_la._@@ diff --git a/externals/figlet/fonts/moscow.flc b/externals/figlet/fonts/moscow.flc new file mode 100644 index 0000000000..86454f175c --- /dev/null +++ b/externals/figlet/fonts/moscow.flc @@ -0,0 +1,68 @@ +flc2a +# This controlfile maps the U.S. keyboard to Cyrillic +# in the style of the "moscow" font, but is meant for use +# with a FIGlet Unicode font with Cyrillic codes, such as "banner" +# +# "moscow" is an upper-case-only font, so for full compatibility +# use the "upper" controlfile as well and avoid "@" and "<". +t / \0x044c +t \0x5c \0x044a +t | \0x044b +t ~ \0x044d +t < \0x042d +t ` \0x0443 +t @ \0x042e +t > \0x0439 +t A \0x0410 +t a \0x0430 +t B \0x0411 +t b \0x0431 +t C \0x0427 +t c \0x0447 +t D \0x0414 +t d \0x0434 +t E \0x0415 +t e \0x0435 +t F \0x0424 +t f \0x0444 +t G \0x0413 +t g \0x0433 +t H \0x0425 +t h \0x0445 +t I \0x0418 +t i \0x0438 +t J \0x0416 +t j \0x0436 +t K \0x041a +t k \0x043a +t L \0x041b +t l \0x043b +t M \0x041c +t m \0x043c +t N \0x041d +t n \0x043d +t O \0x041e +t o \0x043e +t P \0x041f +t p \0x043f +t Q \0x0426 +t q \0x0446 +t R \0x0420 +t r \0x0440 +t S \0x0421 +t s \0x0441 +t T \0x0422 +t t \0x0442 +t U \0x0423 +t u \0x0443 +t V \0x0412 +t v \0x0432 +t W \0x0428 +t w \0x0448 +t X \0x0429 +t x \0x0449 +t Y \0x042f +t y \0x044f +t Z \0x0417 +t z \0x0437 +t = \-6 diff --git a/externals/figlet/fonts/script.flf b/externals/figlet/fonts/script.flf new file mode 100644 index 0000000000..8f2f048fab --- /dev/null +++ b/externals/figlet/fonts/script.flf @@ -0,0 +1,1493 @@ +flf2a$ 7 5 16 0 10 0 3904 96 +Script by Glenn Chappell 4/93 +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + +$$@ +$$@ +$$@ +$$@ +$$@ +$$@ +$$@@ + @ + |@ + |@ + |@ + o@ + @ + @@ + oo@ + ||@ + $$@ + $$@ + $$@ + @ + @@ + @ + | | @ + --+--+--@ + --+--+--@ + | | @ + @ + @@ + @ + |_|_@ + (|_| @ + _|_|)@ + | | @ + @ + @@ + @ + () /@ + / @ + / @ + / ()@ + @ + @@ + @ + () @ + /\ @ + / \/@ + \__/\@ + @ + @@ + o@ + /@ + $@ + $@ + $@ + @ + @@ + @ + /@ + | @ + | @ + | @ + \@ + @@ + @ + \ @ + |@ + |@ + |@ + / @ + @@ + @ + @ + \|/ @ + --*--@ + /|\ @ + @ + @@ + @ + @ + | @ + --+--@ + | @ + @ + @@ + @ + @ + @ + @ + o@ + /@ + @@ + @ + @ + @ + -----@ + $ @ + @ + @@ + @ + @ + @ + @ + o@ + @ + @@ + @ + /@ + / @ + / @ + / @ + @ + @@ + __ @ + / \ @ + | |@ + | |@ + \__/ @ + @ + @@ + ,@ + /|@ + |@ + |@ + |@ + @ + @@ + __ @ + / )@ + $/ @ + / @ + /___@ + @ + @@ + ___ @ + / \@ + $__/@ + $ \@ + \___/@ + @ + @@ + @ + | | @ + |__|_@ + | @ + | @ + @ + @@ + ____@ + | @ + |___ @ + $ \@ + \___/@ + @ + @@ + __ @ + /$ @ + | __ @ + |/ \@ + \__/@ + @ + @@ + _____@ + $ /@ + $ / @ + $/ @ + / @ + @ + @@ + __ @ + / \@ + \__/@ + / \@ + \__/@ + @ + @@ + __ @ + / |@ + \_/|@ + |@ + |@ + @ + @@ + @ + o@ + $@ + $@ + o@ + @ + @@ + @ + o@ + $@ + $@ + o@ + /@ + @@ + @ + /@ + / @ + \ @ + \@ + @ + @@ + @ + @ + -----@ + -----@ + @ + @ + @@ + @ + \ @ + \@ + /@ + / @ + @ + @@ + __ @ + / \@ + $_/@ + | @ + o @ + @ + @@ + @ + ____ @ + / __,\ @ + | / | |@ + | \_/|/ @ + \____/ @ + @@ + ___, @ + / | @ + | | @ + | | @ + \__/\_/@ + @ + @@ + , __ @ + /|/ \@ + | __/@ + | \@ + |(__/@ + @ + @@ + ___$@ + / (_)@ + | $ @ + | $ @ + \___/@ + @ + @@ + $____ @ + (| \ @ + | |@ + $_| |@ + (/\___/ @ + @ + @@ + ___$@ + / (_)@ + \__$ @ + / $ @ + \___/@ + @ + @@ + $______@ + (_) |$ @ + _|_$@ + / | |@ + (_/ @ + @ + @@ + @ + () |@ + /\/|@ + / |@ + /(__/ @ + @ + @@ + , @ + /| | @ + |___| @ + | |\@ + | |/@ + @ + @@ + _ @ + | |@ + | |@ + _ |/ @ + \_/\/@ + @ + @@ + @ + /\ @ + | | @ + | | @ + \_|/@ + /| @ + \| @@ + , @ + /| / @ + |__/ @ + | \$ @ + | \_/@ + @ + @@ + $_$ @ + \_|_) @ + |$ @ + $_|$ @ + (/\___/@ + @ + @@ + ,__ __ @ + /| | | @ + | | | @ + | | | @ + | | |_/@ + @ + @@ + , _ @ + /|/ \ @ + | | @ + | | @ + | |_/@ + @ + @@ + __ @ + /\_\/@ + | |@ + | |@ + \__/ @ + @ + @@ + , __ @ + /|/ \@ + |___/@ + | $@ + | $@ + @ + @@ + __ @ + / \ @ + | __ | @ + |/ \| @ + \__/\_/@ + @ + @@ + , __ @ + /|/ \ @ + |___/ @ + | \$ @ + | \_/@ + @ + @@ + @ + () @ + /\ @ + / \@ + /(__/@ + @ + @@ + $______@ + (_) | @ + $ | @ + $_ | @ + (_/ @ + @ + @@ + $_ @ + (_| | @ + | | @ + | | @ + \__/\_/@ + @ + @@ + $_ @ + (_| |_/@ + | | @ + | | @ + \_/ @ + @ + @@ + $_ @ + (_| | |_/@ + | | | @ + | | | @ + \_/ \_/ @ + @ + @@ + $_ @ + (_\ / @ + $\/ @ + $/\ @ + _/ \_/@ + @ + @@ + $_ @ + (_| | @ + | | @ + | | @ + \_/|/@ + /| @ + \| @@ + $__ @ + (_ \ @ + $/ @ + / @ + /__/@ + /| @ + \| @@ + _@ + | @ + | @ + | @ + | @ + |_@ + @@ + @ + \ @ + \ @ + \ @ + \@ + @ + @@ + _ @ + |@ + |@ + |@ + |@ + _|@ + @@ + /\@ + $@ + $@ + $@ + $@ + @ + @@ + @ + @ + @ + @ + $ @ + $ @ + _____@@ + o@ + \@ + $@ + $@ + $@ + @ + @@ + @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ + $_$ @ + | | @ + | | @ + |/ \_@ + \_/ @ + @ + @@ + @ + @ + __ @ + /$ @ + \___/@ + @ + @@ + @ + | @ + __| @ + / | @ + \_/|_/@ + @ + @@ + @ + @ + _ @ + |/ @ + |__/@ + @ + @@ + $_$ @ + | | @ + | | @ + |/ @ + |__/@ + |\ @ + |/ @@ + @ + @ + __, @ + / | @ + \_/|/@ + /| @ + \| @@ + $_$ @ + | | @ + | | @ + |/ \ @ + | |_/@ + @ + @@ + @ + o @ + @ + | @ + |_/@ + @ + @@ + @ + o @ + @ + | @ + |/@ + /| @ + \| @@ + $_$ @ + | | @ + | | @ + |/_) @ + | \_/@ + @ + @@ + $_$ @ + | | @ + | | @ + |/ @ + |__/@ + @ + @@ + @ + @ + _ _ _ @ + / |/ |/ | @ + $ | | |_/@ + @ + @@ + @ + @ + _ _ @ + / |/ | @ + $ | |_/@ + @ + @@ + @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ + @ + @ + _ @ + |/ \_@ + |__/ @ + /| @ + \| @@ + @ + @ + __, @ + / | @ + \_/|_/@ + |\ @ + |/ @@ + @ + @ + ,_ @ + / | @ + $ |_/@ + @ + @@ + @ + @ + , @ + / \_@ + $\/ @ + @ + @@ + @ + @ + _|_ @ + | @ + |_/@ + @ + @@ + @ + @ + @ + | | @ + $\_/|_/@ + @ + @@ + @ + @ + @ + | |_@ + $\/ @ + @ + @@ + @ + @ + @ + | | |_@ + $\/ \/ @ + @ + @@ + @ + @ + @ + /\/ @ + $/\_/@ + @ + @@ + @ + @ + @ + | | @ + $\_/|/@ + /| @ + \| @@ + @ + @ + __ @ + / / _@ + $/_/ @ + /| @ + \| @@ + @ + /@ + | @ + < @ + | @ + \@ + @@ + |@ + |@ + |@ + |@ + |@ + |@ + |@@ + @ + \ @ + | @ + >@ + | @ + / @ + @@ + /\/@ + $ @ + $ @ + $ @ + $ @ + @ + @@ + o o @ + ___, @ + / | @ + | | @ + \__/\_/@ + @ + @@ + o o @ + __ @ + /\_\/@ + | |@ + \__/ @ + @ + @@ + o o @ + $_ @ + (_| | @ + | | @ + \__/\_/@ + @ + @@ + o o @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ + o o @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ + o o @ + @ + @ + | | @ + $\_/|_/@ + @ + @@ + _ @ + / \@ + | /@ + | \@ + | _/@ + | @ + @@ +160 NO-BREAK SPACE + $$@ + $$@ + $$@ + $$@ + $$@ + $$@ + $$@@ +161 INVERTED EXCLAMATION MARK + @ + o@ + |@ + |@ + |@ + @ + @@ +162 CENT SIGN + @ + @ + _|_ @ + / | @ + \_|_/@ + | @ + @@ +163 POUND SIGN + _ @ + / \ @ + __|__ @ + _| $ @ + (/ \__/@ + @ + @@ +164 CURRENCY SIGN + @ + \ _ /@ + / \ @ + \_/ @ + / \@ + @ + @@ +165 YEN SIGN + @ + \ /@ + _\_/_@ + __|__@ + | @ + @ + @@ +166 BROKEN BAR + |@ + |@ + |@ + @ + |@ + |@ + |@@ +167 SECTION SIGN + _@ + ( @ + /\@ + \/@ + _)@ + @ + @@ +168 DIAERESIS + o o@ + $ $@ + $ $@ + $ $@ + $ $@ + @ + @@ +169 COPYRIGHT SIGN + ____ @ + / __ \ @ + / / () \ @ + | | |@ + \ \__/ / @ + \____/ @ + @@ +170 FEMININE ORDINAL INDICATOR + __, @ + / | @ + \_/|_@ + ---- @ + $ @ + @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + @ + //@ + // @ + \\ @ + \\@ + @ + @@ +172 NOT SIGN + @ + ___ @ + |@ + $ @ + $ @ + @ + @@ +173 SOFT HYPHEN + @ + @ + @ + ----@ + $ @ + @ + @@ +174 REGISTERED SIGN + ____ @ + /, _ \ @ + //|/ \ \ @ + | |__/ |@ + \ | \_// @ + \____/ @ + @@ +175 MACRON + _____@ + $ @ + $ @ + $ @ + $ @ + @ + @@ +176 DEGREE SIGN + _ @ + / \@ + \_/@ + @ + $ @ + @ + @@ +177 PLUS-MINUS SIGN + @ + @ + | @ + --+--@ + __|__@ + @ + @@ +178 SUPERSCRIPT TWO + _ @ + )@ + /_@ + @ + $@ + @ + @@ +179 SUPERSCRIPT THREE + ___@ + _/@ + __)@ + @ + $ @ + @ + @@ +180 ACUTE ACCENT + /@ + $@ + $@ + $@ + $@ + @ + @@ +181 MICRO SIGN + @ + @ + @ + | | @ + |\_/|_/@ + | @ + | @@ +182 PILCROW SIGN + ____ @ + / | |@ + \_| |@ + | |@ + | |@ + @ + @@ +183 MIDDLE DOT + @ + @ + $O$@ + $ @ + $ @ + @ + @@ +184 CEDILLA + @ + @ + @ + @ + $ @ + _)@ + @@ +185 SUPERSCRIPT ONE + ,@ + /|@ + |@ + @ + $@ + @ + @@ +186 MASCULINE ORDINAL INDICATOR + __ @ + / \_@ + \__/ @ + ---- @ + $ @ + @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + @ + \\ @ + \\@ + //@ + // @ + @ + @@ +188 VULGAR FRACTION ONE QUARTER + , @ + /| / @ + |/ @ + /|_|_@ + / | @ + @ + @@ +189 VULGAR FRACTION ONE HALF + , @ + /| / @ + |/_ @ + / )@ + / /_@ + @ + @@ +190 VULGAR FRACTION THREE QUARTERS + ___ @ + _/ / @ + __)/ @ + /|_|_@ + / | @ + @ + @@ +191 INVERTED QUESTION MARK + @ + o @ + _| @ + /$ @ + \__/@ + @ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + \ @ + ___, @ + / | @ + | | @ + \__/\_/@ + @ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + / @ + ___, @ + / | @ + | | @ + \__/\_/@ + @ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /\ @ + ___, @ + / | @ + | | @ + \__/\_/@ + @ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/ @ + ___, @ + / | @ + | | @ + \__/\_/@ + @ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + o o @ + ___, @ + / | @ + | | @ + \__/\_/@ + @ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _ @ + (_), @ + / | @ + | | @ + \__/\_/@ + @ + @@ +198 LATIN CAPITAL LETTER AE + ___,___$@ + / | (_)@ + | |__ @ + | | @ + \__/\___/@ + @ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + ___$@ + / (_)@ + | $ @ + | $ @ + \___/@ + _) @ + @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + \ @ + ___$ @ + / (_) @ + >--$ @ + \____/@ + @ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + / @ + ___$ @ + / (_) @ + >--$ @ + \____/@ + @ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /\ @ + ___$ @ + / (_) @ + >--$ @ + \____/@ + @ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + o o @ + ___$ @ + / (_) @ + >--$ @ + \____/@ + @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + \ @ + $_$ @ + | | @ + _ |/ @ + \_/\_/@ + @ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + / @ + $_$ @ + | | @ + _ |/ @ + \_/\_/@ + @ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /\ @ + $_$ @ + | | @ + _ |/ @ + \_/\_/@ + @ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + o o @ + $_$ @ + | | @ + _ |/ @ + \_/\_/@ + @ + @@ +208 LATIN CAPITAL LETTER ETH + $____ @ + (| \ @ + __|__ |@ + $_| |@ + (/\___/ @ + @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\/ @ + , _ @ + /|/ \ @ + | | @ + | |_/@ + @ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + \ @ + __ @ + /\_\/@ + | |@ + \__/ @ + @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + / @ + __ @ + /\_\/@ + | |@ + \__/ @ + @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /\ @ + __ @ + /\_\/@ + | |@ + \__/ @ + @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/ @ + __ @ + /\_\/@ + | |@ + \__/ @ + @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + o o @ + __ @ + /\_\/@ + | |@ + \__/ @ + @ + @@ +215 MULTIPLICATION SIGN + @ + @ + $\/$@ + $/\$@ + $ $@ + @ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + __ /@ + /\_//@ + | / |@ + | / |@ + /__/ @ + / @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + \ @ + $_ @ + (_| | @ + | | @ + \__/\_/@ + @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + / @ + $_ @ + (_| | @ + | | @ + \__/\_/@ + @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /\ @ + $_ @ + (_| | @ + | | @ + \__/\_/@ + @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + o o @ + $_ @ + (_| | @ + | | @ + \__/\_/@ + @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + / @ + $_ @ + (_| | @ + | | @ + \_/|/@ + /| @ + \| @@ +222 LATIN CAPITAL LETTER THORN + , @ + | __ @ + /|/ \@ + |___/@ + | $@ + @ + @@ +223 LATIN SMALL LETTER SHARP S + _ @ + / \@ + | /@ + | \@ + | _/@ + | @ + @@ +224 LATIN SMALL LETTER A WITH GRAVE + \ @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + / @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + /\ @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/ @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + o o @ + @ + __, @ + / | @ + \_/|_/@ + @ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + @ + () @ + __, @ + / | @ + \_/|_/@ + @ + @@ +230 LATIN SMALL LETTER AE + @ + @ + __,_ @ + / |/ @ + \_/|__/@ + @ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + @ + __ @ + / @ + \___/@ + _) @ + @@ +232 LATIN SMALL LETTER E WITH GRAVE + \ @ + @ + _ @ + |/ @ + |__/@ + @ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + / @ + @ + _ @ + |/ @ + |__/@ + @ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + /\ @ + @ + _ @ + |/ @ + |__/@ + @ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + o o @ + @ + _ @ + |/ @ + |__/@ + @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + \ @ + @ + @ + | @ + |_/@ + @ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + / @ + @ + @ + | @ + |_/@ + @ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + /\ @ + @ + @ + | @ + |_/@ + @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + o o @ + @ + @ + | @ + |__/@ + @ + @@ +240 LATIN SMALL LETTER ETH + @ + \/@ + _'|@ + / |@ + \_/ @ + @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/ @ + @ + _ _ @ + / |/ | @ + $ | |_/@ + @ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + \ @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + / @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + /\ @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/ @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + o o @ + @ + __ @ + / \_@ + \__/ @ + @ + @@ +247 DIVISION SIGN + @ + @ + O @ + -----@ + O @ + @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + @ + __/ @ + / /\_@ + \/_/ @ + / @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + \ @ + @ + @ + | | @ + $\_/|_/@ + @ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + / @ + @ + @ + | | @ + $\_/|_/@ + @ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + /\ @ + @ + @ + | | @ + $\_/|_/@ + @ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + o o @ + @ + @ + | | @ + $\_/|_/@ + @ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + / @ + @ + @ + | | @ + $\_/|/@ + /| @ + \| @@ +254 LATIN SMALL LETTER THORN + _ @ + | | @ + | | @ + |/ \_@ + |__/ @ + /| @ + \| @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + o o @ + @ + @ + | | @ + $\_/|/@ + /| @ + \| @@ diff --git a/externals/figlet/fonts/shadow.flf b/externals/figlet/fonts/shadow.flf new file mode 100644 index 0000000000..2ec918211b --- /dev/null +++ b/externals/figlet/fonts/shadow.flf @@ -0,0 +1,1097 @@ +flf2a$ 5 4 16 0 10 0 4992 96 +Shadow by Glenn Chappell 6/93 -- based on Standard & SmShadow +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + + $$@ + $$@ + $$@ + $$@ + $$@@ + $|$@ + $|$@ + _|$@ + _)$@ + @@ + $| )$@ + V V$ @ + $$ @ + $$ @ + @@ + $| |$ @ + _ |_ |_|$@ + _ |_ |_|$@ + _| _|$ @ + @@ + $|$ @ + $ __)$@ + \__ \$@ + ( /$@ + _|$ @@ + _) /$@ + $/$ @ + $/$ @ + _/ _)$@ + @@ + $ _ )$ @ + $_ \ \$@ + $( ` <$@ + \___/\/$@ + @@ + $)$@ + /$ @ + $$ @ + $$ @ + @@ + $/$@ + $|$ @ + $|$ @ + $|$ @ + \_\$@@ + \ \$ @ + $|$@ + $|$@ + $|$@ + _/$ @@ + $\$ @ + \ /$@ + $_ _\$@ + \/$ @ + @@ + @ + $|$ @ + _ _|$@ + _|$ @ + @@ + @ + @ + @ + $)$@ + /$ @@ + @ + @ + _____|$@ + $$ @ + @@ + @ + @ + @ + _)$@ + @@ + $/$@ + $/$ @ + $/$ @ + _/$ @ + @@ + $_ \$ @ + $| |$@ + $| |$@ + \___/$ @ + @@ + _ |$@ + $|$@ + $|$@ + _|$@ + @@ + ___ \$ @ + ) |$@ + $__/$ @ + _____|$@ + @@ + ___ /$ @ + _ \$ @ + ) |$@ + ____/$ @ + @@ + $| |$ @ + $| |$ @ + ___ __|$@ + _|$ @ + @@ + $___|$ @ + $__ \$ @ + ) |$@ + ____/$ @ + @@ + $/$ @ + $ _ \$ @ + $( |$@ + \___/$ @ + @@ + ___ |$@ + $/$ @ + $/$ @ + _/$ @ + @@ + $ _ )$ @ + $_ \$ @ + $( |$@ + \___/$ @ + @@ + $_ \$ @ + $( |$@ + \__ |$@ + __/$ @ + @@ + @ + _)$@ + $$ @ + _)$@ + @@ + @ + _)$@ + $$ @ + $)$@ + /$ @@ + $/$@ + $/$ @ + \ \$ @ + \_\$@ + @@ + @ + _____|$@ + _____|$@ + @ + @@ + \ \$ @ + \ \$@ + $/$@ + _/$ @ + @@ + __ \$@ + $/$@ + _|$ @ + _)$ @ + @@ + $__ \$ @ + $/ _` |$@ + $| ( |$@ + \ \__,_|$@ + \____/$ @@ + $\$ @ + $_ \$ @ + $___ \$ @ + _/ _\$@ + @@ + $__ )$ @ + $__ \$ @ + $| |$@ + ____/$ @ + @@ + $___|$@ + $|$ @ + $|$ @ + \____|$@ + @@ + $__ \$ @ + $| |$@ + $| |$@ + ____/$ @ + @@ + $____|$@ + $__|$ @ + $|$ @ + _____|$@ + @@ + $____|$@ + $|$ @ + $__|$ @ + _|$ @ + @@ + $___|$@ + $|$ @ + $| |$@ + \____|$@ + @@ + $| |$@ + $| |$@ + $___ |$@ + _| _|$@ + @@ + _ _|$@ + $|$ @ + $|$ @ + ___|$@ + @@ + $|$@ + $|$@ + $\ |$@ + \___/$ @ + @@ + $| /$@ + $' /$ @ + $. \$ @ + _|\_\$@ + @@ + $|$ @ + $|$ @ + $|$ @ + _____|$@ + @@ + $ \ |$@ + $|\/ |$@ + $| |$@ + _| _|$@ + @@ + $ \ |$@ + $ \ |$@ + $|\ |$@ + _| \_|$@ + @@ + $_ \$ @ + $| |$@ + $| |$@ + \___/$ @ + @@ + $ _ \$ @ + $| |$@ + $___/$ @ + _|$ @ + @@ + $_ \$ @ + $| |$@ + $| |$@ + \__\_\$@ + @@ + $ _ \$ @ + $| |$@ + $__ <$ @ + _| \_\$@ + @@ + $___|$ @ + \___ \$ @ + $|$@ + _____/$ @ + @@ + __ __|$@ + $|$ @ + $|$ @ + _|$ @ + @@ + $| |$@ + $| |$@ + $| |$@ + \___/$ @ + @@ + \ \ /$@ + \ \ /$ @ + \ \ /$ @ + \_/$ @ + @@ + \ \ /$@ + \ \ \ /$ @ + \ \ \ /$ @ + \_/\_/$ @ + @@ + \ \ /$@ + \ /$ @ + $ \$ @ + _/\_\$@ + @@ + \ \ /$@ + \ /$ @ + $|$ @ + _|$ @ + @@ + __ /$@ + $/$ @ + $/$ @ + ____|$@ + @@ + $_|$@ + $|$ @ + $|$ @ + $|$ @ + __|$@@ + \ \$ @ + \ \$ @ + \ \$ @ + \_\$@ + @@ + _ |$@ + $|$@ + $|$@ + $|$@ + __|$@@ + /\\$@ + $$ @ + $$ @ + $$ @ + @@ + @ + @ + @ + $$ @ + _____|$@@ + $)$@ + \|$@ + $$ @ + $$ @ + @@ + @ + $_` |$@ + $( |$@ + \__,_|$@ + @@ + $|$ @ + $__ \$ @ + $| |$@ + _.__/$ @ + @@ + @ + $__|$@ + $($ @ + \___|$@ + @@ + $|$@ + $_` |$@ + $( |$@ + \__,_|$@ + @@ + @ + $_ \$@ + $ __/$@ + \___|$@ + @@ + $_|$@ + $|$ @ + $__|$@ + _|$ @ + @@ + @ + $_` |$@ + $( |$@ + \__, |$@ + |___/$ @@ + $|$ @ + $__ \$ @ + $| | |$@ + _| |_|$@ + @@ + _)$@ + $|$@ + $|$@ + _|$@ + @@ + _)$@ + $|$@ + $|$@ + $|$@ + ___/$ @@ + $|$ @ + $| /$@ + $ <$ @ + _|\_\$@ + @@ + $|$@ + $|$@ + $|$@ + _|$@ + @@ + @ + $__ `__ \$ @ + $| | |$@ + _| _| _|$@ + @@ + @ + $__ \$ @ + $| |$@ + _| _|$@ + @@ + @ + $_ \$ @ + $( |$@ + \___/$ @ + @@ + @ + $__ \$ @ + $| |$@ + $.__/$ @ + _|$ @@ + @ + $_` |$@ + $( |$@ + \__, |$@ + _|$@@ + @ + $ __|$@ + $|$ @ + _|$ @ + @@ + @ + $__|$@ + \__ \$@ + ____/$@ + @@ + $|$ @ + $__|$@ + $|$ @ + \__|$@ + @@ + @ + $| |$@ + $| |$@ + \__,_|$@ + @@ + @ + \ \ /$@ + \ \ /$ @ + \_/$ @ + @@ + @ + \ \ \ /$@ + \ \ \ /$ @ + \_/\_/$ @ + @@ + @ + \ \ /$@ + ` <$ @ + _/\_\$@ + @@ + @ + $| |$@ + $| |$@ + \__, |$@ + ____/$ @@ + @ + _ /$@ + $/$ @ + ___|$@ + @@ + $/$@ + $|$ @ + < <$ @ + $|$ @ + \_\$@@ + $|$@ + $|$@ + $|$@ + $|$@ + _|$@@ + \ \$ @ + $|$ @ + ` >$@ + $|$ @ + _/$ @@ + / _/$@ + $$ @ + $$ @ + $$ @ + @@ + _) \ _)$@ + $_ \$ @ + $___ \$ @ + _/ _\$@ + @@ + _) _)$@ + $_ \$ @ + $| |$@ + \___/$ @ + @@ + _) _)$@ + $| |$@ + $| |$@ + \___/$ @ + @@ + _) _)$@ + $_` |$@ + $( |$@ + \__,_|$@ + @@ + _) _)$@ + $_ \$ @ + $( |$@ + \___/$ @ + @@ + _) _)$@ + $| |$@ + $| |$@ + \__,_|$@ + @@ + $_ \$@ + $| /$@ + $|\ \$@ + $|__/$@ + _|$ @@ +160 NO-BREAK SPACE + $ $@ + $ $@ + $ $@ + $ $@ + $ $@@ +161 INVERTED EXCLAMATION MARK + _)$@ + $|$@ + $|$@ + _|$@ + @@ +162 CENT SIGN + $|$ @ + $__)$@ + $($ @ + \ )$@ + _|$ @@ +163 POUND SIGN + $,_\$ @ + _ |_$ @ + $|$ @ + _,____|$@ + @@ +164 CURRENCY SIGN + \ _ /$@ + $( |$@ + $___ \$@ + \/ /$@ + @@ +165 YEN SIGN + \ \ /$ @ + __ __|$@ + __ __|$@ + _|$ @ + @@ +166 BROKEN BAR + $|$@ + _|$@ + @ + $|$@ + _|$@@ +167 SECTION SIGN + $_)$@ + $\ \$ @ + \ \\ \$@ + \ \_/$@ + (__/$ @@ +168 DIAERESIS + _) _)$@ + $ $ @ + $ $ @ + $ $ @ + @@ +169 COPYRIGHT SIGN + $ \$ @ + $ __| \$ @ + $ ( |$@ + \ \___| /$ @ + \_____/$ @@ +170 FEMININE ORDINAL INDICATOR + $_` |$@ + \__,_|$@ + _____|$@ + $$ @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + $/ /$@ + $/ /$ @ + \ \ \$ @ + \_\_\$@ + @@ +172 NOT SIGN + @ + _____ |$@ + _|$@ + $$ @ + @@ +173 SOFT HYPHEN + @ + @ + _____|$@ + $$ @ + @@ +174 REGISTERED SIGN + $ \$ @ + $ _ \ \$ @ + $ / |$@ + \ _|_\ /$ @ + \_____/$ @@ +175 MACRON + _____|$@ + $$ @ + $$ @ + $$ @ + @@ +176 DEGREE SIGN + $ \$ @ + $( |$@ + \__/$ @ + $$ @ + @@ +177 PLUS-MINUS SIGN + $|$ @ + _ _|$@ + _|$ @ + _____|$@ + @@ +178 SUPERSCRIPT TWO + _ )$@ + $/$ @ + ___|$@ + $$ @ + @@ +179 SUPERSCRIPT THREE + __ /$@ + _ \$@ + ___/$@ + $$ @ + @@ +180 ACUTE ACCENT + _/$@ + $$ @ + $$ @ + $$ @ + @@ +181 MICRO SIGN + @ + $| |$@ + $| |$@ + $._,_|$@ + _|$ @@ +182 PILCROW SIGN + $ |$@ + $( | |$@ + \__ | |$@ + _|_|$@ + @@ +183 MIDDLE DOT + @ + _)$@ + $$ @ + $$ @ + @@ +184 CEDILLA + @ + @ + @ + $$ @ + _)$@@ +185 SUPERSCRIPT ONE + _ |$@ + $|$@ + _|$@ + $$ @ + @@ +186 MASCULINE ORDINAL INDICATOR + $_ \$@ + \___/$@ + ____|$@ + $$ @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + \ \ \$ @ + \ \ \$@ + $/ /$@ + _/_/$ @ + @@ +188 VULGAR FRACTION ONE QUARTER + _ | /$ @ + $| / | |$ @ + _| / __ _|$@ + _/ _|$ @ + @@ +189 VULGAR FRACTION ONE HALF + _ | /$ @ + $| /_ )$@ + _| / /$ @ + _/ ___|$@ + @@ +190 VULGAR FRACTION THREE QUARTERS + __ / /$ @ + _ \ / | |$ @ + ___/ / __ _|$@ + _/ _|$ @ + @@ +191 INVERTED QUESTION MARK + _)$ @ + $|$ @ + $/$ @ + \___|$@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + \_\$ @ + $\$ @ + $_ \$ @ + _/ _\$@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + _/$ @ + $\$ @ + $_ \$ @ + _/ _\$@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /\\$ @ + $\$ @ + $_ \$ @ + _/ _\$@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + / _/$ @ + $\$ @ + $_ \$ @ + _/ _\$@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _) \ _)$@ + $_ \$ @ + $___ \$ @ + _/ _\$@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + ( )$ @ + $_ \$ @ + $___ \$ @ + _/ _\$@ + @@ +198 LATIN CAPITAL LETTER AE + $ ____|$@ + $/ __|$ @ + $__ |$ @ + _/ _____|$@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + $___|$@ + $|$ @ + $|$ @ + \____|$@ + _)$ @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + \_\$ @ + $____|$@ + $ _|$ @ + _____|$@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + _/$ @ + $____|$@ + $ _|$ @ + _____|$@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /\\$ @ + $____|$@ + $ _|_$ @ + _____|$@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _) _)$@ + $____|$@ + $ _|$ @ + _____|$@ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + \_\$ @ + _ _|$@ + | |$ @ + ___|$@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + _/$ @ + _ _|$@ + $|$ @ + ___|$@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /\\$ @ + _ _|$@ + $|$ @ + ___|$@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _) _)$@ + _ _|$ @ + $|$ @ + ___|$ @ + @@ +208 LATIN CAPITAL LETTER ETH + __ \$ @ + | |$@ + __ __| |$@ + ____/$ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + / _/$@ + $ \ |$@ + $. |$@ + _|\_|$@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + \_\$ @ + $_ \$ @ + $| |$@ + \___/$ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + _/$ @ + $_ \$ @ + $| |$@ + \___/$ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /\\$ @ + $_ \$ @ + $| |$@ + \___/$ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + / _/$ @ + $_ \$ @ + $| |$@ + \___/$ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _) _)$@ + $_ \$ @ + $| |$@ + \___/$ @ + @@ +215 MULTIPLICATION SIGN + @ + \ \$@ + , '$@ + \/\/$@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + $_ /$ @ + $| / |$@ + $ / |$@ + _/__/$ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + \_\$ @ + $| |$@ + $| |$@ + \___/$ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + _/$ @ + $| |$@ + $| |$@ + \___/$ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /\\$ @ + $| |$@ + $| |$@ + \___/$ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _) _)$@ + $| |$@ + $| |$@ + \___/$ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + _/$ @ + \ \ /$@ + \ /$ @ + _|$ @ + @@ +222 LATIN CAPITAL LETTER THORN + $|$ @ + $ __ \$@ + $ ___/$@ + _|$ @ + @@ +223 LATIN SMALL LETTER SHARP S + $_ \$@ + $| /$@ + $|\ \$@ + $|__/$@ + _|$ @@ +224 LATIN SMALL LETTER A WITH GRAVE + \_\$ @ + $_` |$@ + $( |$@ + \__,_|$@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + _/_$ @ + $_` |$@ + $( |$@ + \__,_|$@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + /\\$ @ + $_` |$@ + $( |$@ + \__,_|$@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + / _/$ @ + $_` |$@ + $( |$@ + \__,_|$@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _) _)$@ + $_` |$@ + $( |$@ + \__,_|$@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + ( )$ @ + $_ '|$@ + $( |$@ + \__,_|$@ + @@ +230 LATIN SMALL LETTER AE + @ + $_` _ \$@ + $( __/$@ + \__,____|$@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + $__|$@ + $($ @ + \___|$@ + _)$ @@ +232 LATIN SMALL LETTER E WITH GRAVE + \_\$ @ + $_ \$@ + $ __/$@ + \___|$@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + _/$ @ + $_ \$@ + $ __/$@ + \___|$@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + /\\$ @ + $_ \$@ + $ __/$@ + \___|$@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _) _)$@ + $_ \$ @ + $ __/$ @ + \___|$ @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + \_\$@ + $|$@ + $|$@ + _|$@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + _/$@ + $|$@ + $|$@ + _|$@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + /\\$@ + $|$ @ + $|$ @ + _|$ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _) _)$@ + $|$ @ + $|$ @ + _|$ @ + @@ +240 LATIN SMALL LETTER ETH + ` <$ @ + \/\ |$@ + $__` |$@ + \____/$ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + / _/$ @ + $'_ \$ @ + $| |$@ + _| _|$@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + \_\$ @ + $_ \$ @ + $( |$@ + \___/$ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + _/$ @ + $_ \$ @ + $( |$@ + \___/$ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + /\\$ @ + $_ \$ @ + $( |$@ + \___/$ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + / _/$ @ + $_ \$ @ + $( |$@ + \___/$ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _) _)$@ + $_ \$ @ + $( |$@ + \___/$ @ + @@ +247 DIVISION SIGN + @ + _)$ @ + _____|$@ + _)$ @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + $_ /\$ @ + $( / |$@ + \_/__/$ @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + \_\$ @ + $| |$@ + $| |$@ + \__,_|$@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + _/$ @ + $| |$@ + $| |$@ + \__,_|$@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + /\\$ @ + $| |$@ + $| |$@ + \__,_|$@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _) _)$@ + $| |$@ + $| |$@ + \__,_|$@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + _/$ @ + $| |$@ + $| |$@ + \__, |$@ + ____/$ @@ +254 LATIN SMALL LETTER THORN + $|$ @ + $__ \$ @ + $| |$@ + $.__/$ @ + _|$ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _) _)$@ + $| |$@ + $| |$@ + \__, |$@ + ____/$ @@ diff --git a/externals/figlet/fonts/slant.flf b/externals/figlet/fonts/slant.flf new file mode 100644 index 0000000000..43fe3986e8 --- /dev/null +++ b/externals/figlet/fonts/slant.flf @@ -0,0 +1,1295 @@ +flf2a$ 6 5 16 15 10 0 18319 96 +Slant by Glenn Chappell 3/93 -- based on Standard +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + + $$@ + $$ @ + $$ @ + $$ @ + $$ @ +$$ @@ + __@ + / /@ + / / @ + /_/ @ +(_) @ + @@ + _ _ @ +( | )@ +|/|/ @ + $ @ +$ @ + @@ + __ __ @ + __/ // /_@ + /_ _ __/@ +/_ _ __/ @ + /_//_/ @ + @@ + __@ + _/ /@ + / __/@ + (_ ) @ +/ _/ @ +/_/ @@ + _ __@ + (_)_/_/@ + _/_/ @ + _/_/_ @ +/_/ (_) @ + @@ + ___ @ + ( _ ) @ + / __ \/|@ +/ /_/ < @ +\____/\/ @ + @@ + _ @ + ( )@ + |/ @ + $ @ +$ @ + @@ + __@ + _/_/@ + / / @ + / / @ +/ / @ +|_| @@ + _ @ + | |@ + / /@ + / / @ + _/_/ @ +/_/ @@ + @ + __/|_@ + | /@ +/_ __| @ + |/ @ + @@ + @ + __ @ + __/ /_@ +/_ __/@ + /_/ @ + @@ + @ + @ + @ + _ @ +( )@ +|/ @@ + @ + @ + ______@ +/_____/@ + $ @ + @@ + @ + @ + @ + _ @ +(_)@ + @@ + __@ + _/_/@ + _/_/ @ + _/_/ @ +/_/ @ + @@ + ____ @ + / __ \@ + / / / /@ +/ /_/ / @ +\____/ @ + @@ + ___@ + < /@ + / / @ + / / @ +/_/ @ + @@ + ___ @ + |__ \@ + __/ /@ + / __/ @ +/____/ @ + @@ + _____@ + |__ /@ + /_ < @ + ___/ / @ +/____/ @ + @@ + __ __@ + / // /@ + / // /_@ +/__ __/@ + /_/ @ + @@ + ______@ + / ____/@ + /___ \ @ + ____/ / @ +/_____/ @ + @@ + _____@ + / ___/@ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ + _____@ +/__ /@ + / / @ + / / @ +/_/ @ + @@ + ____ @ + ( __ )@ + / __ |@ +/ /_/ / @ +\____/ @ + @@ + ____ @ + / __ \@ + / /_/ /@ + \__, / @ +/____/ @ + @@ + @ + _ @ + (_)@ + _ @ +(_) @ + @@ + @ + _ @ + (_)@ + _ @ +( ) @ +|/ @@ + __@ + / /@ +/ / @ +\ \ @ + \_\@ + @@ + @ + _____@ + /____/@ +/____/ @ + $ @ + @@ +__ @ +\ \ @ + \ \@ + / /@ +/_/ @ + @@ + ___ @ + /__ \@ + / _/@ + /_/ @ +(_) @ + @@ + ______ @ + / ____ \@ + / / __ `/@ +/ / /_/ / @ +\ \__,_/ @ + \____/ @@ + ___ @ + / |@ + / /| |@ + / ___ |@ +/_/ |_|@ + @@ + ____ @ + / __ )@ + / __ |@ + / /_/ / @ +/_____/ @ + @@ + ______@ + / ____/@ + / / @ +/ /___ @ +\____/ @ + @@ + ____ @ + / __ \@ + / / / /@ + / /_/ / @ +/_____/ @ + @@ + ______@ + / ____/@ + / __/ @ + / /___ @ +/_____/ @ + @@ + ______@ + / ____/@ + / /_ @ + / __/ @ +/_/ @ + @@ + ______@ + / ____/@ + / / __ @ +/ /_/ / @ +\____/ @ + @@ + __ __@ + / / / /@ + / /_/ / @ + / __ / @ +/_/ /_/ @ + @@ + ____@ + / _/@ + / / @ + _/ / @ +/___/ @ + @@ + __@ + / /@ + __ / / @ +/ /_/ / @ +\____/ @ + @@ + __ __@ + / //_/@ + / ,< @ + / /| | @ +/_/ |_| @ + @@ + __ @ + / / @ + / / @ + / /___@ +/_____/@ + @@ + __ ___@ + / |/ /@ + / /|_/ / @ + / / / / @ +/_/ /_/ @ + @@ + _ __@ + / | / /@ + / |/ / @ + / /| / @ +/_/ |_/ @ + @@ + ____ @ + / __ \@ + / / / /@ +/ /_/ / @ +\____/ @ + @@ + ____ @ + / __ \@ + / /_/ /@ + / ____/ @ +/_/ @ + @@ + ____ @ + / __ \@ + / / / /@ +/ /_/ / @ +\___\_\ @ + @@ + ____ @ + / __ \@ + / /_/ /@ + / _, _/ @ +/_/ |_| @ + @@ + _____@ + / ___/@ + \__ \ @ + ___/ / @ +/____/ @ + @@ + ______@ + /_ __/@ + / / @ + / / @ +/_/ @ + @@ + __ __@ + / / / /@ + / / / / @ +/ /_/ / @ +\____/ @ + @@ + _ __@ +| | / /@ +| | / / @ +| |/ / @ +|___/ @ + @@ + _ __@ +| | / /@ +| | /| / / @ +| |/ |/ / @ +|__/|__/ @ + @@ + _ __@ + | |/ /@ + | / @ + / | @ +/_/|_| @ + @@ +__ __@ +\ \/ /@ + \ / @ + / / @ +/_/ @ + @@ + _____@ +/__ /@ + / / @ + / /__@ +/____/@ + @@ + ___@ + / _/@ + / / @ + / / @ + / / @ +/__/ @@ +__ @ +\ \ @ + \ \ @ + \ \ @ + \_\@ + @@ + ___@ + / /@ + / / @ + / / @ + _/ / @ +/__/ @@ + //|@ + |/||@ + $ @ + $ @ +$ @ + @@ + @ + @ + @ + @ + ______@ +/_____/@@ + _ @ + ( )@ + V @ + $ @ +$ @ + @@ + @ + ____ _@ + / __ `/@ +/ /_/ / @ +\__,_/ @ + @@ + __ @ + / /_ @ + / __ \@ + / /_/ /@ +/_.___/ @ + @@ + @ + _____@ + / ___/@ +/ /__ @ +\___/ @ + @@ + __@ + ____/ /@ + / __ / @ +/ /_/ / @ +\__,_/ @ + @@ + @ + ___ @ + / _ \@ +/ __/@ +\___/ @ + @@ + ____@ + / __/@ + / /_ @ + / __/ @ +/_/ @ + @@ + @ + ____ _@ + / __ `/@ + / /_/ / @ + \__, / @ +/____/ @@ + __ @ + / /_ @ + / __ \@ + / / / /@ +/_/ /_/ @ + @@ + _ @ + (_)@ + / / @ + / / @ +/_/ @ + @@ + _ @ + (_)@ + / / @ + / / @ + __/ / @ +/___/ @@ + __ @ + / /__@ + / //_/@ + / ,< @ +/_/|_| @ + @@ + __@ + / /@ + / / @ + / / @ +/_/ @ + @@ + @ + ____ ___ @ + / __ `__ \@ + / / / / / /@ +/_/ /_/ /_/ @ + @@ + @ + ____ @ + / __ \@ + / / / /@ +/_/ /_/ @ + @@ + @ + ____ @ + / __ \@ +/ /_/ /@ +\____/ @ + @@ + @ + ____ @ + / __ \@ + / /_/ /@ + / .___/ @ +/_/ @@ + @ + ____ _@ + / __ `/@ +/ /_/ / @ +\__, / @ + /_/ @@ + @ + _____@ + / ___/@ + / / @ +/_/ @ + @@ + @ + _____@ + / ___/@ + (__ ) @ +/____/ @ + @@ + __ @ + / /_@ + / __/@ +/ /_ @ +\__/ @ + @@ + @ + __ __@ + / / / /@ +/ /_/ / @ +\__,_/ @ + @@ + @ + _ __@ +| | / /@ +| |/ / @ +|___/ @ + @@ + @ + _ __@ +| | /| / /@ +| |/ |/ / @ +|__/|__/ @ + @@ + @ + _ __@ + | |/_/@ + _> < @ +/_/|_| @ + @@ + @ + __ __@ + / / / /@ + / /_/ / @ + \__, / @ +/____/ @@ + @ + ____@ +/_ /@ + / /_@ +/___/@ + @@ + __@ + _/_/@ + _/_/ @ +< < @ +/ / @ +\_\ @@ + __@ + / /@ + / / @ + / / @ + / / @ +/_/ @@ + _ @ + | |@ + / /@ + _>_>@ + _/_/ @ +/_/ @@ + /\//@ + //\/ @ + $ @ + $ @ +$ @ + @@ + _ _ @ + (_)(_)@ + / _ | @ + / __ | @ +/_/ |_| @ + @@ + _ _ @ + (_)_(_)@ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ + _ _ @ + (_) (_)@ + / / / / @ +/ /_/ / @ +\____/ @ + @@ + _ _ @ + (_)_(_)@ + / __ `/ @ +/ /_/ / @ +\__,_/ @ + @@ + _ _ @ + (_)_(_)@ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ + _ _ @ + (_) (_)@ + / / / / @ +/ /_/ / @ +\__,_/ @ + @@ + ____ @ + / __ \@ + / / / /@ + / /_| | @ + / //__/ @ +/_/ @@ +160 NO-BREAK SPACE + $$@ + $$ @ + $$ @ + $$ @ + $$ @ +$$ @@ +161 INVERTED EXCLAMATION MARK + _ @ + (_)@ + / / @ + / / @ +/_/ @ + @@ +162 CENT SIGN + __@ + __/ /@ + / ___/@ +/ /__ @ +\ _/ @ +/_/ @@ +163 POUND SIGN + ____ @ + / ,__\@ + __/ /_ @ + _/ /___ @ +(_,____/ @ + @@ +164 CURRENCY SIGN + /|___/|@ + | __ / @ + / /_/ / @ + /___ | @ +|/ |/ @ + @@ +165 YEN SIGN + ____@ + _| / /@ + /_ __/@ +/_ __/ @ + /_/ @ + @@ +166 BROKEN BAR + __@ + / /@ + /_/ @ + __ @ + / / @ +/_/ @@ +167 SECTION SIGN + __ @ + _/ _)@ + / | | @ + | || | @ + | |_/ @ +(__/ @@ +168 DIAERESIS + _ _ @ + (_) (_)@ + $ $ @ + $ $ @ +$ $ @ + @@ +169 COPYRIGHT SIGN + ______ @ + / _____\ @ + / / ___/ |@ + / / /__ / @ +| \___/ / @ + \______/ @@ +170 FEMININE ORDINAL INDICATOR + ___ _@ + / _ `/@ + _\_,_/ @ +/____/ @ + $ @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + ____@ + / / /@ +/ / / @ +\ \ \ @ + \_\_\@ + @@ +172 NOT SIGN + @ + ______@ +/___ /@ + /_/ @ + $ @ + @@ +173 SOFT HYPHEN + @ + @ + _____@ +/____/@ + $ @ + @@ +174 REGISTERED SIGN + ______ @ + / ___ \ @ + / / _ \ |@ + / / , _/ / @ +| /_/|_| / @ + \______/ @@ +175 MACRON + ______@ +/_____/@ + $ @ + $ @ +$ @ + @@ +176 DEGREE SIGN + ___ @ + / _ \@ +/ // /@ +\___/ @ + $ @ + @@ +177 PLUS-MINUS SIGN + __ @ + __/ /_@ + /_ __/@ + __/_/_ @ +/_____/ @ + @@ +178 SUPERSCRIPT TWO + ___ @ + |_ |@ + / __/ @ +/____/ @ + $ @ + @@ +179 SUPERSCRIPT THREE + ____@ + |_ /@ + _/_ < @ +/____/ @ + $ @ + @@ +180 ACUTE ACCENT + __@ + /_/@ + $ @ + $ @ +$ @ + @@ +181 MICRO SIGN + @ + __ __@ + / / / /@ + / /_/ / @ + / ._,_/ @ +/_/ @@ +182 PILCROW SIGN + _______@ + / _ /@ +/ (/ / / @ +\_ / / @ + /_/_/ @ + @@ +183 MIDDLE DOT + @ + _ @ +(_)@ + $ @ +$ @ + @@ +184 CEDILLA + @ + @ + @ + @ + _ @ +/_)@@ +185 SUPERSCRIPT ONE + ___@ + < /@ + / / @ +/_/ @ +$ @ + @@ +186 MASCULINE ORDINAL INDICATOR + ___ @ + / _ \@ + _\___/@ +/____/ @ + $ @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +____ @ +\ \ \ @ + \ \ \@ + / / /@ +/_/_/ @ + @@ +188 VULGAR FRACTION ONE QUARTER + ___ __ @ + < / _/_/ @ + / /_/_/___@ +/_//_// / /@ + /_/ /_ _/@ + /_/ @@ +189 VULGAR FRACTION ONE HALF + ___ __ @ + < / _/_/__ @ + / /_/_/|_ |@ +/_//_/ / __/ @ + /_/ /____/ @ + @@ +190 VULGAR FRACTION THREE QUARTERS + ____ __ @ + |_ / _/_/ @ + _/_ < _/_/___@ +/____//_// / /@ + /_/ /_ _/@ + /_/ @@ +191 INVERTED QUESTION MARK + _ @ + (_)@ + _/ / @ +/ _/_ @ +\___/ @ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + __ @ + _\_\@ + / _ |@ + / __ |@ +/_/ |_|@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + __@ + _/_/@ + / _ |@ + / __ |@ +/_/ |_|@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + //|@ + _|/||@ + / _ | @ + / __ | @ +/_/ |_| @ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\//@ + _//\/ @ + / _ | @ + / __ | @ +/_/ |_| @ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)(_)@ + / _ | @ + / __ | @ +/_/ |_| @ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + (())@ + / |@ + / /| |@ + / ___ |@ +/_/ |_|@ + @@ +198 LATIN CAPITAL LETTER AE + __________@ + / ____/@ + / /| __/ @ + / __ /___ @ +/_/ /_____/ @ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + ______@ + / ____/@ + / / @ +/ /___ @ +\____/ @ + /_) @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + __ @ + _\_\@ + / __/@ + / _/ @ +/___/ @ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + __@ + _/_/@ + / __/@ + / _/ @ +/___/ @ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + //|@ + _|/||@ + / __/ @ + / _/ @ +/___/ @ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ _ @ + (_)(_)@ + / __/ @ + / _/ @ +/___/ @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + __ @ + _\_\@ + / _/@ + _/ / @ +/___/ @ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __@ + _/_/@ + / _/@ + _/ / @ +/___/ @ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + //|@ + _|/||@ + / _/ @ + _/ / @ +/___/ @ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ _ @ + (_)(_)@ + / _/ @ + _/ / @ +/___/ @ + @@ +208 LATIN CAPITAL LETTER ETH + ____ @ + / __ \@ + __/ /_/ /@ +/_ __/ / @ + /_____/ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\//@ + _//\/ @ + / |/ / @ + / / @ +/_/|_/ @ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + __ @ + __\_\@ + / __ \@ +/ /_/ /@ +\____/ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + __@ + __/_/@ + / __ \@ +/ /_/ /@ +\____/ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + //|@ + _|/||@ + / __ \@ +/ /_/ /@ +\____/ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\//@ + _//\/ @ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ +215 MULTIPLICATION SIGN + @ + @ + /|/|@ + > < @ +|/|/ @ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + _____ @ + / _// \@ + / //// /@ +/ //// / @ +\_//__/ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + __ @ + __\_\_@ + / / / /@ +/ /_/ / @ +\____/ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + __ @ + __/_/_@ + / / / /@ +/ /_/ / @ +\____/ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + //| @ + _|/||_@ + / / / /@ +/ /_/ / @ +\____/ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + / / / / @ +/ /_/ / @ +\____/ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + __ @ +__/_/_@ +\ \/ /@ + \ / @ + /_/ @ + @@ +222 LATIN CAPITAL LETTER THORN + __ @ + / /_ @ + / __ \@ + / ____/@ +/_/ @ + @@ +223 LATIN SMALL LETTER SHARP S + ____ @ + / __ \@ + / / / /@ + / /_| | @ + / //__/ @ +/_/ @@ +224 LATIN SMALL LETTER A WITH GRAVE + __ @ + __\_\_@ + / __ `/@ +/ /_/ / @ +\__,_/ @ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + __ @ + __/_/_@ + / __ `/@ +/ /_/ / @ +\__,_/ @ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + //| @ + _|/||_@ + / __ `/@ +/ /_/ / @ +\__,_/ @ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\//@ + _//\/_@ + / __ `/@ +/ /_/ / @ +\__,_/ @ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + / __ `/ @ +/ /_/ / @ +\__,_/ @ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + __ @ + __(())@ + / __ `/@ +/ /_/ / @ +\__,_/ @ + @@ +230 LATIN SMALL LETTER AE + @ + ____ ___ @ + / __ ` _ \@ +/ /_/ __/@ +\__,_____/ @ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + _____@ + / ___/@ +/ /__ @ +\___/ @ +/_) @@ +232 LATIN SMALL LETTER E WITH GRAVE + __ @ + _\_\@ + / _ \@ +/ __/@ +\___/ @ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + __@ + _/_/@ + / _ \@ +/ __/@ +\___/ @ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + //|@ + _|/||@ + / _ \ @ +/ __/ @ +\___/ @ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ _ @ + (_)(_)@ + / _ \ @ +/ __/ @ +\___/ @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + __ @ + \_\@ + / / @ + / / @ +/_/ @ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + __@ + /_/@ + / / @ + / / @ +/_/ @ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + //|@ + |/||@ + / / @ + / / @ +/_/ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + / / @ + / / @ +/_/ @ + @@ +240 LATIN SMALL LETTER ETH + || @ + =||=@ + ___ || @ +/ __` | @ +\____/ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\//@ + _//\/ @ + / __ \ @ + / / / / @ +/_/ /_/ @ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + __ @ + __\_\@ + / __ \@ +/ /_/ /@ +\____/ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + __@ + __/_/@ + / __ \@ +/ /_/ /@ +\____/ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + //|@ + _|/||@ + / __ \@ +/ /_/ /@ +\____/ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\//@ + _//\/ @ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / __ \ @ +/ /_/ / @ +\____/ @ + @@ +247 DIVISION SIGN + @ + _ @ + __(_)_@ +/_____/@ + (_) @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + _____ @ + / _// \@ +/ //// /@ +\_//__/ @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + __ @ + __\_\_@ + / / / /@ +/ /_/ / @ +\__,_/ @ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + __ @ + __/_/_@ + / / / /@ +/ /_/ / @ +\__,_/ @ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + //| @ + _|/||_@ + / / / /@ +/ /_/ / @ +\__,_/ @ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + / / / / @ +/ /_/ / @ +\__,_/ @ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + __ @ + __/_/_@ + / / / /@ + / /_/ / @ + \__, / @ +/____/ @@ +254 LATIN SMALL LETTER THORN + __ @ + / /_ @ + / __ \@ + / /_/ /@ + / .___/ @ +/_/ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ _ @ + (_) (_)@ + / / / / @ + / /_/ / @ + \__, / @ +/____/ @@ diff --git a/externals/figlet/fonts/small.flf b/externals/figlet/fonts/small.flf new file mode 100644 index 0000000000..c6b5bfcdef --- /dev/null +++ b/externals/figlet/fonts/small.flf @@ -0,0 +1,1097 @@ +flf2a$ 5 4 13 15 10 0 22415 96 +Small by Glenn Chappell 4/93 -- based on Standard +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + + $@ + $@ + $@ + $@ + $@@ + _ @ + | |@ + |_|@ + (_)@ + @@ + _ _ @ + ( | )@ + V V @ + $ @ + @@ + _ _ @ + _| | |_ @ + |_ . _|@ + |_ _|@ + |_|_| @@ + @ + ||_@ + (_-<@ + / _/@ + || @@ + _ __ @ + (_)/ / @ + / /_ @ + /_/(_)@ + @@ + __ @ + / _|___ @ + > _|_ _|@ + \_____| @ + @@ + _ @ + ( )@ + |/ @ + $ @ + @@ + __@ + / /@ + | | @ + | | @ + \_\@@ + __ @ + \ \ @ + | |@ + | |@ + /_/ @@ + @ + _/\_@ + > <@ + \/ @ + @@ + _ @ + _| |_ @ + |_ _|@ + |_| @ + @@ + @ + @ + _ @ + ( )@ + |/ @@ + @ + ___ @ + |___|@ + $ @ + @@ + @ + @ + _ @ + (_)@ + @@ + __@ + / /@ + / / @ + /_/ @ + @@ + __ @ + / \ @ + | () |@ + \__/ @ + @@ + _ @ + / |@ + | |@ + |_|@ + @@ + ___ @ + |_ )@ + / / @ + /___|@ + @@ + ____@ + |__ /@ + |_ \@ + |___/@ + @@ + _ _ @ + | | | @ + |_ _|@ + |_| @ + @@ + ___ @ + | __|@ + |__ \@ + |___/@ + @@ + __ @ + / / @ + / _ \@ + \___/@ + @@ + ____ @ + |__ |@ + / / @ + /_/ @ + @@ + ___ @ + ( _ )@ + / _ \@ + \___/@ + @@ + ___ @ + / _ \@ + \_, /@ + /_/ @ + @@ + _ @ + (_)@ + _ @ + (_)@ + @@ + _ @ + (_)@ + _ @ + ( )@ + |/ @@ + __@ + / /@ + < < @ + \_\@ + @@ + @ + ___ @ + |___|@ + |___|@ + @@ + __ @ + \ \ @ + > >@ + /_/ @ + @@ + ___ @ + |__ \@ + /_/@ + (_) @ + @@ + ____ @ + / __ \ @ + / / _` |@ + \ \__,_|@ + \____/ @@ + _ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ + ___ @ + | _ )@ + | _ \@ + |___/@ + @@ + ___ @ + / __|@ + | (__ @ + \___|@ + @@ + ___ @ + | \ @ + | |) |@ + |___/ @ + @@ + ___ @ + | __|@ + | _| @ + |___|@ + @@ + ___ @ + | __|@ + | _| @ + |_| @ + @@ + ___ @ + / __|@ + | (_ |@ + \___|@ + @@ + _ _ @ + | || |@ + | __ |@ + |_||_|@ + @@ + ___ @ + |_ _|@ + | | @ + |___|@ + @@ + _ @ + _ | |@ + | || |@ + \__/ @ + @@ + _ __@ + | |/ /@ + | ' < @ + |_|\_\@ + @@ + _ @ + | | @ + | |__ @ + |____|@ + @@ + __ __ @ + | \/ |@ + | |\/| |@ + |_| |_|@ + @@ + _ _ @ + | \| |@ + | .` |@ + |_|\_|@ + @@ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + ___ @ + | _ \@ + | _/@ + |_| @ + @@ + ___ @ + / _ \ @ + | (_) |@ + \__\_\@ + @@ + ___ @ + | _ \@ + | /@ + |_|_\@ + @@ + ___ @ + / __|@ + \__ \@ + |___/@ + @@ + _____ @ + |_ _|@ + | | @ + |_| @ + @@ + _ _ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + __ __@ + \ \ / /@ + \ V / @ + \_/ @ + @@ + __ __@ + \ \ / /@ + \ \/\/ / @ + \_/\_/ @ + @@ + __ __@ + \ \/ /@ + > < @ + /_/\_\@ + @@ + __ __@ + \ \ / /@ + \ V / @ + |_| @ + @@ + ____@ + |_ /@ + / / @ + /___|@ + @@ + __ @ + | _|@ + | | @ + | | @ + |__|@@ + __ @ + \ \ @ + \ \ @ + \_\@ + @@ + __ @ + |_ |@ + | |@ + | |@ + |__|@@ + /\ @ + |/\|@ + $ @ + $ @ + @@ + @ + @ + @ + ___ @ + |___|@@ + _ @ + ( )@ + \|@ + $ @ + @@ + @ + __ _ @ + / _` |@ + \__,_|@ + @@ + _ @ + | |__ @ + | '_ \@ + |_.__/@ + @@ + @ + __ @ + / _|@ + \__|@ + @@ + _ @ + __| |@ + / _` |@ + \__,_|@ + @@ + @ + ___ @ + / -_)@ + \___|@ + @@ + __ @ + / _|@ + | _|@ + |_| @ + @@ + @ + __ _ @ + / _` |@ + \__, |@ + |___/ @@ + _ @ + | |_ @ + | ' \ @ + |_||_|@ + @@ + _ @ + (_)@ + | |@ + |_|@ + @@ + _ @ + (_)@ + | |@ + _/ |@ + |__/ @@ + _ @ + | |__@ + | / /@ + |_\_\@ + @@ + _ @ + | |@ + | |@ + |_|@ + @@ + @ + _ __ @ + | ' \ @ + |_|_|_|@ + @@ + @ + _ _ @ + | ' \ @ + |_||_|@ + @@ + @ + ___ @ + / _ \@ + \___/@ + @@ + @ + _ __ @ + | '_ \@ + | .__/@ + |_| @@ + @ + __ _ @ + / _` |@ + \__, |@ + |_|@@ + @ + _ _ @ + | '_|@ + |_| @ + @@ + @ + ___@ + (_-<@ + /__/@ + @@ + _ @ + | |_ @ + | _|@ + \__|@ + @@ + @ + _ _ @ + | || |@ + \_,_|@ + @@ + @ + __ __@ + \ V /@ + \_/ @ + @@ + @ + __ __ __@ + \ V V /@ + \_/\_/ @ + @@ + @ + __ __@ + \ \ /@ + /_\_\@ + @@ + @ + _ _ @ + | || |@ + \_, |@ + |__/ @@ + @ + ___@ + |_ /@ + /__|@ + @@ + __@ + / /@ + _| | @ + | | @ + \_\@@ + _ @ + | |@ + | |@ + | |@ + |_|@@ + __ @ + \ \ @ + | |_@ + | | @ + /_/ @@ + /\/|@ + |/\/ @ + $ @ + $ @ + @@ + _ _ @ + (_)(_)@ + /--\ @ + /_/\_\@ + @@ + _ _ @ + (_)(_)@ + / __ \@ + \____/@ + @@ + _ _ @ + (_) (_)@ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_)(_)@ + / _` |@ + \__,_|@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + \___/ @ + @@ + _ _ @ + (_)(_)@ + | || |@ + \_,_|@ + @@ + ___ @ + / _ \@ + | |< <@ + | ||_/@ + |_| @@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + $@@ +161 INVERTED EXCLAMATION MARK + _ @ + (_)@ + | |@ + |_|@ + @@ +162 CENT SIGN + @ + || @ + / _)@ + \ _)@ + || @@ +163 POUND SIGN + __ @ + _/ _\ @ + |_ _|_ @ + (_,___|@ + @@ +164 CURRENCY SIGN + /\_/\@ + \ . /@ + / _ \@ + \/ \/@ + @@ +165 YEN SIGN + __ __ @ + \ V / @ + |__ __|@ + |__ __|@ + |_| @@ +166 BROKEN BAR + _ @ + | |@ + |_|@ + | |@ + |_|@@ +167 SECTION SIGN + __ @ + / _)@ + /\ \ @ + \ \/ @ + (__/ @@ +168 DIAERESIS + _ _ @ + (_)(_)@ + $ $ @ + $ $ @ + @@ +169 COPYRIGHT SIGN + ____ @ + / __ \ @ + / / _| \@ + \ \__| /@ + \____/ @@ +170 FEMININE ORDINAL INDICATOR + __ _ @ + / _` |@ + \__,_|@ + |____|@ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + ____@ + / / /@ + < < < @ + \_\_\@ + @@ +172 NOT SIGN + ____ @ + |__ |@ + |_|@ + $ @ + @@ +173 SOFT HYPHEN + @ + __ @ + |__|@ + $ @ + @@ +174 REGISTERED SIGN + ____ @ + / __ \ @ + / | -) \@ + \ ||\\ /@ + \____/ @@ +175 MACRON + ___ @ + |___|@ + $ @ + $ @ + @@ +176 DEGREE SIGN + _ @ + /.\@ + \_/@ + $ @ + @@ +177 PLUS-MINUS SIGN + _ @ + _| |_ @ + |_ _|@ + _|_|_ @ + |_____|@@ +178 SUPERSCRIPT TWO + __ @ + |_ )@ + /__|@ + $ @ + @@ +179 SUPERSCRIPT THREE + ___@ + |_ /@ + |__)@ + $ @ + @@ +180 ACUTE ACCENT + __@ + /_/@ + $ @ + $ @ + @@ +181 MICRO SIGN + @ + _ _ @ + | || |@ + | .,_|@ + |_| @@ +182 PILCROW SIGN + ____ @ + / |@ + \_ | |@ + |_|_|@ + @@ +183 MIDDLE DOT + @ + _ @ + (_)@ + $ @ + @@ +184 CEDILLA + @ + @ + @ + _ @ + )_)@@ +185 SUPERSCRIPT ONE + _ @ + / |@ + |_|@ + $ @ + @@ +186 MASCULINE ORDINAL INDICATOR + ___ @ + / _ \@ + \___/@ + |___|@ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + ____ @ + \ \ \ @ + > > >@ + /_/_/ @ + @@ +188 VULGAR FRACTION ONE QUARTER + _ __ @ + / |/ /__ @ + |_/ /_' |@ + /_/ |_|@ + @@ +189 VULGAR FRACTION ONE HALF + _ __ @ + / |/ /_ @ + |_/ /_ )@ + /_//__|@ + @@ +190 VULGAR FRACTION THREE QUARTERS + ___ __ @ + |_ // /__ @ + |__) /_' |@ + /_/ |_|@ + @@ +191 INVERTED QUESTION MARK + _ @ + (_) @ + / /_ @ + \___|@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + __ @ + \_\ @ + /--\ @ + /_/\_\@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + __ @ + /_/ @ + /--\ @ + /_/\_\@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /\ @ + |/\| @ + /--\ @ + /_/\_\@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/|@ + |/\/ @ + /--\ @ + /_/\_\@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)(_)@ + /--\ @ + /_/\_\@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + __ @ + (()) @ + /--\ @ + /_/\_\@ + @@ +198 LATIN CAPITAL LETTER AE + ____ @ + /, __|@ + / _ _| @ + /_/|___|@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + ___ @ + / __|@ + | (__ @ + \___|@ + )_) @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + __ @ + \_\@ + | -<@ + |__<@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + __@ + /_/@ + | -<@ + |__<@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /\ @ + |/\|@ + | -<@ + |__<@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ _ @ + (_)(_)@ + | -< @ + |__< @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + __ @ + \_\ @ + |_ _|@ + |___|@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __ @ + /_/ @ + |_ _|@ + |___|@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + |_ _|@ + |___|@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + |_ _| @ + |___| @ + @@ +208 LATIN CAPITAL LETTER ETH + ____ @ + | __ \ @ + |_ _|) |@ + |____/ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\/|@ + |/\/ @ + | \| |@ + |_|\_|@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + __ @ + \_\_ @ + / __ \@ + \____/@ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + __ @ + _/_/ @ + / __ \@ + \____/@ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /\ @ + |/\| @ + / __ \@ + \____/@ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/|@ + |/\/ @ + / __ \@ + \____/@ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)(_)@ + / __ \@ + \____/@ + @@ +215 MULTIPLICATION SIGN + @ + /\/\@ + > <@ + \/\/@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + ____ @ + / _//\ @ + | (//) |@ + \//__/ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + __ @ + _\_\_ @ + | |_| |@ + \___/ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + __ @ + _/_/_ @ + | |_| |@ + \___/ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + | |_| |@ + \___/ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | |_| |@ + \___/ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + __ @ + _/_/_@ + \ V /@ + |_| @ + @@ +222 LATIN CAPITAL LETTER THORN + _ @ + | |_ @ + | -_)@ + |_| @ + @@ +223 LATIN SMALL LETTER SHARP S + ___ @ + / _ \@ + | |< <@ + | ||_/@ + |_| @@ +224 LATIN SMALL LETTER A WITH GRAVE + __ @ + \_\_ @ + / _` |@ + \__,_|@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + __ @ + _/_/ @ + / _` |@ + \__,_|@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + /\ @ + |/\| @ + / _` |@ + \__,_|@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/|@ + |/\/ @ + / _` |@ + \__,_|@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_)(_)@ + / _` |@ + \__,_|@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + __ @ + (()) @ + / _` |@ + \__,_|@ + @@ +230 LATIN SMALL LETTER AE + @ + __ ___ @ + / _` -_)@ + \__,___|@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + __ @ + / _|@ + \__|@ + )_)@@ +232 LATIN SMALL LETTER E WITH GRAVE + __ @ + \_\ @ + / -_)@ + \___|@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + __ @ + /_/ @ + / -_)@ + \___|@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + //\ @ + |/_\|@ + / -_)@ + \___|@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ _ @ + (_)_(_)@ + / -_) @ + \___| @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + __ @ + \_\@ + | |@ + |_|@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + __@ + /_/@ + | |@ + |_|@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + | | @ + |_| @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + | | @ + |_| @ + @@ +240 LATIN SMALL LETTER ETH + \\/\ @ + \/\\ @ + / _` |@ + \___/ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/| @ + |/\/ @ + | ' \ @ + |_||_|@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + __ @ + \_\ @ + / _ \@ + \___/@ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + __ @ + /_/ @ + / _ \@ + \___/@ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + //\ @ + |/_\|@ + / _ \@ + \___/@ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/|@ + |/\/ @ + / _ \@ + \___/@ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + \___/ @ + @@ +247 DIVISION SIGN + _ @ + (_) @ + |___|@ + (_) @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + ___ @ + / //\@ + \//_/@ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + __ @ + \_\_ @ + | || |@ + \_,_|@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + __ @ + _/_/ @ + | || |@ + \_,_|@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + /\ @ + |/\| @ + | || |@ + \_,_|@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_)(_)@ + | || |@ + \_,_|@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + __ @ + _/_/ @ + | || |@ + \_, |@ + |__/ @@ +254 LATIN SMALL LETTER THORN + _ @ + | |__ @ + | '_ \@ + | .__/@ + |_| @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ _ @ + (_)(_)@ + | || |@ + \_, |@ + |__/ @@ diff --git a/externals/figlet/fonts/smscript.flf b/externals/figlet/fonts/smscript.flf new file mode 100644 index 0000000000..32a8a39da5 --- /dev/null +++ b/externals/figlet/fonts/smscript.flf @@ -0,0 +1,1097 @@ +flf2a$ 5 4 13 0 10 0 3904 96 +SmScript by Glenn Chappell 4/93 -- based on Script +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + +$ $@ +$ $@ +$ $@ +$ $@ +$ $@@ + @ + |@ + |@ + o@ + @@ + oo@ + ||@ + $@ + $@ + @@ + @ + _|_|_@ + _|_|_@ + | | @ + @@ + @ + |_|_@ + (|_| @ + _|_|)@ + | | @@ + @ + () / @ + / @ + / ()@ + @@ + @ + () @ + /\/@ + \/\@ + @@ + o@ + /@ + $@ + $@ + @@ + @ + /@ + | @ + | @ + \@@ + @ + \ @ + |@ + |@ + / @@ + @ + \|/ @ + --*--@ + /|\ @ + @@ + @ + | @ + --+--@ + | @ + @@ + @ + @ + @ + o@ + /@@ + @ + @ + ----@ + $ @ + @@ + @ + @ + @ + o@ + @@ + @ + /@ + / @ + / @ + @@ + _ @ + / \ @ + | |@ + \_/ @ + @@ + ,@ + /|@ + |@ + |@ + @@ + _ @ + / )@ + / @ + /__@ + @@ + ____@ + __/@ + $ \@ + \__/@ + @@ + @ + | | @ + |__|_@ + | @ + @@ + ___@ + |__ @ + $ \@ + \__/@ + @@ + _ @ + /_ @ + |/ \@ + \_/@ + @@ + ____@ + $/@ + / @ + / @ + @@ + __ @ + (__)@ + / \@ + \__/@ + @@ + __ @ + / |@ + \_/|@ + |@ + @@ + @ + o@ + $@ + o@ + @@ + @ + o@ + $@ + o@ + /@@ + @ + /@ + < @ + \@ + @@ + @ + ____@ + ____@ + $ @ + @@ + @ + \ @ + >@ + / @ + @@ + __ @ + )@ + | @ + o @ + @@ + ____ @ + / __,\ @ + | / | |@ + | \_/|/ @ + \____/ @@ + __, @ + / | @ + | | @ + \_/\_/@ + @@ + , _ @ + /|/_)@ + | \@ + |(_/@ + @@ + __$ @ + / () @ + | $ @ + \___/@ + @@ + $___ @ + (| \ @ + | |@ + (\__/ @ + @@ + __$ @ + / () @ + >-$ @ + \___/@ + @@ + $_____@ + () |_$@ + /| |@ + (/ @ + @@ + @ + () |@ + /\/|@ + /(_/ @ + @@ + , @ + /| | @ + |--| @ + | |)@ + @@ + @ + |\ @ + _ |/ @ + \_/\/@ + @@ + @ + /| @ + | | @ + \|/@ + (| @@ + , , @ + /|_/ @ + |\ @ + | \_/@ + @@ + $ @ + \_|) @ + | @ + (\__/@ + @@ + ,_ _ @ + /| | | @ + | | | @ + | | |_/@ + @@ + , @ + /|/\ @ + | | @ + | |_/@ + @@ + __ @ + /\_\/@ + | |@ + \__/ @ + @@ + , _ @ + /|/ \@ + |__/@ + | $@ + @@ + __ @ + /__\ @ + |/ \| @ + \__/\_/@ + @@ + , _ @ + /|/ \ @ + |__/ @ + | \_/@ + @@ + @ + () @ + /\ @ + /(_)@ + @@ + $_____@ + () | @ + $| @ + (/ @ + @@ + @ + (| | @ + | | @ + \_/\_/@ + @@ + @ + (| |_/@ + | | @ + \/ @ + @@ + @ + (| | |_/@ + | | | @ + \/ \/ @ + @@ + @ + (\ / @ + >< @ + _/ \_/@ + @@ + @ + (| | @ + | | @ + \/|/@ + (| @@ + _ @ + / ) @ + / @ + /__/@ + (| @@ + _@ + | @ + | @ + | @ + |_@@ + @ + \ @ + \ @ + \@ + @@ + _ @ + |@ + |@ + |@ + _|@@ + /\@ + $@ + $@ + $@ + @@ + @ + @ + @ + $ @ + ____@@ + o@ + \@ + $@ + $@ + @@ + @ + _, @ + / | @ + \/|_/@ + @@ + @ + |) @ + |/\_@ + \/ @ + @@ + @ + _ @ + / @ + \__/@ + @@ + @ + _| @ + / | @ + \/|_/@ + @@ + @ + _ @ + |/ @ + |_/@ + @@ + @ + |\ @ + |/ @ + |_/@ + |) @@ + @ + _, @ + / | @ + \/|/@ + (| @@ + @ + |) @ + |/\ @ + | |/@ + @@ + @ + o @ + | @ + |/@ + @@ + @ + o @ + | @ + |/@ + (| @@ + @ + |) @ + |/) @ + | \/@ + @@ + @ + |\ @ + |/ @ + |_/@ + @@ + @ + @ + /|/|/| @ + $| | |_/@ + @@ + @ + @ + /|/| @ + $| |_/@ + @@ + @ + _ @ + / \_@ + \_/ @ + @@ + @ + @ + |/\_@ + |_/ @ + (| @@ + @ + _, @ + / | @ + \/|_/@ + |) @@ + @ + ,_ @ + / | @ + $ |/@ + @@ + @ + , @ + / \_@ + $\/ @ + @@ + @ + _|_ @ + | @ + |_/@ + @@ + @ + @ + | | @ + $\/|_/@ + @@ + @ + @ + | |_@ + $\/ @ + @@ + @ + @ + | | |_@ + $\/ \/ @ + @@ + @ + @ + /\/ @ + $/\/@ + @@ + @ + @ + | | @ + $\/|/@ + (| @@ + @ + __ @ + / / _@ + $/_/ @ + (| @@ + @ + /@ + _| @ + | @ + \@@ + |@ + |@ + |@ + |@ + |@@ + @ + \ @ + |_@ + | @ + / @@ + /\/@ + $ @ + $ @ + $ @ + @@ + o o @ + __, @ + / | @ + \_/\_/@ + @@ + o o @ + __ @ + /\_\/@ + \__/ @ + @@ + /\/ @ + @ + (| | @ + \_/\_/@ + @@ + o o @ + _, @ + / | @ + \/|_/@ + @@ + o o @ + _ @ + / \_@ + \_/ @ + @@ + o o @ + @ + | | @ + $\/|_/@ + @@ + _ @ + | \@ + | <@ + |_/@ + | @@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + $@@ +161 INVERTED EXCLAMATION MARK + @ + o@ + |@ + |@ + @@ +162 CENT SIGN + @ + _|_ @ + / | @ + \_|_/@ + | @@ +163 POUND SIGN + _ @ + _|_` @ + | @ + (\__/@ + @@ +164 CURRENCY SIGN + \ _ /@ + / \ @ + \_/ @ + / \@ + @@ +165 YEN SIGN + \ /@ + _\_/_@ + __|__@ + | @ + @@ +166 BROKEN BAR + |@ + |@ + @ + |@ + |@@ +167 SECTION SIGN + _@ + ( @ + ()@ + _)@ + @@ +168 DIAERESIS + o o@ + $ $@ + $ $@ + $ $@ + @@ +169 COPYRIGHT SIGN + ____ @ + / __ \ @ + | / () |@ + | \__/ |@ + \____/ @@ +170 FEMININE ORDINAL INDICATOR + _, @ + (_|_@ + --- @ + $ @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + @ + //@ + << @ + \\@ + @@ +172 NOT SIGN + @ + __ @ + |@ + $ @ + @@ +173 SOFT HYPHEN + @ + @ + ---@ + $ @ + @@ +174 REGISTERED SIGN + ____ @ + / ,_ \ @ + | /|_) |@ + | |\/ |@ + \____/ @@ +175 MACRON + ____@ + $ @ + $ @ + $ @ + @@ +176 DEGREE SIGN + ()@ + $@ + $@ + $@ + @@ +177 PLUS-MINUS SIGN + @ + | @ + --+--@ + __|__@ + @@ +178 SUPERSCRIPT TWO + _ @ + )@ + /_@ + $@ + @@ +179 SUPERSCRIPT THREE + ___@ + _/@ + __)@ + $ @ + @@ +180 ACUTE ACCENT + /@ + $@ + $@ + $@ + @@ +181 MICRO SIGN + @ + @ + | | @ + |\/|_/@ + | @@ +182 PILCROW SIGN + ___ @ + / | |@ + \_| |@ + | |@ + @@ +183 MIDDLE DOT + @ + @ + $O$@ + $ @ + @@ +184 CEDILLA + @ + @ + @ + $ @ + _)@@ +185 SUPERSCRIPT ONE + ,@ + /|@ + |@ + $@ + @@ +186 MASCULINE ORDINAL INDICATOR + __@ + (_)@ + ---@ + $ @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + @ + \\ @ + >>@ + // @ + @@ +188 VULGAR FRACTION ONE QUARTER + , @ + /| / @ + |/|_|_@ + / | @ + @@ +189 VULGAR FRACTION ONE HALF + , @ + /| /_ @ + |/ )@ + / /_@ + @@ +190 VULGAR FRACTION THREE QUARTERS + ___ @ + _/ / @ + __)/|_|_@ + / | @ + @@ +191 INVERTED QUESTION MARK + @ + o @ + | @ + (__@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + \ @ + __, @ + / | @ + \_/\_/@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + / @ + __, @ + / | @ + \_/\_/@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /\ @ + __, @ + / | @ + \_/\_/@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/ @ + __, @ + / | @ + \_/\_/@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + o o @ + __, @ + / | @ + \_/\_/@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _ @ + (_) @ + / | @ + \_/\_/@ + @@ +198 LATIN CAPITAL LETTER AE + __,__$ @ + / | () @ + | |-$ @ + \_/\___/@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + __$ @ + / () @ + | $ @ + \___/@ + _) @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + \ @ + __$ @ + <_() @ + <___/@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + / @ + __$ @ + <_() @ + <___/@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /\ @ + __$ @ + <_() @ + <___/@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + o o @ + __$ @ + <_() @ + <___/@ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + \ @ + |\ @ + _ |/ @ + \_/\/@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + / @ + |\ @ + _ |/ @ + \_/\/@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /\ @ + |\ @ + _ |/ @ + \_/\/@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + o o @ + |\ @ + _ |/ @ + \_/\/@ + @@ +208 LATIN CAPITAL LETTER ETH + ___ @ + (| \ @ + -|- |@ + (\__/ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + ,/\/ @ + /|/\ @ + | | @ + | |_/@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + \ @ + __ @ + /\_\/@ + \__/ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + / @ + __ @ + /\_\/@ + \__/ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /\ @ + __ @ + /\_\/@ + \__/ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/ @ + __ @ + /\_\/@ + \__/ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + o o @ + __ @ + /\_\/@ + \__/ @ + @@ +215 MULTIPLICATION SIGN + @ + $\/$@ + $/\$@ + $ $@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + __/ @ + /\/\/@ + | / |@ + /__/ @ + / @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + \ @ + @ + (| | @ + \_/\_/@ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + / @ + @ + (| | @ + \_/\_/@ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /\ @ + @ + (| | @ + \_/\_/@ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + /\/ @ + @ + (| | @ + \_/\_/@ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + / @ + @ + (| | @ + \/|/@ + (| @@ +222 LATIN CAPITAL LETTER THORN + , @ + /|__ @ + |__)@ + | $@ + @@ +223 LATIN SMALL LETTER SHARP S + _ @ + | \@ + | <@ + |_/@ + | @@ +224 LATIN SMALL LETTER A WITH GRAVE + \ @ + _, @ + / | @ + \/|_/@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + / @ + _, @ + / | @ + \/|_/@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + /\ @ + _, @ + / | @ + \/|_/@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/ @ + _, @ + / | @ + \/|_/@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + o o @ + _, @ + / | @ + \/|_/@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + () @ + _, @ + / | @ + \/|_/@ + @@ +230 LATIN SMALL LETTER AE + @ + _,_ @ + / |/ @ + \/|_/@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + _ @ + / @ + \__/@ + _) @@ +232 LATIN SMALL LETTER E WITH GRAVE + \ @ + _ @ + |/ @ + |_/@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + / @ + _ @ + |/ @ + |_/@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + /\ @ + _ @ + |/ @ + |_/@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + o o @ + _ @ + |/ @ + |__/@ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + \ @ + @ + | @ + |/@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + / @ + @ + | @ + |/@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + /\@ + @ + | @ + |/@ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + o o @ + @ + | @ + |__/@ + @@ +240 LATIN SMALL LETTER ETH + \, @ + '\ @ + / |@ + \/ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/ @ + @ + /|/| @ + $| |_/@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + \ @ + _ @ + / \_@ + \_/ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + / @ + _ @ + / \_@ + \_/ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + /\ @ + _ @ + / \_@ + \_/ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/ @ + _ @ + / \_@ + \_/ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + o o @ + _ @ + / \_@ + \_/ @ + @@ +247 DIVISION SIGN + @ + O @ + ---@ + O @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + __/ @ + / /\_@ + \/_/ @ + / @@ +249 LATIN SMALL LETTER U WITH GRAVE + \ @ + @ + | | @ + $\/|_/@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + / @ + @ + | | @ + $\/|_/@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + /\ @ + @ + | | @ + $\/|_/@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + o o @ + @ + | | @ + $\/|_/@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + / @ + @ + | | @ + $\/|/@ + (| @@ +254 LATIN SMALL LETTER THORN + @ + |) @ + |/\_@ + |_/ @ + (| @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + o o @ + @ + | | @ + $\/|/@ + (| @@ diff --git a/externals/figlet/fonts/smshadow.flf b/externals/figlet/fonts/smshadow.flf new file mode 100644 index 0000000000..7e1329f4c2 --- /dev/null +++ b/externals/figlet/fonts/smshadow.flf @@ -0,0 +1,899 @@ +flf2a$ 4 3 14 0 10 0 1920 96 +SmShadow by Glenn Chappell 4/93 -- based on Small +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + + $$@ + $$@ + $$@ + $$@@ + |$@ + _|$@ + _)$@ + @@ + | )$@ + V V$ @ + @ + @@ + | |$ @ + _ |_ |_|$@ + _ |_ |_|$@ + _| _|$ @@ + |$ @ + (_-<$@ + _ _/$@ + _|$ @@ + _) /$ @ + /$ @ + _/ _)$@ + @@ + _|$ @ + _| _|$@ + \____|$ @ + @@ + )$@ + /$ @ + @ + @@ + /$@ + |$ @ + |$ @ + \_\$@@ + \ \$ @ + |$@ + |$@ + _/$ @@ + \ \ /$ @ + _ _|$@ + _/ _\$ @ + @@ + |$ @ + __ __|$@ + _|$ @ + @@ + @ + @ + )$@ + /$ @@ + @ + ____|$@ + @ + @@ + @ + @ + _)$@ + @@ + /$@ + /$ @ + _/$ @ + @@ + \$ @ + ( |$@ + \__/$ @ + @@ + _ |$@ + |$@ + _|$@ + @@ + _ )$@ + /$ @ + ___|$@ + @@ + __ /$@ + _ \$@ + ___/$@ + @@ + | |$ @ + __ _|$@ + _|$ @ + @@ + __|$@ + __ \$@ + ___/$@ + @@ + /$ @ + _ \$@ + \___/$@ + @@ + __ /$@ + /$ @ + _/$ @ + @@ + _ )$@ + _ \$@ + \___/$@ + @@ + _ \$@ + \_ /$@ + _/$ @ + @@ + _)$@ + @ + _)$@ + @@ + _)$@ + @ + )$@ + /$ @@ + /$@ + < <$ @ + \_\$@ + @@ + @ + ____|$@ + ____|$@ + @@ + \ \$ @ + > >$@ + _/$ @ + @@ + __ \$@ + _/$@ + _)$ @ + @@ + __ \$ @ + / _` |$@ + \__,_|$@ + \____/$ @@ + \$ @ + _ \$ @ + _/ _\$@ + @@ + _ )$@ + _ \$@ + ___/$@ + @@ + __|$@ + ($ @ + \___|$@ + @@ + _ \$ @ + | |$@ + ___/$ @ + @@ + __|$@ + _|$ @ + ___|$@ + @@ + __|$@ + _|$ @ + _|$ @ + @@ + __|$@ + (_ |$@ + \___|$@ + @@ + | |$@ + __ |$@ + _| _|$@ + @@ + _ _|$@ + |$ @ + ___|$@ + @@ + |$@ + \ |$@ + \__/$ @ + @@ + | /$@ + . <$ @ + _|\_\$@ + @@ + |$ @ + |$ @ + ____|$@ + @@ + \ |$@ + |\/ |$@ + _| _|$@ + @@ + \ |$@ + . |$@ + _|\_|$@ + @@ + _ \$ @ + ( |$@ + \___/$ @ + @@ + _ \$@ + __/$@ + _|$ @ + @@ + _ \$ @ + ( |$@ + \__\_\$@ + @@ + _ \$@ + /$@ + _|_\$@ + @@ + __|$@ + \__ \$@ + ____/$@ + @@ + __ __|$@ + |$ @ + _|$ @ + @@ + | |$@ + | |$@ + \__/$ @ + @@ + \ \ /$@ + \ \ /$ @ + \_/$ @ + @@ + \ \ /$@ + \ \ \ /$ @ + \_/\_/$ @ + @@ + \ \ /$@ + > <$ @ + _/\_\$@ + @@ + \ \ /$@ + \ /$ @ + _|$ @ + @@ + __ /$@ + /$ @ + ____|$@ + @@ + _|$@ + |$ @ + |$ @ + __|$@@ + \ \$ @ + \ \$ @ + \_\$@ + @@ + _ |$@ + |$@ + |$@ + __|$@@ + \$ @ + /\|$@ + @ + @@ + @ + @ + @ + ____|$@@ + )$@ + \|$@ + @ + @@ + @ + _` |$@ + \__,_|$@ + @@ + |$ @ + _ \$@ + _.__/$@ + @@ + @ + _|$@ + \__|$@ + @@ + |$@ + _` |$@ + \__,_|$@ + @@ + @ + -_)$@ + \___|$@ + @@ + _|$@ + _|$@ + _|$ @ + @@ + @ + _` |$@ + \__, |$@ + ____/$ @@ + |$ @ + \$ @ + _| _|$@ + @@ + _)$@ + |$@ + _|$@ + @@ + _)$@ + |$@ + |$@ + __/$ @@ + |$ @ + | /$@ + _\_\$@ + @@ + |$@ + |$@ + _|$@ + @@ + @ + ` \$ @ + _|_|_|$@ + @@ + @ + \$ @ + _| _|$@ + @@ + @ + _ \$@ + \___/$@ + @@ + @ + _ \$@ + .__/$@ + _|$ @@ + @ + _` |$@ + \__, |$@ + _|$@@ + @ + _|$@ + _|$ @ + @@ + @ + (_-<$@ + ___/$@ + @@ + |$ @ + _|$@ + \__|$@ + @@ + @ + | |$@ + \_,_|$@ + @@ + @ + \ \ /$@ + \_/$ @ + @@ + @ + \ \ \ /$@ + \_/\_/$ @ + @@ + @ + \ \ /$@ + _\_\$@ + @@ + @ + | |$@ + \_, |$@ + ___/$ @@ + @ + _ /$@ + ___|$@ + @@ + /$@ + _ |$ @ + |$ @ + \_\$@@ + |$@ + |$@ + |$@ + _|$@@ + \ \$ @ + |_$@ + |$ @ + _/$ @@ + \ |$@ + /\/$ @ + @ + @@ + _) \_)$@ + _ \$ @ + / _\$@ + @@ + _) _)$@ + __ \$@ + \____/$@ + @@ + _) _)$@ + | |$@ + \__/$ @ + @@ + _) _)$@ + _` |$@ + \__,_|$@ + @@ + _) _)$@ + _ \$@ + \___/$@ + @@ + _) _)$@ + | |$@ + \_,_|$@ + @@ + _ \$@ + |< <$@ + |__/$@ + _|$ @@ +160 NO-BREAK SPACE + $$@ + $$@ + $$@ + $$@@ +161 INVERTED EXCLAMATION MARK + _)$@ + |$@ + _|$@ + @@ +162 CENT SIGN + |$ @ + _)$@ + \ _)$@ + |$ @@ +163 POUND SIGN + _\$ @ + _ _|$ @ + _,___|$@ + @@ +164 CURRENCY SIGN + \ . /$@ + _ \$@ + \/ /$@ + @@ +165 YEN SIGN + \ \ /$ @ + __ __|$@ + __ __|$@ + _|$ @@ +166 BROKEN BAR + |$@ + _|$@ + |$@ + _|$@@ +167 SECTION SIGN + _)$@ + \ \$ @ + \ \/$ @ + __/$ @@ +168 DIAERESIS + _) _)$@ + @ + @ + @@ +169 COPYRIGHT SIGN + \$ @ + _| \$@ + \ \__| /$@ + \____/$ @@ +170 FEMININE ORDINAL INDICATOR + _` |$@ + \__,_|$@ + _____|$@ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + / /$@ + < < <$ @ + \_\_\$@ + @@ +172 NOT SIGN + ____ |$@ + _|$@ + @ + @@ +173 SOFT HYPHEN + @ + ___|$@ + @ + @@ +174 REGISTERED SIGN + \$ @ + -) \$@ + \ |\\ /$@ + \____/$ @@ +175 MACRON + ___|$@ + @ + @ + @@ +176 DEGREE SIGN + .\$@ + \_/$@ + @ + @@ +177 PLUS-MINUS SIGN + |$ @ + _ _|$@ + _|$ @ + _____|$@@ +178 SUPERSCRIPT TWO + _ )$@ + __|$@ + @ + @@ +179 SUPERSCRIPT THREE + _ /$@ + __)$@ + @ + @@ +180 ACUTE ACCENT + _/$@ + @ + @ + @@ +181 MICRO SIGN + @ + | |$@ + .,_|$@ + _|$ @@ +182 PILCROW SIGN + |$@ + \_ | |$@ + _|_|$@ + @@ +183 MIDDLE DOT + @ + _)$@ + @ + @@ +184 CEDILLA + @ + @ + @ + _)$@@ +185 SUPERSCRIPT ONE + _ |$@ + _|$@ + @ + @@ +186 MASCULINE ORDINAL INDICATOR + _ \$@ + \___/$@ + ____|$@ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + \ \ \$ @ + > > >$@ + _/_/$ @ + @@ +188 VULGAR FRACTION ONE QUARTER + _ | /$ @ + _| /_' |$@ + _/ _|$@ + @@ +189 VULGAR FRACTION ONE HALF + _ | /$ @ + _| /_ )$@ + _/ __|$@ + @@ +190 VULGAR FRACTION THREE QUARTERS + _ / /$ @ + __) /_' |$@ + _/ _|$@ + @@ +191 INVERTED QUESTION MARK + _)$ @ + /$ @ + \___|$@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + \_\$ @ + --\$ @ + _/\_\$@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + _/$ @ + --\$ @ + _/\_\$@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /\\$ @ + --\$ @ + _/\_\$@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + / _/$ @ + --\$ @ + _/\_\$@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _) \_)$@ + _ \$ @ + / _\$@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + ( )$ @ + _ \$ @ + _/ _\$@ + @@ +198 LATIN CAPITAL LETTER AE + , __|$@ + _ _|$ @ + _/ ___|$@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + |$@ + ($ @ + \___|$@ + _)$ @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + \_\$@ + -<$@ + __<$@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + _/$@ + -<$@ + __<$@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /\\$@ + -<$@ + __<$@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _) _)$@ + -<$ @ + __<$ @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + \_\$ @ + _ _|$@ + ___|$@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + _/$ @ + _ _|$@ + ___|$@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /\\$ @ + _ _|$@ + ___|$@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _) _)$@ + _ _|$ @ + ___|$ @ + @@ +208 LATIN CAPITAL LETTER ETH + _ \$ @ + _ _| |$@ + ___/$ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + / _/$@ + \ |$@ + _|\_|$@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + \_\$ @ + __ \$@ + \____/$@ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + _/$ @ + __ \$@ + \____/$@ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /\\$ @ + __ \$@ + \____/$@ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + / _/$ @ + __ \$@ + \____/$@ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _) _)$@ + __ \$@ + \____/$@ + @@ +215 MULTIPLICATION SIGN + \ \$@ + , '$@ + \/\/$@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + _ /\$ @ + ( / |$@ + \_/__/$ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + \_\$ @ + | |$@ + \__/$ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + _/$ @ + | |$@ + \__/$ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /\\$ @ + | |$@ + \__/$ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _) _)$@ + | |$@ + \__/$ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + _/$ @ + \ \ /$@ + _|$ @ + @@ +222 LATIN CAPITAL LETTER THORN + |$ @ + -_)$@ + _|$ @ + @@ +223 LATIN SMALL LETTER SHARP S + _ \$@ + |< <$@ + |__/$@ + _|$ @@ +224 LATIN SMALL LETTER A WITH GRAVE + \_\$ @ + _` |$@ + \__,_|$@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + _/$ @ + _` |$@ + \__,_|$@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + /\\$ @ + _` |$@ + \__,_|$@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + / _/$ @ + _` |$@ + \__,_|$@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _) _)$@ + _` |$@ + \__,_|$@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + ( )$ @ + _` |$@ + \__,_|$@ + @@ +230 LATIN SMALL LETTER AE + @ + _` -_)$@ + \__,___|$@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + _|$@ + \__|$@ + _)$@@ +232 LATIN SMALL LETTER E WITH GRAVE + \_\$ @ + -_)$@ + \___|$@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + _/$ @ + -_)$@ + \___|$@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + /\\$ @ + -_)$@ + \___|$@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _) _)$@ + -_)$ @ + \___|$ @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + \_\$@ + |$@ + _|$@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + _/$@ + |$@ + _|$@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + /\\$@ + |$ @ + _|$ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _) _)$@ + |$ @ + _|$ @ + @@ +240 LATIN SMALL LETTER ETH + , \'$@ + _` |$@ + \___/$ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + / _/$ @ + ' \$ @ + _| _|$@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + \_\$ @ + _ \$@ + \___/$@ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + _/$ @ + _ \$@ + \___/$@ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + /\\$ @ + _ \$@ + \___/$@ + @@ +245 LATIN SMALL LETTER O WITH TILDE + / _/$@ + _ \$@ + \___/$@ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _) _)$@ + _ \$@ + \___/$@ + @@ +247 DIVISION SIGN + _)$ @ + ___|$@ + _)$ @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + /\$@ + \_/_/$@ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + \_\$ @ + | |$@ + \_,_|$@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + _/$ @ + | |$@ + \_,_|$@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + /\\$ @ + | |$@ + \_,_|$@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _) _)$@ + | |$@ + \_,_|$@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + _/$ @ + | |$@ + \_, |$@ + ___/$ @@ +254 LATIN SMALL LETTER THORN + |$ @ + '_ \$@ + .__/$@ + _|$ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _) _)$@ + | |$@ + \_, |$@ + ___/$ @@ diff --git a/externals/figlet/fonts/smslant.flf b/externals/figlet/fonts/smslant.flf new file mode 100644 index 0000000000..24284b8465 --- /dev/null +++ b/externals/figlet/fonts/smslant.flf @@ -0,0 +1,1097 @@ +flf2a$ 5 4 14 15 10 0 22415 96 +SmSlant by Glenn Chappell 6/93 - based on Small & Slant +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + + $@ + $ @ + $ @ + $ @ +$ @@ + __@ + / /@ + /_/ @ +(_) @ + @@ + _ _ @ +( | )@ +|/|/ @ +$ @ + @@ + ____ @ + __/ / /_@ + /_ . __/@ +/_ __/ @ + /_/_/ @@ + @ + _//@ + (_-<@ +/ __/@ +// @@ + _ __@ +(_)_/_/@ + _/_/_ @ +/_/ (_)@ + @@ + ____ @ + / __/___@ + > _/_ _/@ +|_____/ @ + @@ + _ @ +( )@ +|/ @ +$ @ + @@ + __@ + _/_/@ + / / @ +/ / @ +|_| @@ + _ @ + | |@ + / /@ + _/_/ @ +/_/ @@ + @ + _/|@ +> _<@ +|/ @ + @@ + __ @ + __/ /_@ +/_ __/@ + /_/ @ + @@ + @ + @ + _ @ +( )@ +|/ @@ + @ + ____@ +/___/@ + $ @ + @@ + @ + @ + _ @ +(_)@ + @@ + __@ + _/_/@ + _/_/ @ +/_/ @ + @@ + ___ @ + / _ \@ +/ // /@ +\___/ @ + @@ + ___@ + < /@ + / / @ +/_/ @ + @@ + ___ @ + |_ |@ + / __/ @ +/____/ @ + @@ + ____@ + |_ /@ + _/_ < @ +/____/ @ + @@ + ____@ + / / /@ +/_ _/@ + /_/ @ + @@ + ____@ + / __/@ + /__ \ @ +/____/ @ + @@ + ____@ + / __/@ +/ _ \ @ +\___/ @ + @@ + ____@ +/_ /@ + / / @ +/_/ @ + @@ + ___ @ + ( _ )@ +/ _ |@ +\___/ @ + @@ + ___ @ + / _ \@ + \_, /@ +/___/ @ + @@ + _ @ + (_)@ + _ @ +(_) @ + @@ + _ @ + (_)@ + _ @ +( ) @ +|/ @@ + __@ + / /@ +< < @ + \_\@ + @@ + @ + ____@ + /___/@ +/___/ @ + @@ +__ @ +\ \ @ + > >@ +/_/ @ + @@ + ___ @ +/__ \@ + /__/@ +(_) @ + @@ + _____ @ + / ___ \@ +/ / _ `/@ +\ \_,_/ @ + \___/ @@ + ___ @ + / _ |@ + / __ |@ +/_/ |_|@ + @@ + ___ @ + / _ )@ + / _ |@ +/____/ @ + @@ + _____@ + / ___/@ +/ /__ @ +\___/ @ + @@ + ___ @ + / _ \@ + / // /@ +/____/ @ + @@ + ____@ + / __/@ + / _/ @ +/___/ @ + @@ + ____@ + / __/@ + / _/ @ +/_/ @ + @@ + _____@ + / ___/@ +/ (_ / @ +\___/ @ + @@ + __ __@ + / // /@ + / _ / @ +/_//_/ @ + @@ + ____@ + / _/@ + _/ / @ +/___/ @ + @@ + __@ + __ / /@ +/ // / @ +\___/ @ + @@ + __ __@ + / //_/@ + / ,< @ +/_/|_| @ + @@ + __ @ + / / @ + / /__@ +/____/@ + @@ + __ ___@ + / |/ /@ + / /|_/ / @ +/_/ /_/ @ + @@ + _ __@ + / |/ /@ + / / @ +/_/|_/ @ + @@ + ____ @ + / __ \@ +/ /_/ /@ +\____/ @ + @@ + ___ @ + / _ \@ + / ___/@ +/_/ @ + @@ + ____ @ + / __ \@ +/ /_/ /@ +\___\_\@ + @@ + ___ @ + / _ \@ + / , _/@ +/_/|_| @ + @@ + ____@ + / __/@ + _\ \ @ +/___/ @ + @@ + ______@ +/_ __/@ + / / @ +/_/ @ + @@ + __ __@ + / / / /@ +/ /_/ / @ +\____/ @ + @@ + _ __@ + | | / /@ + | |/ / @ + |___/ @ + @@ + _ __@ + | | /| / /@ + | |/ |/ / @ + |__/|__/ @ + @@ + _ __@ + | |/_/@ + _> < @ +/_/|_| @ + @@ + __ __@ + \ \/ /@ + \ / @ + /_/ @ + @@ + ____@ + /_ /@ + / /_@ + /___/@ + @@ + ___@ + / _/@ + / / @ + / / @ +/__/ @@ +__ @ +\ \ @ + \ \ @ + \_\@ + @@ + ___@ + / /@ + / / @ + _/ / @ +/__/ @@ + //|@ +|/||@ + $ @ +$ @ + @@ + @ + @ + @ + ____@ +/___/@@ + _ @ +( )@ + V @ +$ @ + @@ + @ + ___ _@ +/ _ `/@ +\_,_/ @ + @@ + __ @ + / / @ + / _ \@ +/_.__/@ + @@ + @ + ____@ +/ __/@ +\__/ @ + @@ + __@ + ___/ /@ +/ _ / @ +\_,_/ @ + @@ + @ + ___ @ +/ -_)@ +\__/ @ + @@ + ___@ + / _/@ + / _/ @ +/_/ @ + @@ + @ + ___ _@ + / _ `/@ + \_, / @ +/___/ @@ + __ @ + / / @ + / _ \@ +/_//_/@ + @@ + _ @ + (_)@ + / / @ +/_/ @ + @@ + _ @ + (_)@ + / / @ + __/ / @ +|___/ @@ + __ @ + / /__@ + / '_/@ +/_/\_\ @ + @@ + __@ + / /@ + / / @ +/_/ @ + @@ + @ + __ _ @ + / ' \@ +/_/_/_/@ + @@ + @ + ___ @ + / _ \@ +/_//_/@ + @@ + @ + ___ @ +/ _ \@ +\___/@ + @@ + @ + ___ @ + / _ \@ + / .__/@ +/_/ @@ + @ + ___ _@ +/ _ `/@ +\_, / @ + /_/ @@ + @ + ____@ + / __/@ +/_/ @ + @@ + @ + ___@ + (_-<@ +/___/@ + @@ + __ @ + / /_@ +/ __/@ +\__/ @ + @@ + @ + __ __@ +/ // /@ +\_,_/ @ + @@ + @ + _ __@ +| |/ /@ +|___/ @ + @@ + @ + _ __@ +| |/|/ /@ +|__,__/ @ + @@ + @ + __ __@ + \ \ /@ +/_\_\ @ + @@ + @ + __ __@ + / // /@ + \_, / @ +/___/ @@ + @ + ___@ +/_ /@ +/__/@ + @@ + __@ + _/_/@ +_/ / @ +/ / @ +\_\ @@ + __@ + / /@ + / / @ + / / @ +/_/ @@ + __ @ + \ \ @ + / /_@ + _/_/ @ +/_/ @@ + /\//@ +//\/ @ + $ @ +$ @ + @@ + _ _ @ + (_)(_)@ + / - | @ +/_/|_| @ + @@ + _ _ @ + (_)_(_)@ +/ __ \ @ +\____/ @ + @@ + _ _ @ + (_) (_)@ +/ /_/ / @ +\____/ @ + @@ + _ _ @ + (_)(_)@ +/ _ `/ @ +\_,_/ @ + @@ + _ _ @ + (_)(_)@ +/ _ \ @ +\___/ @ + @@ + _ _ @ + (_)(_)@ +/ // / @ +\_,_/ @ + @@ + ____ @ + / _ )@ + / /< < @ + / //__/ @ +/_/ @@ +160 NO-BREAK SPACE + $@ + $ @ + $ @ + $ @ +$ @@ +161 INVERTED EXCLAMATION MARK + _ @ + (_)@ + / / @ +/_/ @ + @@ +162 CENT SIGN + @ + __//@ +/ __/@ +\ _/ @ +// @@ +163 POUND SIGN + __ @ + __/__|@ + /_ _/_ @ +(_,___/ @ + @@ +164 CURRENCY SIGN + /|_/|@ + | . / @ + /_ | @ +|/ |/ @ + @@ +165 YEN SIGN + ____@ + _| / /@ + /_ __/@ +/_ __/ @ + /_/ @@ +166 BROKEN BAR + __@ + / /@ + /_/ @ + / / @ +/_/ @@ +167 SECTION SIGN + __ @ + _/ _)@ + / | | @ + | |_/ @ +(__/ @@ +168 DIAERESIS + _ _ @ +(_) (_)@ + $ $ @ +$ $ @ + @@ +169 COPYRIGHT SIGN + ____ @ + / ___\ @ + / / _/ |@ +| |__/ / @ + \____/ @@ +170 FEMININE ORDINAL INDICATOR + ___ _@ + / _ `/@ + _\_,_/ @ +/____/ @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + ____@ + / / /@ +< < < @ + \_\_\@ + @@ +172 NOT SIGN + @ + ____@ +/_ /@ + /_/ @ + @@ +173 SOFT HYPHEN + @ + ___@ +/__/@ + $ @ + @@ +174 REGISTERED SIGN + ____ @ + / __ \ @ + / / -) |@ +| //\\ / @ + \____/ @@ +175 MACRON + ____@ +/___/@ + $ @ +$ @ + @@ +176 DEGREE SIGN + __ @ + /. |@ +|__/ @ + $ @ + @@ +177 PLUS-MINUS SIGN + __ @ + __/ /_@ + /_ __/@ + __/_/_ @ +/_____/ @@ +178 SUPERSCRIPT TWO + __ @ + |_ )@ +/__| @ + $ @ + @@ +179 SUPERSCRIPT THREE + ___@ + |_ /@ +/__) @ + $ @ + @@ +180 ACUTE ACCENT + __@ +/_/@ + $ @ +$ @ + @@ +181 MICRO SIGN + @ + __ __@ + / // /@ + / .,_/ @ +/_/ @@ +182 PILCROW SIGN + _____@ + / /@ +|_ / / @ +/_/_/ @ + @@ +183 MIDDLE DOT + @ + _ @ +(_)@ +$ @ + @@ +184 CEDILLA + @ + @ + @ + _ @ +/_)@@ +185 SUPERSCRIPT ONE + __@ + < /@ +/_/ @ +$ @ + @@ +186 MASCULINE ORDINAL INDICATOR + ___ @ + / _ \@ + _\___/@ +/____/ @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +____ @ +\ \ \ @ + > > >@ +/_/_/ @ + @@ +188 VULGAR FRACTION ONE QUARTER + __ __ @ + < /_/_/___@ +/_//_//_' /@ + /_/ /_/ @ + @@ +189 VULGAR FRACTION ONE HALF + __ __ @ + < /_/_/_ @ +/_//_/|_ )@ + /_/ /__| @ + @@ +190 VULGAR FRACTION THREE QUARTERS + ___ __ @ + |_ /_/_/___@ +/__)/_//_' /@ + /_/ /_/ @ + @@ +191 INVERTED QUESTION MARK + _ @ + _(_)@ +/ _/_@ +\___/@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + __ @ + _\_\@ + / - |@ +/_/|_|@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + __@ + _/_/@ + / - |@ +/_/|_|@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + //|@ + _|/||@ + / - | @ +/_/|_| @ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\//@ + _//\/ @ + / - | @ +/_/|_| @ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)(_)@ + / - | @ +/_/|_| @ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + (())@ + / _ |@ + / __ |@ +/_/ |_|@ + @@ +198 LATIN CAPITAL LETTER AE + _______@ + / _ __/@ + / _ _/ @ +/_//___/ @ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + _____@ + / ___/@ +/ /__ @ +\___/ @ +/_) @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + __ @ + \_\@ + / -<@ +/__< @ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + __@ + _/_/@ + / -< @ +/__< @ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + //|@ + |/||@ + / -< @ +/__< @ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ _ @ + (_)(_)@ + / -< @ +/__< @ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + __ @ + _\_\ @ + /_ __/@ +/____/ @ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __@ + __/_/@ + /_ __/@ +/____/ @ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + //|@ + _|/||@ + /_ __/@ +/____/ @ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ _ @ + (_)(_)@ + /_ __/ @ +/____/ @ + @@ +208 LATIN CAPITAL LETTER ETH + ____ @ + _/ __ \@ +/_ _// /@ +/_____/ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\//@ + __//\/ @ + / |/ / @ +/_/|__/ @ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + __ @ + _\_\ @ +/ __ \@ +\____/@ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + __@ + __/_/@ +/ __ \@ +\____/@ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + //|@ + _|/||@ +/ __ \@ +\____/@ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\//@ + _//\/ @ +/ __ \ @ +\____/ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ +/ __ \ @ +\____/ @ + @@ +215 MULTIPLICATION SIGN + @ + /|/|@ + > < @ +|/|/ @ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + _____ @ + / _// \@ +/ //// /@ +\_//__/ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + __ @ + __\_\ @ +/ /_/ /@ +\____/ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + __@ + __ /_/@ +/ /_/ /@ +\____/ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + //|@ + __|/||@ +/ /_/ /@ +\____/ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ +/ /_/ / @ +\____/ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + __@ +__/_/@ +\ V /@ + /_/ @ + @@ +222 LATIN CAPITAL LETTER THORN + __ @ + / / @ + / -_)@ +/_/ @ + @@ +223 LATIN SMALL LETTER SHARP S + ____ @ + / _ )@ + / /< < @ + / //__/ @ +/_/ @@ +224 LATIN SMALL LETTER A WITH GRAVE + __ @ + _\_\_@ +/ _ `/@ +\_,_/ @ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + __@ + __/_/@ +/ _ `/@ +\_,_/ @ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + //|@ + _|/||@ +/ _ `/@ +\_,_/ @ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\//@ + _//\/ @ +/ _ `/ @ +\_,_/ @ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_)(_)@ +/ _ `/ @ +\_,_/ @ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + __ @ + _(())@ +/ _ `/@ +\_,_/ @ + @@ +230 LATIN SMALL LETTER AE + @ + ___ ___ @ +/ _ ` -_)@ +\_,____/ @ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + ____@ +/ __/@ +\__/ @ +/_) @@ +232 LATIN SMALL LETTER E WITH GRAVE + __ @ + _\_\@ +/ -_)@ +\__/ @ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + __@ + _/_/@ +/ -_)@ +\__/ @ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + //|@ + |/||@ +/ -_)@ +\__/ @ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ _ @ +(_)(_)@ +/ -_) @ +\__/ @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + __ @ + \_\@ + / / @ +/_/ @ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + __@ + /_/@ + / / @ +/_/ @ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + //|@ + |/||@ + / / @ +/_/ @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ _ @ +(_)_(_)@ + / / @ +/_/ @ + @@ +240 LATIN SMALL LETTER ETH + _||_@ + __ || @ +/ _` | @ +\___/ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\//@ + _//\/ @ + / _ \ @ +/_//_/ @ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + __ @ + _\_\@ +/ _ \@ +\___/@ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + __@ + _/_/@ +/ _ \@ +\___/@ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + //|@ + _|/||@ +/ _ \ @ +\___/ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\//@ + _//\/ @ +/ _ \ @ +\___/ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_)(_)@ +/ _ \ @ +\___/ @ + @@ +247 DIVISION SIGN + _ @ + _(_)@ +/___/@ +(_) @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + ___ @ +/ //\@ +\//_/@ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + __ @ + __\_\@ +/ // /@ +\_,_/ @ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + __@ + __/_/@ +/ // /@ +\_,_/ @ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + //|@ + _|/||@ +/ // /@ +\_,_/ @ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_)(_)@ +/ // / @ +\_,_/ @ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + __@ + __/_/@ + / // /@ + \_, / @ +/___/ @@ +254 LATIN SMALL LETTER THORN + __ @ + / / @ + / _ \@ + / .__/@ +/_/ @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ _ @ + (_)(_)@ + / // / @ + \_, / @ +/___/ @@ diff --git a/externals/figlet/fonts/standard.flf b/externals/figlet/fonts/standard.flf new file mode 100644 index 0000000000..bb15241b0a --- /dev/null +++ b/externals/figlet/fonts/standard.flf @@ -0,0 +1,2238 @@ +flf2a$ 6 5 16 15 15 0 24463 229 +Standard by Glenn Chappell & Ian Chai 3/93 -- based on Frank's .sig +Includes ISO Latin-1 +figlet release 2.1 -- 12 Aug 1994 +Modified for figlet 2.2 by John Cowan + to add Latin-{2,3,4,5} support (Unicode U+0100-017F). +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +--- + +Modified by Paul Burton 12/96 to include new parameter +supported by FIGlet and FIGWin. May also be slightly modified for better use +of new full-width/kern/smush alternatives, but default output is NOT changed. + +Modified 2012-05 by Patrick Gillespie (patorjk@gmail.com) to add the 0xCA0 character. + $@ + $@ + $@ + $@ + $@ + $@@ + _ @ + | |@ + | |@ + |_|@ + (_)@ + @@ + _ _ @ + ( | )@ + V V @ + $ @ + $ @ + @@ + _ _ @ + _| || |_ @ + |_ .. _|@ + |_ _|@ + |_||_| @ + @@ + _ @ + | | @ + / __)@ + \__ \@ + ( /@ + |_| @@ + _ __@ + (_)/ /@ + / / @ + / /_ @ + /_/(_)@ + @@ + ___ @ + ( _ ) @ + / _ \/\@ + | (_> <@ + \___/\/@ + @@ + _ @ + ( )@ + |/ @ + $ @ + $ @ + @@ + __@ + / /@ + | | @ + | | @ + | | @ + \_\@@ + __ @ + \ \ @ + | |@ + | |@ + | |@ + /_/ @@ + @ + __/\__@ + \ /@ + /_ _\@ + \/ @ + @@ + @ + _ @ + _| |_ @ + |_ _|@ + |_| @ + @@ + @ + @ + @ + _ @ + ( )@ + |/ @@ + @ + @ + _____ @ + |_____|@ + $ @ + @@ + @ + @ + @ + _ @ + (_)@ + @@ + __@ + / /@ + / / @ + / / @ + /_/ @ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + _ @ + / |@ + | |@ + | |@ + |_|@ + @@ + ____ @ + |___ \ @ + __) |@ + / __/ @ + |_____|@ + @@ + _____ @ + |___ / @ + |_ \ @ + ___) |@ + |____/ @ + @@ + _ _ @ + | || | @ + | || |_ @ + |__ _|@ + |_| @ + @@ + ____ @ + | ___| @ + |___ \ @ + ___) |@ + |____/ @ + @@ + __ @ + / /_ @ + | '_ \ @ + | (_) |@ + \___/ @ + @@ + _____ @ + |___ |@ + / / @ + / / @ + /_/ @ + @@ + ___ @ + ( _ ) @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + ___ @ + / _ \ @ + | (_) |@ + \__, |@ + /_/ @ + @@ + @ + _ @ + (_)@ + _ @ + (_)@ + @@ + @ + _ @ + (_)@ + _ @ + ( )@ + |/ @@ + __@ + / /@ + / / @ + \ \ @ + \_\@ + @@ + @ + _____ @ + |_____|@ + |_____|@ + $ @ + @@ + __ @ + \ \ @ + \ \@ + / /@ + /_/ @ + @@ + ___ @ + |__ \@ + / /@ + |_| @ + (_) @ + @@ + ____ @ + / __ \ @ + / / _` |@ + | | (_| |@ + \ \__,_|@ + \____/ @@ + _ @ + / \ @ + / _ \ @ + / ___ \ @ + /_/ \_\@ + @@ + ____ @ + | __ ) @ + | _ \ @ + | |_) |@ + |____/ @ + @@ + ____ @ + / ___|@ + | | @ + | |___ @ + \____|@ + @@ + ____ @ + | _ \ @ + | | | |@ + | |_| |@ + |____/ @ + @@ + _____ @ + | ____|@ + | _| @ + | |___ @ + |_____|@ + @@ + _____ @ + | ___|@ + | |_ @ + | _| @ + |_| @ + @@ + ____ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ + _ _ @ + | | | |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ + ___ @ + |_ _|@ + | | @ + | | @ + |___|@ + @@ + _ @ + | |@ + _ | |@ + | |_| |@ + \___/ @ + @@ + _ __@ + | |/ /@ + | ' / @ + | . \ @ + |_|\_\@ + @@ + _ @ + | | @ + | | @ + | |___ @ + |_____|@ + @@ + __ __ @ + | \/ |@ + | |\/| |@ + | | | |@ + |_| |_|@ + @@ + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \___/ @ + @@ + ____ @ + | _ \ @ + | |_) |@ + | __/ @ + |_| @ + @@ + ___ @ + / _ \ @ + | | | |@ + | |_| |@ + \__\_\@ + @@ + ____ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ + ____ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + @@ + _ _ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + @@ + __ __@ + \ \ / /@ + \ \ / / @ + \ V / @ + \_/ @ + @@ + __ __@ + \ \ / /@ + \ \ /\ / / @ + \ V V / @ + \_/\_/ @ + @@ + __ __@ + \ \/ /@ + \ / @ + / \ @ + /_/\_\@ + @@ + __ __@ + \ \ / /@ + \ V / @ + | | @ + |_| @ + @@ + _____@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ + __ @ + | _|@ + | | @ + | | @ + | | @ + |__|@@ + __ @ + \ \ @ + \ \ @ + \ \ @ + \_\@ + @@ + __ @ + |_ |@ + | |@ + | |@ + | |@ + |__|@@ + /\ @ + |/\|@ + $ @ + $ @ + $ @ + @@ + @ + @ + @ + @ + _____ @ + |_____|@@ + _ @ + ( )@ + \|@ + $ @ + $ @ + @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ + _ @ + | |__ @ + | '_ \ @ + | |_) |@ + |_.__/ @ + @@ + @ + ___ @ + / __|@ + | (__ @ + \___|@ + @@ + _ @ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ + @ + ___ @ + / _ \@ + | __/@ + \___|@ + @@ + __ @ + / _|@ + | |_ @ + | _|@ + |_| @ + @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ + _ @ + | |__ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ + _ @ + (_)@ + | |@ + | |@ + |_|@ + @@ + _ @ + (_)@ + | |@ + | |@ + _/ |@ + |__/ @@ + _ @ + | | __@ + | |/ /@ + | < @ + |_|\_\@ + @@ + _ @ + | |@ + | |@ + | |@ + |_|@ + @@ + @ + _ __ ___ @ + | '_ ` _ \ @ + | | | | | |@ + |_| |_| |_|@ + @@ + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ + @ + ___ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ + @ + _ __ @ + | '_ \ @ + | |_) |@ + | .__/ @ + |_| @@ + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |_|@@ + @ + _ __ @ + | '__|@ + | | @ + |_| @ + @@ + @ + ___ @ + / __|@ + \__ \@ + |___/@ + @@ + _ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + @@ + @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ + @ + __ __@ + \ \ / /@ + \ V / @ + \_/ @ + @@ + @ + __ __@ + \ \ /\ / /@ + \ V V / @ + \_/\_/ @ + @@ + @ + __ __@ + \ \/ /@ + > < @ + /_/\_\@ + @@ + @ + _ _ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ + @ + ____@ + |_ /@ + / / @ + /___|@ + @@ + __@ + / /@ + | | @ + < < @ + | | @ + \_\@@ + _ @ + | |@ + | |@ + | |@ + | |@ + |_|@@ + __ @ + \ \ @ + | | @ + > >@ + | | @ + /_/ @@ + /\/|@ + |/\/ @ + $ @ + $ @ + $ @ + @@ + _ _ @ + (_)_(_)@ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \___/ @ + @@ + _ _ @ + (_)_(_)@ + / _` |@ + | (_| |@ + \__,_|@ + @@ + _ _ @ + (_)_(_)@ + / _ \ @ + | (_) |@ + \___/ @ + @@ + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__,_|@ + @@ + ___ @ + / _ \@ + | |/ /@ + | |\ \@ + | ||_/@ + |_| @@ +160 NO-BREAK SPACE + $@ + $@ + $@ + $@ + $@ + $@@ +161 INVERTED EXCLAMATION MARK + _ @ + (_)@ + | |@ + | |@ + |_|@ + @@ +162 CENT SIGN + _ @ + | | @ + / __)@ + | (__ @ + \ )@ + |_| @@ +163 POUND SIGN + ___ @ + / ,_\ @ + _| |_ @ + | |___ @ + (_,____|@ + @@ +164 CURRENCY SIGN + /\___/\@ + \ _ /@ + | (_) |@ + / ___ \@ + \/ \/@ + @@ +165 YEN SIGN + __ __ @ + \ V / @ + |__ __|@ + |__ __|@ + |_| @ + @@ +166 BROKEN BAR + _ @ + | |@ + |_|@ + _ @ + | |@ + |_|@@ +167 SECTION SIGN + __ @ + _/ _)@ + / \ \ @ + \ \\ \@ + \ \_/@ + (__/ @@ +168 DIAERESIS + _ _ @ + (_) (_)@ + $ $ @ + $ $ @ + $ $ @ + @@ +169 COPYRIGHT SIGN + _____ @ + / ___ \ @ + / / __| \ @ + | | (__ |@ + \ \___| / @ + \_____/ @@ +170 FEMININE ORDINAL INDICATOR + __ _ @ + / _` |@ + \__,_|@ + |____|@ + $ @ + @@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + ____@ + / / /@ + / / / @ + \ \ \ @ + \_\_\@ + @@ +172 NOT SIGN + @ + _____ @ + |___ |@ + |_|@ + $ @ + @@ +173 SOFT HYPHEN + @ + @ + ____ @ + |____|@ + $ @ + @@ +174 REGISTERED SIGN + _____ @ + / ___ \ @ + / | _ \ \ @ + | | / |@ + \ |_|_\ / @ + \_____/ @@ +175 MACRON + _____ @ + |_____|@ + $ @ + $ @ + $ @ + @@ +176 DEGREE SIGN + __ @ + / \ @ + | () |@ + \__/ @ + $ @ + @@ +177 PLUS-MINUS SIGN + _ @ + _| |_ @ + |_ _|@ + _|_|_ @ + |_____|@ + @@ +178 SUPERSCRIPT TWO + ___ @ + |_ )@ + / / @ + /___|@ + $ @ + @@ +179 SUPERSCRIPT THREE + ____@ + |__ /@ + |_ \@ + |___/@ + $ @ + @@ +180 ACUTE ACCENT + __@ + /_/@ + $ @ + $ @ + $ @ + @@ +181 MICRO SIGN + @ + _ _ @ + | | | |@ + | |_| |@ + | ._,_|@ + |_| @@ +182 PILCROW SIGN + _____ @ + / |@ + | (| | |@ + \__ | |@ + |_|_|@ + @@ +183 MIDDLE DOT + @ + _ @ + (_)@ + $ @ + $ @ + @@ +184 CEDILLA + @ + @ + @ + @ + _ @ + )_)@@ +185 SUPERSCRIPT ONE + _ @ + / |@ + | |@ + |_|@ + $ @ + @@ +186 MASCULINE ORDINAL INDICATOR + ___ @ + / _ \@ + \___/@ + |___|@ + $ @ + @@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + ____ @ + \ \ \ @ + \ \ \@ + / / /@ + /_/_/ @ + @@ +188 VULGAR FRACTION ONE QUARTER + _ __ @ + / | / / _ @ + | |/ / | | @ + |_/ /|_ _|@ + /_/ |_| @ + @@ +189 VULGAR FRACTION ONE HALF + _ __ @ + / | / /__ @ + | |/ /_ )@ + |_/ / / / @ + /_/ /___|@ + @@ +190 VULGAR FRACTION THREE QUARTERS + ____ __ @ + |__ / / / _ @ + |_ \/ / | | @ + |___/ /|_ _|@ + /_/ |_| @ + @@ +191 INVERTED QUESTION MARK + _ @ + (_) @ + | | @ + / /_ @ + \___|@ + @@ +192 LATIN CAPITAL LETTER A WITH GRAVE + __ @ + \_\ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +193 LATIN CAPITAL LETTER A WITH ACUTE + __ @ + /_/ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + //\ @ + |/_\| @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +195 LATIN CAPITAL LETTER A WITH TILDE + /\/| @ + |/\/ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE + _ @ + (o) @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +198 LATIN CAPITAL LETTER AE + ______ @ + / ____|@ + / _ _| @ + / __ |___ @ + /_/ |_____|@ + @@ +199 LATIN CAPITAL LETTER C WITH CEDILLA + ____ @ + / ___|@ + | | @ + | |___ @ + \____|@ + )_) @@ +200 LATIN CAPITAL LETTER E WITH GRAVE + __ @ + _\_\_ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +201 LATIN CAPITAL LETTER E WITH ACUTE + __ @ + _/_/_ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + //\ @ + |/_\| @ + | ____|@ + | _|_ @ + |_____|@ + @@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS + _ _ @ + (_)_(_)@ + | ____|@ + | _|_ @ + |_____|@ + @@ +204 LATIN CAPITAL LETTER I WITH GRAVE + __ @ + \_\ @ + |_ _|@ + | | @ + |___|@ + @@ +205 LATIN CAPITAL LETTER I WITH ACUTE + __ @ + /_/ @ + |_ _|@ + | | @ + |___|@ + @@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + |_ _|@ + | | @ + |___|@ + @@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + |_ _| @ + | | @ + |___| @ + @@ +208 LATIN CAPITAL LETTER ETH + ____ @ + | _ \ @ + _| |_| |@ + |__ __| |@ + |____/ @ + @@ +209 LATIN CAPITAL LETTER N WITH TILDE + /\/|@ + |/\/ @ + | \| |@ + | .` |@ + |_|\_|@ + @@ +210 LATIN CAPITAL LETTER O WITH GRAVE + __ @ + \_\ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +211 LATIN CAPITAL LETTER O WITH ACUTE + __ @ + /_/ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +213 LATIN CAPITAL LETTER O WITH TILDE + /\/| @ + |/\/ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +215 MULTIPLICATION SIGN + @ + @ + /\/\@ + > <@ + \/\/@ + @@ +216 LATIN CAPITAL LETTER O WITH STROKE + ____ @ + / _// @ + | |// |@ + | //| |@ + //__/ @ + @@ +217 LATIN CAPITAL LETTER U WITH GRAVE + __ @ + _\_\_ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +218 LATIN CAPITAL LETTER U WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + | | | |@ + | |_| |@ + \___/ @ + @@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \___/ @ + @@ +221 LATIN CAPITAL LETTER Y WITH ACUTE + __ @ + __/_/__@ + \ \ / /@ + \ V / @ + |_| @ + @@ +222 LATIN CAPITAL LETTER THORN + _ @ + | |___ @ + | __ \@ + | ___/@ + |_| @ + @@ +223 LATIN SMALL LETTER SHARP S + ___ @ + / _ \@ + | |/ /@ + | |\ \@ + | ||_/@ + |_| @@ +224 LATIN SMALL LETTER A WITH GRAVE + __ @ + \_\_ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +225 LATIN SMALL LETTER A WITH ACUTE + __ @ + /_/_ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +227 LATIN SMALL LETTER A WITH TILDE + /\/| @ + |/\/_ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +228 LATIN SMALL LETTER A WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +229 LATIN SMALL LETTER A WITH RING ABOVE + __ @ + (()) @ + / _ '|@ + | (_| |@ + \__,_|@ + @@ +230 LATIN SMALL LETTER AE + @ + __ ____ @ + / _` _ \@ + | (_| __/@ + \__,____|@ + @@ +231 LATIN SMALL LETTER C WITH CEDILLA + @ + ___ @ + / __|@ + | (__ @ + \___|@ + )_) @@ +232 LATIN SMALL LETTER E WITH GRAVE + __ @ + \_\ @ + / _ \@ + | __/@ + \___|@ + @@ +233 LATIN SMALL LETTER E WITH ACUTE + __ @ + /_/ @ + / _ \@ + | __/@ + \___|@ + @@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX + //\ @ + |/_\|@ + / _ \@ + | __/@ + \___|@ + @@ +235 LATIN SMALL LETTER E WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | __/ @ + \___| @ + @@ +236 LATIN SMALL LETTER I WITH GRAVE + __ @ + \_\@ + | |@ + | |@ + |_|@ + @@ +237 LATIN SMALL LETTER I WITH ACUTE + __@ + /_/@ + | |@ + | |@ + |_|@ + @@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX + //\ @ + |/_\|@ + | | @ + | | @ + |_| @ + @@ +239 LATIN SMALL LETTER I WITH DIAERESIS + _ _ @ + (_)_(_)@ + | | @ + | | @ + |_| @ + @@ +240 LATIN SMALL LETTER ETH + /\/\ @ + > < @ + _\/\ |@ + / __` |@ + \____/ @ + @@ +241 LATIN SMALL LETTER N WITH TILDE + /\/| @ + |/\/ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +242 LATIN SMALL LETTER O WITH GRAVE + __ @ + \_\ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +243 LATIN SMALL LETTER O WITH ACUTE + __ @ + /_/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX + //\ @ + |/_\| @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +245 LATIN SMALL LETTER O WITH TILDE + /\/| @ + |/\/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +246 LATIN SMALL LETTER O WITH DIAERESIS + _ _ @ + (_)_(_)@ + / _ \ @ + | (_) |@ + \___/ @ + @@ +247 DIVISION SIGN + @ + _ @ + _(_)_ @ + |_____|@ + (_) @ + @@ +248 LATIN SMALL LETTER O WITH STROKE + @ + ____ @ + / _//\ @ + | (//) |@ + \//__/ @ + @@ +249 LATIN SMALL LETTER U WITH GRAVE + __ @ + _\_\_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +250 LATIN SMALL LETTER U WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX + //\ @ + |/ \| @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +252 LATIN SMALL LETTER U WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +253 LATIN SMALL LETTER Y WITH ACUTE + __ @ + _/_/_ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ +254 LATIN SMALL LETTER THORN + _ @ + | |__ @ + | '_ \ @ + | |_) |@ + | .__/ @ + |_| @@ +255 LATIN SMALL LETTER Y WITH DIAERESIS + _ _ @ + (_) (_)@ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ +0x0100 LATIN CAPITAL LETTER A WITH MACRON + ____ @ + /___/ @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +0x0101 LATIN SMALL LETTER A WITH MACRON + ___ @ + /_ _/@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0102 LATIN CAPITAL LETTER A WITH BREVE + _ _ @ + \\_// @ + /_\ @ + / _ \ @ + /_/ \_\@ + @@ +0x0103 LATIN SMALL LETTER A WITH BREVE + \_/ @ + ___ @ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0104 LATIN CAPITAL LETTER A WITH OGONEK + @ + _ @ + /_\ @ + / _ \ @ + /_/ \_\@ + (_(@@ +0x0105 LATIN SMALL LETTER A WITH OGONEK + @ + __ _ @ + / _` |@ + | (_| |@ + \__,_|@ + (_(@@ +0x0106 LATIN CAPITAL LETTER C WITH ACUTE + __ @ + _/_/ @ + / ___|@ + | |___ @ + \____|@ + @@ +0x0107 LATIN SMALL LETTER C WITH ACUTE + __ @ + /__/@ + / __|@ + | (__ @ + \___|@ + @@ +0x0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX + /\ @ + _//\\@ + / ___|@ + | |___ @ + \____|@ + @@ +0x0109 LATIN SMALL LETTER C WITH CIRCUMFLEX + /\ @ + /_\ @ + / __|@ + | (__ @ + \___|@ + @@ +0x010A LATIN CAPITAL LETTER C WITH DOT ABOVE + [] @ + ____ @ + / ___|@ + | |___ @ + \____|@ + @@ +0x010B LATIN SMALL LETTER C WITH DOT ABOVE + [] @ + ___ @ + / __|@ + | (__ @ + \___|@ + @@ +0x010C LATIN CAPITAL LETTER C WITH CARON + \\// @ + _\/_ @ + / ___|@ + | |___ @ + \____|@ + @@ +0x010D LATIN SMALL LETTER C WITH CARON + \\//@ + _\/ @ + / __|@ + | (__ @ + \___|@ + @@ +0x010E LATIN CAPITAL LETTER D WITH CARON + \\// @ + __\/ @ + | _ \ @ + | |_| |@ + |____/ @ + @@ +0x010F LATIN SMALL LETTER D WITH CARON + \/ _ @ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0110 LATIN CAPITAL LETTER D WITH STROKE + ____ @ + |_ __ \ @ + /| |/ | |@ + /|_|/_| |@ + |_____/ @ + @@ +0x0111 LATIN SMALL LETTER D WITH STROKE + ---|@ + __| |@ + / _` |@ + | (_| |@ + \__,_|@ + @@ +0x0112 LATIN CAPITAL LETTER E WITH MACRON + ____ @ + /___/ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x0113 LATIN SMALL LETTER E WITH MACRON + ____@ + /_ _/@ + / _ \ @ + | __/ @ + \___| @ + @@ +0x0114 LATIN CAPITAL LETTER E WITH BREVE + _ _ @ + \\_// @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x0115 LATIN SMALL LETTER E WITH BREVE + \\ //@ + -- @ + / _ \ @ + | __/ @ + \___| @ + @@ +0x0116 LATIN CAPITAL LETTER E WITH DOT ABOVE + [] @ + _____ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x0117 LATIN SMALL LETTER E WITH DOT ABOVE + [] @ + __ @ + / _ \@ + | __/@ + \___|@ + @@ +0x0118 LATIN CAPITAL LETTER E WITH OGONEK + @ + _____ @ + | ____|@ + | _|_ @ + |_____|@ + (__(@@ +0x0119 LATIN SMALL LETTER E WITH OGONEK + @ + ___ @ + / _ \@ + | __/@ + \___|@ + (_(@@ +0x011A LATIN CAPITAL LETTER E WITH CARON + \\// @ + __\/_ @ + | ____|@ + | _|_ @ + |_____|@ + @@ +0x011B LATIN SMALL LETTER E WITH CARON + \\//@ + \/ @ + / _ \@ + | __/@ + \___|@ + @@ +0x011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX + _/\_ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ +0x011D LATIN SMALL LETTER G WITH CIRCUMFLEX + /\ @ + _/_ \@ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ +0x011E LATIN CAPITAL LETTER G WITH BREVE + _\/_ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ +0x011F LATIN SMALL LETTER G WITH BREVE + \___/ @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ +0x0120 LATIN CAPITAL LETTER G WITH DOT ABOVE + _[]_ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + @@ +0x0121 LATIN SMALL LETTER G WITH DOT ABOVE + [] @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |___/ @@ +0x0122 LATIN CAPITAL LETTER G WITH CEDILLA + ____ @ + / ___|@ + | | _ @ + | |_| |@ + \____|@ + )__) @@ +0x0123 LATIN SMALL LETTER G WITH CEDILLA + @ + __ _ @ + / _` |@ + | (_| |@ + \__, |@ + |_))))@@ +0x0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX + _/ \_ @ + | / \ |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ +0x0125 LATIN SMALL LETTER H WITH CIRCUMFLEX + _ /\ @ + | |//\ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0126 LATIN CAPITAL LETTER H WITH STROKE + _ _ @ + | |=| |@ + | |_| |@ + | _ |@ + |_| |_|@ + @@ +0x0127 LATIN SMALL LETTER H WITH STROKE + _ @ + |=|__ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0128 LATIN CAPITAL LETTER I WITH TILDE + /\//@ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x0129 LATIN SMALL LETTER I WITH TILDE + @ + /\/@ + | |@ + | |@ + |_|@ + @@ +0x012A LATIN CAPITAL LETTER I WITH MACRON + /___/@ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x012B LATIN SMALL LETTER I WITH MACRON + ____@ + /___/@ + | | @ + | | @ + |_| @ + @@ +0x012C LATIN CAPITAL LETTER I WITH BREVE + \__/@ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x012D LATIN SMALL LETTER I WITH BREVE + @ + \_/@ + | |@ + | |@ + |_|@ + @@ +0x012E LATIN CAPITAL LETTER I WITH OGONEK + ___ @ + |_ _|@ + | | @ + | | @ + |___|@ + (__(@@ +0x012F LATIN SMALL LETTER I WITH OGONEK + _ @ + (_) @ + | | @ + | | @ + |_|_@ + (_(@@ +0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE + _[] @ + |_ _|@ + | | @ + | | @ + |___|@ + @@ +0x0131 LATIN SMALL LETTER DOTLESS I + @ + _ @ + | |@ + | |@ + |_|@ + @@ +0x0132 LATIN CAPITAL LIGATURE IJ + ___ _ @ + |_ _|| |@ + | | | |@ + | |_| |@ + |__|__/ @ + @@ +0x0133 LATIN SMALL LIGATURE IJ + _ _ @ + (_) (_)@ + | | | |@ + | | | |@ + |_|_/ |@ + |__/ @@ +0x0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX + /\ @ + /_\|@ + _ | | @ + | |_| | @ + \___/ @ + @@ +0x0135 LATIN SMALL LETTER J WITH CIRCUMFLEX + /\@ + /_\@ + | |@ + | |@ + _/ |@ + |__/ @@ +0x0136 LATIN CAPITAL LETTER K WITH CEDILLA + _ _ @ + | |/ / @ + | ' / @ + | . \ @ + |_|\_\ @ + )__)@@ +0x0137 LATIN SMALL LETTER K WITH CEDILLA + _ @ + | | __@ + | |/ /@ + | < @ + |_|\_\@ + )_)@@ +0x0138 LATIN SMALL LETTER KRA + @ + _ __ @ + | |/ \@ + | < @ + |_|\_\@ + @@ +0x0139 LATIN CAPITAL LETTER L WITH ACUTE + _ //@ + | | // @ + | | @ + | |___ @ + |_____|@ + @@ +0x013A LATIN SMALL LETTER L WITH ACUTE + //@ + | |@ + | |@ + | |@ + |_|@ + @@ +0x013B LATIN CAPITAL LETTER L WITH CEDILLA + _ @ + | | @ + | | @ + | |___ @ + |_____|@ + )__)@@ +0x013C LATIN SMALL LETTER L WITH CEDILLA + _ @ + | | @ + | | @ + | | @ + |_| @ + )_)@@ +0x013D LATIN CAPITAL LETTER L WITH CARON + _ \\//@ + | | \/ @ + | | @ + | |___ @ + |_____|@ + @@ +0x013E LATIN SMALL LETTER L WITH CARON + _ \\//@ + | | \/ @ + | | @ + | | @ + |_| @ + @@ +0x013F LATIN CAPITAL LETTER L WITH MIDDLE DOT + _ @ + | | @ + | | [] @ + | |___ @ + |_____|@ + @@ +0x0140 LATIN SMALL LETTER L WITH MIDDLE DOT + _ @ + | | @ + | | []@ + | | @ + |_| @ + @@ +0x0141 LATIN CAPITAL LETTER L WITH STROKE + __ @ + | // @ + |//| @ + // |__ @ + |_____|@ + @@ +0x0142 LATIN SMALL LETTER L WITH STROKE + _ @ + | |@ + |//@ + //|@ + |_|@ + @@ +0x0143 LATIN CAPITAL LETTER N WITH ACUTE + _/ /_ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ +0x0144 LATIN SMALL LETTER N WITH ACUTE + _ @ + _ /_/ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0145 LATIN CAPITAL LETTER N WITH CEDILLA + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + )_) @@ +0x0146 LATIN SMALL LETTER N WITH CEDILLA + @ + _ __ @ + | '_ \ @ + | | | |@ + |_| |_|@ + )_) @@ +0x0147 LATIN CAPITAL LETTER N WITH CARON + _\/ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \_|@ + @@ +0x0148 LATIN SMALL LETTER N WITH CARON + \\// @ + _\/_ @ + | '_ \ @ + | | | |@ + |_| |_|@ + @@ +0x0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + @ + _ __ @ + ( )| '_\ @ + |/| | | |@ + |_| |_|@ + @@ +0x014A LATIN CAPITAL LETTER ENG + _ _ @ + | \ | |@ + | \| |@ + | |\ |@ + |_| \ |@ + )_)@@ +0x014B LATIN SMALL LETTER ENG + _ __ @ + | '_ \ @ + | | | |@ + |_| | |@ + | |@ + |__ @@ +0x014C LATIN CAPITAL LETTER O WITH MACRON + ____ @ + /_ _/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +0x014D LATIN SMALL LETTER O WITH MACRON + ____ @ + /_ _/ @ + / _ \ @ + | (_) |@ + \___/ @ + @@ +0x014E LATIN CAPITAL LETTER O WITH BREVE + \ / @ + _-_ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x014F LATIN SMALL LETTER O WITH BREVE + \ / @ + _-_ @ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + ___ @ + /_/_/@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE + ___ @ + /_/_/@ + / _ \ @ + | |_| |@ + \___/ @ + @@ +0x0152 LATIN CAPITAL LIGATURE OE + ___ ___ @ + / _ \| __|@ + | | | | | @ + | |_| | |__@ + \___/|____@ + @@ +0x0153 LATIN SMALL LIGATURE OE + @ + ___ ___ @ + / _ \ / _ \@ + | (_) | __/@ + \___/ \___|@ + @@ +0x0154 LATIN CAPITAL LETTER R WITH ACUTE + _/_/ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ +0x0155 LATIN SMALL LETTER R WITH ACUTE + __@ + _ /_/@ + | '__|@ + | | @ + |_| @ + @@ +0x0156 LATIN CAPITAL LETTER R WITH CEDILLA + ____ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + )_) @@ +0x0157 LATIN SMALL LETTER R WITH CEDILLA + @ + _ __ @ + | '__|@ + | | @ + |_| @ + )_) @@ +0x0158 LATIN CAPITAL LETTER R WITH CARON + _\_/ @ + | _ \ @ + | |_) |@ + | _ < @ + |_| \_\@ + @@ +0x0159 LATIN SMALL LETTER R WITH CARON + \\// @ + _\/_ @ + | '__|@ + | | @ + |_| @ + @@ +0x015A LATIN CAPITAL LETTER S WITH ACUTE + _/_/ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ +0x015B LATIN SMALL LETTER S WITH ACUTE + __@ + _/_/@ + / __|@ + \__ \@ + |___/@ + @@ +0x015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX + _/\_ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ +0x015D LATIN SMALL LETTER S WITH CIRCUMFLEX + @ + /_\_@ + / __|@ + \__ \@ + |___/@ + @@ +0x015E LATIN CAPITAL LETTER S WITH CEDILLA + ____ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + )__)@@ +0x015F LATIN SMALL LETTER S WITH CEDILLA + @ + ___ @ + / __|@ + \__ \@ + |___/@ + )_)@@ +0x0160 LATIN CAPITAL LETTER S WITH CARON + _\_/ @ + / ___| @ + \___ \ @ + ___) |@ + |____/ @ + @@ +0x0161 LATIN SMALL LETTER S WITH CARON + \\//@ + _\/ @ + / __|@ + \__ \@ + |___/@ + @@ +0x0162 LATIN CAPITAL LETTER T WITH CEDILLA + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + )__)@@ +0x0163 LATIN SMALL LETTER T WITH CEDILLA + _ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + )_)@@ +0x0164 LATIN CAPITAL LETTER T WITH CARON + _____ @ + |_ _|@ + | | @ + | | @ + |_| @ + @@ +0x0165 LATIN SMALL LETTER T WITH CARON + \/ @ + | |_ @ + | __|@ + | |_ @ + \__|@ + @@ +0x0166 LATIN CAPITAL LETTER T WITH STROKE + _____ @ + |_ _|@ + | | @ + -|-|- @ + |_| @ + @@ +0x0167 LATIN SMALL LETTER T WITH STROKE + _ @ + | |_ @ + | __|@ + |-|_ @ + \__|@ + @@ +0x0168 LATIN CAPITAL LETTER U WITH TILDE + @ + _/\/_ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x0169 LATIN SMALL LETTER U WITH TILDE + @ + _/\/_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x016A LATIN CAPITAL LETTER U WITH MACRON + ____ @ + /__ _/@ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x016B LATIN SMALL LETTER U WITH MACRON + ____ @ + / _ /@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x016C LATIN CAPITAL LETTER U WITH BREVE + @ + \_/_ @ + | | | |@ + | |_| |@ + \____|@ + @@ +0x016D LATIN SMALL LETTER U WITH BREVE + @ + \_/_ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x016E LATIN CAPITAL LETTER U WITH RING ABOVE + O @ + __ _ @ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x016F LATIN SMALL LETTER U WITH RING ABOVE + O @ + __ __ @ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + -- --@ + /_//_/@ + | | | |@ + | |_| |@ + \___/ @ + @@ +0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE + ____@ + _/_/_/@ + | | | |@ + | |_| |@ + \__,_|@ + @@ +0x0172 LATIN CAPITAL LETTER U WITH OGONEK + _ _ @ + | | | |@ + | | | |@ + | |_| |@ + \___/ @ + (__(@@ +0x0173 LATIN SMALL LETTER U WITH OGONEK + @ + _ _ @ + | | | |@ + | |_| |@ + \__,_|@ + (_(@@ +0x0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX + __ /\ __@ + \ \ //\\/ /@ + \ \ /\ / / @ + \ V V / @ + \_/\_/ @ + @@ +0x0175 LATIN SMALL LETTER W WITH CIRCUMFLEX + /\ @ + __ //\\__@ + \ \ /\ / /@ + \ V V / @ + \_/\_/ @ + @@ +0x0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX + /\ @ + __//\\ @ + \ \ / /@ + \ V / @ + |_| @ + @@ +0x0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX + /\ @ + //\\ @ + | | | |@ + | |_| |@ + \__, |@ + |___/ @@ +0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS + [] []@ + __ _@ + \ \ / /@ + \ V / @ + |_| @ + @@ +0x0179 LATIN CAPITAL LETTER Z WITH ACUTE + __/_/@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ +0x017A LATIN SMALL LETTER Z WITH ACUTE + _ @ + _/_/@ + |_ /@ + / / @ + /___|@ + @@ +0x017B LATIN CAPITAL LETTER Z WITH DOT ABOVE + __[]_@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ +0x017C LATIN SMALL LETTER Z WITH DOT ABOVE + [] @ + ____@ + |_ /@ + / / @ + /___|@ + @@ +0x017D LATIN CAPITAL LETTER Z WITH CARON + _\_/_@ + |__ /@ + / / @ + / /_ @ + /____|@ + @@ +0x017E LATIN SMALL LETTER Z WITH CARON + \\//@ + _\/_@ + |_ /@ + / / @ + /___|@ + @@ +0x017F LATIN SMALL LETTER LONG S + __ @ + / _|@ + |-| | @ + |-| | @ + |_| @ + @@ +0x02C7 CARON + \\//@ + \/ @ + $@ + $@ + $@ + $@@ +0x02D8 BREVE + \\_//@ + \_/ @ + $@ + $@ + $@ + $@@ +0x02D9 DOT ABOVE + []@ + $@ + $@ + $@ + $@ + $@@ +0x02DB OGONEK + $@ + $@ + $@ + $@ + $@ + )_) @@ +0x02DD DOUBLE ACUTE ACCENT + _ _ @ + /_/_/@ + $@ + $@ + $@ + $@@ +0xCA0 KANNADA LETTER TTHA + _____)@ + /_ ___/@ + / _ \ @ + | (_) | @ + $\___/$ @ + @@ diff --git a/externals/figlet/fonts/term.flf b/externals/figlet/fonts/term.flf new file mode 100644 index 0000000000..e27d01eeec --- /dev/null +++ b/externals/figlet/fonts/term.flf @@ -0,0 +1,600 @@ +flf2a 1 1 2 -1 13 0 0 242 +Terminal by Glenn Chappell 4/93 +Includes characters 128-255 +Enhanced for Latin-2,3,4 by John Cowan +Latin character sets supported only if your screen font does +figlet release 2.2 -- November 1996 +Permission is hereby given to modify this font, as long as the +modifier's name is placed on a comment line. + +Double-checked by Paul Burton 12/96. Added the new +parameter supported by FIGlet and FIGWin. Unlike all other FIGfonts, this one +is intended to produce output exactly the same as the input unless a control +file is used. Therefore it produces the SAME output for smush, kern or fit. + +@ +!@ +"@ +#@ +$@ +%@ +&@ +'@ +(@ +)@ +*@ ++@ +,@ +-@ +.@ +/@ +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@ +{@ +|@ +}@ +~@ +Ä@ +Ö@ +Ü@ +ä@ +ö@ +ü@ +ß@ +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 NO-BREAK SPACE + @ +161 INVERTED EXCLAMATION MARK +¡@ +162 CENT SIGN +¢@ +163 POUND SIGN +£@ +164 CURRENCY SIGN +¤@ +165 YEN SIGN +¥@ +166 BROKEN BAR +¦@ +167 SECTION SIGN +§@ +168 DIAERESIS +¨@ +169 COPYRIGHT SIGN +©@ +170 FEMININE ORDINAL INDICATOR +ª@ +171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +«@ +172 NOT SIGN +¬@ +173 SOFT HYPHEN +­@ +174 REGISTERED SIGN +®@ +175 MACRON +¯@ +176 DEGREE SIGN +°@ +177 PLUS-MINUS SIGN +±@ +178 SUPERSCRIPT TWO +²@ +179 SUPERSCRIPT THREE +³@ +180 ACUTE ACCENT +´@ +181 MICRO SIGN +µ@ +182 PILCROW SIGN +¶@ +183 MIDDLE DOT +·@ +184 CEDILLA +¸@ +185 SUPERSCRIPT ONE +¹@ +186 MASCULINE ORDINAL INDICATOR +º@ +187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +»@ +188 VULGAR FRACTION ONE QUARTER +¼@ +189 VULGAR FRACTION ONE HALF +½@ +190 VULGAR FRACTION THREE QUARTERS +¾@ +191 INVERTED QUESTION MARK +¿@ +192 LATIN CAPITAL LETTER A WITH GRAVE +À@ +193 LATIN CAPITAL LETTER A WITH ACUTE +Á@ +194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +Â@ +195 LATIN CAPITAL LETTER A WITH TILDE +Ã@ +196 LATIN CAPITAL LETTER A WITH DIAERESIS +Ä@ +197 LATIN CAPITAL LETTER A WITH RING ABOVE +Å@ +198 LATIN CAPITAL LETTER AE +Æ@ +199 LATIN CAPITAL LETTER C WITH CEDILLA +Ç@ +200 LATIN CAPITAL LETTER E WITH GRAVE +È@ +201 LATIN CAPITAL LETTER E WITH ACUTE +É@ +202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX +Ê@ +203 LATIN CAPITAL LETTER E WITH DIAERESIS +Ë@ +204 LATIN CAPITAL LETTER I WITH GRAVE +Ì@ +205 LATIN CAPITAL LETTER I WITH ACUTE +Í@ +206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX +Î@ +207 LATIN CAPITAL LETTER I WITH DIAERESIS +Ï@ +208 LATIN CAPITAL LETTER ETH +Ð@ +209 LATIN CAPITAL LETTER N WITH TILDE +Ñ@ +210 LATIN CAPITAL LETTER O WITH GRAVE +Ò@ +211 LATIN CAPITAL LETTER O WITH ACUTE +Ó@ +212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX +Ô@ +213 LATIN CAPITAL LETTER O WITH TILDE +Õ@ +214 LATIN CAPITAL LETTER O WITH DIAERESIS +Ö@ +215 MULTIPLICATION SIGN +×@ +216 LATIN CAPITAL LETTER O WITH STROKE +Ø@ +217 LATIN CAPITAL LETTER U WITH GRAVE +Ù@ +218 LATIN CAPITAL LETTER U WITH ACUTE +Ú@ +219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX +Û@ +220 LATIN CAPITAL LETTER U WITH DIAERESIS +Ü@ +221 LATIN CAPITAL LETTER Y WITH ACUTE +Ý@ +222 LATIN CAPITAL LETTER THORN +Þ@ +223 LATIN SMALL LETTER SHARP S +ß@ +224 LATIN SMALL LETTER A WITH GRAVE +à@ +225 LATIN SMALL LETTER A WITH ACUTE +á@ +226 LATIN SMALL LETTER A WITH CIRCUMFLEX +â@ +227 LATIN SMALL LETTER A WITH TILDE +ã@ +228 LATIN SMALL LETTER A WITH DIAERESIS +ä@ +229 LATIN SMALL LETTER A WITH RING ABOVE +å@ +230 LATIN SMALL LETTER AE +æ@ +231 LATIN SMALL LETTER C WITH CEDILLA +ç@ +232 LATIN SMALL LETTER E WITH GRAVE +è@ +233 LATIN SMALL LETTER E WITH ACUTE +é@ +234 LATIN SMALL LETTER E WITH CIRCUMFLEX +ê@ +235 LATIN SMALL LETTER E WITH DIAERESIS +ë@ +236 LATIN SMALL LETTER I WITH GRAVE +ì@ +237 LATIN SMALL LETTER I WITH ACUTE +í@ +238 LATIN SMALL LETTER I WITH CIRCUMFLEX +î@ +239 LATIN SMALL LETTER I WITH DIAERESIS +ï@ +240 LATIN SMALL LETTER ETH +ð@ +241 LATIN SMALL LETTER N WITH TILDE +ñ@ +242 LATIN SMALL LETTER O WITH GRAVE +ò@ +243 LATIN SMALL LETTER O WITH ACUTE +ó@ +244 LATIN SMALL LETTER O WITH CIRCUMFLEX +ô@ +245 LATIN SMALL LETTER O WITH TILDE +õ@ +246 LATIN SMALL LETTER O WITH DIAERESIS +ö@ +247 DIVISION SIGN +÷@ +248 LATIN SMALL LETTER O WITH STROKE +ø@ +249 LATIN SMALL LETTER U WITH GRAVE +ù@ +250 LATIN SMALL LETTER U WITH ACUTE +ú@ +251 LATIN SMALL LETTER U WITH CIRCUMFLEX +û@ +252 LATIN SMALL LETTER U WITH DIAERESIS +ü@ +253 LATIN SMALL LETTER Y WITH ACUTE +ý@ +254 LATIN SMALL LETTER THORN +þ@ +255 LATIN SMALL LETTER Y WITH DIAERESIS +ÿ@ +0x0100 LATIN CAPITAL LETTER A WITH MACRON +À@ +0x0101 LATIN SMALL LETTER A WITH MACRON +à@ +0x0102 LATIN CAPITAL LETTER A WITH BREVE +Ã@ +0x0103 LATIN SMALL LETTER A WITH BREVE +ã@ +0x0104 LATIN CAPITAL LETTER A WITH OGONEK +¡@ +0x0105 LATIN SMALL LETTER A WITH OGONEK +±@ +0x0106 LATIN CAPITAL LETTER C WITH ACUTE +Æ@ +0x0107 LATIN SMALL LETTER C WITH ACUTE +æ@ +0x0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX +Æ@ +0x0109 LATIN SMALL LETTER C WITH CIRCUMFLEX +æ@ +0x010A LATIN CAPITAL LETTER C WITH DOT ABOVE +Å@ +0x010B LATIN SMALL LETTER C WITH DOT ABOVE +å@ +0x010C LATIN CAPITAL LETTER C WITH CARON +È@ +0x010D LATIN SMALL LETTER C WITH CARON +è@ +0x010E LATIN CAPITAL LETTER D WITH CARON +Ï@ +0x010F LATIN SMALL LETTER D WITH CARON +ï@ +0x0110 LATIN CAPITAL LETTER D WITH STROKE +Ð@ +0x0111 LATIN SMALL LETTER D WITH STROKE +ð@ +0x0112 LATIN CAPITAL LETTER E WITH MACRON +ª@ +0x0113 LATIN SMALL LETTER E WITH MACRON +º@ +0x0116 LATIN CAPITAL LETTER E WITH DOT ABOVE +Ì@ +0x0117 LATIN SMALL LETTER E WITH DOT ABOVE +ì@ +0x0118 LATIN CAPITAL LETTER E WITH OGONEK +Ê@ +0x0119 LATIN SMALL LETTER E WITH OGONEK +ê@ +0x011A LATIN CAPITAL LETTER E WITH CARON +Ì@ +0x011B LATIN SMALL LETTER E WITH CARON +ì@ +0x011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX +Ø@ +0x011D LATIN SMALL LETTER G WITH CIRCUMFLEX +ø@ +0x011E LATIN CAPITAL LETTER G WITH BREVE +«@ +0x011F LATIN SMALL LETTER G WITH BREVE +»@ +0x0120 LATIN CAPITAL LETTER G WITH DOT ABOVE +Õ@ +0x0121 LATIN SMALL LETTER G WITH DOT ABOVE +õ@ +0x0122 LATIN CAPITAL LETTER G WITH CEDILLA +«@ +0x0123 LATIN SMALL LETTER G WITH CEDILLA +»@ +0x0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX +¦@ +0x0125 LATIN SMALL LETTER H WITH CIRCUMFLEX +¶@ +0x0126 LATIN CAPITAL LETTER H WITH STROKE +¡@ +0x0127 LATIN SMALL LETTER H WITH STROKE +±@ +0x0128 LATIN CAPITAL LETTER I WITH TILDE +¥@ +0x0129 LATIN SMALL LETTER I WITH TILDE +µ@ +0x012A LATIN CAPITAL LETTER I WITH MACRON +Ï@ +0x012B LATIN SMALL LETTER I WITH MACRON +ï@ +0x012E LATIN CAPITAL LETTER I WITH OGONEK +Ç@ +0x012F LATIN SMALL LETTER I WITH OGONEK +ç@ +0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE +©@ +0x0131 LATIN SMALL LETTER DOTLESS I +¹@ +0x0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX +¬@ +0x0135 LATIN SMALL LETTER J WITH CIRCUMFLEX +¼@ +0x0136 LATIN CAPITAL LETTER K WITH CEDILLA +Ó@ +0x0137 LATIN SMALL LETTER K WITH CEDILLA +ó@ +0x0138 LATIN SMALL LETTER KRA +¢@ +0x0139 LATIN CAPITAL LETTER L WITH ACUTE +Å@ +0x013A LATIN SMALL LETTER L WITH ACUTE +å@ +0x013B LATIN CAPITAL LETTER L WITH CEDILLA +¦@ +0x013C LATIN SMALL LETTER L WITH CEDILLA +¶@ +0x013D LATIN CAPITAL LETTER L WITH CARON +¥@ +0x013E LATIN SMALL LETTER L WITH CARON +µ@ +0x0141 LATIN CAPITAL LETTER L WITH STROKE +£@ +0x0142 LATIN SMALL LETTER L WITH STROKE +³@ +0x0143 LATIN CAPITAL LETTER N WITH ACUTE +Ñ@ +0x0144 LATIN SMALL LETTER N WITH ACUTE +ñ@ +0x0145 LATIN CAPITAL LETTER N WITH CEDILLA +Ñ@ +0x0146 LATIN SMALL LETTER N WITH CEDILLA +ñ@ +0x0147 LATIN CAPITAL LETTER N WITH CARON +Ò@ +0x0148 LATIN SMALL LETTER N WITH CARON +ò@ +0x014A LATIN CAPITAL LETTER ENG +½@ +0x014B LATIN SMALL LETTER ENG +¿@ +0x014C LATIN CAPITAL LETTER O WITH MACRON +Ò@ +0x014D LATIN SMALL LETTER O WITH MACRON +ò@ +0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +Õ@ +0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE +õ@ +0x0154 LATIN CAPITAL LETTER R WITH ACUTE +À@ +0x0155 LATIN SMALL LETTER R WITH ACUTE +à@ +0x0156 LATIN CAPITAL LETTER R WITH CEDILLA +£@ +0x0157 LATIN SMALL LETTER R WITH CEDILLA +³@ +0x0158 LATIN CAPITAL LETTER R WITH CARON +Ø@ +0x0159 LATIN SMALL LETTER R WITH CARON +ø@ +0x015A LATIN CAPITAL LETTER S WITH ACUTE +¦@ +0x015B LATIN SMALL LETTER S WITH ACUTE +¶@ +0x015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX +Þ@ +0x015D LATIN SMALL LETTER S WITH CIRCUMFLEX +þ@ +0x015E LATIN CAPITAL LETTER S WITH CEDILLA +ª@ +0x015F LATIN SMALL LETTER S WITH CEDILLA +º@ +0x0160 LATIN CAPITAL LETTER S WITH CARON +©@ +0x0161 LATIN SMALL LETTER S WITH CARON +¹@ +0x0162 LATIN CAPITAL LETTER T WITH CEDILLA +Þ@ +0x0163 LATIN SMALL LETTER T WITH CEDILLA +þ@ +0x0164 LATIN CAPITAL LETTER T WITH CARON +«@ +0x0165 LATIN SMALL LETTER T WITH CARON +»@ +0x0166 LATIN CAPITAL LETTER T WITH STROKE +¬@ +0x0167 LATIN SMALL LETTER T WITH STROKE +¼@ +0x0168 LATIN CAPITAL LETTER U WITH TILDE +Ý@ +0x0169 LATIN SMALL LETTER U WITH TILDE +ý@ +0x016A LATIN CAPITAL LETTER U WITH MACRON +Þ@ +0x016B LATIN SMALL LETTER U WITH MACRON +þ@ +0x016C LATIN CAPITAL LETTER U WITH BREVE +Ý@ +0x016D LATIN SMALL LETTER U WITH BREVE +ý@ +0x016E LATIN CAPITAL LETTER U WITH RING ABOVE +Ù@ +0x016F LATIN SMALL LETTER U WITH RING ABOVE +ù@ +0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +Û@ +0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE +û@ +0x0172 LATIN CAPITAL LETTER U WITH OGONEK +Ù@ +0x0173 LATIN SMALL LETTER U WITH OGONEK +ù@ +0x0179 LATIN CAPITAL LETTER Z WITH ACUTE +¬@ +0x017A LATIN SMALL LETTER Z WITH ACUTE +¼@ +0x017B LATIN CAPITAL LETTER Z WITH DOT ABOVE +¯@ +0x017C LATIN SMALL LETTER Z WITH DOT ABOVE +¿@ +0x017D LATIN CAPITAL LETTER Z WITH CARON +®@ +0x017E LATIN SMALL LETTER Z WITH CARON +¾@ +0x02C7 CARON +·@ +0x02D8 BREVE +¢@ +0x02D9 DOT ABOVE +ÿ@ +0x02DB OGONEK +²@ +0x02DD DOUBLE ACUTE ACCENT +½@ diff --git a/externals/figlet/fonts/upper.flc b/externals/figlet/fonts/upper.flc new file mode 100644 index 0000000000..f383471764 --- /dev/null +++ b/externals/figlet/fonts/upper.flc @@ -0,0 +1,193 @@ +flc2a +# Upper by Glenn Chappell 1/94 +# Converts lower-case to upper-case. +# Modified to support all of Unicode by John Cowan 10/96 +# figlet release 2.2 -- November 1996 +# +# This is a figlet controlfile. +# +# Explanation of first line: +# flc2 - "magic number" for file identification +# a - should always be `a', for now +# +# File body: +# The first character of any line is the "command" for that line. +# Possible figlet 2.1 commands are as follows: +# `#' - comment, continues until end-of-line +# `t' - translate, a not-so-fancy version of the Unix "tr" command +# `f' - freeze, treat further lines as if they were in a new file +# +# The following lines convert lower-case to upper-case. +# +# Standard letters: +t a-z A-Z +# +# figlet Deutsch characters (obsolete in 2.2 and later): +t \-252-\-250 \-255-\-253 +# +# ISO Latin-1 accented letters: +t \224-\246 \192-\214 +t \248-\254 \216-\222 +# Note: Latin-1 has no upper-case Y umlaut, so map to "Y". +# But remove the following line for Unicode fonts. +t \255 Y +# This is the proper Unicode mapping, and does no harm for non-Unicode fonts. +t \255 \0x0178 +# Latin Extended A (Latin-2,3,4,5) accented letters: +t \0x01\0x01 \0x0100 +t \0x0103 \0x0102 +t \0x0105 \0x0104 +t \0x0107 \0x0106 +t \0x0109 \0x0108 +t \0x010B \0x010A +t \0x010D \0x010C +t \0x010F \0x010E +t \0x01\0x01 \0x0100 +t \0x0103 \0x0102 +t \0x0105 \0x0104 +t \0x0117 \0x0116 +t \0x0119 \0x0118 +t \0x011B \0x011A +t \0x011D \0x011C +t \0x011F \0x011E +t \0x01\0x01 \0x0100 +t \0x0103 \0x0102 +t \0x0105 \0x0104 +t \0x0127 \0x0126 +t \0x0129 \0x0128 +t \0x012B \0x012A +t \0x012D \0x012C +t \0x012F \0x012E +t \0x0131 I +t \0x0133 \0x0132 +t \0x0135 \0x0134 +t \0x0137 \0x0136 +t \0x0138 K +t \0x013A \0x0139 +t \0x013C \0x013B +t \0x013E \0x013D +t \0x0140 \0x013F +t \0x0142 \0x0141 +t \0x0144 \0x0143 +t \0x0146 \0x0145 +t \0x0148 \0x0147 +t \0x0149 N +t \0x014B \0x014A +t \0x014D \0x014C +t \0x014F \0x014E +t \0x0151 \0x0150 +t \0x0153 \0x0152 +t \0x0155 \0x0154 +t \0x0157 \0x0156 +t \0x0159 \0x0158 +t \0x015B \0x015A +t \0x015D \0x015C +t \0x015F \0x015E +t \0x0161 \0x0160 +t \0x0163 \0x0162 +t \0x0165 \0x0164 +t \0x0167 \0x0166 +t \0x0169 \0x0168 +t \0x016B \0x016A +t \0x016D \0x016C +t \0x016F \0x016E +t \0x0171 \0x0170 +t \0x0173 \0x0172 +t \0x0175 \0x0174 +t \0x0177 \0x0176 +t \0x017A \0x0179 +t \0x017C \0x017B +t \0x017E \0x017D +t \0x017F S +# Greek letters: +\0x037A \0x0399 +\0x0390 \0x0399 +\0x03AC \0x0386 +\0x03AD \0x0388 +\0x03AE \0x0389 +\0x03AF \0x038A +\0x03B0 \0x03AB +\0x03B1-\0x03C1 \0x0391-\0x03A1 +\0x03C2 \0x03A3 +\0x03C3-\0x03CB \0x03A3-\0x03AB +\0x03CC \0x038C +\0x03CD \0x038E +\0x03CE \0x038F +\0x03E3 \0x03E2 +\0x03E5 \0x03E4 +\0x03E7 \0x03E6 +\0x03E9 \0x03E8 +\0x03EB \0x03EA +\0x03ED \0x03EC +\0x03EF \0x03ED +# Cyrillic letters: +\0x0430-\0x044F \0x0410-\0x042F +\0x0451-\0x045F \0x0401-\0x040F +\0x0461 \0x0460 +\0x0463 \0x0461 +\0x0465 \0x0464 +\0x0467 \0x0466 +\0x0469 \0x0468 +\0x046B \0x046A +\0x046D \0x046C +\0x046F \0x046E +\0x0471 \0x0470 +\0x0473 \0x0471 +\0x0475 \0x0474 +\0x0477 \0x0476 +\0x0479 \0x0478 +\0x047B \0x047A +\0x047D \0x047C +\0x047F \0x047E +\0x0481 \0x0480 +\0x0491 \0x0490 +\0x0493 \0x0491 +\0x0495 \0x0494 +\0x0497 \0x0496 +\0x0499 \0x0498 +\0x049B \0x049A +\0x049D \0x049C +\0x049F \0x049E +\0x04A1 \0x04A0 +\0x04A3 \0x04A1 +\0x04A5 \0x04A4 +\0x04A7 \0x04A6 +\0x04A9 \0x04A8 +\0x04AB \0x04AA +\0x04AD \0x04AC +\0x04AF \0x04AE +\0x04B1 \0x04B0 +\0x04B3 \0x04B1 +\0x04B5 \0x04B4 +\0x04B7 \0x04B6 +\0x04B9 \0x04B8 +\0x04BB \0x04BA +\0x04BD \0x04BC +\0x04BF \0x04BE +\0x04C2 \0x04C1 +\0x04C4 \0x04C3 +\0x04C8 \0x04C7 +\0x04CC \0x04CB +\0x04D1 \0x04D0 +\0x04D3 \0x04D2 +\0x04D5 \0x04D4 +\0x04D7 \0x04D6 +\0x04D9 \0x04D8 +\0x04DB \0x04DA +\0x04DD \0x04DC +\0x04DF \0x04DE +\0x04E1 \0x04E0 +\0x04E3 \0x04E2 +\0x04E5 \0x04E4 +\0x04E7 \0x04E6 +\0x04E9 \0x04E8 +\0x04EB \0x04EA +\0x04ED \0x04EC +\0x04EF \0x04EE +\0x04F1 \0x04F0 +\0x04F3 \0x04F2 +\0x04F5 \0x04F4 +\0x04F7 \0x04F6 +\0x04F9 \0x04F8 +# Armenian letters: +\0x0561-\0x0586 \0x0531-\0x0556 diff --git a/externals/figlet/fonts/ushebrew.flc b/externals/figlet/fonts/ushebrew.flc new file mode 100644 index 0000000000..313af84b5b --- /dev/null +++ b/externals/figlet/fonts/ushebrew.flc @@ -0,0 +1,33 @@ +flc2a +# implements a natural mapping from the U.S. keyboard +# to Hebrew characters in the Ivrit font. +# Note that capital letters remain unchanged. + +t a \0x05d0 +t b \0x05d1 +t g \0x05d2 +t d \0x05d3 +t h \0x05d4 +t v \0x05d5 +t z \0x05d6 +t c \0x05d7 +t t \0x05d8 +t y \0x05d9 +t k \0x05db +t f \0x05da +t l \0x05dc +t m \0x05de +t o \0x05dd +t n \0x05e0 +t i \0x05df +t e \0x05e1 +t _ \0x05e2 +t p \0x05e4 +t u \0x05e3 +t j \0x05e6 +t w \0x05e5 +t q \0x05e7 +t r \0x05e8 +t s \0x05e9 +t x \0x05ea +t ~ \-3 diff --git a/externals/figlet/fonts/uskata.flc b/externals/figlet/fonts/uskata.flc new file mode 100644 index 0000000000..62e559f4be --- /dev/null +++ b/externals/figlet/fonts/uskata.flc @@ -0,0 +1,53 @@ +flc2a +# Maps the upper and lower case alphabet (A-Z and a-v) into the +# 48 basic katakana Unicodes. Can be used with any Unicode katakana +# font, such as Banner. +t A \0x30A2 +t B \0x30A4 +t C \0x30A6 +t D \0x30A8 +t E \0x30AA +t F \0x30AB +t G \0x30AD +t H \0x30AF +t I \0x30B1 +t J \0x30B3 +t K \0x30B5 +t L \0x30B7 +t M \0x30B9 +t N \0x30BB +t O \0x30BD +t P \0x30BF +t Q \0x30C1 +t R \0x30C4 +t S \0x30C6 +t T \0x30C8 +t U \0x30CA +t V \0x30CB +t W \0x30CC +t X \0x30CD +t Y \0x30CE +t Z \0x30CF +t a \0x30D2 +t b \0x30D5 +t c \0x30D8 +t d \0x30DB +t e \0x30DE +t f \0x30DF +t g \0x30E0 +t h \0x30E1 +t i \0x30E2 +t j \0x30E4 +t k \0x30E6 +t l \0x30E8 +t m \0x30F1 +t n \0x30E9 +t o \0x30EA +t p \0x30EB +t q \0x30EC +t r \0x30ED +t s \0x30EF +t t \0x30F0 +t u \0x30F2 +t v \0x30F3 +t ~ \-4 diff --git a/externals/figlet/fonts/utf8.flc b/externals/figlet/fonts/utf8.flc new file mode 100644 index 0000000000..532986d7c6 --- /dev/null +++ b/externals/figlet/fonts/utf8.flc @@ -0,0 +1,4 @@ +flc2a +# Set UTF-8 input mode (an 8-bit encoding of Unicode that preserves ASCII) +# Meaningful only to FIGlet 2.2 beta 4 or better +u diff --git a/externals/figlet/getopt.c b/externals/figlet/getopt.c new file mode 100644 index 0000000000..421899152c --- /dev/null +++ b/externals/figlet/getopt.c @@ -0,0 +1,104 @@ +/* + * * @(#)getopt.c 2.3 (smail) 5/30/87 + */ + +/* + * Here's something you've all been waiting for: the AT&T public domain + * source for getopt(3). It is the code which was given out at the 1985 + * UNIFORUM conference in Dallas. I obtained it by electronic mail directly + * from AT&T. The people there assure me that it is indeed in the public + * domain. + * + * There is no manual page. That is because the one they gave out at UNIFORUM + * was slightly different from the current System V Release 2 manual page. + * The difference apparently involved a note about the famous rules 5 and 6, + * recommending using white space between an option and its first argument, + * and not grouping options that have arguments. Getopt itself is currently + * lenient about both of these things White space is allowed, but not + * mandatory, and the last option in a group can have an argument. That + * particular version of the man page evidently has no official existence, + * and my source at AT&T did not send a copy. The current SVR2 man page + * reflects the actual behavior of this getopt. However, I am not about to + * post a copy of anything licensed by AT&T. + */ + +#ifdef BSD + #include +#else + #define index strchr + #include +#endif + +/* LINTLIBRARY */ +#ifndef NULL +#define NULL 0 +#endif + +#define EOF (-1) +#define ERR(s, c) if(opterr){\ + extern int write(int, void *, unsigned);\ + char errbuf[2];\ + errbuf[0] = (char)c; errbuf[1] = '\n';\ + (void) write(2, strlwr(argv[0]), (unsigned)strlen(argv[0]));\ + (void) write(2, s, (unsigned)strlen(s));\ + (void) write(2, errbuf, 2);} + +extern char *index(); + +int opterr = 1; +int optind = 1; +int optopt; +char *optarg; + +int getopt(int argc, char *argv[], char *opts) +{ + static int sp = 1; + register int c; + register char *cp; + + if (sp == 1) + { + if (optind >= argc || argv[optind][0] != '-' || + argv[optind][1] == '\0') + return (EOF); + else if (strcmp(argv[optind], "--") == 0) + { + optind++; + return (EOF); + } + } + optopt = c = argv[optind][sp]; + if (c == ':' || (cp = index(opts, c)) == NULL) + { + ERR(": illegal option -- ", c); + if (argv[optind][++sp] == '\0') + { + optind++; + sp = 1; + } + return ('?'); + } + if (*++cp == ':') + { + if (argv[optind][sp + 1] != '\0') + optarg = &argv[optind++][sp + 1]; + else if (++optind >= argc) + { + ERR(": option requires an argument -- ", c); + sp = 1; + return ('?'); + } + else optarg = argv[optind++]; + sp = 1; + } + else + { + if (argv[optind][++sp] == '\0') + { + sp = 1; + optind++; + } + optarg = NULL; + } + return (c); +} diff --git a/externals/figlet/inflate.c b/externals/figlet/inflate.c new file mode 100644 index 0000000000..06cef443b6 --- /dev/null +++ b/externals/figlet/inflate.c @@ -0,0 +1,1321 @@ +/* + * inflate.c - inflate decompression routine + * + * Version 1.1.2 + */ + +/* + * Copyright (C) 1995, Edward B. Hamrick + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of the copyright holders + * not be used in advertising or publicity pertaining to distribution of + * the software without specific, written prior permission. The copyright + * holders makes no representations about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT + * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Changes from 1.1 to 1.1.2: + * Relicensed under the MIT license, with consent of the copyright holders. + * Claudio Matsuoka (Jan 11 2011) + */ + +/* + * inflate.c is based on the public-domain (non-copyrighted) version + * written by Mark Adler, version c14o, 23 August 1994. It has been + * modified to be reentrant, more portable, and to be data driven. + */ + +/* + * 1) All file i/o is done externally to these routines + * 2) Routines are symmetrical so inflate can feed into deflate + * 3) Routines can be easily integrated into wide range of applications + * 4) Routines are very portable, and use only ANSI C + * 5) No #defines in inflate.h to conflict with external #defines + * 6) No external routines need be called by these routines + * 7) Buffers are owned by the calling routine + * 8) No static non-constant variables are allowed + */ + +/* + * Note that for each call to InflatePutBuffer, there will be + * 0 or more calls to (*putbuffer_ptr). Before InflatePutBuffer + * returns, it will have output as much uncompressed data as + * is possible. + */ + +#ifdef MEMCPY +#include +#endif + +#include "inflate.h" + +/* + * Macros for constants + */ + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef WINDOWSIZE +#define WINDOWSIZE 0x8000 +#endif + +#ifndef WINDOWMASK +#define WINDOWMASK 0x7fff +#endif + +#ifndef BUFFERSIZE +#define BUFFERSIZE 0x4000 +#endif + +#ifndef BUFFERMASK +#define BUFFERMASK 0x3fff +#endif + +#ifndef INFLATESTATETYPE +#define INFLATESTATETYPE 0xabcdabcdL +#endif + +/* + * typedefs + */ + +typedef unsigned long ulg; +typedef unsigned short ush; +typedef unsigned char uch; + +/* Structure to hold state for inflating zip files */ +struct InflateState { + + unsigned long runtimetypeid1; /* to detect run-time errors */ + int errorencountered; /* error encountered flag */ + + /* Decoding state */ + int state; /* -1 -> need block type */ + /* 0 -> need stored setup */ + /* 1 -> need fixed setup */ + /* 2 -> need dynamic setup */ + /* 10 -> need stored data */ + /* 11 -> need fixed data */ + /* 12 -> need dynamic data */ + +/* State for decoding fixed & dynamic data */ + struct huft *tl; /* literal/length decoder tbl */ + struct huft *td; /* distance decoder table */ + int bl; /* bits decoded by tl */ + int bd; /* bits decoded by td */ + + /* State for decoding stored data */ + unsigned int storelength; + + /* State to keep track that last block has been encountered */ + int lastblock; /* current block is last */ + + /* Input buffer state (circular) */ + ulg bb; /* input buffer bits */ + unsigned int bk; /* input buffer count of bits */ + unsigned int bp; /* input buffer pointer */ + unsigned int bs; /* input buffer size */ + unsigned char buffer[BUFFERSIZE]; /* input buffer data */ + + /* Storage for try/catch */ + ulg catch_bb; /* bit buffer */ + unsigned int catch_bk; /* bits in bit buffer */ + unsigned int catch_bp; /* buffer pointer */ + unsigned int catch_bs; /* buffer size */ + + /* Output window state (circular) */ + unsigned int wp; /* output window pointer */ + unsigned int wf; /* output window flush-from */ + unsigned char window[WINDOWSIZE]; /* output window data */ + + /* Application state */ + void *AppState; /* opaque ptr for callout */ + + /* pointers to call-outs */ + int (*putbuffer_ptr)( /* returns 0 on success */ + void *AppState, /* opaque ptr from Initialize */ + unsigned char *buffer, /* buffer to put */ + long length /* length of buffer */ + ); + + void *(*malloc_ptr)(long length); /* utility routine */ + + void (*free_ptr)(void *buffer); /* utility routine */ + + unsigned long runtimetypeid2; /* to detect run-time errors */ +}; + +/* + * Error handling macro + */ + +#define ERROREXIT(is) {(is)->errorencountered = TRUE; return TRUE;} + +/* + * Macros for handling data in the input buffer + * + * Note that the NEEDBITS and DUMPBITS macros + * need to be bracketed by the TRY/CATCH macros + * + * The usage is: + * + * TRY + * { + * NEEDBITS(j) + * x = b & mask_bits[j]; + * DUMPBITS(j) + * } + * CATCH_BEGIN + * cleanup code + * CATCH_END + * + * Note that there can only be one TRY/CATCH pair per routine + * because of the use of goto in the implementation of the macros. + * + * NEEDBITS makes sure that b has at least j bits in it, and + * DUMPBITS removes the bits from b. The macros use the variable k + * for the number of bits in b. Normally, b and k are register + * variables for speed, and are initialized at the beginning of a + * routine that uses these macros from a global bit buffer and count. + * + * In order to not ask for more bits than there are in the compressed + * stream, the Huffman tables are constructed to only ask for just + * enough bits to make up the end-of-block code (value 256). Then no + * bytes need to be "returned" to the buffer at the end of the last + * block. See the huft_build() routine. + */ + +#define TRY \ + is->catch_bb = b; \ + is->catch_bk = k; \ + is->catch_bp = is->bp; \ + is->catch_bs = is->bs; + +#define CATCH_BEGIN \ + goto cleanup_done; \ + cleanup: \ + b = is->catch_bb; \ + k = is->catch_bk; \ + is->bb = b; \ + is->bk = k; \ + is->bp = is->catch_bp; \ + is->bs = is->catch_bs; + +#define CATCH_END \ + cleanup_done: ; + +#define NEEDBITS(n) \ +{ \ + while (k < (n)) \ + { \ + if (is->bs <= 0) \ + { \ + goto cleanup; \ + } \ + b |= ((ulg) (is->buffer[is->bp & BUFFERMASK])) << k; \ + is->bs--; \ + is->bp++; \ + k += 8; \ + } \ +} + +#define DUMPBITS(n) \ +{ \ + b >>= (n); \ + k -= (n); \ +} + +/* + * Macro for flushing the output window to the putbuffer callout. + * + * Note that the window is always flushed when it fills to 32K, + * and before returning to the application. + */ + +#define FLUSHWINDOW(w, now) \ +if ((now && (is->wp > is->wf)) || ((w) >= WINDOWSIZE)) \ +{ \ + is->wp = (w); \ + if ((*(is->putbuffer_ptr)) \ + (is->AppState, is->window+is->wf, is->wp-is->wf)) \ + ERROREXIT(is); \ + is->wp &= WINDOWMASK; \ + is->wf = is->wp; \ + (w) = is->wp; \ +} + +/* + * Inflate deflated (PKZIP's method 8 compressed) data. The compression + * method searches for as much of the current string of bytes (up to a + * length of 258) in the previous 32K bytes. If it doesn't find any + * matches (of at least length 3), it codes the next byte. Otherwise, it + * codes the length of the matched string and its distance backwards from + * the current position. There is a single Huffman code that codes both + * single bytes (called "literals") and match lengths. A second Huffman + * code codes the distance information, which follows a length code. Each + * length or distance code actually represents a base value and a number + * of "extra" (sometimes zero) bits to get to add to the base value. At + * the end of each deflated block is a special end-of-block (EOB) literal/ + * length code. The decoding process is basically: get a literal/length + * code; if EOB then done; if a literal, emit the decoded byte; if a + * length then get the distance and emit the referred-to bytes from the + * sliding window of previously emitted data. + * + * There are (currently) three kinds of inflate blocks: stored, fixed, and + * dynamic. The compressor outputs a chunk of data at a time and decides + * which method to use on a chunk-by-chunk basis. A chunk might typically + * be 32K to 64K, uncompressed. If the chunk is uncompressible, then the + * "stored" method is used. In this case, the bytes are simply stored as + * is, eight bits per byte, with none of the above coding. The bytes are + * preceded by a count, since there is no longer an EOB code. + * + * If the data is compressible, then either the fixed or dynamic methods + * are used. In the dynamic method, the compressed data is preceded by + * an encoding of the literal/length and distance Huffman codes that are + * to be used to decode this block. The representation is itself Huffman + * coded, and so is preceded by a description of that code. These code + * descriptions take up a little space, and so for small blocks, there is + * a predefined set of codes, called the fixed codes. The fixed method is + * used if the block ends up smaller that way (usually for quite small + * chunks); otherwise the dynamic method is used. In the latter case, the + * codes are customized to the probabilities in the current block and so + * can code it much better than the pre-determined fixed codes can. + * + * The Huffman codes themselves are decoded using a mutli-level table + * lookup, in order to maximize the speed of decoding plus the speed of + * building the decoding tables. See the comments below that precede the + * lbits and dbits tuning parameters. + */ + +/* + * Notes beyond the 1.93a appnote.txt: + * + * 1. Distance pointers never point before the beginning of the output + * stream. + * 2. Distance pointers can point back across blocks, up to 32k away. + * 3. There is an implied maximum of 7 bits for the bit length table and + * 15 bits for the actual data. + * 4. If only one code exists, then it is encoded using one bit. (Zero + * would be more efficient, but perhaps a little confusing.) If two + * codes exist, they are coded using one bit each (0 and 1). + * 5. There is no way of sending zero distance codes--a dummy must be + * sent if there are none. (History: a pre 2.0 version of PKZIP would + * store blocks with no distance codes, but this was discovered to be + * too harsh a criterion.) Valid only for 1.93a. 2.04c does allow + * zero distance codes, which is sent as one code of zero bits in + * length. + * 6. There are up to 286 literal/length codes. Code 256 represents the + * end-of-block. Note however that the static length tree defines + * 288 codes just to fill out the Huffman codes. Codes 286 and 287 + * cannot be used though, since there is no length base or extra bits + * defined for them. Similarly, there are up to 30 distance codes. + * However, static trees define 32 codes (all 5 bits) to fill out the + * Huffman codes, but the last two had better not show up in the data. + * 7. Unzip can check dynamic Huffman blocks for complete code sets. + * The exception is that a single code would not be complete (see #4). + * 8. The five bits following the block type is really the number of + * literal codes sent minus 257. + * 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits + * (1+6+6). Therefore, to output three times the length, you output + * three codes (1+1+1), whereas to output four times the same length, + * you only need two codes (1+3). Hmm. + *10. In the tree reconstruction algorithm, Code = Code + Increment + * only if BitLength(i) is not zero. (Pretty obvious.) + *11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19) + *12. Note: length code 284 can represent 227-258, but length code 285 + * really is 258. The last length deserves its own, short code + * since it gets used a lot in very redundant files. The length + * 258 is special since 258 - 3 (the min match length) is 255. + *13. The literal/length and distance code bit lengths are read as a + * single stream of lengths. It is possible (and advantageous) for + * a repeat code (16, 17, or 18) to go across the boundary between + * the two sets of lengths. + */ + +/* + * Huffman code lookup table entry--this entry is four bytes for machines + * that have 16-bit pointers (e.g. PC's in the small or medium model). + * Valid extra bits are 0..13. e == 15 is EOB (end of block), e == 16 + * means that v is a literal, 16 < e < 32 means that v is a pointer to + * the next table, which codes e - 16 bits, and lastly e == 99 indicates + * an unused code. If a code with e == 99 is looked up, this implies an + * error in the data. + */ + +struct huft { + uch e; /* number of extra bits or operation */ + uch b; /* number of bits in this code or subcode */ + union { + ush n; /* literal, length base, or distance base */ + struct huft *t; /* pointer to next level of table */ + } v; +}; + +/* + * Tables for deflate from PKZIP's appnote.txt. + */ + +static const unsigned border[] = { /* Order of the bit length code lengths */ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +static const ush cplens[] = { /* Copy lengths for literal codes 257..285 */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + /* note: see note #13 above about the 258 in this list. */ + +static const ush cplext[] = { /* Extra bits for literal codes 257..285 */ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, + 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99}; /* 99==invalid */ + +static const ush cpdist[] = { /* Copy offsets for distance codes 0..29 */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577}; + +static const ush cpdext[] = { /* Extra bits for distance codes */ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, + 12, 12, 13, 13}; + +/* + * Constants for run-time computation of mask + */ + +static const ush mask_bits[] = { + 0x0000, + 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, + 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff +}; + +/* + * Huffman code decoding is performed using a multi-level table lookup. + * The fastest way to decode is to simply build a lookup table whose + * size is determined by the longest code. However, the time it takes + * to build this table can also be a factor if the data being decoded + * is not very long. The most common codes are necessarily the + * shortest codes, so those codes dominate the decoding time, and hence + * the speed. The idea is you can have a shorter table that decodes the + * shorter, more probable codes, and then point to subsidiary tables for + * the longer codes. The time it costs to decode the longer codes is + * then traded against the time it takes to make longer tables. + * + * This results of this trade are in the variables lbits and dbits + * below. lbits is the number of bits the first level table for literal/ + * length codes can decode in one step, and dbits is the same thing for + * the distance codes. Subsequent tables are also less than or equal to + * those sizes. These values may be adjusted either when all of the + * codes are shorter than that, in which case the longest code length in + * bits is used, or when the shortest code is *longer* than the requested + * table size, in which case the length of the shortest code in bits is + * used. + * + * There are two different values for the two tables, since they code a + * different number of possibilities each. The literal/length table + * codes 286 possible values, or in a flat code, a little over eight + * bits. The distance table codes 30 possible values, or a little less + * than five bits, flat. The optimum values for speed end up being + * about one bit more than those, so lbits is 8+1 and dbits is 5+1. + * The optimum values may differ though from machine to machine, and + * possibly even between compilers. Your mileage may vary. + */ + +static const int lbits = 9; /* bits in base literal/length lookup table */ +static const int dbits = 6; /* bits in base distance lookup table */ + +/* If BMAX needs to be larger than 16, then h and x[] should be ulg. */ +#define BMAX 16 /* maximum bit length of any code (16 for explode) */ +#define N_MAX 288 /* maximum number of codes in any set */ + +/* + * Free the malloc'ed tables built by huft_build(), which makes a linked + * list of the tables it made, with the links in a dummy first entry of + * each table. + */ + +static int huft_free( + struct InflateState *is, /* Inflate state */ + struct huft *t /* table to free */ +) +{ + struct huft *p, *q; + + /* Go through linked list, freeing from the malloced (t[-1]) address. */ + p = t; + while (p != (struct huft *)NULL) + { + q = (--p)->v.t; + (*is->free_ptr)((char*)p); + p = q; + } + return 0; +} + +/* + * Given a list of code lengths and a maximum table size, make a set of + * tables to decode that set of codes. Return zero on success, one if + * the given code set is incomplete (the tables are still built in this + * case), two if the input is invalid (all zero length codes or an + * oversubscribed set of lengths), and three if not enough memory. + * The code with value 256 is special, and the tables are constructed + * so that no bits beyond that code are fetched when that code is + * decoded. + */ + +static int huft_build( + struct InflateState *is, /* Inflate state */ + unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ + unsigned n, /* number of codes (assumed <= N_MAX) */ + unsigned s, /* number of simple-valued codes (0..s-1) */ + const ush *d, /* list of base values for non-simple codes */ + const ush *e, /* list of extra bits for non-simple codes */ + struct huft **t, /* result: starting table */ + int *m /* maximum lookup bits, returns actual */ +) +{ + unsigned a; /* counter for codes of length k */ + unsigned c[BMAX+1]; /* bit length count table */ + unsigned el; /* length of EOB code (value 256) */ + unsigned f; /* i repeats in table every f entries */ + int g; /* maximum code length */ + int h; /* table level */ + unsigned i; /* counter, current code */ + unsigned j; /* counter */ + int k; /* number of bits in current code */ + int lx[BMAX+1]; /* memory for l[-1..BMAX-1] */ + int *l = lx+1; /* stack of bits per table */ + unsigned *p; /* pointer into c[], b[], or v[] */ + struct huft *q; /* points to current table */ + struct huft r; /* table entry for structure assignment */ + struct huft *u[BMAX]; /* table stack */ + unsigned v[N_MAX]; /* values in order of bit length */ + int w; /* bits before this table == (l * h) */ + unsigned x[BMAX+1]; /* bit offsets, then code stack */ + unsigned *xp; /* pointer into x */ + int y; /* number of dummy codes added */ + unsigned z; /* number of entries in current table */ + + /* clear the bit length count table */ + for (i=0; i<(BMAX+1); i++) + { + c[i] = 0; + } + + /* Generate counts for each bit length */ + el = n > 256 ? b[256] : BMAX; /* set length of EOB code, if any */ + p = b; i = n; + do { + c[*p]++; p++; /* assume all entries <= BMAX */ + } while (--i); + if (c[0] == n) /* null input--all zero length codes */ + { + *t = (struct huft *)NULL; + *m = 0; + return 0; + } + + /* Find minimum and maximum length, bound *m by those */ + for (j = 1; j <= BMAX; j++) + if (c[j]) + break; + k = j; /* minimum code length */ + if ((unsigned)*m < j) + *m = j; + for (i = BMAX; i; i--) + if (c[i]) + break; + g = i; /* maximum code length */ + if ((unsigned)*m > i) + *m = i; + + /* Adjust last length count to fill out codes, if needed */ + for (y = 1 << j; j < i; j++, y <<= 1) + if ((y -= c[j]) < 0) + return 2; /* bad input: more codes than bits */ + if ((y -= c[i]) < 0) + return 2; + c[i] += y; + + /* Generate starting offsets into the value table for each length */ + x[1] = j = 0; + p = c + 1; xp = x + 2; + while (--i) { /* note that i == g from above */ + *xp++ = (j += *p++); + } + + /* Make a table of values in order of bit lengths */ + p = b; i = 0; + do { + if ((j = *p++) != 0) + v[x[j]++] = i; + } while (++i < n); + + /* Generate the Huffman codes and for each, make the table entries */ + x[0] = i = 0; /* first Huffman code is zero */ + p = v; /* grab values in bit order */ + h = -1; /* no tables yet--level -1 */ + w = l[-1] = 0; /* no bits decoded yet */ + u[0] = (struct huft *)NULL; /* just to keep compilers happy */ + q = (struct huft *)NULL; /* ditto */ + z = 0; /* ditto */ + + /* go through the bit lengths (k already is bits in shortest code) */ + for (; k <= g; k++) + { + a = c[k]; + while (a--) + { + /* here i is the Huffman code of length k bits for value *p */ + /* make tables up to required level */ + while (k > w + l[h]) + { + w += l[h++]; /* add bits already decoded */ + + /* compute minimum size table less than or equal to *m bits */ + z = (z = g - w) > (unsigned)*m ? *m : z; /* upper limit */ + if ((f = 1 << (j = k - w)) > a + 1) /* try a k-w bit table */ + { /* too few codes for k-w bit table */ + f -= a + 1; /* deduct codes from patterns left */ + xp = c + k; + while (++j < z) /* try smaller tables up to z bits */ + { + if ((f <<= 1) <= *++xp) + break; /* enough codes to use up j bits */ + f -= *xp; /* else deduct codes from patterns */ + } + } + if ((unsigned)w + j > el && (unsigned)w < el) + j = el - w; /* make EOB code end at table */ + z = 1 << j; /* table entries for j-bit table */ + l[h] = j; /* set table size in stack */ + + /* allocate and link in new table */ + if ((q = (struct huft *) + ((*is->malloc_ptr)((z + 1)*sizeof(struct huft)))) == + (struct huft *)NULL) + { + if (h) + huft_free(is, u[0]); + return 3; /* not enough memory */ + } + *t = q + 1; /* link to list for huft_free() */ + *(t = &(q->v.t)) = (struct huft *)NULL; + u[h] = ++q; /* table starts after link */ + + /* connect to last table, if there is one */ + if (h) + { + x[h] = i; /* save pattern for backing up */ + r.b = (uch)l[h-1]; /* bits to dump before this table */ + r.e = (uch)(16 + j); /* bits in this table */ + r.v.t = q; /* pointer to this table */ + j = (i & ((1 << w) - 1)) >> (w - l[h-1]); + u[h-1][j] = r; /* connect to last table */ + } + } + + /* set up table entry in r */ + r.b = (uch)(k - w); + if (p >= v + n) + r.e = 99; /* out of values--invalid code */ + else if (*p < s) + { + r.e = (uch)(*p < 256 ? 16 : 15); /* 256 is end-of-block code */ + r.v.n = (ush) *p++; /* simple code is just the value */ + } + else + { + r.e = (uch)e[*p - s]; /* non-simple--look up in lists */ + r.v.n = d[*p++ - s]; + } + + /* fill code-like entries with r */ + f = 1 << (k - w); + for (j = i >> w; j < z; j += f) + q[j] = r; + + /* backwards increment the k-bit code i */ + for (j = 1 << (k - 1); i & j; j >>= 1) + i ^= j; + i ^= j; + + /* backup over finished tables */ + while ((i & ((1 << w) - 1)) != x[h]) + w -= l[--h]; /* don't need to update q */ + } + } + + /* return actual size of base table */ + *m = l[0]; + + /* Return true (1) if we were given an incomplete table */ + return y != 0 && g != 1; +} + +/* + * inflate (decompress) the codes in a stored (uncompressed) block. + * Return an error code or zero if it all goes ok. + */ + +static int inflate_stored( + struct InflateState *is /* Inflate state */ +) +{ + ulg b; /* bit buffer */ + unsigned k; /* number of bits in bit buffer */ + unsigned w; /* current window position */ + + /* make local copies of state */ + b = is->bb; /* initialize bit buffer */ + k = is->bk; /* initialize bit count */ + w = is->wp; /* initialize window position */ + + /* + * Note that this code knows that NEEDBITS jumps to cleanup + */ + + while (is->storelength > 0) /* do until end of block */ + { + NEEDBITS(8) + is->window[w++] = (uch) b; + DUMPBITS(8) + FLUSHWINDOW(w, FALSE); + is->storelength--; + } + + cleanup: + + /* restore the state from the locals */ + is->bb = b; /* restore bit buffer */ + is->bk = k; /* restore bit count */ + is->wp = w; /* restore window pointer */ + + if (is->storelength > 0) + return -1; + else + return 0; +} + +static int inflate_codes( + struct InflateState *is, /* Inflate state */ + struct huft *tl, /* literal/length decoder table */ + struct huft *td, /* distance decoder table */ + int bl, /* number of bits decoded by tl[] */ + int bd /* number of bits decoded by td[] */ +) +{ + unsigned e; /* table entry flag/number of extra bits */ + unsigned n, d; /* length and index for copy */ + unsigned w; /* current window position */ + struct huft *t; /* pointer to table entry */ + unsigned ml, md; /* masks for bl and bd bits */ + ulg b; /* bit buffer */ + unsigned k; /* number of bits in bit buffer */ + + /* make local copies of state */ + b = is->bb; /* initialize bit buffer */ + k = is->bk; /* initialize bit count */ + w = is->wp; /* initialize window position */ + + /* inflate the coded data */ + ml = mask_bits[bl]; /* precompute masks for speed */ + md = mask_bits[bd]; + for (;;) /* do until end of block */ + { + TRY + { + NEEDBITS((unsigned)bl) + if ((e = (t = tl + ((unsigned)b & ml))->e) > 16) + do { + if (e == 99) + return 1; + DUMPBITS(t->b) + e -= 16; + NEEDBITS(e) + } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16); + DUMPBITS(t->b) + + if (e == 16) /* it's a literal */ + { + is->window[w++] = (uch)t->v.n; + FLUSHWINDOW(w, FALSE); + } + else if (e == 15) /* it's an EOB */ + { + break; + } + else /* it's a length */ + { + /* get length of block to copy */ + NEEDBITS(e) + n = t->v.n + ((unsigned)b & mask_bits[e]); + DUMPBITS(e); + + /* decode distance of block to copy */ + NEEDBITS((unsigned)bd) + if ((e = (t = td + ((unsigned)b & md))->e) > 16) + do { + if (e == 99) + return 1; + DUMPBITS(t->b) + e -= 16; + NEEDBITS(e) + } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16); + DUMPBITS(t->b) + NEEDBITS(e) + d = w - t->v.n - ((unsigned)b & mask_bits[e]); + DUMPBITS(e) + + /* do the copy */ + do { + n -= (e = ((e = WINDOWSIZE - ((d &= WINDOWMASK) > w ? d : w)) > n) + ? n : e + ); +#if defined(MEMCPY) + if (w - d >= e) /* (this test assumes unsigned comparison) */ + { + memcpy(is->window + w, is->window + d, e); + w += e; + d += e; + } + else /* do it slow to avoid memcpy() overlap */ +#endif /* MEMCPY */ + do { + is->window[w++] = is->window[d++]; + } while (--e); + FLUSHWINDOW(w, FALSE); + } while (n); + } + } + CATCH_BEGIN + is->wp = w; /* restore window pointer */ + return -1; + CATCH_END + } + + /* restore the state from the locals */ + is->bb = b; /* restore bit buffer */ + is->bk = k; /* restore bit count */ + is->wp = w; /* restore window pointer */ + + /* done */ + return 0; +} + +/* + * "decompress" an inflated type 0 (stored) block. + */ + +static int inflate_stored_setup( + struct InflateState *is /* Inflate state */ +) +{ + unsigned n; /* number of bytes in block */ + ulg b; /* bit buffer */ + unsigned k; /* number of bits in bit buffer */ + + /* make local copies of state */ + b = is->bb; /* initialize bit buffer */ + k = is->bk; /* initialize bit count */ + + TRY + { + /* go to byte boundary */ + n = k & 7; + DUMPBITS(n); + + /* get the length and its complement */ + NEEDBITS(16) + n = ((unsigned)b & 0xffff); + DUMPBITS(16) + NEEDBITS(16) + if (n != (unsigned)((~b) & 0xffff)) + return 1; /* error in compressed data */ + DUMPBITS(16) + } + CATCH_BEGIN + return -1; + CATCH_END + + /* Save store state for this block */ + is->storelength = n; + + /* restore the state from the locals */ + is->bb = b; /* restore bit buffer */ + is->bk = k; /* restore bit count */ + + return 0; +} + +/* + * decompress an inflated type 1 (fixed Huffman codes) block. We should + * either replace this with a custom decoder, or at least precompute the + * Huffman tables. + */ + +static int inflate_fixed_setup( + struct InflateState *is /* Inflate state */ +) +{ + int i; /* temporary variable */ + struct huft *tl; /* literal/length code table */ + struct huft *td; /* distance code table */ + int bl; /* lookup bits for tl */ + int bd; /* lookup bits for td */ + unsigned l[288]; /* length list for huft_build */ + + /* set up literal table */ + for (i = 0; i < 144; i++) + l[i] = 8; + for (; i < 256; i++) + l[i] = 9; + for (; i < 280; i++) + l[i] = 7; + for (; i < 288; i++) /* make a complete, but wrong code set */ + l[i] = 8; + bl = 7; + if ((i = huft_build(is, l, 288, 257, cplens, cplext, &tl, &bl)) != 0) + return i; + + /* set up distance table */ + for (i = 0; i < 30; i++) /* make an incomplete code set */ + l[i] = 5; + bd = 5; + if ((i = huft_build(is, l, 30, 0, cpdist, cpdext, &td, &bd)) > 1) + { + huft_free(is, tl); + return i; + } + + /* Save inflate state for this block */ + is->tl = tl; + is->td = td; + is->bl = bl; + is->bd = bd; + + return 0; +} + +/* + * decompress an inflated type 2 (dynamic Huffman codes) block. + */ + +#define PKZIP_BUG_WORKAROUND + +static int inflate_dynamic_setup( + struct InflateState *is /* Inflate state */ +) +{ + int i; /* temporary variables */ + unsigned j; + unsigned l; /* last length */ + unsigned m; /* mask for bit lengths table */ + unsigned n; /* number of lengths to get */ + struct huft *tl; /* literal/length code table */ + struct huft *td; /* distance code table */ + int bl; /* lookup bits for tl */ + int bd; /* lookup bits for td */ + unsigned nb; /* number of bit length codes */ + unsigned nl; /* number of literal/length codes */ + unsigned nd; /* number of distance codes */ +#ifdef PKZIP_BUG_WORKAROUND + unsigned ll[288+32]; /* literal/length and distance code lengths */ +#else + unsigned ll[286+30]; /* literal/length and distance code lengths */ +#endif + ulg b; /* bit buffer */ + unsigned k; /* number of bits in bit buffer */ + + /* make local copies of state */ + b = is->bb; /* initialize bit buffer */ + k = is->bk; /* initialize bit count */ + + /* initialize tl for cleanup */ + tl = NULL; + + TRY + { + /* read in table lengths */ + NEEDBITS(5) + nl = 257 + ((unsigned)b & 0x1f); /* number of literal/length codes */ + DUMPBITS(5) + NEEDBITS(5) + nd = 1 + ((unsigned)b & 0x1f); /* number of distance codes */ + DUMPBITS(5) + NEEDBITS(4) + nb = 4 + ((unsigned)b & 0xf); /* number of bit length codes */ + DUMPBITS(4) +#ifdef PKZIP_BUG_WORKAROUND + if (nl > 288 || nd > 32) +#else + if (nl > 286 || nd > 30) +#endif + return 1; /* bad lengths */ + + /* read in bit-length-code lengths */ + for (j = 0; j < 19; j++) ll[j] = 0; + for (j = 0; j < nb; j++) + { + NEEDBITS(3) + ll[border[j]] = (unsigned)b & 7; + DUMPBITS(3) + } + + /* build decoding table for trees--single level, 7 bit lookup */ + bl = 7; + if ((i = huft_build(is, ll, 19, 19, NULL, NULL, &tl, &bl)) != 0) + { + if (i == 1) + huft_free(is, tl); + return i; /* incomplete code set */ + } + + /* read in literal and distance code lengths */ + n = nl + nd; + m = mask_bits[bl]; + i = l = 0; + while ((unsigned)i < n) + { + NEEDBITS((unsigned)bl) + j = (td = tl + ((unsigned)b & m))->b; + DUMPBITS(j) + j = td->v.n; + if (j < 16) /* length of code in bits (0..15) */ + ll[i++] = l = j; /* save last length in l */ + else if (j == 16) /* repeat last length 3 to 6 times */ + { + NEEDBITS(2) + j = 3 + ((unsigned)b & 3); + DUMPBITS(2) + if ((unsigned)i + j > n) + return 1; + while (j--) + ll[i++] = l; + } + else if (j == 17) /* 3 to 10 zero length codes */ + { + NEEDBITS(3) + j = 3 + ((unsigned)b & 7); + DUMPBITS(3) + if ((unsigned)i + j > n) + return 1; + while (j--) + ll[i++] = 0; + l = 0; + } + else /* j == 18: 11 to 138 zero length codes */ + { + NEEDBITS(7) + j = 11 + ((unsigned)b & 0x7f); + DUMPBITS(7) + if ((unsigned)i + j > n) + return 1; + while (j--) + ll[i++] = 0; + l = 0; + } + } + + /* free decoding table for trees */ + huft_free(is, tl); + } + CATCH_BEGIN + if (tl) huft_free(is, tl); + return -1; + CATCH_END + + /* restore the state from the locals */ + is->bb = b; /* restore bit buffer */ + is->bk = k; /* restore bit count */ + + /* build the decoding tables for literal/length and distance codes */ + bl = lbits; + if ((i = huft_build(is, ll, nl, 257, cplens, cplext, &tl, &bl)) != 0) + { + if (i == 1) { + /* incomplete literal tree */ + huft_free(is, tl); + } + return i; /* incomplete code set */ + } + bd = dbits; + if ((i = huft_build(is, ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0) + { + if (i == 1) { + /* incomplete distance tree */ +#ifdef PKZIP_BUG_WORKAROUND + } +#else + huft_free(is, td); + } + huft_free(is, tl); + return i; /* incomplete code set */ +#endif + } + + /* Save inflate state for this block */ + is->tl = tl; + is->td = td; + is->bl = bl; + is->bd = bd; + + return 0; +} + +/* Routine to initialize inflate decompression */ +void *InflateInitialize( /* returns InflateState */ + void *AppState, /* for passing to putbuffer */ + int (*putbuffer_ptr)( /* returns 0 on success */ + void *AppState, /* opaque ptr from Initialize */ + unsigned char *buffer, /* buffer to put */ + long length /* length of buffer */ + ), + void *(*malloc_ptr)(long length), /* utility routine */ + void (*free_ptr)(void *buffer) /* utility routine */ +) +{ + struct InflateState *is; + + /* Do some argument checking */ + if ((!putbuffer_ptr) || (!malloc_ptr) || (!free_ptr)) return NULL; + + /* Allocate the InflateState memory area */ + is = (struct InflateState *) (*malloc_ptr)(sizeof(struct InflateState)); + if (!is) return NULL; + + /* Set up the initial values of the inflate state */ + is->runtimetypeid1 = INFLATESTATETYPE; + is->errorencountered = FALSE; + + is->bb = 0; + is->bk = 0; + is->bp = 0; + is->bs = 0; + + is->wp = 0; + is->wf = 0; + + is->state = -1; + is->lastblock = FALSE; + + is->AppState = AppState; + + is->putbuffer_ptr = putbuffer_ptr; + is->malloc_ptr = malloc_ptr; + is->free_ptr = free_ptr; + + is->runtimetypeid2 = INFLATESTATETYPE; + + /* Return this state info to the caller */ + return is; +} + +/* Call-in routine to put a buffer into inflate decompression */ +int InflatePutBuffer( /* returns 0 on success */ + void *InflateState, /* opaque ptr from Initialize */ + unsigned char *buffer, /* buffer to put */ + long length /* length of buffer */ +) +{ + struct InflateState *is; + + int beginstate; + + /* Get (and check) the InflateState structure */ + is = (struct InflateState *) InflateState; + if (!is || (is->runtimetypeid1 != INFLATESTATETYPE) + || (is->runtimetypeid2 != INFLATESTATETYPE)) return TRUE; + if (is->errorencountered) return TRUE; + + do + { + int size, i; + + + if ((is->state == -1) && (is->lastblock)) break; + + /* Save the beginning state */ + beginstate = is->state; + + /* Push as much as possible into input buffer */ + size = BUFFERSIZE - is->bs; + if (size > length) size = (int) length; + i = is->bp + is->bs; + + while (size-- > 0) + { + is->buffer[i++ & BUFFERMASK] = *buffer; + is->bs++; + buffer++; + length--; + } + + /* Process some more data */ + if (is->state == -1) + { + int e; /* last block flag */ + unsigned t; /* block type */ + + ulg b; /* bit buffer */ + unsigned k; /* number of bits in bit buffer */ + + /* make local copies of state */ + b = is->bb; /* initialize bit buffer */ + k = is->bk; /* initialize bit count */ + + TRY + { + /* read in last block bit */ + NEEDBITS(1) + e = (int)b & 1; + DUMPBITS(1) + + /* read in block type */ + NEEDBITS(2) + t = (unsigned)b & 3; + DUMPBITS(2) + + if (t <= 2) + { + is->state = t; + is->lastblock = e; + } + else + { + ERROREXIT(is); + } + } + CATCH_BEGIN + CATCH_END + + /* restore the state from the locals */ + is->bb = b; /* restore bit buffer */ + is->bk = k; /* restore bit count */ + } + else if (is->state == 0) + { + int ret; + + ret = inflate_stored_setup(is); + + if (ret > 0) + ERROREXIT(is); + + if (ret == 0) is->state += 10; + } + else if (is->state == 1) + { + int ret; + + ret = inflate_fixed_setup(is); + + if (ret > 0) + ERROREXIT(is); + + if (ret == 0) is->state += 10; + } + else if (is->state == 2) + { + int ret; + + ret = inflate_dynamic_setup(is); + + if (ret > 0) + ERROREXIT(is); + + if (ret == 0) is->state += 10; + } + else if (is->state == 10) + { + int ret; + + ret = inflate_stored(is); + + if (ret > 0) + ERROREXIT(is); + + if (ret == 0) + { + is->state = -1; + } + } + else if ((is->state == 11) || + (is->state == 12) ) + { + int ret; + + ret = inflate_codes(is, is->tl, is->td, is->bl, is->bd); + + if (ret > 0) + ERROREXIT(is); + + if (ret == 0) + { + /* free the decoding tables */ + huft_free(is, is->tl); + huft_free(is, is->td); + is->state = -1; + } + } + else + { + ERROREXIT(is); + } + } + while (length || (is->state != beginstate)); + + FLUSHWINDOW(is->wp, TRUE); + + return is->errorencountered; +} + +/* Routine to terminate inflate decompression */ +int InflateTerminate( /* returns 0 on success */ + void *InflateState /* opaque ptr from Initialize */ +) +{ + int err; + void (*free_ptr)(void *buffer); + + struct InflateState *is; + + /* Get (and check) the InflateState structure */ + is = (struct InflateState *) InflateState; + if (!is || (is->runtimetypeid1 != INFLATESTATETYPE) + || (is->runtimetypeid2 != INFLATESTATETYPE)) return TRUE; + + /* save the error return */ + err = is->errorencountered || (is->bs > 0) + || (is->state != -1) + || (!is->lastblock); + + /* save the address of the free routine */ + free_ptr = is->free_ptr; + + /* Deallocate everything */ + (*free_ptr)(is); + + return err; +} diff --git a/externals/figlet/inflate.h b/externals/figlet/inflate.h new file mode 100644 index 0000000000..4fc7454820 --- /dev/null +++ b/externals/figlet/inflate.h @@ -0,0 +1,90 @@ +/* + * inflate.h - inflate decompression routine + * + * Version 1.1.2 + */ + +/* + * Copyright (C) 1995, Edward B. Hamrick + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of the copyright holders + * not be used in advertising or publicity pertaining to distribution of + * the software without specific, written prior permission. The copyright + * holders makes no representations about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT + * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Changes from 1.1 to 1.1.2: + * Relicensed under the MIT license, with consent of the copyright holders. + * Claudio Matsuoka (Jan 11 2011) + */ + +/* + * 1) All file i/o is done externally to these routines + * 2) Routines are symmetrical so inflate can feed into deflate + * 3) Routines can be easily integrated into wide range of applications + * 4) Routines are very portable, and use only ANSI C + * 5) No #defines in inflate.h to conflict with external #defines + * 6) No external routines need be called by these routines + * 7) Buffers are owned by the calling routine + * 8) No static non-constant variables are allowed + */ + +/* + * Note that for each call to InflatePutBuffer, there will be + * 0 or more calls to (*putbuffer_ptr). All except the last + * call to (*putbuffer_ptr) will be with 32768 bytes, although + * this behaviour may change in the future. Before InflatePutBuffer + * returns, it will have output as much uncompressed data as + * is possible. + */ + +#ifndef __INFLATE_H +#define __INFLATE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Routine to initialize inflate decompression */ +void *InflateInitialize( /* returns InflateState */ + void *AppState, /* for passing to putbuffer */ + int (*putbuffer_ptr)( /* returns 0 on success */ + void *AppState, /* opaque ptr from Initialize */ + unsigned char *buffer, /* buffer to put */ + long length /* length of buffer */ + ), + void *(*malloc_ptr)(long length), /* utility routine */ + void (*free_ptr)(void *buffer) /* utility routine */ +); + +/* Call-in routine to put a buffer into inflate decompression */ +int InflatePutBuffer( /* returns 0 on success */ + void *InflateState, /* opaque ptr from Initialize */ + unsigned char *buffer, /* buffer to put */ + long length /* length of buffer */ +); + +/* Routine to terminate inflate decompression */ +int InflateTerminate( /* returns 0 on success */ + void *InflateState /* opaque ptr from Initialize */ +); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/externals/figlet/run-tests.sh b/externals/figlet/run-tests.sh new file mode 100755 index 0000000000..4c373ec8d0 --- /dev/null +++ b/externals/figlet/run-tests.sh @@ -0,0 +1,92 @@ +#!/bin/sh + +LC_ALL=POSIX +export LC_ALL + +TESTDIR=tests +OUTPUT=.test-output.txt +LOGFILE=tests.log +CMD="./figlet" +FONTDIR="$1" + +run_test() { + test_dsc=$1 + test_cmd=$2 + + total=`expr $total + 1` + test_num=`printf %03d $total` + + echo >> $LOGFILE + printf "Run test $test_num: ${test_dsc}... " | tee -a $LOGFILE + echo >> $LOGFILE + echo "Command: $test_cmd" >> $LOGFILE + eval "$test_cmd" > "$OUTPUT" 2>> $LOGFILE + cmp "$OUTPUT" "tests/res${test_num}.txt" >> $LOGFILE 2>&1 + if [ $? -eq 0 ]; then + echo "pass" | tee -a $LOGFILE + else + echo "**fail**" | tee -a $LOGFILE + result=1 + fail=`expr $fail + 1` + fi +} + +result=0 +fail=0 +$CMD -v > $LOGFILE + +file="$TESTDIR/input.txt" +cmd="cat $file|$CMD" + +printf "Default font dir: "; $CMD -I2 +if [ -n "$FONTDIR" ]; then + FIGLET_FONTDIR="$FONTDIR" + export FIGLET_FONTDIR +fi +printf "Current font dir: "; $CMD -I2 +printf "Default font: "; $CMD -I3 +$CMD -f small "Test results" | tee -a $LOGFILE + +total=0 + +run_test "showfigfonts output" "./showfigfonts" +run_test "text rendering in all fonts" \ + "for i in fonts/*.flf; do $cmd -f \$i; done" +run_test "long text rendering" "cat tests/longtext.txt|$CMD" +run_test "left-to-right text" "$cmd -L" +run_test "right-to-left text" "$cmd -R" +run_test "flush-left justification" "$cmd -l" +run_test "flush-right justification" "$cmd -r" +run_test "center justification" "$cmd -c" +run_test "kerning mode" "$cmd -k" +run_test "full width mode" "$cmd -W" +run_test "overlap mode" "$cmd -o" +run_test "tlf2 font rendering" "$cmd -f tests/emboss" +run_test "kerning flush-left right-to-left mode" "$cmd -klR" +run_test "kerning centered right-to-left mode (slant)" "$cmd -kcR -f slant" +run_test "full-width flush-right right-to-left mode" "$cmd -WrR" +run_test "overlap flush-right mode (big)" "$cmd -or -f big" +run_test "tlf2 kerning flush-right mode" "$cmd -kr -f tests/emboss" +run_test "tlf2 overlap centered mode" "$cmd -oc -f tests/emboss" +run_test "tlf2 full-width flush-left right-to-left mode" \ + "$cmd -WRl -f tests/emboss" +run_test "specify font directory" \ + "X=.t;mkdir \$X;cp fonts/script.flf \$X/foo.flf;$cmd -d\$X -ffoo;rm -Rf \$X" +run_test "paragraph mode long line output" "$cmd -p -w250" +run_test "short line output" "$cmd -w5" +run_test "kerning paragraph centered mode (small)" "$cmd -kpc -fsmall" +run_test "list of control files" "ls fonts/*flc" +run_test "uskata control file" "printf 'ABCDE'|$CMD -fbanner -Cuskata" +run_test "jis0201 control file" "printf '\261\262\263\264\265'|$CMD -fbanner -Cjis0201" +run_test "right-to-left smushing with JavE font" "$cmd -f tests/flowerpower -R" + +rm -f "$OUTPUT" + +echo +if [ $result -ne 0 ]; then + echo " $fail tests failed. See $LOGFILE for result details" +else + echo " All tests passed." +fi + +exit $result diff --git a/externals/figlet/showfigfonts b/externals/figlet/showfigfonts new file mode 100755 index 0000000000..90c4d0afed --- /dev/null +++ b/externals/figlet/showfigfonts @@ -0,0 +1,55 @@ +#!/bin/sh - +# showfigfonts by Glenn Chappell +# figlet release 2.1.1 -- 25 Aug 1994 +# Based on showfigfonts by Greg Galperin , Nov 1993. +# +# Prints a list of available figlet fonts, along with a sample of each +# font. If directory is given, lists fonts in that directory; otherwise +# uses the default font directory. If word is given, prints that word +# in each font; otherwise prints the font name. +# +# Usage: showfigfonts [ -d directory ] [ word ] + +DIR=`dirname $0` +FIGLET=$DIR/figlet + +# Get figlet version +FIGLETVERSION=`$FIGLET -I1 2>/dev/null` +if [ -z "$FIGLETVERSION" ]; then + FIGLETVERSION=20000 +fi + +USAGE="Usage: `basename $0` [ -d directory ] [ word ]" + +if [ "$1" = '-d' ]; then + FONTDIR="$2" + WORD="$3" + if [ $# -gt 3 ] || [ $# -lt 2 ]; then + echo "$USAGE" + exit 1 + fi +else + WORD="$1" + if [ $# -gt 1 ]; then + echo "$USAGE" + exit 1 + fi + if [ "$FIGLETVERSION" -lt 20100 ]; then + # figlet 2.0 + FONTDIR="`$FIGLET -F | sed -e '1d' -e '3,$d' -e 's/Font directory: //'`" + else + # figlet 2.1 or later + FONTDIR="`$FIGLET -I2`" + fi +fi + +FONTLIST=`ls "$FONTDIR"/*.flf | sed 's!.*/\(.*\)\.flf$!\1!'` +for F in $FONTLIST ; do + echo "$F :" + if [ -n "$WORD" ]; then + echo "$WORD" | $FIGLET -d "$FONTDIR" -f "$F" + else + echo "$F" | $FIGLET -d "$FONTDIR" -f "$F" + fi + echo "" ; echo "" +done diff --git a/externals/figlet/showfigfonts.6 b/externals/figlet/showfigfonts.6 new file mode 100644 index 0000000000..0ec5783dff --- /dev/null +++ b/externals/figlet/showfigfonts.6 @@ -0,0 +1,67 @@ +.\" showfigfonts by Glenn Chappell +.\" figlet release 2.1.1 -- 25 Aug 1994 +.\" Based on showfigfonts by Greg Galperin , Nov 1993. +.\" +.\" Prints a list of available figlet fonts, along with a sample of each +.\" font. If directory is given, lists fonts in that directory; otherwise +.\" uses the default font directory. If word is given, prints that word +.\" in each font; otherwise prints the font name. +.\" +.\" Usage: showfigfonts [ -d directory ] [ word ] +.\" +.\" Manual page by Jonathon Abbott, for the Debian Project +.\" slightly modified by Francesco Tapparo, for the Debian Project +.TH SHOWFIGFONTS 6 "31 May 2012" "v2.2.5" + +.SH NAME +showfigfonts \- prints a list of available figlet fonts + +.SH SYNOPSIS +.B showfigfonts +[ +.B \-d +.I directory +] +[ +.I word +] + +.SH "DESCRIPTION" +Prints a list of available figlet fonts, along with a sample of each +font. If directory is given, lists fonts in that directory; otherwise +uses the default font directory. If word is given, prints that word +in each font; otherwise prints the font name. + +.SH EXAMPLES +To use +.B showfigfonts +with its default settings, simply type +.RS + +.B example% showfigfonts + +.RE + +To print all the fonts in /usr/share/fonts/figlet +.RS + +.B example% showfigfonts -d /usr/share/fonts/figlet + +.RE + +To print the word foo using all available fonts +.RS + +.B example% showfigfonts foo + +.RE + +.SH "AUTHORS" +showfigfonts was written by Glenn Chappell + +This manual page was written by Jonathon Abbott for the Debian Project. + +.SH "SEE ALSO" +.BR figlet (6), +.BR chkfont (6), +.BR figlist (6) diff --git a/externals/figlet/tests/emboss.tlf b/externals/figlet/tests/emboss.tlf new file mode 100644 index 0000000000..eff0852d4f --- /dev/null +++ b/externals/figlet/tests/emboss.tlf @@ -0,0 +1,325 @@ +tlf2a 3 3 8 -1 18 0 0 0 +=============================================================================== + This is emboss.tlf, or “Embossâ€, by Sam Hocevar . It was +created on September 30th, 2006. + + This font is free software. It comes without any warranty, to the extent +permitted by applicable law. You can redistribute it and/or modify it under +the terms of the Do What The Fuck You Want To Public License, Version 2, +as published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more +details. + + Missing characters: # $ % , ; < > + + To create emboss2.tlf, use the following command: + $ sed '/@@/,$y/â”┃â”┓┗┛/â•â•‘╔╗╚â•/' < emboss.tlf > emboss2.tlf + + This font is part of TOIlet’s official distribution. More information +on the TOIlet website at http://caca.zoy.org/wiki/toilet +=============================================================================== + @ + @ + @@ +┃! +â”›! +â”›!! +┛┛" + " + "" + @ + @ +#@@ + @ + @ +$@@ + @ + @ +%@@ +â”┛┃ & +┃â”â”â”›& +â”â”â”› && +â”›' + ' + '' + â”›( +┃ ( + â”›(( +â” ) + ┃) +â” )) +â”› â”›* +â”â”â”›* +â”› â”›** + ┃ + +â”â”â”›+ + â”› ++ + @ + @ +,@@ + - +â”â”›- + -- + . + . +â”›.. + â”›/ + â”› / +â”› // +â”â”┃0 +┃┛┃0 +â”â”â”›00 +â”┃ 1 + ┃ 1 +â”â”â”›11 +â”â”┃2 +â”â”â”›2 +â”â”â”›22 +â”â”┃3 +â”â”┃3 +â”â”â”›33 +┃ ┃4 +â”â”┃4 + â”›44 +â”â”â”›5 +â”â”┃5 +â”â”â”›55 +â”â”â”›6 +â”â”┃6 +â”â”â”›66 +â”â”┃7 + ┃7 + â”›77 +â”â”┃8 +â”â”┃8 +â”â”â”›88 +â”â”┃9 +â”â”┃9 +â”â”â”›99 + : +â”›: +â”›:: + @ + @ +;@@ + @ + @ +<@@ + = +â”â”â”›= +â”â”â”›== + @ + @ +>@@ +â”â”┃? + â”›? + â”› ?? +â”â”┃@ +┃┛┛@ +â”â”â”›@@ +â”â”┃A +â”â”┃A +â”› â”›AA +â”â” B +â”â”┃B +â”â” BB +â”â”â”›C +┃ C +â”â”â”›CC +â”â” D +┃ ┃D +â”â” DD +â”â”â”›E +â”â”â”›E +â”â”â”›EE +â”â”â”›F +â”â”â”›F +â”› FF +â”â”â”›G +┃ ┃G +â”â”â”›GG +┃ ┃H +â”â”┃H +â”› â”›HH +â”›I +┃I +â”›II + â”›J + ┃J +â”â”›JJ +┃ ┃K +â”â”› K +â”› â”›KK +┃ L +┃ L +â”â”â”›LL +â”â” M +┃┃┃M +┛┛┛MM +â”â” N +┃ ┃N +â”› â”›NN +â”â”┃O +┃ ┃O +â”â”â”›OO +â”â”┃p +â”â”â”›P +â”› PP +â”â”┃ Q +┃ ┃ Q +â”â”â”â”›QQ +â”â”┃R +â”â”â”›R +â”› â”›RR +â”â”â”›S +â”â”┃S +â”â”â”›SS +â”â”â”›T + ┃ T + â”› TT +┃ ┃U +┃ ┃U +â”â”â”›UU +┃ ┃V +┃ ┃V + â”› VV +┃┃┃W +┃┃┃W +â”â”â”›WW +┃ ┃X + â”› X +â”› â”›XX +┃ ┃Y +â”â”â”›Y + â”› YY +â”â”┃Z +â”â”› Z +â”â”â”›ZZ +â”â”›[ +┃ [ +â”â”›[[ +â”› \ + â”› \ + â”›\\ +â”┃] + ┃] +â”â”›]] + â”› ^ +â”› â”›^ + ^^ + _ + _ +â”â”â”›__ +â”› ` + â”›` + `` +â”â”┃a +â”â”┃a +â”› â”›aa +â”â” b +â”â”┃b +â”â” bb +â”â”â”›c +┃ c +â”â”â”›cc +â”â” d +┃ ┃d +â”â” dd +â”â”â”›e +â”â”â”›e +â”â”â”›ee +â”â”â”›f +â”â”â”›f +â”› ff +â”â”â”›g +┃ ┃g +â”â”â”›gg +┃ ┃h +â”â”┃h +â”› â”›hh +â”›i +┃i +â”›ii + â”›j + ┃j +â”â”›jj +┃ ┃k +â”â”› k +â”› â”›kk +┃ l +┃ l +â”â”â”›ll +â”â” m +┃┃┃m +┛┛┛mm +â”â” n +┃ ┃n +â”› â”›nn +â”â”┃o +┃ ┃o +â”â”â”›oo +â”â”┃p +â”â”â”›p +â”› pp +â”â”┃ q +┃ ┃ q +â”â”â”â”›qq +â”â”┃r +â”â”â”›r +â”› â”›rr +â”â”â”›s +â”â”┃s +â”â”â”›ss +â”â”â”›t + ┃ t + â”› tt +┃ ┃u +┃ ┃u +â”â”â”›uu +┃ ┃v +┃ ┃v + â”› vv +┃┃┃w +┃┃┃w +â”â”â”›ww +┃ ┃x + â”› x +â”› â”›xx +┃ ┃y +â”â”â”›y + â”› yy +â”â”┃z +â”â”› z +â”â”â”›zz + â”â”›{ +â”┃ { + â”â”›{{ +┃| +┃| +â”›|| +â”┃ } + â”â”›} +â”â”› }} + â”› â”›~ +â”› â”› ~ + ~~ +â”â”┃â”â”┛Ä +â”â”┃â”â”┛Ä +â”› â”›â”â”┛ÄÄ +â”â”┃â”â”┛Ö +┃ ┃â”â”┛Ö +â”â”â”›â”â”┛ÖÖ +┃ ┃â”â”┛Ü +┃ ┃â”â”┛Ü +â”â”â”›â”â”┛ÜÜ +â”â”┃â”â”┛ä +â”â”┃â”â”┛ä +â”› â”›â”â”┛ää +â”â”┃â”â”┛ö +┃ ┃â”â”┛ö +â”â”â”›â”â”┛öö +┃ ┃â”â”┛ü +┃ ┃â”â”┛ü +â”â”â”›â”â”┛üü +â”â”â”›â”â”┛ß +â”â”┃â”â”┃ß +â”â”â”›â”â”┛ßß diff --git a/externals/figlet/tests/flowerpower.flf b/externals/figlet/tests/flowerpower.flf new file mode 100644 index 0000000000000000000000000000000000000000..3f294fb374013527434fb6d2485b8b164d204016 GIT binary patch literal 3070 zcmV{O9KQ7000080BTO-Fv(cP>wXIW0B1h{01p5F0A_4&cV%*LZ+B&KE@o_I z?OSbc8@UnwZovOx5FbDZkjNz092x~J(4xJUq6PXP=%)opT`Zr~Q!K+)k_)>1t^F$< z&Kt?q%66PXdquTD>?L=X96mGi%y4#nvAKA@`~sdmg_rQ`*YFgcz05zpdj8@CJUu=6 z-Mii8_U0BA@RyGloApmK`13dL`_=O1{Pg4x%iRj_SitkAPk$A@3eUg9Ar@c0T)e<1 z|F*ihU2m`O>NAhc`KKPICy#pQ_2v2&F1A-YxLn@C_p8+vyt!GSr04MNc762&{Av0A zkM0(}{_dO2YR7l3e!AY?>|l9&yT08muXg_Q=A3l8W zf5%Jye3j)pJ^4C6|9ZXKtZ<~>b@O(8OHks}0J??1v1>-V^@-4@<%&({|p zVW+E};VMvS92$S`E>TLlW4*e;HD4{?uJRz)o8=qC14mrKo9)}TD_p~7eYNturZ3>^ zlYZb&@Cd$#+yNb$MBvjNPkTPaZtUb!cn^9S@gJW~;&*XMr;|AO%@ohuUXbIgdQN)s zec)hP4L6DZc=gXXm2MtshHdVy#-r|Lf->l5cVG{Rd+&dK6s3=4s5r@@_Ze1R5o{rg znxV7>!6eP+PNq&-2TtzKD)ISVG)&V=!h0)?&{5Qq`WSmRwiFW(NJJGcqJ*IqE>u`o z1LJ8Z!v@hEwE~aBtze79)-(oD&OjUy#?MnqgpQ3RB6ik=OZ5p{hwHMtIsvLY7#w&+ zD`g|b3)qE_CA#czz4$D4L{m(qh*}NMD52vu^Eh2ztj<;0VVT$~(0HEjtsjn^o>z!AP&OC@wI@`8 zSrbh(vwC6l_xop~Oj(+aFyLb9sdL&>B+-^SK^S(VN#Cs0;@`HMQCXA4f9>fxMUY^ZI6$x`|5C;e2giuQ( zEovfhgd*USJi?mAR`!69Bq8x3sRHtlba;+weZYHs$bxoEx;+}zn{jzMe0FwQo#j0B0bh;f7>V+`uJ)fjnY!A6ZaY7ncW6_QPoV4_P6cZ-~&Ff=p zOoCwF_brO1Lg|FJruF3jLkQ;_Rr6&{!{tc-ijtEQLvHQlLj6mN>ojWwlufmLh}kiu%n0Y)I~*75O&mD{Hz`8U zNGiIxy2O=I$T*`!k%{pD&qx+2Vs$E|W-UEK*lUv!2u;M>3wVQgw-=A|f)8h}YTm76 zVwfVEgc8hR1F3~gLQ>hvP)j~*z*|zQRUpf3V~|`|(%VM8s3{ZpkWUtY4IhLjIRhx? z+*62(5W?l6%aaO3o@7It;P!;Z${gklLf?5;;ZHY+NRE@VWJ?`GHAm=@EqbTHPJ*AX zxHw7KhBrFYauQptZ2QG21h-HqxkWL1$zdmnru1rk#Y4U2?b+!2a;N48mK*pirJ^W7 zqW1HGSha%~qU8&vuq){_Vu5{0oY{=M&?&nwPp5gJByC)vnX}poW(oFcnnTp?*at}A zr4+DbnV7&AL7=aRHFvmr{~@Rpg3ad2xtqE_KV1sq@^tCoylr$lSVZ+9O~pB};ik-g z*={;>z9&fnlI>rsGW_`I{-hQsbxyme`*H2C{djp?_TwN{nTyyimAwiuHM-J~bo*C_ zhboy)YWR03(Su}(#du;Uqavjy2h%bt6%wYguv>4H&f-IT$62$vQLaZMj`U`tU9mT* zN2WVAb9Je&P;v3AhKPqW+>&rh!FpZl3+mtIv%1*>-Ga{3D3Mq~GE>KsK*rc95;N=y z^vkg6Xam&`Vr!`IQ%>v$tT@0Jcp^zBjAz{8!h;I!2O{^az|Ax$ZZ{OR+Y_}Fv>S*y z6mnEVb*7o^ku8KsN!pc-b16!*2fb>_(hC)~6sBqZMN^u7C4N+j(@KXp5tpaySS-P> z$hD8JZkN5KI+HYwC0n7W(W+EE1c&!!-(N+Lwv~;mSbe%Xy8KtMR6jB-Lw3gjmTA;f zhgcdAmP#lU>CPFNXj#*lWTuZNE9V|SR;8XtO?`JKuOKs}27U8mwFnta3K5dQ3F~#h zxRV_6Ia|SIflmzIJ8R}s7p+OJaG>+qcBwhRq&B8ZtmxQp>J5{QsV_eobfSbK9tckp5lPiW@GS-spD_0l#&T_Pb zPh!-RpR!MY$Cn zv)qmSmR(i{%64>LCw+C`bcagzd%J7P8Em>zbE9@t`E@YXg+&t_NR*)~B7-7r*oxYe zZzSm(N&5~)CYIiNU7=+=y)|hNxr*oBC{bs$_q*QtQu@pHO`_ZSD#_>KJ~ef}75kxR zR@afOU7s5=f9xMz^y`iO@x_#4;Xw(X2^(VZo%)ND`b&pkq;W=HpX3F{ zNxPbdHpYzgXYW##M+q}hEuH6zCt_L*7%M!zHw_j*7!zHJJ$I6yH1ZazO!SEPX#>I_!?1pcCzfX$ZtcyZ(2 z_Q3y0H@}eT7W_{qtiR9*d{p-Tk+T1l`|kaJ_HR&20Rj{Q3IG5A2moqM<1oos#_N6y z003t{000jF0000000000005+c00000W^8YFWpZ$DcV%)eW^86qO9ci1000010096! M000213jhEB04JaVH2?qr literal 0 HcmV?d00001 diff --git a/externals/figlet/tests/input.txt b/externals/figlet/tests/input.txt new file mode 100644 index 0000000000..8826520227 --- /dev/null +++ b/externals/figlet/tests/input.txt @@ -0,0 +1,7 @@ + joshk@influx:/etc/logrotate.d> sh -n * + apache: line 14: syntax error near unexpected token `}' + apache: line 14: `}' + the plot thickens + those aren't shell scripts + this wasn't chicken. + -- in #debian-devel diff --git a/externals/figlet/tests/longtext.txt b/externals/figlet/tests/longtext.txt new file mode 100644 index 0000000000..72e3a18209 --- /dev/null +++ b/externals/figlet/tests/longtext.txt @@ -0,0 +1,14 @@ + What is involved in such [close] relationships is a form of emotional +chemistry, so far unexplained by any school of psychiatry I am aware of, that +conditions nothing so simple as a choice between the poles of attraction and +repulsion. You can meet some people thirty, forty times down the years, and +they remain amiable bystanders, like the shore lights of towns that a sailor +passes at stated times but never calls at on the regular run. Conversely, +all considerations of sex aside, you can meet some other people once or twice +and they remain permanent influences on your life. + Everyone is aware of this discrepancy between the acquaintance seen +as familiar wallpaper or instant friend. The chemical action it entails is +less worth analyzing than enjoying. At any rate, these six pieces are about +men with whom I felt an immediate sympat - to use a coining of Max Beerbohm's +more satisfactory to me than the opaque vogue word "empathy". + -- Alistair Cooke, "Six Men" diff --git a/externals/figlet/tests/res001.txt b/externals/figlet/tests/res001.txt new file mode 100644 index 0000000000..a85fa59528 --- /dev/null +++ b/externals/figlet/tests/res001.txt @@ -0,0 +1,148 @@ +banner : + +##### ## # # # # ###### ##### +# # # # ## # ## # # # # +##### # # # # # # # # ##### # # +# # ###### # # # # # # # ##### +# # # # # ## # ## # # # +##### # # # # # # ###### # # + + + +big : + _ _ +| | (_) +| |__ _ __ _ +| '_ \| |/ _` | +| |_) | | (_| | +|_.__/|_|\__, | + __/ | + |___/ + + +block : + +_| _| _| +_|_|_| _| _|_| _|_|_| _| _| +_| _| _| _| _| _| _|_| +_| _| _| _| _| _| _| _| +_|_|_| _| _|_| _|_|_| _| _| + + + + +bubble : + _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ +( b | u | b | b | l | e ) + \_/ \_/ \_/ \_/ \_/ \_/ + + +digital : ++-+-+-+-+-+-+-+ +|d|i|g|i|t|a|l| ++-+-+-+-+-+-+-+ + + +ivrit : + _ _ _ + | |_(_)_ ____ _(_) + | __| | '__\ \ / / | + | |_| | | \ V /| | + \__|_|_| \_/ |_| + + + +lean : + + _/ + _/ _/_/ _/_/_/ _/_/_/ + _/ _/_/_/_/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ +_/ _/_/_/ _/_/_/ _/ _/ + + + + +mini : + +._ _ o._ o +| | ||| || + + + +mnemonic : +mnemonic + + +script : + + o + , __ ,_ _ _|_ +/ \_/ / | | |/ \_| + \/ \___/ |_/|_/|__/ |_/ + /| + \| + + +shadow : + | | + __| __ \ _` | _` | _ \\ \ \ / +\__ \ | | | ( | ( | ( |\ \ \ / +____/_| |_|\__,_|\__,_|\___/ \_/\_/ + + + +slant : + __ __ + _____/ /___ _____ / /_ + / ___/ / __ `/ __ \/ __/ + (__ ) / /_/ / / / / /_ +/____/_/\__,_/_/ /_/\__/ + + + +small : + _ _ + ____ __ __ _| | | +(_-< ' \/ _` | | | +/__/_|_|_\__,_|_|_| + + + +smscript : + + , , _ ,_ o _|_ +/ \_/|/|/| / \_/ / | | |/\_| + \/ | | |_/ \/ \__/ |/|/|_/ |_/ + (| + + +smshadow : + | | +(_-< ` \ (_-< \ _` | _` | _ \\ \ \ / +___/_|_|_|___/_| _|\__,_|\__,_|\___/ \_/\_/ + + + +smslant : + __ __ + ___ __ _ ___ / /__ ____ / /_ + (_- > + \ \| | (_) \__ \ | | | < / / + \_\ |\___/|___/_| |_|_|\_\/_/ + _/ | + |__/ + _ _ _ _ __ _ __ _ + (_) | | | | ____ (_) / _| | _ / / | | + _ ___ ___| |__ | | __/ __ \ _ _ __ | |_| |_ ___ _(_) / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| _| | | | \ \/ / / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | | | | |_| |> < _ / / __/ || (__ + | |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| + _/ | \____/ +|__/ + ___ _ _ ___ _ + / / | | | | | | \ \ | | + / /| | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| |\ \ ___| |__ + / / | |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` | > > / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + __/ | + |___/ + _ + /\| |/\ + ______ _ __ \ ` ' / +|______| '_ \ |_ _| + | | | | / , . \ + |_| |_| \/|_|\/ + + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __ \ \ __ _ _ __ __ _ ___| |__ ___(_) +< < | |/ _ \/ __| '_ \| |/ / > > / _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ _ +| (_) /_ | || | _ | | +| |_ _ __ ___ | | || |_(_) ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | |__ _| / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | | | | _ \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_| (_) |___/\__, |_| |_|\__\__,_/_/\_\ + __/ | + |___/ + + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + + _ _ _ _ + | | | | | | | | + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + | | + |_| + ___ _ +( ) \ ( ) + \|| ||/ + \ \ + / / + | | + /_/ + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __ \ \ __ _ _ __ __ _ ___| |__ ___(_) +< < | |/ _ \/ __| '_ \| |/ / > > / _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ ___ _ +| (_) /_ | || | _ ( ) \ ( ) +| |_ _ __ ___ | | || |_(_) \|| ||/ +| | | '_ \ / _ \ | |__ _| \ \ +| | | | | | __/ | | | | _ / / +|_|_|_| |_|\___| |_| |_| (_) | | + /_/ + + ___ _ _ __ _ _ _ _ + / (_) | | | | \ \ | | | | | | | | + / / _ ___ ___| |__ | | __ \ \ | |_| |__ ___ _ __ | | ___ | |_ +< < | |/ _ \/ __| '_ \| |/ / > > | __| '_ \ / _ \ | '_ \| |/ _ \| __| + \ \| | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + _/ | | | + |__/ |_| + _ _ _ _ +| | | | (_) | | +| |_| |__ _ ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + + __ __ __ _ _ ___ _ _ + / / / _|/ _(_) | | | \ \ | | | | + / / __ _ ___ _ _| |_| |_ _ ___| | __| |\ \ | |_| |__ ___ ___ ___ +< < / _` / __| | | | _| _| |/ _ \ |/ _` | > > | __| '_ \ / _ \/ __|/ _ \ + \ \ (_| \__ \ |_| | | | | | | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + + _ _ _ _ _ + ( ) | | | | | | + __ _ _ __ ___ _ __ |/| |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \ | __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + + _ _ + (_) | | + ___ ___ _ __ _ _ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + | | + |_| + __ _ _ __ _ _ _ + / / (_) | | \ \ | | | | (_) + / / ___ _ __ _ ___| |__ \ \ | |_| |__ _ ___ +< < / _ \ '__| |/ __| '_ \ > > | __| '_ \| / __| + \ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ + + + _ _ _ _ _ + ( ) | | | (_) | | +__ ____ _ ___ _ __ |/| |_ ___| |__ _ ___| | _____ _ __ +\ \ /\ / / _` / __| '_ \ | __| / __| '_ \| |/ __| |/ / _ \ '_ \ + \ V V / (_| \__ \ | | | | |_ | (__| | | | | (__| < __/ | | |_ + \_/\_/ \__,_|___/_| |_| \__| \___|_| |_|_|\___|_|\_\___|_| |_(_) + + + _ + (_) + ______ ______ _ _ __ + |______|______| | | '_ \ + | | | | | + |_|_| |_| + + + _ _ _ _ _ _ _ + _| || |_ | | | | (_) | | | | +|_ __ _| __| | ___| |__ _ __ _ _ __ ______ __| | _____ _____| | + _| || |_ / _` |/ _ \ '_ \| |/ _` | '_ \______/ _` |/ _ \ \ / / _ \ | +|_ __ _| (_| | __/ |_) | | (_| | | | | | (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + + + + _| _| _| _| _| + _| _|_| _|_|_| _|_|_| _| _| _| +_| _| _| _| _|_| _| _| _|_| _| + _| _| _| _| _|_| _| _| _| _| _| + _| _| _|_| _|_|_| _| _| _| _| _| + _| + _| + + _| _| _| _|_|_|_|_| _| + _|_| _|_|_| _|_|_| _| _| _| _| _|_|_| + _| _| _| _|_| _| _| _|_| _| _|_|_| _| _| _| _| + _| _| _| _|_| _| _| _| _| _| _| _| _| _| _| _| + _| _|_| _|_|_| _| _| _| _| _| _|_|_|_| _| _| _| + _| _| +_| _|_|_|_|_|_| + + _|_| _| _| _| + _| _| _| _| _| _| _| _| _|_| _|_|_|_| _|_|_| +_|_|_|_| _| _| _| _|_| _| _|_|_|_| _| _| + _| _| _| _| _| _| _| _| _| _| + _| _| _|_|_| _| _| _| _| _|_|_| _|_| _|_|_| + + + + _| _| _| + _| _| _|_| _|_|_| _| _|_| _|_| _|_|_|_| _|_|_| + _| _| _| _| _| _| _|_| _| _| _| _| _| + _| _| _| _| _| _| _| _| _| _| _| _| +_| _| _|_| _|_|_| _| _|_| _|_| _|_|_| + _| + _|_| + + _| _| _| _| +_|_|_|_| _|_| _|_|_| _| _|_|_| _|_|_| + _| _|_|_|_| _| _| _| _|_| _| _| + _| _| _| _| _| _|_| _| _| + _|_| _|_|_| _| _|_|_| _| _|_|_| _| _| + + + + _| _| _| + _|_|_| _|_|_| +_|_|_|_|_| _| _| _|_|_|_|_| + _| _| _|_|_| + _| _| _| _| _| + + + + _| _| _| _| _| + _| _|_| _|_|_| _|_|_| _| _| _| +_| _| _| _| _|_| _| _| _|_| _| + _| _| _| _| _|_| _| _| _| _| _| + _| _| _|_| _|_|_| _| _| _| _| _| + _| + _| + + _| + _|_|_| _|_|_| _|_|_| _|_|_| _|_|_| _|_| _| +_| _| _| _| _| _| _| _| _| _|_|_|_| +_| _| _| _| _| _| _| _| _| _| + _|_|_| _|_|_| _|_|_| _|_|_| _| _| _|_|_| _| + _| + _| + +_| _| _| _| _| +_| _|_|_| _|_| _|_| _| _| _| +_| _| _| _| _|_|_|_| _| _|_|_|_| +_| _| _| _| _| _| _| +_| _| _| _| _|_|_| _| _| _| + + + + _| + _|_|_| _| _| _|_|_| _|_|_|_| _|_|_| _| _| +_|_| _| _| _| _| _| _| _| _|_| + _|_| _| _| _| _| _| _| _| _| _| +_|_|_| _|_|_| _| _| _|_| _|_|_| _| _| + _| + _|_| + + + _|_| _| _|_| _| _|_| _|_| _| _|_| +_|_|_|_| _|_| _|_| _| _| _|_| +_| _| _| _| _| _| + _|_|_| _| _| _|_| _| + + + + +_|_|_| _|_| _|_|_| _| _|_| +_| _| _|_|_|_| _| _| _|_| +_| _| _| _| _| _| +_| _| _|_|_| _|_|_| _| + + + + +_| _| _|_|_| _|_| _| _| _|_|_| _|_| _|_|_| +_| _| _| _| _|_|_|_| _|_| _| _| _|_|_|_| _| +_| _| _| _| _| _| _| _| _| _| _| + _|_|_| _| _| _|_|_| _| _| _|_|_| _|_|_| _|_|_| + _| + _| + + _| _| +_|_|_|_| _|_| _|_|_| + _| _|_|_|_| _| _| + _| _| _| _| + _|_| _|_|_| _|_|_| + + + _| _| _| + _| _| _| _| _| +_|_|_|_| _|_| _| _| _|_| _|_|_| _| + _| _| _| _|_| _|_|_|_| _| _| _| + _| _| _| _| _| _| _| _| _| + _|_| _|_| _| _| _|_|_| _| _| _| + _| + + + _| _| _| _| _| + _| _|_| _|_|_| _|_|_| _| _| _| +_| _| _| _| _|_| _| _| _|_| _| + _| _| _| _| _|_| _| _| _| _| _| + _| _| _|_| _|_|_| _| _| _| _| _| + _| + _| + + _| + _|_|_| _|_|_| _|_|_| _|_|_| _|_|_| _|_| _| +_| _| _| _| _| _| _| _| _| _|_|_|_| +_| _| _| _| _| _| _| _| _| _| + _|_|_| _|_|_| _|_|_| _|_|_| _| _| _|_|_| _| + _| + _| + _| _| _| +_| _| _| _| _| _| _| _| +_| _|_|_| _|_| _|_| _| _| _| _| +_| _| _| _| _|_|_|_| _| _|_|_|_| _| +_| _| _| _| _| _| _| _| +_| _| _| _| _|_|_| _| _| _| _| + _| + + + _| _| _| _| _| + _| _|_| _|_|_| _|_|_| _| _| _| +_| _| _| _| _|_| _| _| _|_| _| + _| _| _| _| _|_| _| _| _| _| _| + _| _| _|_| _|_|_| _| _| _| _| _| + _| + _| + + _| _| _| _| +_|_|_|_| _|_|_| _|_| _|_|_| _| _|_| _|_|_|_| + _| _| _| _|_|_|_| _| _| _| _| _| _| + _| _| _| _| _| _| _| _| _| _| + _|_| _| _| _|_|_| _|_|_| _| _|_| _|_| + _| + _| + + _| _| _| _| +_|_|_|_| _|_|_| _|_|_| _| _| _|_| _|_|_| _|_|_| + _| _| _| _| _| _|_| _|_|_|_| _| _| _|_| + _| _| _| _| _| _| _| _| _| _| _|_| + _|_| _| _| _| _|_|_| _| _| _|_|_| _| _| _|_|_| + + + + _| _|_| _|_| _| _| + _| _|_|_| _|_|_| _| _| _| _| _|_| _| +_| _| _| _|_| _| _| _|_|_|_| _|_|_|_| _| _|_|_|_| _| + _| _| _| _|_| _| _| _| _| _| _| _| + _| _|_|_| _|_|_| _|_|_| _| _| _| _|_|_| _| + + + + _| _| _| _| + _|_|_| _| _|_|_|_| _|_|_| _|_| _|_|_| _|_| +_| _| _| _| _| _| _| _| _|_| _|_|_|_| +_| _| _| _| _| _| _| _| _|_| _| + _|_|_| _| _|_| _| _| _|_| _|_|_| _|_|_| + + + _| + _| _| + _|_|_| _| _|_| _|_| _|_|_| _|_|_|_| +_| _| _|_| _|_|_|_| _| _| _| +_| _| _| _| _| _| _| + _|_|_| _| _|_|_| _| _| _|_| + + + + _| _| _| + _|_|_| _|_|_| _|_| _| _| +_|_| _| _| _|_|_|_| _| _| + _|_| _| _| _| _| _| +_|_|_| _| _| _|_|_| _| _| + + + + _| _| + _|_|_| _|_|_| _| _|_| _|_|_| _|_|_|_| _|_|_| +_|_| _| _|_| _| _| _| _| _|_| + _|_| _| _| _| _| _| _| _|_| +_|_|_| _|_|_| _| _| _|_|_| _|_| _|_|_| + _| + _| + + _| _| _| _| + _| _|_| _| _|_| _|_|_| _|_|_| _| +_| _|_|_|_| _|_| _| _| _| _| _| + _| _| _| _| _| _| _| _| + _| _|_|_| _| _| _|_|_| _| _| _| + + + + _| _| _| +_|_|_|_| _|_|_| _|_|_| + _| _| _| _| _|_| + _| _| _| _| _|_| + _|_| _| _| _| _|_|_| + + + _| + _| _| +_| _| _| _|_|_| _|_|_| _|_|_| _|_|_|_| +_| _| _| _| _| _|_| _| _| _| + _| _| _| _| _| _| _|_| _| _| _| + _| _| _|_|_| _|_|_| _| _| _|_| + + + + _| _| _| + _|_|_| _|_|_| _|_|_| _| _| _|_| _|_|_| +_| _| _| _| _| _|_| _|_|_|_| _| _| +_| _| _| _| _| _| _| _| _| _| + _|_|_| _| _| _| _|_|_| _| _| _|_|_| _| _| _| + + + + + + _|_|_|_|_| + + + + + + _| + _|_|_| +_|_|_|_|_| _| _| _| + _| _| _| + _| _| _| + + + + _| _| _| _| _| +_|_|_|_|_| _|_|_| _|_| _|_|_| _|_|_| _|_|_| + _| _| _| _| _|_|_|_| _| _| _| _| _| _| _| _|_|_|_|_| +_|_|_|_|_| _| _| _| _| _| _| _| _| _| _| + _| _| _|_|_| _|_|_| _|_|_| _| _|_|_| _| _| + + + + _| _| + _|_|_| _|_| _| _| _|_| _| +_| _| _|_|_|_| _| _| _|_|_|_| _| +_| _| _| _| _| _| _| + _|_|_| _|_|_| _| _|_|_| _| + + + _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ +( < | j | o | s | h | k | > ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( j | o | s | h | k | @ | i | n | f | l | u | x | : | / | e | t | c | / | l ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( o | g | r | o | t | a | t | e | . | d | > ) ( s | h ) ( - | n ) ( * ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( < | j | o | s | h | k | > ) ( a | p | a | c | h | e | : ) ( l | i | n | e ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( 1 | 4 | : ) ( s | y | n | t | a | x ) ( e | r | r | o | r ) ( n | e | a | r ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( u | n | e | x | p | e | c | t | e | d ) ( t | o | k | e | n ) ( ` | } | ' ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( < | j | o | s | h | k | > ) ( a | p | a | c | h | e | : ) ( l | i | n | e ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ +( 1 | 4 | : ) ( ` | } | ' ) + \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( < | j | o | s | h | k | > ) ( t | h | e ) ( p | l | o | t ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ +( t | h | i | c | k | e | n | s ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( < | a | s | u | f | f | i | e | l | d | > ) ( t | h | o | s | e ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( a | r | e | n | ' | t ) ( s | h | e | l | l ) ( s | c | r | i | p | t | s ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( < | e | r | i | c | h | > ) ( t | h | i | s ) ( w | a | s | n | ' | t ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ +( c | h | i | c | k | e | n | . ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + _ _ _ _ + / \ / \ / \ / \ + ( - | - ) ( i | n ) + \_/ \_/ \_/ \_/ + _ _ _ _ _ _ _ _ _ _ _ _ _ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +( # | d | e | b | i | a | n | - | d | e | v | e | l ) + \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ ++-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +|<|j|o|s|h|k|>| |j|o|s|h|k|@|i|n|f|l|u|x|:|/|e|t|c|/|l|o|g|r|o|t|a|t|e|.|d|>| ++-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ++-+-+ +-+-+ +-+ +|s|h| |-|n| |*| ++-+-+ +-+-+ +-+ ++-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ +-+-+-+-+ +-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+ +|<|j|o|s|h|k|>| |a|p|a|c|h|e|:| |l|i|n|e| |1|4|:| |s|y|n|t|a|x| |e|r|r|o|r| ++-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ +-+-+-+-+ +-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+ ++-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+ +|n|e|a|r| |u|n|e|x|p|e|c|t|e|d| |t|o|k|e|n| |`|}|'| ++-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+ ++-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ +-+-+-+-+ +-+-+-+ +-+-+-+ +|<|j|o|s|h|k|>| |a|p|a|c|h|e|:| |l|i|n|e| |1|4|:| |`|}|'| ++-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ +-+-+-+-+ +-+-+-+ +-+-+-+ ++-+-+-+-+-+-+-+ +-+-+-+ +-+-+-+-+ +-+-+-+-+-+-+-+-+ +|<|j|o|s|h|k|>| |t|h|e| |p|l|o|t| |t|h|i|c|k|e|n|s| ++-+-+-+-+-+-+-+ +-+-+-+ +-+-+-+-+ +-+-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+ +|<|a|s|u|f|f|i|e|l|d|>| |t|h|o|s|e| |a|r|e|n|'|t| |s|h|e|l|l| |s|c|r|i|p|t|s| ++-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+-+-+ ++-+-+-+-+-+-+-+ +-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +|<|e|r|i|c|h|>| |t|h|i|s| |w|a|s|n|'|t| |c|h|i|c|k|e|n|.| ++-+-+-+-+-+-+-+ +-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ + +-+-+ +-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+ + |-|-| |i|n| |#|d|e|b|i|a|n|-|d|e|v|e|l| + +-+-+ +-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+ + __ _ _ _ __ + \ \| | _| |__ ___ ___ (_)/ / + \ \ |/ / '_ \/ __|/ _ \| / / + / / <| | | \__ \ (_) | \ \ + /_/|_|\_\_| |_|___/\___// |\_\ + |__/ + _ __ _ __ _ ____ _ _ _ + ___| |_ ___ / /__ ___ _| |/ _|_ __ (_) / __ \| | _| |__ ___ ___ (_) + / __| __/ _ \ / (_) \/ / | | | | |_| '_ \| |/ / _` | |/ / '_ \/ __|/ _ \| | + | (__| || __// / _ > <| |_| | | _| | | | | | (_| | <| | | \__ \ (_) | | + \___|\__\___/_/ (_)_/\_\\__,_|_|_| |_| |_|_|\ \__,_|_|\_\_| |_|___/\___// | + \____/ |__/ + _ __ _ _ _ _ __ + | |__ ___ \ \ __| | ___| |_ __ _| |_ ___ _ __ __ _ ___ | | / / + | '_ \/ __| \ \/ _` | / _ \ __/ _` | __/ _ \| '__/ _` |/ _ \| | / / + | | | \__ \ / / (_| || __/ || (_| | || (_) | | | (_| | (_) | |/ / + |_| |_|___/ /_/ \__,_(_)___|\__\__,_|\__\___/|_| \__, |\___/|_/_/ + |___/ + + __/\__ _ __ + \ / | '_ \ _____ + /_ _\ | | | |_____| + \/ |_| |_| + + _ __ _ _ _ __ + _ ___| |__ ___ __ _ _ __ __ _ \ \| | _| |__ ___ ___ (_)/ / + (_) _ \ '_ \ / __/ _` | '_ \ / _` | \ \ |/ / '_ \/ __|/ _ \| / / + | __/ | | | (_| (_| | |_) | (_| | / / <| | | \__ \ (_) | \ \ + (_)___|_| |_|\___\__,_| .__/ \__,_| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + _ _ _ _ _ _ + __ ____ _| |_ _ __ _ _ ___ _| || | / | ___ _ __ (_) | + \ \/ / _` | __| '_ \| | | / __| (_) || |_| | / _ \ '_ \| | | + > < (_| | |_| | | | |_| \__ \ _|__ _| | | __/ | | | | | + /_/\_\__,_|\__|_| |_|\__, |___/ (_) |_| |_| \___|_| |_|_|_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__/ _` |/ _ \ '_ \ | '__/ _ \| '__| '__/ _ \ + | | | (_| | __/ | | | | | | (_) | | | | | __/ + |_| \__,_|\___|_| |_| |_| \___/|_| |_| \___| + + _ _ _ _ + _ __ ___| | _____ | |_ __| | ___| |_ ___ ___ _ ____ _____ _ __ _ _ + | '_ \ / _ \ |/ / _ \| __| / _` |/ _ \ __/ __/ _ \ '_ \ \/ / _ \ '_ \| | | | + | | | | __/ < (_) | |_ | (_| | __/ || (_| __/ |_) > < __/ | | | |_| | + |_| |_|\___|_|\_\___/ \__| \__,_|\___|\__\___\___| .__/_/\_\___|_| |_|\__,_| + |_| + ___ _ + ( ) \ ( ) + |/ | | \| + > > + | | + /_/ + _ __ _ _ _ __ + _ ___| |__ ___ __ _ _ __ __ _ \ \| | _| |__ ___ ___ (_)/ / + (_) _ \ '_ \ / __/ _` | '_ \ / _` | \ \ |/ / '_ \/ __|/ _ \| / / + | __/ | | | (_| (_| | |_) | (_| | / / <| | | \__ \ (_) | \ \ + (_)___|_| |_|\___\__,_| .__/ \__,_| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + ___ _ _ _ _ _ _ + ( ) \ ( ) _| || | / | ___ _ __ (_) | + |/ | | \| (_) || |_| | / _ \ '_ \| | | + > > _|__ _| | | __/ | | | | | + | | (_) |_| |_| \___|_| |_|_|_| + /_/ + _ _ _ _ __ _ _ _ __ + | |_ ___ | |_ __ ___| |__ | |_ \ \| | _| |__ ___ ___ (_)/ / + | __/ _ \| | '_ \ / _ \ '_ \| __| \ \ |/ / '_ \/ __|/ _ \| / / + | || (_) | | |_) | | __/ | | | |_ / / <| | | \__ \ (_) | \ \ + \__\___/|_| .__/ \___|_| |_|\__| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + _ _ _ _ + ___ _ __ ___| | _____(_) |__ | |_ + / __| '_ \ / _ \ |/ / __| | '_ \| __| + \__ \ | | | __/ < (__| | | | | |_ + |___/_| |_|\___|_|\_\___|_|_| |_|\__| + + _ _ __ _ _ _ __ __ __ + ___ ___ ___ | |__ | |_ \ \ __| | | ___(_)/ _|/ _|_ _ ___ __ _ / / + / _ \/ __|/ _ \| '_ \| __| \ \/ _` | |/ _ \ | |_| |_| | | / __|/ _` / / + | __/\__ \ (_) | | | | |_ / / (_| | | __/ | _| _| |_| \__ \ (_| \ \ + \___||___/\___/|_| |_|\__| /_/ \__,_|_|\___|_|_| |_| \__,_|___/\__,_|\_\ + + _ _ _ _ _ + | | | ___| |__ ___ | |_( )_ __ ___ _ __ __ _ + | | |/ _ \ '_ \/ __| | __|/| '_ \ / _ \ '__/ _` | + | | | __/ | | \__ \ | |_ | | | | __/ | | (_| | + |_|_|\___|_| |_|___/ \__| |_| |_|\___|_| \__,_| + + _ _ + ___| |_ _ __ (_)_ __ ___ ___ + / __| __| '_ \| | '__/ __/ __| + \__ \ |_| |_) | | | | (__\__ \ + |___/\__| .__/|_|_| \___|___/ + |_| + _ _ _ __ _ _ __ + ___(_) |__ | |_ \ \| |__ ___(_)_ __ ___ / / + / __| | '_ \| __| \ \ '_ \ / __| | '__/ _ \/ / + \__ \ | | | | |_ / / | | | (__| | | | __/\ \ + |___/_|_| |_|\__| /_/|_| |_|\___|_|_| \___| \_\ + + _ _ _ _ _ + _ __ ___| | _____(_) |__ ___ | |_( )_ __ ___ __ ___ __ + | '_ \ / _ \ |/ / __| | '_ \ / __| | __|/| '_ \/ __|/ _` \ \ /\ / / + _| | | | __/ < (__| | | | | (__ | |_ | | | \__ \ (_| |\ V V / + (_)_| |_|\___|_|\_\___|_|_| |_|\___| \__| |_| |_|___/\__,_| \_/\_/ + + _ + _ __ (_) + | '_ \| | _____ _____ + | | | | | |_____|_____| + |_| |_|_| + + _ _ _ _ _ _ _ + | | _____ _____ __| | _ __ __ _(_) |__ ___ __| |_| || |_ + | |/ _ \ \ / / _ \/ _` |_____| '_ \ / _` | | '_ \ / _ \/ _` |_ .. _| + | | __/\ V / __/ (_| |_____| | | | (_| | | |_) | __/ (_| |_ _| + |_|\___| \_/ \___|\__,_| |_| |_|\__,_|_|_.__/ \___|\__,_| |_||_| + + + _/ _/ _/ _/ _/ + _/ _/_/ _/_/_/ _/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/_/ _/ _/ _/_/ _/ + _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/ + _/ _/ _/_/ _/_/_/ _/ _/ _/ _/ _/ + _/ + _/ + + _/ _/ _/ _/_/_/_/_/ _/ + _/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ + _/ _/ _/ _/_/ _/ _/ _/_/ _/ _/_/_/ _/ _/ + _/ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/ _/_/_/ _/ _/ _/ _/ _/ _/_/_/_/ _/ + _/ _/ +_/ _/_/_/_/_/_/ + + _/_/ _/ _/ + _/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ + _/ _/ _/_/_/_/ _/ _/ _/ _/_/ _/ _/_/_/_/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ +_/ _/ _/ _/ _/_/_/ _/ _/ _/ _/ _/_/_/ + + + + _/ _/ _/ +_/_/_/_/ _/_/_/ _/ _/ _/_/ _/_/_/ _/ _/_/ _/_/ + _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/ _/_/_/ _/ _/ _/_/ _/_/_/ _/ _/_/ + _/ + _/_/ + + _/ _/ _/ _/ +_/_/_/_/ _/_/_/ _/_/_/_/ _/_/ _/_/_/ _/ + _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/ _/ _/ _/ + _/_/ _/_/_/ _/_/ _/_/_/ _/ _/_/_/ _/ + + + + _/ _/ _/ _/ + _/_/_/ _/_/_/ _/_/_/ _/_/_/ + _/_/ _/ _/ _/_/_/_/_/ _/ _/ _/_/_/_/_/ + _/_/ _/ _/ _/ _/ _/_/_/ +_/_/_/ _/ _/ _/ _/ _/ _/ _/ + + + + _/ _/ _/ _/ _/ + _/ _/_/ _/_/_/ _/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/_/ _/ _/ _/_/ _/ + _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/ + _/ _/ _/_/ _/_/_/ _/ _/ _/ _/ _/ + _/ + _/ + + _/ + _/_/_/ _/_/_/ _/_/_/ _/_/_/ _/_/_/ _/_/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/_/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/_/ _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/ _/ + _/ + _/ + + _/ _/ _/ _/ _/ + _/ _/_/_/ _/_/ _/_/ _/ _/ _/ + _/ _/ _/ _/ _/_/_/_/ _/ _/_/_/_/ + _/ _/ _/ _/ _/ _/ _/ +_/ _/ _/ _/ _/_/_/ _/ _/ _/ + + + + _/ + _/_/_/ _/ _/ _/_/_/ _/_/_/_/ _/_/_/ _/ _/ + _/_/ _/ _/ _/ _/ _/ _/ _/ _/_/ + _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ +_/_/_/ _/_/_/ _/ _/ _/_/ _/_/_/ _/ _/ + _/ + _/_/ + + + _/_/ _/ _/_/ _/ _/_/ _/_/ _/ _/_/ + _/_/_/_/ _/_/ _/_/ _/ _/ _/_/ +_/ _/ _/ _/ _/ _/ + _/_/_/ _/ _/ _/_/ _/ + + + + + _/_/_/ _/_/ _/_/_/ _/ _/_/ + _/ _/ _/_/_/_/ _/ _/ _/_/ + _/ _/ _/ _/ _/ _/ +_/ _/ _/_/_/ _/_/_/ _/ + + + + + _/ _/ _/_/_/ _/_/ _/ _/ _/_/_/ _/_/ _/_/_/ + _/ _/ _/ _/ _/_/_/_/ _/_/ _/ _/ _/_/_/_/ _/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/_/ _/ _/ _/_/_/ _/ _/ _/_/_/ _/_/_/ _/_/_/ + _/ + _/ + + _/ _/ +_/_/_/_/ _/_/ _/_/_/ + _/ _/_/_/_/ _/ _/ +_/ _/ _/ _/ + _/_/ _/_/_/ _/_/_/ + + + _/ _/ _/ + _/ _/ _/ _/ _/ +_/_/_/_/ _/_/ _/ _/ _/_/ _/_/_/ _/ + _/ _/ _/ _/_/ _/_/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/ _/_/ _/ _/ _/_/_/ _/ _/ _/ + _/ + + + _/ _/ _/ _/ _/ + _/ _/_/ _/_/_/ _/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/_/ _/ _/ _/_/ _/ + _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/ + _/ _/ _/_/ _/_/_/ _/ _/ _/ _/ _/ + _/ + _/ + + _/ + _/_/_/ _/_/_/ _/_/_/ _/_/_/ _/_/_/ _/_/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/_/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/_/ _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/ _/ + _/ + _/ + + _/ _/ _/ _/ _/ + _/ _/_/_/ _/_/ _/_/ _/ _/ _/ + _/ _/ _/ _/ _/_/_/_/ _/ _/_/_/_/ + _/ _/ _/ _/ _/ _/ _/ +_/ _/ _/ _/ _/_/_/ _/ _/ _/ + + + _/ _/ _/ + _/ _/ _/ + _/ + _/ + _/ + _/ + _/ + + + _/ _/ _/ _/ _/ + _/ _/_/ _/_/_/ _/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/_/ _/ _/ _/_/ _/ + _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/ + _/ _/ _/_/ _/_/_/ _/ _/ _/ _/ _/ + _/ + _/ + + _/ _/ _/ _/ +_/_/_/_/ _/_/_/ _/_/ _/_/_/ _/ _/_/ _/_/_/_/ + _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/ _/ _/ _/_/_/ _/_/_/ _/ _/_/ _/_/ + _/ + _/ + + _/ _/ _/ _/ +_/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/ _/_/_/ _/_/_/ + _/ _/ _/ _/ _/ _/_/ _/_/_/_/ _/ _/ _/_/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ + _/_/ _/ _/ _/ _/_/_/ _/ _/ _/_/_/ _/ _/ _/_/_/ + + + + _/ _/_/ _/_/ _/ _/ + _/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/ _/ +_/ _/ _/ _/_/ _/ _/ _/_/_/_/_/_/_/_/ _/ _/_/_/_/ _/ + _/ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/_/_/ _/ + + + + _/ _/ _/ _/ + _/_/_/ _/ _/_/_/_/ _/_/_/ _/_/ _/_/_/ _/_/ + _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/_/_/_/ +_/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/ + _/_/_/ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ + + + _/ + _/ _/ + _/_/_/ _/ _/_/ _/_/ _/_/_/ _/_/_/_/ + _/ _/ _/_/ _/_/_/_/ _/ _/ _/ +_/ _/ _/ _/ _/ _/ _/ + _/_/_/ _/ _/_/_/ _/ _/ _/_/ + + + + _/ _/ _/ + _/_/_/ _/_/_/ _/_/ _/ _/ + _/_/ _/ _/ _/_/_/_/ _/ _/ + _/_/ _/ _/ _/ _/ _/ +_/_/_/ _/ _/ _/_/_/ _/ _/ + + + + _/ _/ + _/_/_/ _/_/_/ _/ _/_/ _/_/_/ _/_/_/_/ _/_/_/ + _/_/ _/ _/_/ _/ _/ _/ _/ _/_/ + _/_/ _/ _/ _/ _/ _/ _/ _/_/ +_/_/_/ _/_/_/ _/ _/ _/_/_/ _/_/ _/_/_/ + _/ + _/ + + _/ _/ _/ _/ + _/ _/_/ _/ _/_/ _/_/_/ _/_/_/ _/ +_/ _/_/_/_/ _/_/ _/ _/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/_/_/ _/ _/ _/_/_/ _/ _/ _/ + + + + _/ _/ _/ +_/_/_/_/ _/_/_/ _/_/_/ + _/ _/ _/ _/ _/_/ +_/ _/ _/ _/ _/_/ + _/_/ _/ _/ _/ _/_/_/ + + + _/ + _/ _/ + _/ _/ _/ _/_/_/ _/_/_/ _/_/_/ _/_/_/_/ +_/ _/ _/ _/ _/ _/_/ _/ _/ _/ + _/ _/ _/ _/ _/ _/ _/_/ _/ _/ _/ + _/ _/ _/_/_/ _/_/_/ _/ _/ _/_/ + + + + _/ _/ _/ + _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/ _/_/_/ + _/ _/ _/ _/ _/ _/_/ _/_/_/_/ _/ _/ +_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/_/_/ _/ _/ _/ _/_/_/ _/ _/ _/_/_/ _/ _/ _/ + + + + + + + + + + + + _/ + _/_/_/ +_/_/_/_/_/ _/_/_/_/_/ _/ _/ _/ + _/ _/ _/ + _/ _/ _/ + + + + _/ _/ _/ _/ _/ + _/_/_/_/_/ _/_/_/ _/_/ _/_/_/ _/_/_/ _/_/_/ + _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ +_/_/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ + _/ _/ _/_/_/ _/_/_/ _/_/_/ _/ _/_/_/ _/ _/ + + + + _/ _/ + _/_/_/ _/_/ _/ _/ _/_/ _/ +_/_/_/_/_/ _/ _/ _/_/_/_/ _/ _/ _/_/_/_/ _/ + _/ _/ _/ _/ _/ _/ _/ + _/_/_/ _/_/_/ _/ _/_/_/ _/ + + + +/o _ _|_ | \ +\|(_)_>| ||| ||<| (|/|| || ||_|>| | +_| \__ _| + +__._ \|/ + | | /|\ + + +/o _ _|_ | \ _.._ _. _|_ _ o |o._ _ /||_|_o _ .__|_ _. _ ._.__ ._ +\|(_)_>| ||\/| ||_(_|>< (/_| |(_)| +_| | / + -. +._ _ _.._ ._ _ ._ _ __|_ _ _| _|_ _ | _ ._ \|_/ +| |(/_(_|| |_|| |(/_><|_)(/_(_ |_(/_(_| |_(_)|<(/_| | | + | -' + -. +/o _ _|_ | \ _.._ _. _|_ _ o |o._ _ /||_|_o \|_/ +\|(_)_>| ||| || +_| | + _ _ +/ _. _ _|__|_o _ | _|\ _|_|_ _ _ _ _..__ ._/_|_ _|_ _ || _ _._o.__|_ _ +\(_|_>|_|| | |(/_|(_|/ |_| |(_)_>(/_ (_||(/_| | |_ _>| |(/_|| _>(_| ||_)|__> + | + +/ _ ._o _|_ \ _|_|_ o _ _. _._/_|_ _|_ o _| _ ._ +\(/_| |(_| |/ |_| ||_> \/\/(_|_>| | |_ (_| ||(_|<(/_| |o + + + ____ o._ -|-|- _| _ |_ o _..____| _ _ | + || | -|-|-(_|(/_|_)|(_|| |(_|(/_\/(/_| + +&SPjoshk&Atinflux:/etc/logrotate.d>&SPsh&SP-n&SP* +&SPapache:&SPline&SP14:&SPsyntax&SPerror&SPnear&SPunexpected&SPtoken +&'!&!)' +&SPapache:&SPline&SP14:&SP&'!&!)' +&SPthe&SPplot&SPthickens +&SPthose&SParen't&SPshell&SPscripts +&SPthis&SPwasn't&SPchicken. +&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP&SP--&SPin&SP&Nbdebian-devel + _ _ + /o | | | | \ +/ __ , | | | | \ +\ | / \_/ \_|/ \ |/_) / + \|/\__/ \/ | |_/| \_// + /| + \| + _ _ _ _ + o | | | | ____ o | | | | o / + __ , | | | | / __,\ _ _ | | | | /_ _|_ __ + | / \_/ \_|/ \ |/_) | / | || / |/ | |/ |/ | | /\/ /|/ | / + |/\__/ \/ | |_/| \_/| \_/|/ |_/ | |_/|__/|__/ \_/|_/ /\_/o/ |__/|_/\___/ +/| \____/ |\ +\| |/ + _ _ + /| | | \ | | + / | | __ __, ,_ __ _|_ __, _|_ _ __| \ , | | + / |/ / \_/ | / | / \_| / | | |/ / | / / \_|/ \ +/ |__/\__/ \_/|/ |_/\__/ |_/\_/|_/|_/|__/o\_/|_// \/ | |_/ + /| + \| + + + _ _ \|/ +-----/ |/ | --*-- + | |_/ /|\ + + + _ _ _ + /o | | | | \ | | o +/ __ , | | | | \ __, _ __, __ | | _ +\ | / \_/ \_|/ \ |/_) / / | |/ \_/ | / |/ \ |/ + \|/\__/ \/ | |_/| \_// \_/|_/|__/ \_/|_/\___/| |_/|__/o + /| /| + \| \| + _ , +| | o /|| | o +| | _ _ _ ||__|_ , _ _ _|_ __, +|/ | / |/ | |/ | | / \_| | / |/ | | / | /\/ +|__/|_/ | |_/|__/ | | o \/ \_/|/ | |_/|_/\_/|_/ /\_/ + /| + \| + + + _ ,_ ,_ __ ,_ _ _ _ __, ,_ +|/ / | / | / \_/ | / |/ | |/ / | / | +|__/ |_/ |_/\__/ |_/ | |_/|__/\_/|_/ |_/ + + + _ + | | | + _ _ _ _ _ __ _|_ _ __| _|_ __ | | _ _ _ +| | / |/ | |/ /\/ |/ \_|/ / | |/ / | | / \_|/_) |/ / |/ | + \_/|_/ | |_/|__/ /\_/|__/ |__/\___/|_/|__/\_/|_/ |_/\__/ | \_/|__/ | |_/ + /| + \| +o o +\\ / + | + > + | + / + + _ _ _ + /o | | | | \ | | o +/ __ , | | | | \ __, _ __, __ | | _ +\ | / \_/ \_|/ \ |/_) / / | |/ \_/ | / |/ \ |/ + \|/\__/ \/ | |_/| \_// \_/|_/|__/ \_/|_/\___/| |_/|__/o + /| /| + \| \| + _ , o o +| | o /|| | o \\ / +| | _ _ _ ||__|_ | +|/ | / |/ | |/ | | > +|__/|_/ | |_/|__/ | | o | + / + + _ _ _ _ + /o | | | | \ | | | | +/ __ , | | | | \ _|_ | | _ _ | | __ _|_ +\ | / \_/ \_|/ \ |/_) / | |/ \ |/ |/ \_|/ / \_| + \|/\__/ \/ | |_/| \_// |_/| |_/|__/ |__/ |__/\__/ |_/ + /| /| + \| \| + _ _ + | | o | | +_|_ | | __ | | _ _ _ , + | |/ \ | / |/_) |/ / |/ | / \_ + |_/| |_/|_/\___/| \_/|__/ | |_/ \/ + + + _ _ _ _ + / | | | | o | | | \ | | +/ __, , | | | | _ | | __| \ _|_ | | __ , _ +\ / | / \_| | |/ |/ | |/ |/ / | / | |/ \ / \_/ \_|/ + \\_/|_/ \/ \_/|_/|__/|__/|_/|__/|__/\_/|_// |_/| |_/\__/ \/ |__/ + |\ |\ + |/ |/ + o _ _ _ + / | | | | | | + __, ,_ _ _ _ _|_ , | | _ | | | | +/ | / | |/ / |/ | | / \_|/ \ |/ |/ |/ +\_/|_/ |_/|__/ | |_/ |_/ \/ | |_/|__/|__/|__/ + + + + o + , __ ,_ _ _|_ , +/ \_/ / | | |/ \_| / \_ + \/ \___/ |_/|_/|__/ |_/ \/ + /| + \| + _ _ + / o | | \ | | o +/ _ ,_ __ | | \ _|_ | | , +\ |/ / | | / |/ \ / | |/ \ | / \_ + \|__/ |_/|_/\___/| |_// |_/| |_/|_/ \/ + + + o _ _ + / | | o | | + __, , _ _ _|_ __ | | __ | | _ _ _ +| | |_/ | / \_/ |/ | | / |/ \ | / |/_) |/ / |/ | + \/ \/ \_/|_/ \/ | |_/ |_/ \___/| |_/|_/\___/| \_/|__/ | |_/o + + + + o + _ _ + ---------- | / |/ | + |_/ | |_/ + + + _ _ + | | | | | o | | | +--+--+-- __| _ | | __, _ _ __| _ _ | | +--+--+--/ | |/ |/ \_| / | / |/ |-----/ | |/ | |_|/ |/ + | | \_/|_/|__/\_/ |_/\_/|_/ | |_/ \_/|_/|__/ \/ |__/|__/ + + + /_) | | \ \ + / | _ \ __| __ \ | /\ \ +\ \ | ( |\__ \ | | | < / + \_\ |\___/ ____/_| |_|_|\_\_/ + ___/ + _) | | __ \ _) _| | / | + | _ \ __| __ \ | / / _` | | __ \ | | | |\ \ /_) / _ \ __| + | ( |\__ \ | | | < | ( | | | | __| | | | ` < / __/ | + |\___/ ____/_| |_|_|\_\\ \__,_|_|_| _|_| _|\__,_| _/\_\_)_/ \___|\__| +___/ \____/ + / | | | |\ \ | + __| / | _ \ _` | __| _ \ __| _` | __| _ \ _` | \ \ __| __ \ + ( / | ( | ( | | ( | | ( | | __/ ( | / \__ \ | | | +\___|_/ _|\___/ \__, |_| \___/ \__|\__,_|\__|\___|_)\__,_| _/ ____/_| |_| + |___/ + \ + __ \ \ / +_____| | | _ _\ + _| _| \/ + + /_) | | \ \ | + / | _ \ __| __ \ | /\ \ _` | __ \ _` | __| __ \ _ \_) +\ \ | ( |\__ \ | | | < / ( | | | ( | ( | | | __/ + \_\ |\___/ ____/_| |_|_|\_\_/ \__,_| .__/ \__,_|\___|_| |_|\___|_) + ___/ _| + |_) _ | | | | + | | __ \ _ \ | | | _) __| | | __ \ __| _` |\ \ / + | | | | __/ |___ __| \__ \ | | | | | ( | ` < +_|_|_| _|\___| _| _| _) ____/\__, |_| _|\__|\__,_| _/\_\ + ____/ + + _ \ __| __| _ \ __| __ \ _ \ _` | __| + __/ | | ( | | | | __/ ( | | +\___|_| _| \___/ _| _| _|\___|\__,_|_| + + | | + | | __ \ _ \\ \ / __ \ _ \ __| __| _ \ _` | + | | | | __/ ` < | | __/ ( | __/ ( | +\__,_|_| _|\___| _/\_\ .__/ \___|\___|\__|\___|\__,_| + _| + | | )\ \ ) + __| _ \ | / _ \ __ \ \| | / + | ( | < __/ | | ` > +\__|\___/ _|\_\\___|_| _| | + _/ + /_) | | \ \ | + / | _ \ __| __ \ | /\ \ _` | __ \ _` | __| __ \ _ \_) +\ \ | ( |\__ \ | | | < / ( | | | ( | ( | | | __/ + \_\ |\___/ ____/_| |_|_|\_\_/ \__,_| .__/ \__,_|\___|_| |_|\___|_) + ___/ _| + |_) _ | | | )\ \ ) + | | __ \ _ \ | | | _) \| | / + | | | | __/ |___ __| ` > +_|_|_| _|\___| _| _| _) | + _/ + /_) | | \ \ | | | | + / | _ \ __| __ \ | /\ \ __| __ \ _ \ __ \ | _ \ __| +\ \ | ( |\__ \ | | | < / | | | | __/ | | | ( | | + \_\ |\___/ ____/_| |_|_|\_\_/ \__|_| |_|\___| .__/ _|\___/ \__| + ___/ _| + | | _) | + __| __ \ | __| | / _ \ __ \ __| + | | | | | ( < __/ | |\__ \ +\__|_| |_|_|\___|_|\_\\___|_| _|____/ + + / _| _|_) | |\ \ | | + / _` | __| | | | | | _ \ | _` | \ \ __| __ \ _ \ __| _ \ +\ \ ( |\__ \ | | __| __| | __/ | ( | / | | | | ( |\__ \ __/ + \_\\__,_|____/\__,_|_| _| _|\___|_|\__,_| _/ \__|_| |_|\___/ ____/\___| + + ) | | | | + _` | __| _ \ __ \ / __| __| __ \ _ \ | | + ( | | __/ | | | \__ \ | | | __/ | | +\__,_|_| \___|_| _| \__| ____/_| |_|\___|_|_| + + _) | + __| __| __| | __ \ __| __| +\__ \ ( | | | | | \__ \ +____/\___|_| _| .__/ \__|____/ + _| + / _) | \ \ | | _) + / _ \ __| | __| __ \ \ \ __| __ \ | __| +\ \ __/ | | ( | | | / | | | | |\__ \ + \_\\___|_| _|\___|_| |_|_/ \__|_| |_|_|____/ + + ) | | _) | +\ \ \ / _` | __| __ \ / __| __| __ \ | __| | / _ \ __ \ + \ \ \ / ( |\__ \ | | | ( | | | | ( < __/ | | + \_/\_/ \__,_|____/_| _| \__| \___|_| |_|_|\___|_|\_\\___|_| _|_) + + _) + | __ \ + _____|_____| | | | + _|_| _| + + | | | | _) | | +_ |_ |_| _` | _ \ __ \ | _` | __ \ _` | _ \\ \ / _ \ | +_ |_ |_| ( | __/ | | | ( | | |_____| ( | __/ \ \ / __/ | + _| _| \__,_|\___|_.__/ _|\__,_|_| _| \__,_|\___| \_/ \___|_| + + __ _ __ __ __ + / / (_)___ _____/ /_ / /_\ \ +/ / / / __ \/ ___/ __ \/ //_/\ \ +\ \ / / /_/ (__ ) / / / ,< / / + \_\_/ /\____/____/_/ /_/_/|_| /_/ + /___/ + _ __ __ ______ _ ______ __ __ + (_)___ _____/ /_ / /__/ ____ \(_)___ / __/ /_ ___ ___ _/_/__ / /_ + / / __ \/ ___/ __ \/ //_/ / __ `/ / __ \/ /_/ / / / / |/_(_)_/_// _ \/ __/ + / / /_/ (__ ) / / / ,< / / /_/ / / / / / __/ / /_/ /> <_ _/_/ / __/ /_ + __/ /\____/____/_/ /_/_/|_|\ \__,_/_/_/ /_/_/ /_/\__,_/_/|_(_)_/ \___/\__/ +/___/ \____/ + ____ __ __ ____ + _____ _/_/ /___ ____ __________ / /_____ _/ /____ ____/ /\ \ + / ___/_/_// / __ \/ __ `/ ___/ __ \/ __/ __ `/ __/ _ \ / __ / \ \ +/ /___/_/ / / /_/ / /_/ / / / /_/ / /_/ /_/ / /_/ __// /_/ / / / +\___/_/ /_/\____/\__, /_/ \____/\__/\__,_/\__/\___(_)__,_/ /_/ + /____/ + __ + _____/ /_ ____ __/|_ + / ___/ __ \ ______/ __ \ | / + (__ ) / / / /_____/ / / / /_ __| +/____/_/ /_/ /_/ /_/ |/ + + __ _ __ __ __ __ + / / (_)___ _____/ /_ / /_\ \ ____ _____ ____ ______/ /_ ___ _ +/ / / / __ \/ ___/ __ \/ //_/\ \ / __ `/ __ \/ __ `/ ___/ __ \/ _ \(_) +\ \ / / /_/ (__ ) / / / ,< / / / /_/ / /_/ / /_/ / /__/ / / / __/ + \_\_/ /\____/____/_/ /_/_/|_| /_/ \__,_/ .___/\__,_/\___/_/ /_/\___(_) + /___/ /_/ + ___ _____ __ __ + / (_)___ ___ < / // / _ _______ ______ / /_____ __ __ + / / / __ \/ _ \ / / // /_(_) / ___/ / / / __ \/ __/ __ `/ |/_/ + / / / / / / __/ / /__ __/ (__ ) /_/ / / / / /_/ /_/ /> < +/_/_/_/ /_/\___/ /_/ /_/ (_) /____/\__, /_/ /_/\__/\__,_/_/|_| + /____/ + + ___ ______________ _____ ____ ___ ____ ______ + / _ \/ ___/ ___/ __ \/ ___/ / __ \/ _ \/ __ `/ ___/ +/ __/ / / / / /_/ / / / / / / __/ /_/ / / +\___/_/ /_/ \____/_/ /_/ /_/\___/\__,_/_/ + + __ __ + __ ______ ___ _ ______ ___ _____/ /____ ____/ / + / / / / __ \/ _ \| |/_/ __ \/ _ \/ ___/ __/ _ \/ __ / +/ /_/ / / / / __/> _> +\__/\____/_/|_|\___/_/ /_/ _/_/ + /_/ + __ _ __ __ __ __ + / / (_)___ _____/ /_ / /_\ \ ____ _____ ____ ______/ /_ ___ _ +/ / / / __ \/ ___/ __ \/ //_/\ \ / __ `/ __ \/ __ `/ ___/ __ \/ _ \(_) +\ \ / / /_/ (__ ) / / / ,< / / / /_/ / /_/ / /_/ / /__/ / / / __/ + \_\_/ /\____/____/_/ /_/_/|_| /_/ \__,_/ .___/\__,_/\___/_/ /_/\___(_) + /___/ /_/ + ___ _____ __ _ _ _ + / (_)___ ___ < / // / _ ( )| |( ) + / / / __ \/ _ \ / / // /_(_) V / /|/ + / / / / / / __/ / /__ __/ _>_> +/_/_/_/ /_/\___/ /_/ /_/ (_) _/_/ + /_/ + __ _ __ __ __ __ __ __ __ + / / (_)___ _____/ /_ / /_\ \ / /_/ /_ ___ ____ / /___ / /_ +/ / / / __ \/ ___/ __ \/ //_/\ \ / __/ __ \/ _ \ / __ \/ / __ \/ __/ +\ \ / / /_/ (__ ) / / / ,< / / / /_/ / / / __/ / /_/ / / /_/ / /_ + \_\_/ /\____/____/_/ /_/_/|_| /_/ \__/_/ /_/\___/ / .___/_/\____/\__/ + /___/ /_/ + __ __ _ __ + / /_/ /_ (_)____/ /_____ ____ _____ + / __/ __ \/ / ___/ //_/ _ \/ __ \/ ___/ +/ /_/ / / / / /__/ ,< / __/ / / (__ ) +\__/_/ /_/_/\___/_/|_|\___/_/ /_/____/ + + __ _________ __ ____ __ __ + / / ____ ________ __/ __/ __(_)__ / /___/ /\ \ / /_/ /_ ____ ________ +/ / / __ `/ ___/ / / / /_/ /_/ / _ \/ / __ / \ \ / __/ __ \/ __ \/ ___/ _ \ +\ \/ /_/ (__ ) /_/ / __/ __/ / __/ / /_/ / / / / /_/ / / / /_/ (__ ) __/ + \_\__,_/____/\__,_/_/ /_/ /_/\___/_/\__,_/ /_/ \__/_/ /_/\____/____/\___/ + + _ __ __ ____ + ____ _________ ____ ( )/ /_ _____/ /_ ___ / / / + / __ `/ ___/ _ \/ __ \|// __/ / ___/ __ \/ _ \/ / / +/ /_/ / / / __/ / / / / /_ (__ ) / / / __/ / / +\__,_/_/ \___/_/ /_/ \__/ /____/_/ /_/\___/_/_/ + + _ __ + _______________(_)___ / /______ + / ___/ ___/ ___/ / __ \/ __/ ___/ + (__ ) /__/ / / / /_/ / /_(__ ) +/____/\___/_/ /_/ .___/\__/____/ + /_/ + __ _ ____ __ __ _ + / / ___ _____(_)____/ /\ \ / /_/ /_ (_)____ +/ / / _ \/ ___/ / ___/ __ \ \ / __/ __ \/ / ___/ +\ \/ __/ / / / /__/ / / / / / /_/ / / / (__ ) + \_\___/_/ /_/\___/_/ /_/_/ \__/_/ /_/_/____/ + + _ __ __ _ __ + _ ______ __________ ( )/ /_ _____/ /_ (_)____/ /_____ ____ +| | /| / / __ `/ ___/ __ \|// __/ / ___/ __ \/ / ___/ //_/ _ \/ __ \ +| |/ |/ / /_/ (__ ) / / / / /_ / /__/ / / / / /__/ ,< / __/ / / / +|__/|__/\__,_/____/_/ /_/ \__/ \___/_/ /_/_/\___/_/|_|\___/_/ /_(_) + + _ + (_)___ + ____________ / / __ \ + /_____/_____/ / / / / / + /_/_/ /_/ + + __ __ __ __ _ __ __ + __/ // /_____/ /__ / /_ (_)___ _____ ____/ /__ _ _____ / / + /_ _ __/ __ / _ \/ __ \/ / __ `/ __ \______/ __ / _ \ | / / _ \/ / +/_ _ __/ /_/ / __/ /_/ / / /_/ / / / /_____/ /_/ / __/ |/ / __/ / + /_//_/ \__,_/\___/_.___/_/\__,_/_/ /_/ \__,_/\___/|___/\___/_/ + + __ _ _ _ __ + / /(_)___ __| |_ | |__\ \ +< < | / _ (_-< ' \| / / > > + \_\/ \___/__/_||_|_\_\/_/ + |__/ + _ _ _ ____ _ __ _ _ __ _ ___ + (_)___ __| |_ | |__/ __ \(_)_ _ / _| |_ ___ _(_) / /__| |_ __ / / |___ + | / _ (_-< ' \| / / / _` | | ' \| _| | || \ \ /_ / / -_) _/ _|/ /| / _ \ + _/ \___/__/_||_|_\_\ \__,_|_|_||_|_| |_|\_,_/_\_(_)_/\___|\__\__/_/ |_\___/ +|__/ \____/ + _ _ ___ _ + __ _ _ _ ___| |_ __ _| |_ ___ __| \ \ __| |_ ___ _ _ _/\_ +/ _` | '_/ _ \ _/ _` | _/ -_)_/ _` |> > (_-< ' \ |___| ' \ > < +\__, |_| \___/\__\__,_|\__\___(_)__,_/_/ /__/_||_| |_||_| \/ +|___/ + __ _ _ _ __ _ _ _ _ + / /(_)___ __| |_ | |__\ \ __ _ _ __ __ _ __| |_ ___(_) | (_)_ _ ___ +< < | / _ (_-< ' \| / / > > / _` | '_ \/ _` / _| ' \/ -_)_ | | | ' \/ -_) + \_\/ \___/__/_||_|_\_\/_/ \__,_| .__/\__,_\__|_||_\___(_) |_|_|_||_\___| + |__/ |_| + _ _ _ _ _ +/ | | (_) ____ _ _ _| |_ __ ___ __ ___ _ _ _ _ ___ _ _ _ _ ___ __ _ _ _ +| |_ _| (_-< || | ' \ _/ _` \ \ / / -_) '_| '_/ _ \ '_| | ' \/ -_) _` | '_| +|_| |_(_) /__/\_, |_||_\__\__,_/_\_\ \___|_| |_| \___/_| |_||_\___\__,_|_| + |__/ + _ _ _ _ ___ _ + _ _ _ _ _____ ___ __ ___ __| |_ ___ __| | | |_ ___| |_____ _ _ ( ) \ ( ) +| || | ' \/ -_) \ / '_ \/ -_) _| _/ -_) _` | | _/ _ \ / / -_) ' \ \|| ||/ + \_,_|_||_\___/_\_\ .__/\___\__|\__\___\__,_| \__\___/_\_\___|_||_| | | + |_| /_/ + __ _ _ _ __ _ _ _ _ + / /(_)___ __| |_ | |__\ \ __ _ _ __ __ _ __| |_ ___(_) | (_)_ _ ___ +< < | / _ (_-< ' \| / / > > / _` | '_ \/ _` / _| ' \/ -_)_ | | | ' \/ -_) + \_\/ \___/__/_||_|_\_\/_/ \__,_| .__/\__,_\__|_||_\___(_) |_|_|_||_\___| + |__/ |_| + _ _ _ _ ___ _ +/ | | (_) ( ) \ ( ) +| |_ _| \|| ||/ +|_| |_(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_)___ __| |_ | |__\ \ | |_| |_ ___ _ __| |___| |_ +< < | / _ (_-< ' \| / / > > | _| ' \/ -_) | '_ \ / _ \ _| + \_\/ \___/__/_||_|_\_\/_/ \__|_||_\___| | .__/_\___/\__| + |__/ |_| + _ _ _ _ +| |_| |_ (_)__| |_____ _ _ ___ +| _| ' \| / _| / / -_) ' \(_-< + \__|_||_|_\__|_\_\___|_||_/__/ + + __ __ __ _ _ ___ _ _ + / /__ _ ____ _ / _|/ _(_)___| |__| \ \ | |_| |_ ___ ___ ___ +< > | _| ' \/ _ (_- > | _| ' \| (_-< \ V V / _` (_-< ' \|/| _| + \_\___|_| |_\__|_||_/_/ \__|_||_|_/__/ \_/\_/\__,_/__/_||_| \__| + + _ _ _ + __| |_ (_)__| |_____ _ _ +/ _| ' \| / _| / / -_) ' \ _ +\__|_||_|_\__|_\_\___|_||_(_) + + _ + ___ ___ (_)_ _ + |___|___| | | ' \ + |_|_||_| + + _ _ _ _ _ _ _ + _| | |_ __| |___| |__(_)__ _ _ _ ___ __| |_____ _____| | +|_ . _/ _` / -_) '_ \ / _` | ' \___/ _` / -_) V / -_) | +|_ _\__,_\___|_.__/_\__,_|_||_| \__,_\___|\_/\___|_| + |_|_| + + /o _ , |) |) \ +< | / \_/ \_|/\ |/) > + \|/\_/ \/ | |/| \// + (| + ____ + o _ , |) |) / __,\ o |\ |\ o /__|_ _ /|\ _ _, + | / \_/ \_|/\ |/) | / | || /|/| |/ |/ | | /\/ /|/ | / / |/ / \_/ | + |/\_/ \/ | |/| \/| \_/|/ |/ | |_/|_/|_/ \/|_/ /\/o/ |_/|_/\__// |_/\_/ \/|/ +(| \____/ |) (| + + ,_ _ _|_ _, _|_ _ _| \ , |) \|/ +/ | / \_| / | | |/ / | > / \_|/\ ----/|/| --*-- + |/\_/ |_/\/|_/|_/|_/o\/|_// \/ | |/ | |_/ /|\ + + + /o _ , |) |) \ _, _, _ |) _ o |\ o _ +< | / \_/ \_|/\ |/) > / | |/\_/ | / |/\ |/ |/ | /|/| |/ + \|/\_/ \/ | |/| \// \/|_/|_/ \/|_/\__/| |/|_/o |_/|/ | |_/|_/ + (| (| + , +/|| | o , _|_ _, _ ,_ ,_ _ ,_ + ||__|_ / \_| | /|/| | / | /\/ |/ / | / | / \_/ | + | | o \/ \/|/ | |_/|_/\/|_/ /\/ |_/ |/ |/\_/ |/ + (| + + _ _, ,_ _ _ _ _|_ _ _| +/|/| |/ / | / | | | /|/| |/ /\/ |/\_|/ / | |/ / | + | |_/|_/\/|_/ |/ \/|_/ | |_/|_/ /\/|_/ |_/\__/|_/|_/\/|_/ + (| + o o +_|_ _ |) _ \\ / + | / \_|/) |/ /|/| |_ + |_/\_/ | \/|_/ | |_/ | + / + + /o _ , |) |) \ _, _, _ |) _ o |\ o _ +< | / \_/ \_|/\ |/) > / | |/\_/ | / |/\ |/ |/ | /|/| |/ + \|/\_/ \/ | |/| \// \/|_/|_/ \/|_/\__/| |/|_/o |_/|/ | |_/|_/ + (| (| + , o o +/|| | o \\ / + ||__|_ |_ + | | o | + / + + /o _ , |) |) \ _|_ |) _ |\ _ _|_ +< | / \_/ \_|/\ |/) > | |/\ |/ |/\_|/ / \_| + \|/\_/ \/ | |/| \// |_/| |/|_/ |_/ |_/\_/ |_/ + (| (| + +_|_ |) o _ |) _ , + | |/\ | / |/) |/ /|/| / \_ + |_/| |/|/\__/| \/|_/ | |_/ \/ + + + / _, , |\ |\ o _ |\ _| \ _|_ |) _ , _ +< / | / \_| | |/ |/ | |/ |/ / | > | |/\ / \_/ \_|/ + \\/|_/ \/ \/|_/|_/|_/|/|_/|_/\/|_// |_/| |/\_/ \/ |_/ + |) |) + o + _, ,_ _ /_|_ , |) _ |\ |\ , _ ,_ o _|_ , +/ | / | |/ /|/| | / \_|/\ |/ |/ |/ / \_/ / | | |/\_| / \_ +\/|_/ |/|_/ | |_/ |_/ \/ | |/|_/|_/|_/ \/ \__/ |/|/|_/ |_/ \/ + (| + o + / _ ,_ o _ |) \ _|_ |) o , _, , /_|_ +< |/ / | | / |/\ > | |/\ | / \_ | | |_/ | / \_/|/| | + \|_/ |/|/\__/| |// |_/| |/|/ \/ \/ \/ \/|_/ \/ | |_/ |_/ + + + _ |) o _ |) _ +/ |/\ | / |/) |/ /|/| +\__/| |/|/\__/| \/|_/ | |_/o + + + o + -------- | /|/| + |/ | |_/ + + +_|_|_ _| _|) o _, _| _ _ |\ +_|_|_/ | |/|/\_| / | /|/|----/ | |/ | |_|/ |/ + | | \/|_/|_/\/ |/\/|_/ | |_/ \/|_/|_/ \/ |_/|_/ + + /_) | | \ \ +< < | _ \(_-< \ | /> > + \_\ |\___/___/_| _|_\_\_/ + __/ + _) | | __ \ _) _|| _) / | /| + | _ \(_-< \ | // _` | | \ _|| | |\ \ / / -_) _| _| / | _ \ + |\___/___/_| _|_\_\\__,_|_|_| _|_| _|\_,_| _\_\_)_/\___|\__|\__|_/ _|\___/ +__/ \____/ + | | |\ \ | \ \ / + _` | _|_ \ _| _` | _| -_) _` | > > (_-< \ ____|\ _ _| +\__, |_|\___/\__|\__,_|\__|\___|_)\__,_| _/ ___/_| _| _| _| _/ _\ +____/ + /_) | | \ \ | _) |_) +< < | _ \(_-< \ | /> > _` | _ \ _` | _| \ -_) | | \ -_) + \_\ |\___/___/_| _|_\_\_/ \__,_|.__/\__,_|\__|_| _|\___|_) _|_|_| _|\___| + __/ _| +_ | | |_) | + |__ _| (_-< | | \ _| _` |\ \ / -_) _|_|_ \ _| + _| _|_) ___/\_, |_| _|\__|\__,_| _\_\ \___|_|_|\___/_| + ___/ + | | + \ -_) _` | _| | | \ -_)\ \ / _ \ -_) _| _| -_) _` | +_| _|\___|\__,_|_| \_,_|_| _|\___| _\_\.__/\___|\__|\__|\___|\__,_| + _| + | | )\ \ ) + _| _ \ | / -_) \ \| |_/ +\__|\___/_\_\\___|_| _| | + _/ + /_) | | \ \ | _) |_) +< < | _ \(_-< \ | /> > _` | _ \ _` | _| \ -_) | | \ -_) + \_\ |\___/___/_| _|_\_\_/ \__,_|.__/\__,_|\__|_| _|\___|_) _|_|_| _|\___| + __/ _| +_ | | |_) )\ \ ) + |__ _| \| |_/ + _| _|_) | + _/ + /_) | | \ \ | | | | +< < | _ \(_-< \ | /> > _| \ -_) _ \ | _ \ _| + \_\ |\___/___/_| _|_\_\_/ \__|_| _|\___| .__/_|\___/\__| + __/ _| + | | _) | + _| \ | _| | / -_) \ (_-< +\__|_| _|_|\__|_\_\\___|_| _|___/ + + / _|_|_) | |\ \ | | +< < _` |(_-< | | _|_| | -_) | _` | > > _| \ _ \(_-< -_) + \_\\__,_|___/\_,_|_|_| _|\___|_|\__,_| _/ \__|_| _|\___/___/\___| + + )| | | | _) | + _` | _|-_) \/ _| (_-< \ -_) | | (_-< _| _|| _ \ _|(_-< +\__,_|_|\___|_| _|\__| ___/_| _|\___|_|_| ___/\__|_| _|.__/\__|___/ + _| + / _) | \ \ | | _) )| +< < -_) _|| _| \ > > _| \ |(_-< \ \ \ / _` |(_-< \/ _| + \_\\___|_| _|\__|_| _|_/ \__|_| _|_|___/ \_/\_/\__,_|___/_| _|\__| + + | _) | + _| \ | _| | / -_) \ +\__|_| _|_|\__|_\_\\___|_| _|_) + + _) + ____|____| | \ + _|_| _| + + | | | | _) | | +_ |_ |_| _` | -_) _ \ | _` | \____|_` | -_)\ \ / -_) | +_ |_ |_|\__,_|\___|_.__/_|\__,_|_| _| \__,_|\___| \_/\___|_| + _| _| + __ _ __ __ __ + / / (_)__ ___ / / / /_\ \ +< < / / _ \(_- > + \_\_/ /\___/___/_//_/_/\_\/_/ + |___/ + _ __ __ _____ _ _____ _ __ __ __ + (_)__ ___ / / / /__/ ___ \(_)__ / _/ /_ ____ __(_)_/_/__ / /_____ _/_/ + / / _ \(_- > (_- _< +/_/\___/\_, /_/ \___/\__/\_,_/\__/\__(_)_,_/ /_/ /___/_//_/ /_//_/ |/ + /___/ + __ _ __ __ __ __ _ ___ + / / (_)__ ___ / / / /_\ \ ___ ____ ___ _____/ / ___ (_) / (_)__ ___ +< < / / _ \(_- > / _ `/ _ \/ _ `/ __/ _ \/ -_) / / / _ \/ -_) + \_\_/ /\___/___/_//_/_/\_\/_/ \_,_/ .__/\_,_/\__/_//_/\__(_) /_/_/_//_/\__/ + |___/ /_/ + _______ _ __ + < / / /(_) ___ __ _____ / /____ ___ __ ___ ___________ ____ + / /_ _/ (_- > / _ `/ _ \/ _ `/ __/ _ \/ -_) / / / _ \/ -_) + \_\_/ /\___/___/_//_/_/\_\/_/ \_,_/ .__/\_,_/\__/_//_/\__(_) /_/_/_//_/\__/ + |___/ /_/ + _______ _ _ __ _ + < / / /(_) ( )\ \( ) + / /_ _/ V / /|/ +/_/ /_/(_) _/_/ + /_/ + __ _ __ __ __ __ __ __ __ + / / (_)__ ___ / / / /_\ \ / /_/ / ___ ___ / /__ / /_ +< < / / _ \(_- > / __/ _ \/ -_) / _ \/ / _ \/ __/ + \_\_/ /\___/___/_//_/_/\_\/_/ \__/_//_/\__/ / .__/_/\___/\__/ + |___/ /_/ + __ __ _ __ + / /_/ / (_)___/ /_____ ___ ___ +/ __/ _ \/ / __/ '_/ -_) _ \(_-< +\__/_//_/_/\__/_/\_\\__/_//_/___/ + + __ _______ __ ____ __ __ + / /___ ____ __ __/ _/ _(_)__ / /__/ /\ \ / /_/ / ___ ___ ___ +< > / __/ _ \/ _ \(_- > / __/ _ \/ (_-< | |/|/ / _ `(_- < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / +|_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ +( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___ / | || | _ ( ) \ ( ) +| | | '_ \ / _ \ | | || |(_) \|| ||/ +| | | | | | __/ | |__ _| > > +|_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| +\ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | +|_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + + joshk@influx:/etc/logrotate.d> sh -n * + apache: line 14: syntax error near unexpected token `}' + apache: line 14: `}' + the plot thickens + those aren't shell scripts + this wasn't chicken. + -- in #debian-devel diff --git a/externals/figlet/tests/res003.txt b/externals/figlet/tests/res003.txt new file mode 100644 index 0000000000..31770d6c96 --- /dev/null +++ b/externals/figlet/tests/res003.txt @@ -0,0 +1,432 @@ + __ ___ _ _ + \ \ / / |__ __ _| |_ (_)___ + \ \ /\ / /| '_ \ / _` | __| | / __| + \ V V / | | | | (_| | |_ | \__ \ + \_/\_/ |_| |_|\__,_|\__| |_|___/ + + _ _ _ _ _ +(_)_ ____ _____ | |_ _____ __| | (_)_ __ ___ _ _ ___| |__ +| | '_ \ \ / / _ \| \ \ / / _ \/ _` | | | '_ \ / __| | | |/ __| '_ \ +| | | | \ V / (_) | |\ V / __/ (_| | | | | | | \__ \ |_| | (__| | | | +|_|_| |_|\_/ \___/|_| \_/ \___|\__,_| |_|_| |_| |___/\__,_|\___|_| |_| + + __ _ __ +| _|___| | ___ ___ __|_ | +| |/ __| |/ _ \/ __|/ _ \ | +| | (__| | (_) \__ \ __/ | +| |\___|_|\___/|___/\___| | +|__| |__| + _ _ _ _ _ _ + _ __ ___| | __ _| |_(_) ___ _ __ ___| |__ (_)_ __ ___ (_)___ __ _ +| '__/ _ \ |/ _` | __| |/ _ \| '_ \/ __| '_ \| | '_ \/ __| | / __| / _` | +| | | __/ | (_| | |_| | (_) | | | \__ \ | | | | |_) \__ \ | \__ \ | (_| | +|_| \___|_|\__,_|\__|_|\___/|_| |_|___/_| |_|_| .__/|___/ |_|___/ \__,_| + |_| + __ __ + / _| ___ _ __ _ __ ___ ___ / _| +| |_ / _ \| '__| '_ ` _ \ / _ \| |_ +| _| (_) | | | | | | | | | (_) | _| +|_| \___/|_| |_| |_| |_| \___/|_| + + _ _ _ + ___ _ __ ___ ___ | |_(_) ___ _ __ __ _| | + / _ \ '_ ` _ \ / _ \| __| |/ _ \| '_ \ / _` | | +| __/ | | | | | (_) | |_| | (_) | | | | (_| | | + \___|_| |_| |_|\___/ \__|_|\___/|_| |_|\__,_|_| + + _ _ _ __ + ___| |__ ___ _ __ ___ (_)___| |_ _ __ _ _ ___ ___ / _| __ _ _ __ + / __| '_ \ / _ \ '_ ` _ \| / __| __| '__| | | | / __|/ _ \ | |_ / _` | '__| +| (__| | | | __/ | | | | | \__ \ |_| | | |_| |_ \__ \ (_) | | _| (_| | | + \___|_| |_|\___|_| |_| |_|_|___/\__|_| \__, ( ) |___/\___/ |_| \__,_|_| + |___/|/ + _ _ _ _ + _ _ _ __ _____ ___ __ | | __ _(_)_ __ ___ __| | | |__ _ _ +| | | | '_ \ / _ \ \/ / '_ \| |/ _` | | '_ \ / _ \/ _` | | '_ \| | | | +| |_| | | | | __/> <| |_) | | (_| | | | | | __/ (_| | | |_) | |_| | + \__,_|_| |_|\___/_/\_\ .__/|_|\__,_|_|_| |_|\___|\__,_| |_.__/ \__, | + |_| |___/ + _ _ __ + __ _ _ __ _ _ ___ ___| |__ ___ ___ | | ___ / _| + / _` | '_ \| | | | / __|/ __| '_ \ / _ \ / _ \| | / _ \| |_ +| (_| | | | | |_| | \__ \ (__| | | | (_) | (_) | | | (_) | _| + \__,_|_| |_|\__, | |___/\___|_| |_|\___/ \___/|_| \___/|_| + |___/ + _ _ _ ___ + _ __ ___ _ _ ___| |__ (_) __ _| |_ _ __ _ _ |_ _| __ _ _ __ ___ +| '_ \/ __| | | |/ __| '_ \| |/ _` | __| '__| | | | | | / _` | '_ ` _ \ +| |_) \__ \ |_| | (__| | | | | (_| | |_| | | |_| | | | | (_| | | | | | | +| .__/|___/\__, |\___|_| |_|_|\__,_|\__|_| \__, | |___| \__,_|_| |_| |_| +|_| |___/ |___/ + __ _ _ _ + __ ___ ____ _ _ __ ___ ___ / _| | |_| |__ __ _| |_ + / _` \ \ /\ / / _` | '__/ _ \ / _ \| |_ | __| '_ \ / _` | __| +| (_| |\ V V / (_| | | | __/ | (_) | _| | |_| | | | (_| | |_ + \__,_| \_/\_/ \__,_|_| \___| \___/|_|( ) \__|_| |_|\__,_|\__| + |/ + _ _ _ _ + ___ ___ _ __ __| (_) |_(_) ___ _ __ ___ + / __/ _ \| '_ \ / _` | | __| |/ _ \| '_ \/ __| +| (_| (_) | | | | (_| | | |_| | (_) | | | \__ \ + \___\___/|_| |_|\__,_|_|\__|_|\___/|_| |_|___/ + + _ _ _ + _ __ ___ | |_| |__ (_)_ __ __ _ ___ ___ +| '_ \ / _ \| __| '_ \| | '_ \ / _` | / __|/ _ \ +| | | | (_) | |_| | | | | | | | (_| | \__ \ (_) | +|_| |_|\___/ \__|_| |_|_|_| |_|\__, | |___/\___/ + |___/ + _ _ + ___(_)_ __ ___ _ __ | | ___ __ _ ___ __ _ +/ __| | '_ ` _ \| '_ \| |/ _ \ / _` / __| / _` | +\__ \ | | | | | | |_) | | __/ | (_| \__ \ | (_| | +|___/_|_| |_| |_| .__/|_|\___| \__,_|___/ \__,_| + |_| + _ _ _ _ + ___| |__ ___ (_) ___ ___ | |__ ___| |___ _____ ___ _ __ + / __| '_ \ / _ \| |/ __/ _ \ | '_ \ / _ \ __\ \ /\ / / _ \/ _ \ '_ \ +| (__| | | | (_) | | (_| __/ | |_) | __/ |_ \ V V / __/ __/ | | | + \___|_| |_|\___/|_|\___\___| |_.__/ \___|\__| \_/\_/ \___|\___|_| |_| + + _ _ _ __ +| |_| |__ ___ _ __ ___ | | ___ ___ ___ / _| +| __| '_ \ / _ \ | '_ \ / _ \| |/ _ \/ __| / _ \| |_ +| |_| | | | __/ | |_) | (_) | | __/\__ \ | (_) | _| + \__|_| |_|\___| | .__/ \___/|_|\___||___/ \___/|_| + |_| + _ _ _ _ _ + __ _| |_| |_ _ __ __ _ ___| |_(_) ___ _ __ __ _ _ __ __| | + / _` | __| __| '__/ _` |/ __| __| |/ _ \| '_ \ / _` | '_ \ / _` | +| (_| | |_| |_| | | (_| | (__| |_| | (_) | | | | | (_| | | | | (_| | + \__,_|\__|\__|_| \__,_|\___|\__|_|\___/|_| |_| \__,_|_| |_|\__,_| + + _ _ __ __ + _ __ ___ _ __ _ _| |___(_) ___ _ __ \ \ / /__ _ _ +| '__/ _ \ '_ \| | | | / __| |/ _ \| '_ \ \ V / _ \| | | | +| | | __/ |_) | |_| | \__ \ | (_) | | | |_ | | (_) | |_| | +|_| \___| .__/ \__,_|_|___/_|\___/|_| |_(_) |_|\___/ \__,_| + |_| + _ + ___ __ _ _ __ _ __ ___ ___ ___| |_ ___ ___ _ __ ___ ___ + / __/ _` | '_ \ | '_ ` _ \ / _ \/ _ \ __| / __|/ _ \| '_ ` _ \ / _ \ +| (_| (_| | | | | | | | | | | __/ __/ |_ \__ \ (_) | | | | | | __/ + \___\__,_|_| |_| |_| |_| |_|\___|\___|\__| |___/\___/|_| |_| |_|\___| + + _ _ _ _ _ + _ __ ___ ___ _ __ | | ___ | |_| |__ (_)_ __| |_ _ _ +| '_ \ / _ \/ _ \| '_ \| |/ _ \ | __| '_ \| | '__| __| | | | +| |_) | __/ (_) | |_) | | __/ | |_| | | | | | | |_| |_| |_ +| .__/ \___|\___/| .__/|_|\___| \__|_| |_|_|_| \__|\__, ( ) +|_| |_| |___/|/ + __ _ _ _ + / _| ___ _ __| |_ _ _ | |_(_)_ __ ___ ___ ___ +| |_ / _ \| '__| __| | | | | __| | '_ ` _ \ / _ \/ __| +| _| (_) | | | |_| |_| | | |_| | | | | | | __/\__ \ +|_| \___/|_| \__|\__, | \__|_|_| |_| |_|\___||___/ + |___/ + _ _ _ + __| | _____ ___ __ | |_| |__ ___ _ _ ___ __ _ _ __ ___ + / _` |/ _ \ \ /\ / / '_ \ | __| '_ \ / _ \ | | | |/ _ \/ _` | '__/ __| +| (_| | (_) \ V V /| | | | | |_| | | | __/ | |_| | __/ (_| | | \__ \_ + \__,_|\___/ \_/\_/ |_| |_| \__|_| |_|\___| \__, |\___|\__,_|_| |___( ) + |___/ |/ + _ + __ _ _ __ __| | + / _` | '_ \ / _` | +| (_| | | | | (_| | + \__,_|_| |_|\__,_| + + _ _ _ +| |_| |__ ___ _ _ _ __ ___ _ __ ___ __ _(_)_ __ +| __| '_ \ / _ \ | | | | '__/ _ \ '_ ` _ \ / _` | | '_ \ +| |_| | | | __/ |_| | | | | __/ | | | | | (_| | | | | | + \__|_| |_|\___|\__, | |_| \___|_| |_| |_|\__,_|_|_| |_| + |___/ + _ _ _ + __ _ _ __ ___ (_) __ _| |__ | | ___ + / _` | '_ ` _ \| |/ _` | '_ \| |/ _ \ +| (_| | | | | | | | (_| | |_) | | __/ + \__,_|_| |_| |_|_|\__,_|_.__/|_|\___| + + _ _ _ _ _ _ +| |__ _ _ ___| |_ __ _ _ __ __| | ___ _ __ ___ | (_) | _____ +| '_ \| | | / __| __/ _` | '_ \ / _` |/ _ \ '__/ __| | | | |/ / _ \ +| |_) | |_| \__ \ || (_| | | | | (_| | __/ | \__ \_ | | | < __/ +|_.__/ \__, |___/\__\__,_|_| |_|\__,_|\___|_| |___( ) |_|_|_|\_\___| + |___/ |/ + _ _ _ _ _ _ _ +| |_| |__ ___ ___| |__ ___ _ __ ___ | (_) __ _| |__ | |_ ___ +| __| '_ \ / _ \ / __| '_ \ / _ \| '__/ _ \ | | |/ _` | '_ \| __/ __| +| |_| | | | __/ \__ \ | | | (_) | | | __/ | | | (_| | | | | |_\__ \ + \__|_| |_|\___| |___/_| |_|\___/|_| \___| |_|_|\__, |_| |_|\__|___/ + |___/ + __ _ _ _ _ + ___ / _| | |_ _____ ___ __ ___ | |_| |__ __ _| |_ __ _ + / _ \| |_ | __/ _ \ \ /\ / / '_ \/ __| | __| '_ \ / _` | __| / _` | +| (_) | _| | || (_) \ V V /| | | \__ \ | |_| | | | (_| | |_ | (_| | + \___/|_| \__\___/ \_/\_/ |_| |_|___/ \__|_| |_|\__,_|\__| \__,_| + + _ _ + ___ __ _(_) | ___ _ __ +/ __|/ _` | | |/ _ \| '__| +\__ \ (_| | | | (_) | | +|___/\__,_|_|_|\___/|_| + + _ _ _ _ + _ __ __ _ ___ ___ ___ ___ __ _| |_ ___| |_ __ _| |_ ___ __| | +| '_ \ / _` / __/ __|/ _ \/ __| / _` | __| / __| __/ _` | __/ _ \/ _` | +| |_) | (_| \__ \__ \ __/\__ \ | (_| | |_ \__ \ || (_| | || __/ (_| | +| .__/ \__,_|___/___/\___||___/ \__,_|\__| |___/\__\__,_|\__\___|\__,_| +|_| + _ _ _ _ +| |_(_)_ __ ___ ___ ___ | |__ _ _| |_ _ __ _____ _____ _ __ +| __| | '_ ` _ \ / _ \/ __| | '_ \| | | | __| | '_ \ / _ \ \ / / _ \ '__| +| |_| | | | | | | __/\__ \ | |_) | |_| | |_ | | | | __/\ V / __/ | + \__|_|_| |_| |_|\___||___/ |_.__/ \__,_|\__| |_| |_|\___| \_/ \___|_| + + _ _ _ _ _ + ___ __ _| | |___ __ _| |_ ___ _ __ | |_| |__ ___ + / __/ _` | | / __| / _` | __| / _ \| '_ \ | __| '_ \ / _ \ +| (_| (_| | | \__ \ | (_| | |_ | (_) | | | | | |_| | | | __/ + \___\__,_|_|_|___/ \__,_|\__| \___/|_| |_| \__|_| |_|\___| + + _ + _ __ ___ __ _ _ _| | __ _ _ __ _ __ _ _ _ __ +| '__/ _ \/ _` | | | | |/ _` | '__| | '__| | | | '_ \ +| | | __/ (_| | |_| | | (_| | | | | | |_| | | | |_ +|_| \___|\__, |\__,_|_|\__,_|_| |_| \__,_|_| |_(_) + |___/ + ____ _ + / ___|___ _ ____ _____ _ __ ___ ___| |_ _ +| | / _ \| '_ \ \ / / _ \ '__/ __|/ _ \ | | | | +| |__| (_) | | | \ V / __/ | \__ \ __/ | |_| |_ + \____\___/|_| |_|\_/ \___|_| |___/\___|_|\__, ( ) + |___/|/ + _ _ _ _ _ _ + __ _| | | ___ ___ _ __ ___(_) __| | ___ _ __ __ _| |_(_) ___ _ __ ___ + / _` | | | / __/ _ \| '_ \/ __| |/ _` |/ _ \ '__/ _` | __| |/ _ \| '_ \/ __| +| (_| | | | | (_| (_) | | | \__ \ | (_| | __/ | | (_| | |_| | (_) | | | \__ \ + \__,_|_|_| \___\___/|_| |_|___/_|\__,_|\___|_| \__,_|\__|_|\___/|_| |_|___/ + + __ _ _ + ___ / _| ___ _____ __ __ _ ___(_) __| | ___ _ _ ___ _ _ + / _ \| |_ / __|/ _ \ \/ / / _` / __| |/ _` |/ _ \ | | | |/ _ \| | | | +| (_) | _| \__ \ __/> < | (_| \__ \ | (_| | __/_ | |_| | (_) | |_| | + \___/|_| |___/\___/_/\_\ \__,_|___/_|\__,_|\___( ) \__, |\___/ \__,_| + |/ |___/ + _ + ___ __ _ _ __ _ __ ___ ___ ___| |_ ___ ___ _ __ ___ ___ + / __/ _` | '_ \ | '_ ` _ \ / _ \/ _ \ __| / __|/ _ \| '_ ` _ \ / _ \ +| (_| (_| | | | | | | | | | | __/ __/ |_ \__ \ (_) | | | | | | __/ + \___\__,_|_| |_| |_| |_| |_|\___|\___|\__| |___/\___/|_| |_| |_|\___| + + _ _ _ + ___ | |_| |__ ___ _ __ _ __ ___ ___ _ __ | | ___ + / _ \| __| '_ \ / _ \ '__| | '_ \ / _ \/ _ \| '_ \| |/ _ \ +| (_) | |_| | | | __/ | | |_) | __/ (_) | |_) | | __/ + \___/ \__|_| |_|\___|_| | .__/ \___|\___/| .__/|_|\___| + |_| |_| + _ _ + ___ _ __ ___ ___ ___ _ __ | |___ _(_) ___ ___ + / _ \| '_ \ / __/ _ \ / _ \| '__| | __\ \ /\ / / |/ __/ _ \ +| (_) | | | | (_| __/ | (_) | | | |_ \ V V /| | (_| __/ + \___/|_| |_|\___\___| \___/|_| \__| \_/\_/ |_|\___\___| + + _ _ _ _ + __ _ _ __ __| | | |_| |__ ___ _ _ _ __ ___ _ __ ___ __ _(_)_ __ + / _` | '_ \ / _` | | __| '_ \ / _ \ | | | | '__/ _ \ '_ ` _ \ / _` | | '_ \ +| (_| | | | | (_| | | |_| | | | __/ |_| | | | | __/ | | | | | (_| | | | | | + \__,_|_| |_|\__,_| \__|_| |_|\___|\__, | |_| \___|_| |_| |_|\__,_|_|_| |_| + |___/ + _ + _ __ ___ _ __ _ __ ___ __ _ _ __ ___ _ __ | |_ +| '_ \ / _ \ '__| '_ ` _ \ / _` | '_ \ / _ \ '_ \| __| +| |_) | __/ | | | | | | | (_| | | | | __/ | | | |_ +| .__/ \___|_| |_| |_| |_|\__,_|_| |_|\___|_| |_|\__| +|_| + _ __ _ +(_)_ __ / _| |_ _ ___ _ __ ___ ___ ___ ___ _ __ +| | '_ \| |_| | | | |/ _ \ '_ \ / __/ _ \/ __| / _ \| '_ \ +| | | | | _| | |_| | __/ | | | (_| __/\__ \ | (_) | | | | +|_|_| |_|_| |_|\__,_|\___|_| |_|\___\___||___/ \___/|_| |_| + + _ _ __ + _ _ ___ _ _ _ __ | (_)/ _| ___ +| | | |/ _ \| | | | '__| | | | |_ / _ \ +| |_| | (_) | |_| | | | | | _| __/_ + \__, |\___/ \__,_|_| |_|_|_| \___(_) + |___/ + _____ _ + | ____|_ _____ _ __ _ _ ___ _ __ ___ (_)___ + | _| \ \ / / _ \ '__| | | |/ _ \| '_ \ / _ \ | / __| + | |___ \ V / __/ | | |_| | (_) | | | | __/ | \__ \ + |_____| \_/ \___|_| \__, |\___/|_| |_|\___| |_|___/ + |___/ + __ _ _ _ + __ ___ ____ _ _ __ ___ ___ / _| | |_| |__ (_)___ + / _` \ \ /\ / / _` | '__/ _ \ / _ \| |_ | __| '_ \| / __| +| (_| |\ V V / (_| | | | __/ | (_) | _| | |_| | | | \__ \ + \__,_| \_/\_/ \__,_|_| \___| \___/|_| \__|_| |_|_|___/ + + _ _ + __| (_)___ ___ _ __ ___ _ __ __ _ _ __ ___ _ _ + / _` | / __|/ __| '__/ _ \ '_ \ / _` | '_ \ / __| | | | +| (_| | \__ \ (__| | | __/ |_) | (_| | | | | (__| |_| | + \__,_|_|___/\___|_| \___| .__/ \__,_|_| |_|\___|\__, | + |_| |___/ + _ _ _ _ +| |__ ___| |___ _____ ___ _ __ | |_| |__ ___ +| '_ \ / _ \ __\ \ /\ / / _ \/ _ \ '_ \ | __| '_ \ / _ \ +| |_) | __/ |_ \ V V / __/ __/ | | | | |_| | | | __/ +|_.__/ \___|\__| \_/\_/ \___|\___|_| |_| \__|_| |_|\___| + + _ _ + __ _ ___ __ _ _ _ __ _(_)_ __ | |_ __ _ _ __ ___ ___ + / _` |/ __/ _` | | | |/ _` | | '_ \| __/ _` | '_ \ / __/ _ \ +| (_| | (_| (_| | |_| | (_| | | | | | || (_| | | | | (_| __/ + \__,_|\___\__, |\__,_|\__,_|_|_| |_|\__\__,_|_| |_|\___\___| + |_| + + ___ ___ ___ _ __ +/ __|/ _ \/ _ \ '_ \ +\__ \ __/ __/ | | | +|___/\___|\___|_| |_| + + __ _ _ _ + __ _ ___ / _| __ _ _ __ ___ (_) (_) __ _ _ __ + / _` / __| | |_ / _` | '_ ` _ \| | | |/ _` | '__| +| (_| \__ \ | _| (_| | | | | | | | | | (_| | | + \__,_|___/ |_| \__,_|_| |_| |_|_|_|_|\__,_|_| + + _ _ +__ ____ _| | |_ __ __ _ _ __ ___ _ __ ___ _ __ +\ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__| / _ \| '__| + \ V V / (_| | | | |_) | (_| | |_) | __/ | | (_) | | + \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_| \___/|_| + |_| |_| + _ _ _ __ _ _ +(_)_ __ ___| |_ __ _ _ __ | |_ / _|_ __(_) ___ _ __ __| | +| | '_ \/ __| __/ _` | '_ \| __| | |_| '__| |/ _ \ '_ \ / _` | +| | | | \__ \ || (_| | | | | |_ | _| | | | __/ | | | (_| |_ +|_|_| |_|___/\__\__,_|_| |_|\__| |_| |_| |_|\___|_| |_|\__,_(_) + + _____ _ _ _ _ +|_ _| |__ ___ ___| |__ ___ _ __ ___ (_) ___ __ _| | + | | | '_ \ / _ \ / __| '_ \ / _ \ '_ ` _ \| |/ __/ _` | | + | | | | | | __/ | (__| | | | __/ | | | | | | (_| (_| | | + |_| |_| |_|\___| \___|_| |_|\___|_| |_| |_|_|\___\__,_|_| + + _ _ _ _ _ _ _ _ + __ _ ___| |_(_) ___ _ __ (_) |_ ___ _ __ | |_ __ _(_) |___ (_)___ + / _` |/ __| __| |/ _ \| '_ \ | | __| / _ \ '_ \| __/ _` | | / __| | / __| +| (_| | (__| |_| | (_) | | | | | | |_ | __/ | | | || (_| | | \__ \ | \__ \ + \__,_|\___|\__|_|\___/|_| |_| |_|\__| \___|_| |_|\__\__,_|_|_|___/ |_|___/ + + _ _ _ +| | ___ ___ ___ __ _____ _ __| |_| |__ +| |/ _ \/ __/ __| \ \ /\ / / _ \| '__| __| '_ \ +| | __/\__ \__ \ \ V V / (_) | | | |_| | | | +|_|\___||___/___/ \_/\_/ \___/|_| \__|_| |_| + + _ _ _ _ + __ _ _ __ __ _| |_ _ ___(_)_ __ __ _ | |_| |__ __ _ _ __ + / _` | '_ \ / _` | | | | |_ / | '_ \ / _` | | __| '_ \ / _` | '_ \ +| (_| | | | | (_| | | |_| |/ /| | | | | (_| | | |_| | | | (_| | | | | + \__,_|_| |_|\__,_|_|\__, /___|_|_| |_|\__, | \__|_| |_|\__,_|_| |_| + |___/ |___/ + _ _ _ _ + ___ _ __ (_) ___ _ _(_)_ __ __ _ / \ | |_ __ _ _ __ _ _ + / _ \ '_ \ | |/ _ \| | | | | '_ \ / _` | / _ \| __| / _` | '_ \| | | | +| __/ | | || | (_) | |_| | | | | | (_| |_ / ___ \ |_ | (_| | | | | |_| | + \___|_| |_|/ |\___/ \__, |_|_| |_|\__, (_) /_/ \_\__| \__,_|_| |_|\__, | + |__/ |___/ |___/ |___/ + _ _ _ _ + _ __ __ _| |_ ___ | |_| |__ ___ ___ ___ ___(_)_ __ +| '__/ _` | __/ _ \ | __| '_ \ / _ \/ __|/ _ \ / __| \ \/ / +| | | (_| | || __/_ | |_| | | | __/\__ \ __/ \__ \ |> < +|_| \__,_|\__\___( ) \__|_| |_|\___||___/\___| |___/_/_/\_\ + |/ + _ _ _ + _ __ (_) ___ ___ ___ ___ __ _ _ __ ___ __ _| |__ ___ _ _| |_ +| '_ \| |/ _ \/ __/ _ \/ __| / _` | '__/ _ \ / _` | '_ \ / _ \| | | | __| +| |_) | | __/ (_| __/\__ \ | (_| | | | __/ | (_| | |_) | (_) | |_| | |_ +| .__/|_|\___|\___\___||___/ \__,_|_| \___| \__,_|_.__/ \___/ \__,_|\__| +|_| + _ _ _ _ + _ __ ___ ___ _ __ __ _(_) |_| |__ __ _| |__ ___ _ __ ___ +| '_ ` _ \ / _ \ '_ \ \ \ /\ / / | __| '_ \ \ \ /\ / / '_ \ / _ \| '_ ` _ \ +| | | | | | __/ | | | \ V V /| | |_| | | | \ V V /| | | | (_) | | | | | | +|_| |_| |_|\___|_| |_| \_/\_/ |_|\__|_| |_| \_/\_/ |_| |_|\___/|_| |_| |_| + + ___ __ _ _ +|_ _| / _| ___| | |_ __ _ _ __ + | | | |_ / _ \ | __| / _` | '_ \ + | | | _| __/ | |_ | (_| | | | | +|___| |_| \___|_|\__| \__,_|_| |_| + + _ _ _ _ +(_)_ __ ___ _ __ ___ ___ __| (_) __ _| |_ ___ +| | '_ ` _ \| '_ ` _ \ / _ \/ _` | |/ _` | __/ _ \ +| | | | | | | | | | | | __/ (_| | | (_| | || __/ +|_|_| |_| |_|_| |_| |_|\___|\__,_|_|\__,_|\__\___| + + _ _ + ___ _ _ _ __ ___ _ __ __ _| |_ | |_ ___ _ _ ___ ___ +/ __| | | | '_ ` _ \| '_ \ / _` | __| _____ | __/ _ \ | | | / __|/ _ \ +\__ \ |_| | | | | | | |_) | (_| | |_ |_____| | || (_) | | |_| \__ \ __/ +|___/\__, |_| |_| |_| .__/ \__,_|\__| \__\___/ \__,_|___/\___| + |___/ |_| + _ _ __ __ __ + __ _ ___ ___ (_)_ __ (_)_ __ __ _ ___ / _| | \/ | __ ___ __ + / _` | / __/ _ \| | '_ \| | '_ \ / _` | / _ \| |_ | |\/| |/ _` \ \/ / +| (_| | | (_| (_) | | | | | | | | | (_| | | (_) | _| | | | | (_| |> < + \__,_| \___\___/|_|_| |_|_|_| |_|\__, | \___/|_| |_| |_|\__,_/_/\_\ + |___/ + ____ _ _ _ +| __ ) ___ ___ _ __| |__ ___ | |__ _ __ ___ ( )___ +| _ \ / _ \/ _ \ '__| '_ \ / _ \| '_ \| '_ ` _ \|// __| +| |_) | __/ __/ | | |_) | (_) | | | | | | | | | \__ \ +|____/ \___|\___|_| |_.__/ \___/|_| |_|_| |_| |_| |___/ + + + _ __ ___ ___ _ __ ___ +| '_ ` _ \ / _ \| '__/ _ \ +| | | | | | (_) | | | __/ +|_| |_| |_|\___/|_| \___| + + _ _ __ _ _ + ___ __ _| |_(_)___ / _| __ _ ___| |_ ___ _ __ _ _ | |_ ___ +/ __|/ _` | __| / __| |_ / _` |/ __| __/ _ \| '__| | | | | __/ _ \ +\__ \ (_| | |_| \__ \ _| (_| | (__| || (_) | | | |_| | | || (_) | +|___/\__,_|\__|_|___/_| \__,_|\___|\__\___/|_| \__, | \__\___/ + |___/ + _ _ _ _ + _ __ ___ ___ | |_| |__ __ _ _ __ | |_| |__ ___ +| '_ ` _ \ / _ \ | __| '_ \ / _` | '_ \ | __| '_ \ / _ \ +| | | | | | __/ | |_| | | | (_| | | | | | |_| | | | __/ +|_| |_| |_|\___| \__|_| |_|\__,_|_| |_| \__|_| |_|\___| + + + ___ _ __ __ _ __ _ _ _ ___ __ _____ __ _ _ _ ___ + / _ \| '_ \ / _` |/ _` | | | |/ _ \ \ \ / / _ \ / _` | | | |/ _ \ +| (_) | |_) | (_| | (_| | |_| | __/ \ V / (_) | (_| | |_| | __/ + \___/| .__/ \__,_|\__, |\__,_|\___| \_/ \___/ \__, |\__,_|\___| + |_| |_| |___/ + _ _ _ _ _ _ _ +__ _____ _ __ __| | ( | )___ _ __ ___ _ __ __ _| |_| |__ _ _( | ) +\ \ /\ / / _ \| '__/ _` | V V/ _ \ '_ ` _ \| '_ \ / _` | __| '_ \| | | |V V + \ V V / (_) | | | (_| | | __/ | | | | | |_) | (_| | |_| | | | |_| | _ + \_/\_/ \___/|_| \__,_| \___|_| |_| |_| .__/ \__,_|\__|_| |_|\__, | (_) + |_| |___/ + _ _ _ _ _ + / \ | (_)___| |_ __ _(_)_ __ + _____ _____ / _ \ | | / __| __/ _` | | '__| + |_____|_____| / ___ \| | \__ \ || (_| | | | + /_/ \_\_|_|___/\__\__,_|_|_| + + ____ _ _ _ ____ _ __ __ _ _ + / ___|___ ___ | | _____ ( | ) ___|(_)_ __ | \/ | ___ _ __( | ) +| | / _ \ / _ \| |/ / _ \ V V\___ \| \ \/ / | |\/| |/ _ \ '_ \V V +| |__| (_) | (_) | < __/_ ___) | |> < | | | | __/ | | | + \____\___/ \___/|_|\_\___( ) |____/|_/_/\_\ |_| |_|\___|_| |_| + |/ diff --git a/externals/figlet/tests/res004.txt b/externals/figlet/tests/res004.txt new file mode 100644 index 0000000000..8ece9309ac --- /dev/null +++ b/externals/figlet/tests/res004.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ +/ / | |/ _ \/ __| '_ \| |/ / \ \ +\ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / +|_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ +( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___ / | || | _ ( ) \ ( ) +| | | '_ \ / _ \ | | || |(_) \|| ||/ +| | | | | | __/ | |__ _| > > +|_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| +\ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | +|_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/externals/figlet/tests/res005.txt b/externals/figlet/tests/res005.txt new file mode 100644 index 0000000000..0e0921ef31 --- /dev/null +++ b/externals/figlet/tests/res005.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + \ \| | _| |__ ___ ___ (_)/ / + \ \ |/ / '_ \/ __|/ _ \| / / + / / <| | | \__ \ (_) | \ \ + /_/|_|\_\_| |_|___/\___// |\_\ + |__/ + _ __ _ __ _ ____ _ _ _ + ___| |_ ___ / /__ ___ _| |/ _|_ __ (_) / __ \| | _| |__ ___ ___ (_) + / __| __/ _ \ / (_) \/ / | | | | |_| '_ \| |/ / _` | |/ / '_ \/ __|/ _ \| | + | (__| || __// / _ > <| |_| | | _| | | | | | (_| | <| | | \__ \ (_) | | + \___|\__\___/_/ (_)_/\_\\__,_|_|_| |_| |_|_|\ \__,_|_|\_\_| |_|___/\___// | + \____/ |__/ + _ __ _ _ _ _ __ + | |__ ___ \ \ __| | ___| |_ __ _| |_ ___ _ __ __ _ ___ | | / / + | '_ \/ __| \ \/ _` | / _ \ __/ _` | __/ _ \| '__/ _` |/ _ \| | / / + | | | \__ \ / / (_| || __/ || (_| | || (_) | | | (_| | (_) | |/ / + |_| |_|___/ /_/ \__,_(_)___|\__\__,_|\__\___/|_| \__, |\___/|_/_/ + |___/ + + __/\__ _ __ + \ / | '_ \ _____ + /_ _\ | | | |_____| + \/ |_| |_| + + _ __ _ _ _ __ + _ ___| |__ ___ __ _ _ __ __ _ \ \| | _| |__ ___ ___ (_)/ / + (_) _ \ '_ \ / __/ _` | '_ \ / _` | \ \ |/ / '_ \/ __|/ _ \| / / + | __/ | | | (_| (_| | |_) | (_| | / / <| | | \__ \ (_) | \ \ + (_)___|_| |_|\___\__,_| .__/ \__,_| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + _ _ _ _ _ _ + __ ____ _| |_ _ __ _ _ ___ _| || | / | ___ _ __ (_) | + \ \/ / _` | __| '_ \| | | / __| (_) || |_| | / _ \ '_ \| | | + > < (_| | |_| | | | |_| \__ \ _|__ _| | | __/ | | | | | + /_/\_\__,_|\__|_| |_|\__, |___/ (_) |_| |_| \___|_| |_|_|_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__/ _` |/ _ \ '_ \ | '__/ _ \| '__| '__/ _ \ + | | | (_| | __/ | | | | | | (_) | | | | | __/ + |_| \__,_|\___|_| |_| |_| \___/|_| |_| \___| + + _ _ _ _ + _ __ ___| | _____ | |_ __| | ___| |_ ___ ___ _ ____ _____ _ __ _ _ + | '_ \ / _ \ |/ / _ \| __| / _` |/ _ \ __/ __/ _ \ '_ \ \/ / _ \ '_ \| | | | + | | | | __/ < (_) | |_ | (_| | __/ || (_| __/ |_) > < __/ | | | |_| | + |_| |_|\___|_|\_\___/ \__| \__,_|\___|\__\___\___| .__/_/\_\___|_| |_|\__,_| + |_| + ___ _ + ( ) \ ( ) + |/ | | \| + > > + | | + /_/ + _ __ _ _ _ __ + _ ___| |__ ___ __ _ _ __ __ _ \ \| | _| |__ ___ ___ (_)/ / + (_) _ \ '_ \ / __/ _` | '_ \ / _` | \ \ |/ / '_ \/ __|/ _ \| / / + | __/ | | | (_| (_| | |_) | (_| | / / <| | | \__ \ (_) | \ \ + (_)___|_| |_|\___\__,_| .__/ \__,_| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + ___ _ _ _ _ _ _ + ( ) \ ( ) _| || | / | ___ _ __ (_) | + |/ | | \| (_) || |_| | / _ \ '_ \| | | + > > _|__ _| | | __/ | | | | | + | | (_) |_| |_| \___|_| |_|_|_| + /_/ + _ _ _ _ __ _ _ _ __ + | |_ ___ | |_ __ ___| |__ | |_ \ \| | _| |__ ___ ___ (_)/ / + | __/ _ \| | '_ \ / _ \ '_ \| __| \ \ |/ / '_ \/ __|/ _ \| / / + | || (_) | | |_) | | __/ | | | |_ / / <| | | \__ \ (_) | \ \ + \__\___/|_| .__/ \___|_| |_|\__| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + _ _ _ _ + ___ _ __ ___| | _____(_) |__ | |_ + / __| '_ \ / _ \ |/ / __| | '_ \| __| + \__ \ | | | __/ < (__| | | | | |_ + |___/_| |_|\___|_|\_\___|_|_| |_|\__| + + _ _ __ _ _ _ __ __ __ + ___ ___ ___ | |__ | |_ \ \ __| | | ___(_)/ _|/ _|_ _ ___ __ _ / / + / _ \/ __|/ _ \| '_ \| __| \ \/ _` | |/ _ \ | |_| |_| | | / __|/ _` / / + | __/\__ \ (_) | | | | |_ / / (_| | | __/ | _| _| |_| \__ \ (_| \ \ + \___||___/\___/|_| |_|\__| /_/ \__,_|_|\___|_|_| |_| \__,_|___/\__,_|\_\ + + _ _ _ _ _ + | | | ___| |__ ___ | |_( )_ __ ___ _ __ __ _ + | | |/ _ \ '_ \/ __| | __|/| '_ \ / _ \ '__/ _` | + | | | __/ | | \__ \ | |_ | | | | __/ | | (_| | + |_|_|\___|_| |_|___/ \__| |_| |_|\___|_| \__,_| + + _ _ + ___| |_ _ __ (_)_ __ ___ ___ + / __| __| '_ \| | '__/ __/ __| + \__ \ |_| |_) | | | | (__\__ \ + |___/\__| .__/|_|_| \___|___/ + |_| + _ _ _ __ _ _ __ + ___(_) |__ | |_ \ \| |__ ___(_)_ __ ___ / / + / __| | '_ \| __| \ \ '_ \ / __| | '__/ _ \/ / + \__ \ | | | | |_ / / | | | (__| | | | __/\ \ + |___/_|_| |_|\__| /_/|_| |_|\___|_|_| \___| \_\ + + _ _ _ _ _ + _ __ ___| | _____(_) |__ ___ | |_( )_ __ ___ __ ___ __ + | '_ \ / _ \ |/ / __| | '_ \ / __| | __|/| '_ \/ __|/ _` \ \ /\ / / + _| | | | __/ < (__| | | | | (__ | |_ | | | \__ \ (_| |\ V V / + (_)_| |_|\___|_|\_\___|_|_| |_|\___| \__| |_| |_|___/\__,_| \_/\_/ + + _ + _ __ (_) + | '_ \| | _____ _____ + | | | | | |_____|_____| + |_| |_|_| + + _ _ _ _ _ _ _ + | | _____ _____ __| | _ __ __ _(_) |__ ___ __| |_| || |_ + | |/ _ \ \ / / _ \/ _` |_____| '_ \ / _` | | '_ \ / _ \/ _` |_ .. _| + | | __/\ V / __/ (_| |_____| | | | (_| | | |_) | __/ (_| |_ _| + |_|\___| \_/ \___|\__,_| |_| |_|\__,_|_|_.__/ \___|\__,_| |_||_| + diff --git a/externals/figlet/tests/res006.txt b/externals/figlet/tests/res006.txt new file mode 100644 index 0000000000..8ece9309ac --- /dev/null +++ b/externals/figlet/tests/res006.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ +/ / | |/ _ \/ __| '_ \| |/ / \ \ +\ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / +|_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ +( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___ / | || | _ ( ) \ ( ) +| | | '_ \ / _ \ | | || |(_) \|| ||/ +| | | | | | __/ | |__ _| > > +|_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| +\ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | +|_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/externals/figlet/tests/res007.txt b/externals/figlet/tests/res007.txt new file mode 100644 index 0000000000..3f467dc2fd --- /dev/null +++ b/externals/figlet/tests/res007.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ + / / | |/ _ \/ __| '_ \| |/ / \ \ + \ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| + |__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | + /_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / + |_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ + | (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ + | | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / + | | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < + |_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| + | __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ + ( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ + | (_)_ __ ___ / | || | _ ( ) \ ( ) + | | | '_ \ / _ \ | | || |(_) \|| ||/ + | | | | | | __/ | |__ _| > > + |_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ + / / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| + \ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ + | |_| |__ (_) ___| | _____ _ __ ___ + | __| '_ \| |/ __| |/ / _ \ '_ \/ __| + | |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ + / // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ + \ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | + | (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ + / __|/ __| '__| | '_ \| __/ __| + \__ \ (__| | | | |_) | |_\__ \ + |___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ + | (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | + |_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | + |_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/externals/figlet/tests/res008.txt b/externals/figlet/tests/res008.txt new file mode 100644 index 0000000000..3048a10cfa --- /dev/null +++ b/externals/figlet/tests/res008.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ + / / | |/ _ \/ __| '_ \| |/ / \ \ + \ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| + |__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | + /_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / + |_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ + | (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ + | | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / + | | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < + |_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| + | __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ + ( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ + | (_)_ __ ___ / | || | _ ( ) \ ( ) + | | | '_ \ / _ \ | | || |(_) \|| ||/ + | | | | | | __/ | |__ _| > > + |_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ + / / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| + \ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ + | |_| |__ (_) ___| | _____ _ __ ___ + | __| '_ \| |/ __| |/ / _ \ '_ \/ __| + | |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ + / // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ + \ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | + | (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ + / __|/ __| '__| | '_ \| __/ __| + \__ \ (__| | | | |_) | |_\__ \ + |___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ + | (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | + |_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | + |_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/externals/figlet/tests/res009.txt b/externals/figlet/tests/res009.txt new file mode 100644 index 0000000000..57f8690c8c --- /dev/null +++ b/externals/figlet/tests/res009.txt @@ -0,0 +1,138 @@ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __\ \ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ +\ \ | || (_) |\__ \| | | || < / / + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ + (_) ___ ___ | |__ | | __ / __ \ (_) _ __ / _|| | _ _ __ __ _ / / + | | / _ \ / __|| '_ \ | |/ // / _` || || '_ \ | |_ | || | | |\ \/ /(_) / / + | || (_) |\__ \| | | || <| | (_| || || | | || _|| || |_| | > < _ / / + _/ | \___/ |___/|_| |_||_|\_\\ \__,_||_||_| |_||_| |_| \__,_|/_/\_\(_)/_/ +|__/ \____/ + _ __ _ _ _ + ___ | |_ ___ / /| | ___ __ _ _ __ ___ | |_ __ _ | |_ ___ + / _ \| __|/ __| / / | | / _ \ / _` || '__|/ _ \ | __|/ _` || __|/ _ \ +| __/| |_| (__ / / | || (_) || (_| || | | (_) || |_| (_| || |_| __/ _ + \___| \__|\___|/_/ |_| \___/ \__, ||_| \___/ \__|\__,_| \__|\___|(_) + |___/ + _ __ _ + __| |\ \ ___ | |__ _ __ __/\__ + / _` | \ \ / __|| '_ \ _____ | '_ \ \ / +| (_| | / / \__ \| | | | |_____|| | | | /_ _\ + \__,_|/_/ |___/|_| |_| |_| |_| \/ + + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __\ \ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ +\ \ | || (_) |\__ \| | | || < / / + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ + |__/ + _ _ _ _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | |(_) _ __ ___ / || || | _ + / _` || '_ \ / _` | / __|| '_ \ / _ \(_) | || || '_ \ / _ \ | || || |_(_) +| (_| || |_) || (_| || (__ | | | || __/ _ | || || | | || __/ | ||__ _|_ + \__,_|| .__/ \__,_| \___||_| |_| \___|(_) |_||_||_| |_| \___| |_| |_| (_) + |_| + _ + ___ _ _ _ __ | |_ __ _ __ __ ___ _ __ _ __ ___ _ __ +/ __|| | | || '_ \ | __|/ _` |\ \/ / / _ \| '__|| '__|/ _ \ | '__| +\__ \| |_| || | | || |_| (_| | > < | __/| | | | | (_) || | +|___/ \__, ||_| |_| \__|\__,_|/_/\_\ \___||_| |_| \___/ |_| + |___/ + + _ __ ___ __ _ _ __ +| '_ \ / _ \ / _` || '__| +| | | || __/| (_| || | +|_| |_| \___| \__,_||_| + + _ _ + _ _ _ __ ___ __ __ _ __ ___ ___ | |_ ___ __| | +| | | || '_ \ / _ \\ \/ /| '_ \ / _ \ / __|| __|/ _ \ / _` | +| |_| || | | || __/ > < | |_) || __/| (__ | |_| __/| (_| | + \__,_||_| |_| \___|/_/\_\| .__/ \___| \___| \__|\___| \__,_| + |_| + _ _ _ __ _ +| |_ ___ | | __ ___ _ __ ( )\ \ ( ) +| __|/ _ \ | |/ // _ \| '_ \ \| | ||/ +| |_| (_) || <| __/| | | | > > + \__|\___/ |_|\_\\___||_| |_| | | + /_/ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __\ \ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ +\ \ | || (_) |\__ \| | | || < / / + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ + |__/ + _ _ _ _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | |(_) _ __ ___ / || || | _ + / _` || '_ \ / _` | / __|| '_ \ / _ \(_) | || || '_ \ / _ \ | || || |_(_) +| (_| || |_) || (_| || (__ | | | || __/ _ | || || | | || __/ | ||__ _|_ + \__,_|| .__/ \__,_| \___||_| |_| \___|(_) |_||_||_| |_| \___| |_| |_| (_) + |_| + _ __ _ +( )\ \ ( ) + \| | ||/ + > > + | | + /_/ + __ _ _ _ __ _ _ _ _ + / / (_) ___ ___ | |__ | | __\ \ | |_ | |__ ___ _ __ | | ___ | |_ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ | __|| '_ \ / _ \ | '_ \ | | / _ \ | __| +\ \ | || (_) |\__ \| | | || < / / | |_ | | | || __/ | |_) || || (_) || |_ + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ \__||_| |_| \___| | .__/ |_| \___/ \__| + |__/ |_| + _ _ _ _ +| |_ | |__ (_) ___ | | __ ___ _ __ ___ +| __|| '_ \ | | / __|| |/ // _ \| '_ \ / __| +| |_ | | | || || (__ | <| __/| | | |\__ \ + \__||_| |_||_| \___||_|\_\\___||_| |_||___/ + + __ __ __ _ _ _ __ + / / __ _ ___ _ _ / _| / _|(_) ___ | | __| |\ \ +/ / / _` |/ __|| | | || |_ | |_ | | / _ \| | / _` | \ \ +\ \| (_| |\__ \| |_| || _|| _|| || __/| || (_| | / / + \_\\__,_||___/ \__,_||_| |_| |_| \___||_| \__,_|/_/ + + _ _ _ _ +| |_ | |__ ___ ___ ___ __ _ _ __ ___ _ __ ( )| |_ +| __|| '_ \ / _ \ / __| / _ \ / _` || '__|/ _ \| '_ \|/ | __| +| |_ | | | || (_) |\__ \| __/ | (_| || | | __/| | | | | |_ + \__||_| |_| \___/ |___/ \___| \__,_||_| \___||_| |_| \__| + + _ _ _ _ _ + ___ | |__ ___ | || | ___ ___ _ __ (_) _ __ | |_ ___ +/ __|| '_ \ / _ \| || | / __| / __|| '__|| || '_ \ | __|/ __| +\__ \| | | || __/| || | \__ \| (__ | | | || |_) || |_ \__ \ +|___/|_| |_| \___||_||_| |___/ \___||_| |_|| .__/ \__||___/ + |_| + __ _ _ __ _ _ _ + / / ___ _ __ (_) ___ | |__ \ \ | |_ | |__ (_) ___ +/ / / _ \| '__|| | / __|| '_ \ \ \ | __|| '_ \ | |/ __| +\ \| __/| | | || (__ | | | | / / | |_ | | | || |\__ \ + \_\\___||_| |_| \___||_| |_|/_/ \__||_| |_||_||___/ + + _ _ _ _ _ +__ __ __ _ ___ _ __ ( )| |_ ___ | |__ (_) ___ | | __ ___ _ __ +\ \ /\ / // _` |/ __|| '_ \|/ | __| / __|| '_ \ | | / __|| |/ // _ \| '_ \ + \ V V /| (_| |\__ \| | | | | |_ | (__ | | | || || (__ | <| __/| | | | _ + \_/\_/ \__,_||___/|_| |_| \__| \___||_| |_||_| \___||_|\_\\___||_| |_|(_) + + _ + (_) _ __ + _____ _____ | || '_ \ + |_____||_____| | || | | | + |_||_| |_| + + _ _ _ _ _ _ + _| || |_ __| | ___ | |__ (_) __ _ _ __ __| | ___ __ __ ___ +|_ .. _| / _` | / _ \| '_ \ | | / _` || '_ \ _____ / _` | / _ \\ \ / // _ \ +|_ _|| (_| || __/| |_) || || (_| || | | ||_____|| (_| || __/ \ V /| __/ + |_||_| \__,_| \___||_.__/ |_| \__,_||_| |_| \__,_| \___| \_/ \___| + + _ +| | +| | +| | +|_| + diff --git a/externals/figlet/tests/res010.txt b/externals/figlet/tests/res010.txt new file mode 100644 index 0000000000..43a2523636 --- /dev/null +++ b/externals/figlet/tests/res010.txt @@ -0,0 +1,156 @@ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __ \ \ + / / | | / _ \ / __| | '_ \ | |/ / \ \ + \ \ | | | (_) | \__ \ | | | | | < / / + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ + |__/ + _ _ _ ____ _ __ _ + (_) ___ ___ | |__ | | __ / __ \ (_) _ __ / _| | | _ _ + | | / _ \ / __| | '_ \ | |/ / / / _` | | | | '_ \ | |_ | | | | | | + | | | (_) | \__ \ | | | | | < | | (_| | | | | | | | | _| | | | |_| | + _/ | \___/ |___/ |_| |_| |_|\_\ \ \__,_| |_| |_| |_| |_| |_| \__,_| + |__/ \____/ + __ _ __ _ + __ __ _ / / ___ | |_ ___ / / | | ___ __ _ _ __ + \ \/ / (_) / / / _ \ | __| / __| / / | | / _ \ / _` | | '__| + > < _ / / | __/ | |_ | (__ / / | | | (_) | | (_| | | | + /_/\_\ (_) /_/ \___| \__| \___| /_/ |_| \___/ \__, | |_| + |___/ + _ _ _ __ _ + ___ | |_ __ _ | |_ ___ __| | \ \ ___ | |__ + / _ \ | __| / _` | | __| / _ \ / _` | \ \ / __| | '_ \ + | (_) | | |_ | (_| | | |_ | __/ _ | (_| | / / \__ \ | | | | + \___/ \__| \__,_| \__| \___| (_) \__,_| /_/ |___/ |_| |_| + + + _ __ __/\__ + _____ | '_ \ \ / + |_____| | | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __ \ \ + / / | | / _ \ / __| | '_ \ | |/ / \ \ + \ \ | | | (_) | \__ \ | | | | | < / / + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ + |__/ + _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | | (_) _ __ ___ + / _` | | '_ \ / _` | / __| | '_ \ / _ \ (_) | | | | | '_ \ / _ \ + | (_| | | |_) | | (_| | | (__ | | | | | __/ _ | | | | | | | | | __/ + \__,_| | .__/ \__,_| \___| |_| |_| \___| (_) |_| |_| |_| |_| \___| + |_| + _ _ _ _ + / | | || | _ ___ _ _ _ __ | |_ __ _ __ __ + | | | || |_ (_) / __| | | | | | '_ \ | __| / _` | \ \/ / + | | |__ _| _ \__ \ | |_| | | | | | | |_ | (_| | > < + |_| |_| (_) |___/ \__, | |_| |_| \__| \__,_| /_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ | '__| | '__| / _ \ | '__| | '_ \ / _ \ / _` | | '__| + | __/ | | | | | (_) | | | | | | | | __/ | (_| | | | + \___| |_| |_| \___/ |_| |_| |_| \___| \__,_| |_| + + _ _ + _ _ _ __ ___ __ __ _ __ ___ ___ | |_ ___ __| | + | | | | | '_ \ / _ \ \ \/ / | '_ \ / _ \ / __| | __| / _ \ / _` | + | |_| | | | | | | __/ > < | |_) | | __/ | (__ | |_ | __/ | (_| | + \__,_| |_| |_| \___| /_/\_\ | .__/ \___| \___| \__| \___| \__,_| + |_| + _ _ _ __ _ + | |_ ___ | | __ ___ _ __ ( ) \ \ ( ) + | __| / _ \ | |/ / / _ \ | '_ \ \| | | |/ + | |_ | (_) | | < | __/ | | | | > > + \__| \___/ |_|\_\ \___| |_| |_| | | + /_/ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __ \ \ + / / | | / _ \ / __| | '_ \ | |/ / \ \ + \ \ | | | (_) | \__ \ | | | | | < / / + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ + |__/ + _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | | (_) _ __ ___ + / _` | | '_ \ / _` | / __| | '_ \ / _ \ (_) | | | | | '_ \ / _ \ + | (_| | | |_) | | (_| | | (__ | | | | | __/ _ | | | | | | | | | __/ + \__,_| | .__/ \__,_| \___| |_| |_| \___| (_) |_| |_| |_| |_| \___| + |_| + _ _ _ _ __ _ + / | | || | _ ( ) \ \ ( ) + | | | || |_ (_) \| | | |/ + | | |__ _| _ > > + |_| |_| (_) | | + /_/ + __ _ _ _ __ _ _ + / / (_) ___ ___ | |__ | | __ \ \ | |_ | |__ ___ + / / | | / _ \ / __| | '_ \ | |/ / \ \ | __| | '_ \ / _ \ + \ \ | | | (_) | \__ \ | | | | | < / / | |_ | | | | | __/ + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ \__| |_| |_| \___| + |__/ + _ _ + _ __ | | ___ | |_ + | '_ \ | | / _ \ | __| + | |_) | | | | (_) | | |_ + | .__/ |_| \___/ \__| + |_| + _ _ _ _ + | |_ | |__ (_) ___ | | __ ___ _ __ ___ + | __| | '_ \ | | / __| | |/ / / _ \ | '_ \ / __| + | |_ | | | | | | | (__ | < | __/ | | | | \__ \ + \__| |_| |_| |_| \___| |_|\_\ \___| |_| |_| |___/ + + __ __ __ _ _ _ __ + / / __ _ ___ _ _ / _| / _| (_) ___ | | __| | \ \ + / / / _` | / __| | | | | | |_ | |_ | | / _ \ | | / _` | \ \ + \ \ | (_| | \__ \ | |_| | | _| | _| | | | __/ | | | (_| | / / + \_\ \__,_| |___/ \__,_| |_| |_| |_| \___| |_| \__,_| /_/ + + _ _ _ _ + | |_ | |__ ___ ___ ___ __ _ _ __ ___ _ __ ( ) | |_ + | __| | '_ \ / _ \ / __| / _ \ / _` | | '__| / _ \ | '_ \ |/ | __| + | |_ | | | | | (_) | \__ \ | __/ | (_| | | | | __/ | | | | | |_ + \__| |_| |_| \___/ |___/ \___| \__,_| |_| \___| |_| |_| \__| + + _ _ _ _ _ + ___ | |__ ___ | | | | ___ ___ _ __ (_) _ __ | |_ ___ + / __| | '_ \ / _ \ | | | | / __| / __| | '__| | | | '_ \ | __| / __| + \__ \ | | | | | __/ | | | | \__ \ | (__ | | | | | |_) | | |_ \__ \ + |___/ |_| |_| \___| |_| |_| |___/ \___| |_| |_| | .__/ \__| |___/ + |_| + __ _ _ __ _ _ _ + / / ___ _ __ (_) ___ | |__ \ \ | |_ | |__ (_) ___ + / / / _ \ | '__| | | / __| | '_ \ \ \ | __| | '_ \ | | / __| + \ \ | __/ | | | | | (__ | | | | / / | |_ | | | | | | \__ \ + \_\ \___| |_| |_| \___| |_| |_| /_/ \__| |_| |_| |_| |___/ + + _ _ + __ __ __ _ ___ _ __ ( ) | |_ + \ \ /\ / / / _` | / __| | '_ \ |/ | __| + \ V V / | (_| | \__ \ | | | | | |_ + \_/\_/ \__,_| |___/ |_| |_| \__| + + _ _ _ + ___ | |__ (_) ___ | | __ ___ _ __ + / __| | '_ \ | | / __| | |/ / / _ \ | '_ \ + | (__ | | | | | | | (__ | < | __/ | | | | _ + \___| |_| |_| |_| \___| |_|\_\ \___| |_| |_| (_) + + _ + (_) _ __ + _____ _____ | | | '_ \ + |_____| |_____| | | | | | | + |_| |_| |_| + + _ _ _ _ _ _ + _| || |_ __| | ___ | |__ (_) __ _ _ __ __| | ___ + |_ .. _| / _` | / _ \ | '_ \ | | / _` | | '_ \ _____ / _` | / _ \ + |_ _| | (_| | | __/ | |_) | | | | (_| | | | | | |_____| | (_| | | __/ + |_||_| \__,_| \___| |_.__/ |_| \__,_| |_| |_| \__,_| \___| + + _ + __ __ ___ | | + \ \ / / / _ \ | | + \ V / | __/ | | + \_/ \___| |_| + diff --git a/externals/figlet/tests/res011.txt b/externals/figlet/tests/res011.txt new file mode 100644 index 0000000000..3b669a139d --- /dev/null +++ b/externals/figlet/tests/res011.txt @@ -0,0 +1,114 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | _\ \ +/ / | |/ _ \/ __| '_ \| |/ /\ \ +\ \ | | (_) \__ | | | | < / / + \__/ |\___/|___|_| |_|_|\_/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / ___| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ | __/ __| + | | (_) \__ | | | | | | (_| | | | | | _| | |_| |> < _ / | __| || (__ + _/ |\___/|___|_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_/_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / | | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ _ __ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ / __| '_ \ _____| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ \__ | | | |_____| | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_\__,_/_/|___|_| |_| |_| |_| + |___/ + +__/\__ +\ / +/_ _\ + \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | _\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ /\ \/ _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ | | | | < / | (_| | |_) | (_| | (__| | | | __/_ + \__/ |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___/ | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ | | || |(_/ __| | | | '_ \| __/ _` \ \/ / +| | | | | | __| |__ __\__ | |_| | | | | || (_| |> < +|_|_|_| |_|\___|_| |_|(_|___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ | '__| '__/ _ \| '__| '_ \ / _ \/ _` | '__| +| __| | | | | (_) | | | | | | __| (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ | '_ \ / _ \/ __| __/ _ \/ _` | __/ _ \| |/ / _ | '_ \ +| |_| | | | | __/> <| |_) | __| (__| || __| (_| | || (_) | | __| | | | + \__,_|_| |_|\___/_/\_| .__/ \___|\___|\__\___|\__,_|\__\___/|_|\_\___|_| |_| + |_| + ___ _ +( \ \( ) + \|| |/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | _\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ /\ \/ _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ | | | | < / | (_| | |_) | (_| | (__| | | | __/_ + \__/ |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___/ | || | _( \ \( ) +| | | '_ \ / _ | | || |(_)\|| |/ +| | | | | | __| |__ __ > > +|_|_|_| |_|\___|_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | _\ \| |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ /\ | __| '_ \ / _ | '_ \| |/ _ \| __| +\ \ | | (_) \__ | | | | < / | |_| | | | __| |_) | | (_) | |_ + \__/ |\___/|___|_| |_|_|\_/_/ \__|_| |_|\___| .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ | '_ \/ __| +| |_| | | | | (__| | __| | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \| |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ | |/ _` |\ | __| '_ \ / _ \/ __|/ _ \ +\ | (_| \__ | |_| | _| _| | __| | (_| |/ | |_| | | | (_) \__ | __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ _ _ + __ _ _ __ ___ _ __( | |_ ___| |__ ___| | |___ ___ _ __(_)_ __ | |_ ___ + / _` | '__/ _ | '_ |/| __/ __| '_ \ / _ | | / __|/ __| '__| | '_ \| __/ __| +| (_| | | | __| | | || |_\__ | | | | __| | \__ | (__| | | | |_) | |_\__ \ + \__,_|_| \___|_| |_| \__|___|_| |_|\___|_|_|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \| |_| |__ (_)_____ ____ _ ___ _ __( | |_ +/ // _ | '__| |/ __| '_ \ \ | __| '_ \| / __\ \ /\ / / _` / __| '_ |/| __| +\ | __| | | | (__| | | |/ | |_| | | | \__ \\ V V | (_| \__ | | | || |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___|_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ | '_ \ +| (__| | | | | (__| | __| | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____| | '_ \ +|_____|_____| | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ | '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ | | +|_ _| (_| | __| |_) | | (_| | | | |_____| (_| | __/\ V | __| | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/externals/figlet/tests/res012.txt b/externals/figlet/tests/res012.txt new file mode 100644 index 0000000000..3a25e26453 --- /dev/null +++ b/externals/figlet/tests/res012.txt @@ -0,0 +1,36 @@ + â”›â”â”┃â”â”┛┃ ┃┃ ┃ + ┃┃ ┃â”â”┃â”â”┃â”â”› +<â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> + â”›â”â”┃â”â”┛┃ ┃┃ ┃â”â”┃┛â”â” â”â”┛┃ ┃ ┃┃ ┃ â”›â”â”â”›â”â”â”›â”â”â”› ┛┃ â”â”┃â”â”â”›â”â”┃â”â”┃â”â”â”›â”â”┃â”â”â”›â”â”â”› + ┃┃ ┃â”â”┃â”â”┃â”â”› ┃┛┛┃┃ ┃â”â”┛┃ ┃ ┃ â”› â”› â”› â”â”â”› ┃ ┃ â”› ┃ ┃ ┃┃ ┃â”â”┛┃ ┃ ┃ â”â”┃ ┃ â”â”â”› +â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›â”â”┛┛┛ ┛┛ â”â”â”›â”â”┛┛ ┛┛┛ â”â”â”› â”› â”â”┛┛ â”â”â”›â”â”â”›â”â”┛┛ â”›â”â”â”› â”› â”› â”› â”› â”â”┛┛ +â”â” â”â”┛┃ ┃ â”â” â”› â”› +┃ ┃ â”â”┃â”â”┃ â”┛┃ ┃ â”â”â”› +â”â” > â”â”┛┛ â”› â”› â”› â”› â”› + â”›â”â”┃â”â”┛┃ ┃┃ ┃ â”â”┃â”â”┃â”â”┃â”â”┛┃ ┃â”â”â”› ┃ â”›â”â” â”â”â”› â”┃ ┃ ┃ â”â”┛┃ ┃â”â” â”â”â”›â”â”┃┃ ┃ + ┃┃ ┃â”â”┃â”â”┃â”â”› â”â”┃â”â”â”›â”â”┃┃ â”â”┃â”â”┛┛ ┃ ┃┃ ┃â”â”â”› ┃ â”â”┃┛ â”â”┃â”â”┛┃ ┃ ┃ â”â”┃ â”› +<â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> â”› ┛┛ â”› â”›â”â”┛┛ â”›â”â”┛┛ â”â”┛┛┛ â”›â”â”â”› â”â”â”› ┛┛ â”â”â”› â”› â”› â”› â”› â”› ┛┛ â”› +â”â”â”›â”â”┃â”â”┃â”â”┃â”â”┃ â”â” â”â”â”›â”â”┃â”â”┃ ┃ ┃â”â” â”â”┛┃ ┃â”â”┃â”â”â”›â”â”â”›â”â”â”›â”â”â”›â”â” â”â”â”›â”â”┃┃ ┃â”â”â”›â”â” +â”â”â”›â”â”â”›â”â”┛┃ ┃â”â”â”› ┃ ┃â”â”â”›â”â”┃â”â”â”› ┃ ┃┃ ┃â”â”â”› â”› â”â”â”›â”â”┛┃ ┃ â”â”┛┃ ┃ ┃ ┃ ┃â”â”› â”â”┛┃ ┃ +â”â”┛┛ ┛┛ â”›â”â”┛┛ â”› â”› â”›â”â”┛┛ ┛┛ â”› â”â”┛┛ â”›â”â”┛┛ ┛┛ â”â”â”›â”â”â”› â”› â”â”â”›â”â” â”› â”â”┛┛ â”›â”â”┛┛ â”› +â”› â”┃ â”› + â”› â”â”› + â”â”› + â”›â”â”┃â”â”┛┃ ┃┃ ┃ â”â”┃â”â”┃â”â”┃â”â”┛┃ ┃â”â”â”› ┃ â”›â”â” â”â”â”› â”┃ ┃ ┃ â”› â”┃ â”› + ┃┃ ┃â”â”┃â”â”┃â”â”› â”â”┃â”â”â”›â”â”┃┃ â”â”┃â”â”┛┛ ┃ ┃┃ ┃â”â”â”› ┃ â”â”┃┛ â”› â”â”› +<â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> â”› ┛┛ â”› â”›â”â”┛┛ â”›â”â”┛┛ â”â”┛┛┛ â”›â”â”â”› â”â”â”› ┛┛ â”â”› + â”›â”â”┃â”â”┛┃ ┃┃ ┃ â”â”┛┃ ┃â”â”â”› â”â”┃┃ â”â”┃â”â”â”› â”â”┛┃ ┃┛â”â”┛┃ ┃â”â”â”›â”â” â”â”â”› + ┃┃ ┃â”â”┃â”â”┃â”â”› ┃ â”â”┃â”â”â”› â”â”┛┃ ┃ ┃ ┃ ┃ â”â”┃┃┃ â”â”› â”â”┛┃ ┃â”â”┃ +<â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> â”› â”› â”›â”â”â”› â”› â”â”â”›â”â”â”› â”› â”› â”› ┛┛â”â”┛┛ â”›â”â”┛┛ â”›â”â”â”› + â”â”┃â”â”┛┃ ┃â”â”â”›â”â”┛┛â”â”┛┃ â”â” â”â”┛┃ ┃â”â”┃â”â”â”›â”â”â”› â”â”┃â”â”┃â”â”â”›â”â” â”›â”â”â”› â”â”┛┃ ┃â”â”┛┃ ┃ + â”â”┃â”â”┃┃ ┃â”â”â”›â”â”┛┃â”â”┛┃ ┃ ┃ ┃ â”â”┃┃ ┃â”â”┃â”â”â”› â”â”┃â”â”â”›â”â”┛┃ ┃ ┃ â”â”┃â”â”┃â”â”┛┃ ┃ +<â”› â”›â”â”â”›â”â”┛┛ â”› â”›â”â”â”›â”â”â”›â”â” > â”› â”› â”›â”â”â”›â”â”â”›â”â”â”› â”› ┛┛ â”›â”â”┛┛ â”› â”› â”â”┛┛ â”›â”â”â”›â”â”â”›â”â”â”› +â”â”â”›â”â”â”›â”â”┃┛â”â”┃â”â”â”›â”â”â”› +â”â”┃┃ â”â”┛┃â”â”â”› ┃ â”â”┃ +â”â”â”›â”â”┛┛ ┛┛┛ â”› â”â”â”› + â”â”â”›â”â”┃┛â”â”┛┃ ┃ â”â”┛┃ ┃┛â”â”â”› ┃┃┃â”â”┃â”â”â”›â”â” â”›â”â”â”› â”â”┛┃ ┃┛â”â”┛┃ ┃â”â”â”›â”â” + â”â”â”›â”â”┛┃┃ â”â”┃ ┃ â”â”┃┃â”â”┃ ┃┃┃â”â”┃â”â”┃┃ ┃ ┃ ┃ â”â”┃┃┃ â”â”› â”â”┛┃ ┃ +<â”â”┛┛ ┛┛â”â”┛┛ â”›> â”› â”› ┛┛â”â”â”› â”â”┛┛ â”›â”â”┛┛ â”› â”› â”â”┛┛ ┛┛â”â”┛┛ â”›â”â”┛┛ ┛┛ + â”›â”â” â”â” â”â”â”›â”â” â”›â”â”┃â”â” â”â” â”â”┛┃ ┃â”â”┛┃ + â”â”›â”â”› ┃┃ ┃ ┃ ┃â”â”â”›â”â”┃┃â”â”┃┃ ┃â”┛┃ ┃â”â”┛┃ ┃â”â”┛┃ + ┛┛ â”› #â”â” â”â”â”›â”┠┛┛ ┛┛ â”› â”â” â”â”â”› â”› â”â”â”›â”â”â”› diff --git a/externals/figlet/tests/res013.txt b/externals/figlet/tests/res013.txt new file mode 100644 index 0000000000..6983f2faa4 --- /dev/null +++ b/externals/figlet/tests/res013.txt @@ -0,0 +1,132 @@ + __ _ _ _ __ + \ \ | | __| |__ ___ ___ (_) / / + \ \| |/ /| '_ \ / __| / _ \ | |/ / + / /| < | | | |\__ \| (_) || |\ \ + /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |__/ + __ _ __ _ ____ _ _ _ + / /_ __ __ _ _ | | / _| _ __ (_) / __ \ | | __| |__ ___ ___ (_) + / /(_)\ \/ /| | | || || |_ | '_ \ | | / / _` || |/ /| '_ \ / __| / _ \ | | + / / _ > < | |_| || || _|| | | || || | (_| || < | | | |\__ \| (_) || | + /_/ (_)/_/\_\ \__,_||_||_| |_| |_||_| \ \__,_||_|\_\|_| |_||___/ \___/_/ | + \____/ |__/ + _ _ _ __ _ + ___ | |_ __ _ | |_ ___ _ __ __ _ ___ | | / /___ | |_ ___ + / _ \| __|/ _` || __|/ _ \ | '__|/ _` | / _ \ | | / // __|| __|/ _ \ + _| __/| |_| (_| || |_| (_) || | | (_| || (_) || | / /| (__ | |_| __/ + (_)\___| \__|\__,_| \__|\___/ |_| \__, | \___/ |_|/_/ \___| \__|\___| + |___/ + _ __ _ + __/\__ _ __ | |__ ___ \ \ __| | + \ / | '_ \ _____ | '_ \ / __| \ \ / _` | + /_ _\ | | | ||_____| | | | |\__ \ / /| (_| | + \/ |_| |_| |_| |_||___/ /_/ \__,_| + + _ __ _ _ _ __ + _ ___ | |__ ___ __ _ _ __ __ _ \ \ | | __| |__ ___ ___ (_) / / + (_)/ _ \| '_ \ / __|/ _` || '_ \ / _` | \ \| |/ /| '_ \ / __| / _ \ | |/ / + _| __/| | | || (__| (_| || |_) || (_| | / /| < | | | |\__ \| (_) || |\ \ + (_)\___||_| |_| \___|\__,_|| .__/ \__,_| /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |_| |__/ + _ _ _ _ _ _ + __ __ __ _ | |_ _ __ _ _ ___ _ | || | / | ___ _ __ (_)| | + \ \/ // _` || __|| '_ \ | | | |/ __| (_)| || |_ | | / _ \| '_ \ | || | + > <| (_| || |_ | | | || |_| |\__ \ _ |__ _|| | | __/| | | || || | + /_/\_\\__,_| \__||_| |_| \__, ||___/ (_) |_| |_| \___||_| |_||_||_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__|/ _` | / _ \| '_ \ | '__|/ _ \ | '__|| '__|/ _ \ + | | | (_| || __/| | | | | | | (_) || | | | | __/ + |_| \__,_| \___||_| |_| |_| \___/ |_| |_| \___| + + _ _ + __| | ___ | |_ ___ ___ _ __ __ __ ___ _ __ _ _ + / _` | / _ \| __|/ __|/ _ \| '_ \\ \/ // _ \| '_ \ | | | | + | (_| || __/| |_| (__| __/| |_) |> <| __/| | | || |_| | + \__,_| \___| \__|\___|\___|| .__//_/\_\\___||_| |_| \__,_| + |_| + _ __ _ _ _ + ( )\ \ ( ) _ __ ___ | | __ ___ | |_ + |/ | | \| | '_ \ / _ \| |/ // _ \ | __| + > > | | | || __/| <| (_) || |_ + | | |_| |_| \___||_|\_\\___/ \__| + /_/ + _ __ _ _ _ __ + _ ___ | |__ ___ __ _ _ __ __ _ \ \ | | __| |__ ___ ___ (_) / / + (_)/ _ \| '_ \ / __|/ _` || '_ \ / _` | \ \| |/ /| '_ \ / __| / _ \ | |/ / + _| __/| | | || (__| (_| || |_) || (_| | / /| < | | | |\__ \| (_) || |\ \ + (_)\___||_| |_| \___|\__,_|| .__/ \__,_| /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |_| |__/ + _ __ _ _ _ _ _ _ + ( )\ \ ( ) _ | || | / | ___ _ __ (_)| | + |/ | | \| (_)| || |_ | | / _ \| '_ \ | || | + > > _ |__ _|| | | __/| | | || || | + | | (_) |_| |_| \___||_| |_||_||_| + /_/ + _ _ _ _ __ _ _ _ __ + | |_ ___ | | _ __ ___ | |__ | |_ \ \ | | __| |__ ___ ___ (_) / / + | __|/ _ \ | || '_ \ / _ \| '_ \ | __| \ \| |/ /| '_ \ / __| / _ \ | |/ / + | |_| (_) || || |_) | | __/| | | || |_ / /| < | | | |\__ \| (_) || |\ \ + \__|\___/ |_|| .__/ \___||_| |_| \__| /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |_| |__/ + _ _ _ _ + ___ _ __ ___ | | __ ___ (_)| |__ | |_ + / __|| '_ \ / _ \| |/ // __|| || '_ \ | __| + \__ \| | | || __/| <| (__ | || | | || |_ + |___/|_| |_| \___||_|\_\\___||_||_| |_| \__| + + __ _ _ _ __ __ __ + \ \ __| || | ___ (_) / _| / _| _ _ ___ __ _ / / + \ \ / _` || | / _ \| || |_ | |_ | | | |/ __| / _` |/ / + / /| (_| || || __/| || _|| _|| |_| |\__ \| (_| |\ \ + /_/ \__,_||_| \___||_||_| |_| \__,_||___/ \__,_| \_\ + + _ _ _ _ + | |_ ( )_ __ ___ _ __ __ _ ___ ___ ___ | |__ | |_ + | __||/| '_ \ / _ \| '__|/ _` | / _ \/ __| / _ \ | '_ \ | __| + | |_ | | | || __/| | | (_| | | __/\__ \| (_) || | | || |_ + \__| |_| |_| \___||_| \__,_| \___||___/ \___/ |_| |_| \__| + + _ _ _ _ _ + ___ | |_ _ __ (_) _ __ ___ ___ | || | ___ | |__ ___ + / __|| __|| '_ \ | || '__|/ __|/ __| | || | / _ \| '_ \ / __| + \__ \| |_ | |_) || || | | (__ \__ \ | || || __/| | | |\__ \ + |___/ \__|| .__/ |_||_| \___||___/ |_||_| \___||_| |_||___/ + |_| + _ _ _ __ _ _ __ + ___ (_)| |__ | |_ \ \ | |__ ___ (_) _ __ ___ / / + / __|| || '_ \ | __| \ \| '_ \ / __|| || '__|/ _ \/ / + \__ \| || | | || |_ / /| | | || (__ | || | | __/\ \ + |___/|_||_| |_| \__| /_/ |_| |_| \___||_||_| \___| \_\ + + _ _ + | |_ ( )_ __ ___ __ _ __ __ + | __||/| '_ \ / __| / _` |\ \ /\ / / + | |_ | | | |\__ \| (_| | \ V V / + \__| |_| |_||___/ \__,_| \_/\_/ + + _ _ _ + _ __ ___ | | __ ___ (_)| |__ ___ + | '_ \ / _ \| |/ // __|| || '_ \ / __| + _ | | | || __/| <| (__ | || | | || (__ + (_)|_| |_| \___||_|\_\\___||_||_| |_| \___| + + _ + _ __ (_) + | '_ \ | | _____ _____ + | | | || | |_____||_____| + |_| |_||_| + + _ _ _ _ _ _ + __ __ ___ __| | _ __ __ _ (_)| |__ ___ __| | _| || |_ + \ \ / // _ \ / _` | _____ | '_ \ / _` || || '_ \ / _ \ / _` ||_ .. _| + \ V /| __/| (_| ||_____|| | | || (_| || || |_) || __/| (_| ||_ _| + \_/ \___| \__,_| |_| |_| \__,_||_||_.__/ \___| \__,_| |_||_| + + _ + | | ___ + | | / _ \ + | || __/ + |_| \___| + diff --git a/externals/figlet/tests/res014.txt b/externals/figlet/tests/res014.txt new file mode 100644 index 0000000000..545bbce996 --- /dev/null +++ b/externals/figlet/tests/res014.txt @@ -0,0 +1,144 @@ + __ __ __ _ __ + \ \ / /__ / /_ _____ ____ (_)/ / + \ \ / //_// __ \ / ___// __ \ / // / + / // ,< / / / /(__ )/ /_/ / / / \ \ + /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + __ ____ _ ______ __ __ _ + _ _ __ __ __ / // __/____ (_)/ ____ \ / /__ / /_ _____ ____ (_) + (_)| |/_// / / // // /_ / __ \ / // / __ `// //_// __ \ / ___// __ \ / / + _ _> < / /_/ // // __// / / // // / /_/ // ,< / / / /(__ )/ /_/ / / / + (_)/_/|_| \__,_//_//_/ /_/ /_//_/ \ \__,_//_/|_|/_/ /_//____/ \____/__/ / + \____/ /___/ + __ __ __ __ __ __ + / /_ ____ _ / /_ ____ _____ ____ _ ____ / / _/_/_____ / /_ ___ _/_/ + / __// __ `// __// __ \ / ___// __ `// __ \ / / _/_/ / ___// __// _ \ _/_/ + / /_ / /_/ // /_ / /_/ // / / /_/ // /_/ // /_/_/ / /__ / /_ / __/_/_/ + \__/ \__,_/ \__/ \____//_/ \__, / \____//_//_/ \___/ \__/ \___//_/ + /____/ + __ __ __ + __/|_ ____ / /_ _____ \ \ ____/ / ___ + | / / __ \ ______ / __ \ / ___/ \ \ / __ / / _ \ + /_ __| / / / //_____/ / / / /(__ ) / // /_/ /_ / __/ + |/ /_/ /_/ /_/ /_//____/ /_/ \__,_/(_)\___/ + + __ __ __ _ __ + \ \ / /__ / /_ _____ ____ (_)/ / + \ \ / //_// __ \ / ___// __ \ / // / + / // ,< / / / /(__ )/ /_/ / / / \ \ + /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + _ __ __ + ___ ____ (_)/ / _ ___ / /_ _____ ____ _ ____ ____ _ + / _ \ / __ \ / // / (_)/ _ \ / __ \ / ___// __ `// __ \ / __ `/ + / __// / / // // / _ / __// / / // /__ / /_/ // /_/ // /_/ / + \___//_/ /_//_//_/ (_) \___//_/ /_/ \___/ \__,_// .___/ \__,_/ + /_/ + __ __ __ ___ + _ __ ____ _ / /_ ____ __ __ _____ _ / // / < / + | |/_// __ `// __// __ \ / / / // ___/ (_)/ // /_ / / + _> < / /_/ // /_ / / / // /_/ /(__ ) _ /__ __// / + /_/|_| \__,_/ \__//_/ /_/ \__, //____/ (_) /_/ /_/ + /____/ + + _____ ____ _ ___ ____ _____ ____ _____ _____ ___ + / ___// __ `// _ \ / __ \ / ___// __ \ / ___// ___// _ \ + / / / /_/ // __// / / / / / / /_/ // / / / / __/ + /_/ \__,_/ \___//_/ /_/ /_/ \____//_/ /_/ \___/ + + __ __ + ____/ /___ / /_ _____ ___ ____ _ __ ___ ____ __ __ + / __ // _ \ / __// ___// _ \ / __ \ | |/_// _ \ / __ \ / / / / + / /_/ // __// /_ / /__ / __// /_/ /_> < / __// / / // /_/ / + \__,_/ \___/ \__/ \___/ \___// .___//_/|_| \___//_/ /_/ \__,_/ + /_/ + _ _ _ __ __ + ( )| |( ) ____ ___ / /__ ____ / /_ + |/ / / V / __ \ / _ \ / //_// __ \ / __/ + _>_> / / / // __// ,< / /_/ // /_ + _/_/ /_/ /_/ \___//_/|_| \____/ \__/ + /_/ + __ __ __ _ __ + \ \ / /__ / /_ _____ ____ (_)/ / + \ \ / //_// __ \ / ___// __ \ / // / + / // ,< / / / /(__ )/ /_/ / / / \ \ + /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + _ __ __ + ___ ____ (_)/ / _ ___ / /_ _____ ____ _ ____ ____ _ + / _ \ / __ \ / // / (_)/ _ \ / __ \ / ___// __ `// __ \ / __ `/ + / __// / / // // / _ / __// / / // /__ / /_/ // /_/ // /_/ / + \___//_/ /_//_//_/ (_) \___//_/ /_/ \___/ \__,_// .___/ \__,_/ + /_/ + _ _ _ __ __ ___ + ( )| |( ) _ / // / < / + |/ / / V (_)/ // /_ / / + _>_> _ /__ __// / + _/_/ (_) /_/ /_/ + /_/ + __ __ __ __ __ _ __ + ___ / /_ / /_ \ \ / /__ / /_ _____ ____ (_)/ / + / _ \ / __ \ / __/ \ \ / //_// __ \ / ___// __ \ / // / + / __// / / // /_ / // ,< / / / /(__ )/ /_/ / / / \ \ + \___//_/ /_/ \__/ /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + __ _ __ __ __ __ + _____ ____ ___ / /__ _____ (_)/ /_ / /_ / /_ ____ / /____ + / ___// __ \ / _ \ / //_// ___// // __ \ / __/ / __// __ \ / // __ \ + (__ )/ / / // __// ,< / /__ / // / / // /_ / /_ / /_/ // // /_/ / + /____//_/ /_/ \___//_/|_| \___//_//_/ /_/ \__/ \__/ \____//_// .___/ + /_/ + __ __ __ _ ____ ____ __ + \ \ ____/ // /___ (_)/ __// __/__ __ _____ ____ _ / / + \ \ / __ // // _ \ / // /_ / /_ / / / // ___// __ `// / + / // /_/ // // __// // __// __// /_/ /(__ )/ /_/ / \ \ + /_/ \__,_//_/ \___//_//_/ /_/ \__,_//____/ \__,_/ \_\ + + __ _ __ __ + / /_( )____ ___ _____ ____ _ ___ _____ ____ / /_ / /_ + / __/|// __ \ / _ \ / ___// __ `/ / _ \ / ___// __ \ / __ \ / __/ + / /_ / / / // __// / / /_/ / / __/(__ )/ /_/ // / / // /_ + \__/ /_/ /_/ \___//_/ \__,_/ \___//____/ \____//_/ /_/ \__/ + + __ _ __ __ __ + _____ / /_ ____ (_)_____ _____ _____ / // /___ / /_ _____ + / ___// __// __ \ / // ___// ___// ___/ / // // _ \ / __ \ / ___/ + (__ )/ /_ / /_/ // // / / /__ (__ ) / // // __// / / /(__ ) + /____/ \__// .___//_//_/ \___//____/ /_//_/ \___//_/ /_//____/ + /_/ + _ __ __ __ __ _ __ + _____ (_)/ /_ / /_ \ \ / /_ _____ (_)_____ ___ / / + / ___// // __ \ / __/ \ \ / __ \ / ___// // ___// _ \/ / + (__ )/ // / / // /_ / // / / // /__ / // / / __/\ \ + /____//_//_/ /_/ \__/ /_//_/ /_/ \___//_//_/ \___/ \_\ + + __ _ + / /_( )____ _____ ____ _ _ __ + / __/|// __ \ / ___// __ `/| | /| / / + / /_ / / / /(__ )/ /_/ / | |/ |/ / + \__/ /_/ /_//____/ \__,_/ |__/|__/ + + __ _ __ + ____ ___ / /__ _____ (_)/ /_ _____ + / __ \ / _ \ / //_// ___// // __ \ / ___/ + _ / / / // __// ,< / /__ / // / / // /__ + (_)/_/ /_/ \___//_/|_| \___//_//_/ /_/ \___/ + + _ + ____ (_) + / __ \ / / ______ ______ + / / / // / /_____//_____/ + /_/ /_//_/ + + __ _ __ __ __ __ + _ __ ___ ____/ / ____ ____ _ (_)/ /_ ___ ____/ /__/ // /_ + | | / // _ \ / __ /______ / __ \ / __ `// // __ \ / _ \ / __ //_ _ __/ + | |/ // __// /_/ //_____// / / // /_/ // // /_/ // __// /_/ //_ _ __/ + |___/ \___/ \__,_/ /_/ /_/ \__,_//_//_.___/ \___/ \__,_/ /_//_/ + + __ + / /___ + / // _ \ + / // __/ + /_/ \___/ + diff --git a/externals/figlet/tests/res015.txt b/externals/figlet/tests/res015.txt new file mode 100644 index 0000000000..de7bcd4570 --- /dev/null +++ b/externals/figlet/tests/res015.txt @@ -0,0 +1,156 @@ + __ _ _ _ __ + \ \ | | __ | |__ ___ ___ (_) / / + \ \ | |/ / | '_ \ / __| / _ \ | | / / + / / | < | | | | \__ \ | (_) | | | \ \ + /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ __ _ ____ _ _ _ + _ _ | | / _| _ __ (_) / __ \ | | __ | |__ ___ ___ (_) + | | | | | | | |_ | '_ \ | | / / _` | | |/ / | '_ \ / __| / _ \ | | + | |_| | | | | _| | | | | | | | | (_| | | < | | | | \__ \ | (_) | | | + \__,_| |_| |_| |_| |_| |_| \ \__,_| |_|\_\ |_| |_| |___/ \___/ _/ | + \____/ |__/ + _ __ _ __ + _ __ __ _ ___ | | / / ___ | |_ ___ / / _ __ __ + | '__| / _` | / _ \ | | / / / __| | __| / _ \ / / (_) \ \/ / + | | | (_| | | (_) | | | / / | (__ | |_ | __/ / / _ > < + |_| \__, | \___/ |_| /_/ \___| \__| \___| /_/ (_) /_/\_\ + |___/ + _ __ _ _ _ + | |__ ___ \ \ __| | ___ | |_ __ _ | |_ ___ + | '_ \ / __| \ \ / _` | / _ \ | __| / _` | | __| / _ \ + | | | | \__ \ / / | (_| | _ | __/ | |_ | (_| | | |_ | (_) | + |_| |_| |___/ /_/ \__,_| (_) \___| \__| \__,_| \__| \___/ + + + __/\__ _ __ + \ / | '_ \ _____ + /_ _\ | | | | |_____| + \/ |_| |_| + + __ _ _ _ __ + \ \ | | __ | |__ ___ ___ (_) / / + \ \ | |/ / | '_ \ / __| / _ \ | | / / + / / | < | | | | \__ \ | (_) | | | \ \ + /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ _ _ + ___ _ __ (_) | | _ ___ | |__ ___ __ _ _ __ __ _ + / _ \ | '_ \ | | | | (_) / _ \ | '_ \ / __| / _` | | '_ \ / _` | + | __/ | | | | | | | | _ | __/ | | | | | (__ | (_| | | |_) | | (_| | + \___| |_| |_| |_| |_| (_) \___| |_| |_| \___| \__,_| | .__/ \__,_| + |_| + _ _ _ _ + __ __ __ _ | |_ _ __ _ _ ___ _ | || | / | + \ \/ / / _` | | __| | '_ \ | | | | / __| (_) | || |_ | | + > < | (_| | | |_ | | | | | |_| | \__ \ _ |__ _| | | + /_/\_\ \__,_| \__| |_| |_| \__, | |___/ (_) |_| |_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__| / _` | / _ \ | '_ \ | '__| / _ \ | '__| | '__| / _ \ + | | | (_| | | __/ | | | | | | | (_) | | | | | | __/ + |_| \__,_| \___| |_| |_| |_| \___/ |_| |_| \___| + + _ _ + __| | ___ | |_ ___ ___ _ __ __ __ ___ _ __ _ _ + / _` | / _ \ | __| / __| / _ \ | '_ \ \ \/ / / _ \ | '_ \ | | | | + | (_| | | __/ | |_ | (__ | __/ | |_) | > < | __/ | | | | | |_| | + \__,_| \___| \__| \___| \___| | .__/ /_/\_\ \___| |_| |_| \__,_| + |_| + _ __ _ _ _ + ( ) \ \ ( ) _ __ ___ | | __ ___ | |_ + |/ | | \| | '_ \ / _ \ | |/ / / _ \ | __| + > > | | | | | __/ | < | (_) | | |_ + | | |_| |_| \___| |_|\_\ \___/ \__| + /_/ + __ _ _ _ __ + \ \ | | __ | |__ ___ ___ (_) / / + \ \ | |/ / | '_ \ / __| / _ \ | | / / + / / | < | | | | \__ \ | (_) | | | \ \ + /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ _ _ + ___ _ __ (_) | | _ ___ | |__ ___ __ _ _ __ __ _ + / _ \ | '_ \ | | | | (_) / _ \ | '_ \ / __| / _` | | '_ \ / _` | + | __/ | | | | | | | | _ | __/ | | | | | (__ | (_| | | |_) | | (_| | + \___| |_| |_| |_| |_| (_) \___| |_| |_| \___| \__,_| | .__/ \__,_| + |_| + _ __ _ _ _ _ + ( ) \ \ ( ) _ | || | / | + |/ | | \| (_) | || |_ | | + > > _ |__ _| | | + | | (_) |_| |_| + /_/ + _ _ __ _ _ _ __ + ___ | |__ | |_ \ \ | | __ | |__ ___ ___ (_) / / + / _ \ | '_ \ | __| \ \ | |/ / | '_ \ / __| / _ \ | | / / + | __/ | | | | | |_ / / | < | | | | \__ \ | (_) | | | \ \ + \___| |_| |_| \__| /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ _ + | |_ ___ | | _ __ + | __| / _ \ | | | '_ \ + | |_ | (_) | | | | |_) | + \__| \___/ |_| | .__/ + |_| + _ _ _ _ + ___ _ __ ___ | | __ ___ (_) | |__ | |_ + / __| | '_ \ / _ \ | |/ / / __| | | | '_ \ | __| + \__ \ | | | | | __/ | < | (__ | | | | | | | |_ + |___/ |_| |_| \___| |_|\_\ \___| |_| |_| |_| \__| + + __ _ _ _ __ __ __ + \ \ __| | | | ___ (_) / _| / _| _ _ ___ __ _ / / + \ \ / _` | | | / _ \ | | | |_ | |_ | | | | / __| / _` | / / + / / | (_| | | | | __/ | | | _| | _| | |_| | \__ \ | (_| | \ \ + /_/ \__,_| |_| \___| |_| |_| |_| \__,_| |___/ \__,_| \_\ + + _ _ _ _ + | |_ ( ) _ __ ___ _ __ __ _ ___ ___ ___ | |__ | |_ + | __| |/ | '_ \ / _ \ | '__| / _` | / _ \ / __| / _ \ | '_ \ | __| + | |_ | | | | | __/ | | | (_| | | __/ \__ \ | (_) | | | | | | |_ + \__| |_| |_| \___| |_| \__,_| \___| |___/ \___/ |_| |_| \__| + + _ _ _ _ _ + ___ | |_ _ __ (_) _ __ ___ ___ | | | | ___ | |__ ___ + / __| | __| | '_ \ | | | '__| / __| / __| | | | | / _ \ | '_ \ / __| + \__ \ | |_ | |_) | | | | | | (__ \__ \ | | | | | __/ | | | | \__ \ + |___/ \__| | .__/ |_| |_| \___| |___/ |_| |_| \___| |_| |_| |___/ + |_| + _ _ _ __ _ _ __ + ___ (_) | |__ | |_ \ \ | |__ ___ (_) _ __ ___ / / + / __| | | | '_ \ | __| \ \ | '_ \ / __| | | | '__| / _ \ / / + \__ \ | | | | | | | |_ / / | | | | | (__ | | | | | __/ \ \ + |___/ |_| |_| |_| \__| /_/ |_| |_| \___| |_| |_| \___| \_\ + + _ _ + | |_ ( ) _ __ ___ __ _ __ __ + | __| |/ | '_ \ / __| / _` | \ \ /\ / / + | |_ | | | | \__ \ | (_| | \ V V / + \__| |_| |_| |___/ \__,_| \_/\_/ + + _ _ _ + _ __ ___ | | __ ___ (_) | |__ ___ + | '_ \ / _ \ | |/ / / __| | | | '_ \ / __| + _ | | | | | __/ | < | (__ | | | | | | | (__ + (_) |_| |_| \___| |_|\_\ \___| |_| |_| |_| \___| + + _ + _ __ (_) + | '_ \ | | _____ _____ + | | | | | | |_____| |_____| + |_| |_| |_| + + _ _ _ _ _ _ + ___ __| | _ __ __ _ (_) | |__ ___ __| | _| || |_ + / _ \ / _` | _____ | '_ \ / _` | | | | '_ \ / _ \ / _` | |_ .. _| + | __/ | (_| | |_____| | | | | | (_| | | | | |_) | | __/ | (_| | |_ _| + \___| \__,_| |_| |_| \__,_| |_| |_.__/ \___| \__,_| |_||_| + + _ + | | ___ __ __ + | | / _ \ \ \ / / + | | | __/ \ V / + |_| \___| \_/ + diff --git a/externals/figlet/tests/res016.txt b/externals/figlet/tests/res016.txt new file mode 100644 index 0000000000..cf70546d5f --- /dev/null +++ b/externals/figlet/tests/res016.txt @@ -0,0 +1,152 @@ + ___ _ _ __ + / (_) | | | | \ \ + / / _ ___ ___| |__ | | __\ \ + < < | |/ _ \/ __| '_ \| |/ / > > + \ \| | (_) \__ | | | | < / / + \_| |\___/|___|_| |_|_|\_/_/ + _/ | + |__/ + _ _ _ _ __ _ __ _ + (_) | | | | ____ (_) / _| | _ / / | | + _ ___ ___| |__ | | __/ __ \ _ _ __ | |_| |_ ___ _(_) / ___| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| _| | | | \ \/ / / / _ | __/ __| + | | (_) \__ | | | | | | (_| | | | | | | | | |_| |> < _ / | __| || (__ + | |\___/|___|_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_/_/ \___|\__\___| + _/ | \____/ + |__/ + ___ _ _ ___ _ + / | | | | | | | \ \ | | + / /| | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| |\ \ ___| |__ + / / | |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` | > / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ /\__ | | | | + /_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_\__,_/_/ |___|_| |_| + __/ | + |___/ + _ + /\| |/\ + ______ _ __ \ ` ' / + |______| '_ \|_ _| + | | | |/ , . \ + |_| |_|\/|_|\/ + + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___(_) + < < | |/ _ \/ __| '_ \| |/ / > >/ _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ | | | | < / /| (_| | |_) | (_| | (__| | | | __/_ + \_| |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ _ + | (_) /_ | || | _ | | + | |_ _ __ ___ | | || |(_)___ _ _ _ __ | |_ __ ___ __ + | | | '_ \ / _ \| |__ _|/ __| | | | '_ \| __/ _` \ \/ / + | | | | | | __/| | | | _\__ | |_| | | | | || (_| |> < + |_|_|_| |_|\___||_| |_|(_|___/\__, |_| |_|\__\__,_/_/\_\ + __/ | + |___/ + + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ | '__| '__/ _ \| '__| '_ \ / _ \/ _` | '__| + | __| | | | | (_) | | | | | | __| (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + + _ _ _ _ + | | | | | | | + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | |_ ___ | | _____ _ __ + | | | | '_ \ / _ \ \/ | '_ \ / _ \/ __| __/ _ \/ _` | __/ _ \| |/ / _ | '_ \ + | |_| | | | | __/> <| |_) | __| (__| || __| (_| | || (_) | | __| | | | + \__,_|_| |_|\___/_/\_| .__/ \___|\___|\__\___|\__,_|\__\___/|_|\_\___|_| |_| + | | + |_| + ___ _ + ( \ \( ) + \|| |/ + \ \ + / / + | | + /_/ + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___(_) + < < | |/ _ \/ __| '_ \| |/ / > >/ _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ | | | | < / /| (_| | |_) | (_| | (__| | | | __/_ + \_| |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ ___ _ + | (_) /_ | || | _( \ \( ) + | |_ _ __ ___ | | || |(_)\|| |/ + | | | '_ \ / _ \| |__ _| \ \ + | | | | | | __/| | | | _ / / + |_|_|_| |_|\___||_| |_|(_) | | + /_/ + + ___ _ _ __ _ _ _ _ + / (_) | | | | \ \ | | | | | | | | + / / _ ___ ___| |__ | | __\ \| |_| |__ ___ _ __ | | ___ | |_ + < < | |/ _ \/ __| '_ \| |/ / > | __| '_ \ / _ | '_ \| |/ _ \| __| + \ \| | (_) \__ | | | | < / /| |_| | | | __| |_) | | (_) | |_ + \_| |\___/|___|_| |_|_|\_/_/ \__|_| |_|\___| .__/|_|\___/ \__| + _/ | | | + |__/ |_| + _ _ _ _ + | | | | (_) | | + | |_| |__ _ ___| | _____ _ __ ___ + | __| '_ \| |/ __| |/ / _ | '_ \/ __| + | |_| | | | | (__| | __| | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + + __ __ __ _ _ ___ _ _ + / / / _|/ _(_) | | | \ \ | | | | + / / __ _ ___ _ _| |_| |_ _ ___| | __| |\ \| |_| |__ ___ ___ ___ + < < / _` / __| | | | _| _| |/ _ | |/ _` | > | __| '_ \ / _ \/ __|/ _ \ + \ | (_| \__ | |_| | | | | | | __| | (_| |/ /| |_| | | | (_) \__ | __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + + _ _ _ _ _ _ _ + ( | | | | | | | (_) | | + __ _ _ __ ___ _ __|/| |_ ___| |__ ___| | |___ ___ _ __ _ _ __ | |_ ___ + / _` | '__/ _ | '_ \ | __/ __| '_ \ / _ | | / __|/ __| '__| | '_ \| __/ __| + | (_| | | | __| | | || |_\__ | | | | __| | \__ | (__| | | | |_) | |_\__ \ + \__,_|_| \___|_| |_| \__|___|_| |_|\___|_|_|___/\___|_| |_| .__/ \__|___/ + | | + |_| + __ _ _ __ _ _ _ _ _ + / / (_) | | \ \ | | | | (_) ( | | + / / ___ _ __ _ ___| |__ \ \| |_| |__ _ _____ ____ _ ___ _ __|/| |_ + < < / _ | '__| |/ __| '_ \ > | __| '_ \| / __\ \ /\ / / _` / __| '_ \ | __| + \ | __| | | | (__| | | |/ /| |_| | | | \__ \\ V V | (_| \__ | | | || |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___|_| |_| \__| + + + _ _ _ + | | (_) | | + ___| |__ _ ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ | '_ \ + | (__| | | | | (__| | __| | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + + _ + (_) + ______ ______ _ _ __ + |______|______| | '_ \ + | | | | | + |_|_| |_| + + + _ _ _ _ _ _ _ + _| || |_ | | | | (_) | | | | + |_ __ _| __| | ___| |__ _ __ _ _ __ ______ __| | _____ _____| | + _| || |_ / _` |/ _ | '_ \| |/ _` | '_ |______/ _` |/ _ \ \ / / _ | | + |_ __ _| (_| | __| |_) | | (_| | | | | | (_| | __/\ V | __| | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + + diff --git a/externals/figlet/tests/res017.txt b/externals/figlet/tests/res017.txt new file mode 100644 index 0000000000..3296f8c60b --- /dev/null +++ b/externals/figlet/tests/res017.txt @@ -0,0 +1,36 @@ + â”›â”â”┃â”â”┛┃ ┃┃ ┃ + ┃┃ ┃â”â”┃â”â”┃â”â”› + <â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> + â”›â”â”┃â”â”┛┃ ┃┃ ┃â”â”┃┛â”â” â”â”┛┃ ┃ ┃┃ ┃ â”›â”â”â”›â”â”â”›â”â”â”› ┛┃ â”â”┃â”â”â”›â”â”┃â”â”┃â”â”â”›â”â”┃â”â”â”›â”â”â”› + ┃┃ ┃â”â”┃â”â”┃â”â”› ┃┛┛┃┃ ┃â”â”┛┃ ┃ ┃ â”› â”› â”› â”â”â”› ┃ ┃ â”› ┃ ┃ ┃┃ ┃â”â”┛┃ ┃ ┃ â”â”┃ ┃ â”â”â”› + â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›â”â”┛┛┛ ┛┛ â”â”â”›â”â”┛┛ ┛┛┛ â”â”â”› â”› â”â”┛┛ â”â”â”›â”â”â”›â”â”┛┛ â”›â”â”â”› â”› â”› â”› â”› â”â”┛┛ + â”â” â”â”┛┃ ┃ â”â” â”› â”› + ┃ ┃ â”â”┃â”â”┃ â”┛┃ ┃ â”â”â”› + â”â”> â”â”┛┛ â”› â”› â”› â”› â”› + â”›â”â”┃â”â”┛┃ ┃┃ ┃ â”â”┃â”â”┃â”â”┃â”â”┛┃ ┃â”â”â”› ┃ â”›â”â” â”â”â”› â”┃┃ ┃ â”â”┛┃ ┃â”â”â”â”â”›â”â”┃┃ ┃ + ┃┃ ┃â”â”┃â”â”┃â”â”› â”â”┃â”â”â”›â”â”┃┃ â”â”┃â”â”┛┛ ┃ ┃┃ ┃â”â”â”› ┃â”â”┃┛ â”â”┃â”â”┛┃ ┃┃ â”â”┃ â”› + <â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> â”› ┛┛ â”› â”›â”â”┛┛ â”›â”â”┛┛ â”â”┛┛┛ â”›â”â”â”› â”â”â”› ┛┛ â”â”â”› â”› â”› ┛┛ â”› ┛┛ â”› + â”â”â”›â”â”┃â”â”┃â”â”┃â”â”┃ â”â” â”â”â”›â”â”┃â”â”┃ ┃ ┃â”â” â”â”┛┃ ┃â”â”┃â”â”â”›â”â”â”›â”â”â”›â”â”â”›â”â” â”â”â”›â”â”┃┃ ┃â”â”â”›â”â” + â”â”â”›â”â”â”›â”â”┛┃ ┃â”â”â”› ┃ ┃â”â”â”›â”â”┃â”â”â”› ┃ ┃┃ ┃â”â”â”› â”› â”â”â”›â”â”┛┃ ┃ â”â”┛┃ ┃ ┃ ┃ ┃â”â”› â”â”┛┃ ┃ + â”â”┛┛ ┛┛ â”›â”â”┛┛ â”› â”› â”›â”â”┛┛ ┛┛ â”› â”â”┛┛ â”›â”â”┛┛ ┛┛ â”â”â”›â”â”â”› â”› â”â”â”›â”â” â”› â”â”┛┛ â”›â”â”┛┛ â”› + â”›â”┃┛ + â”›â”â”› + â”â”› + â”›â”â”┃â”â”┛┃ ┃┃ ┃ â”â”┃â”â”┃â”â”┃â”â”┛┃ ┃â”â”â”› ┃ â”›â”â” â”â”â”› â”┃┃ ┃ â”›â”┃┛ + ┃┃ ┃â”â”┃â”â”┃â”â”› â”â”┃â”â”â”›â”â”┃┃ â”â”┃â”â”┛┛ ┃ ┃┃ ┃â”â”â”› ┃â”â”┃┛ â”›â”â”› + <â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> â”› ┛┛ â”› â”›â”â”┛┛ â”›â”â”┛┛ â”â”┛┛┛ â”›â”â”â”› â”â”â”› ┛┛ â”â”› + â”›â”â”┃â”â”┛┃ ┃┃ ┃ â”â”┛┃ ┃â”â”â”› â”â”┃┃ â”â”┃â”â”â”› â”â”┛┃ ┃┛â”â”┛┃ ┃â”â”â”›â”â” â”â”â”› + ┃┃ ┃â”â”┃â”â”┃â”â”› ┃ â”â”┃â”â”â”› â”â”┛┃ ┃ ┃ ┃ ┃ â”â”┃┃┃ â”â”› â”â”┛┃ ┃â”â”┃ + <â”â”›â”â”â”›â”â”┛┛ ┛┛ â”›> â”› â”› â”›â”â”â”› â”› â”â”â”›â”â”â”› â”› â”› â”› ┛┛â”â”┛┛ â”›â”â”┛┛ â”›â”â”â”› + â”â”┃â”â”┛┃ ┃â”â”â”›â”â”┛┛â”â”┛┃ â”â” â”â”┛┃ ┃â”â”┃â”â”â”›â”â”â”› â”â”┃â”â”┃â”â”â”›â”â”â”›â”â”â”› â”â”┛┃ ┃â”â”┛┃ ┃ + â”â”┃â”â”┃┃ ┃â”â”â”›â”â”┛┃â”â”┛┃ ┃ ┃ ┃ â”â”┃┃ ┃â”â”┃â”â”â”› â”â”┃â”â”â”›â”â”┛┃ ┃ ┃ â”â”┃â”â”┃â”â”┛┃ ┃ + <â”› â”›â”â”â”›â”â”┛┛ â”› â”›â”â”â”›â”â”â”›â”â”> â”› â”› â”›â”â”â”›â”â”â”›â”â”â”› â”› ┛┛ â”›â”â”┛┛ â”› â”› â”â”┛┛ â”›â”â”â”›â”â”â”›â”â”â”› + â”â”â”›â”â”â”›â”â”┃┛â”â”┃â”â”â”›â”â”â”› + â”â”┃┃ â”â”┛┃â”â”â”› ┃ â”â”┃ + â”â”â”›â”â”┛┛ ┛┛┛ â”› â”â”â”› + â”â”â”›â”â”┃┛â”â”┛┃ ┃ â”â”┛┃ ┃┛â”â”â”› ┃┃┃â”â”┃â”â”â”›â”â”â”›â”â”â”› â”â”┛┃ ┃┛â”â”┛┃ ┃â”â”â”›â”â” + â”â”â”›â”â”┛┃┃ â”â”┃ ┃ â”â”┃┃â”â”┃ ┃┃┃â”â”┃â”â”┃┃ ┃ ┃ ┃ â”â”┃┃┃ â”â”› â”â”┛┃ ┃ + <â”â”┛┛ ┛┛â”â”┛┛ â”›> â”› â”› ┛┛â”â”â”› â”â”┛┛ â”›â”â”┛┛ â”› â”› â”â”┛┛ ┛┛â”â”┛┛ â”›â”â”┛┛ ┛┛ + â”›â”â” â”â” â”â”â”›â”â” â”›â”â”┃â”â” â”â” â”â”┛┃ ┃â”â”┛┃ + â”â”›â”â”› ┃┃ ┃ ┃ ┃â”â”â”›â”â”┃┃â”â”┃┃ ┃â”┛┃ ┃â”â”┛┃ ┃â”â”┛┃ + ┛┛ â”› #â”â” â”â”â”›â”┠┛┛ ┛┛ â”› â”â” â”â”â”› â”› â”â”â”›â”â”â”› diff --git a/externals/figlet/tests/res018.txt b/externals/figlet/tests/res018.txt new file mode 100644 index 0000000000..7551e081ed --- /dev/null +++ b/externals/figlet/tests/res018.txt @@ -0,0 +1,27 @@ + â”â”â”â”┃ ┃ ┃ â”â”â”â”┃ ┃ â”â”┃┛â”â”â”â”┃ ┃ ┃ ┃ â”â”â”â”â”â”â”› ┃ â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”› â”â” â”â”┃ ┃â”â” + ┃ â”â”â”â”â”â”› ┃ â”â”â”â”â”┛┃┛┛┃┃ â”â”┃ ┃ ┃┛ â”› â”›â”â”┛┃┃ ┛┃ ┃ ┃ â”â”┃ ┃┃â”â”┃┃â”â”â”› ┃ ┃â”â”â”â”â”┃ ┃ + <â”â”â”â”â”â”› â”› â”›>â”â”â”â”â”â”› â”› â”â”┛┛┛ â”› â”â”â”â”â”› ┛┛┛ â”â”┛┛â”â”â”› â”â”â”â”â”â”â”› â”â”┛┛┛ ┛┛â”â”┛┛â”â”>â”â”â”› ┛┛ â”› + â”› â”› + â”â”â”› + â”› â”› + â”â”â”â”┃ ┃ ┃ â”â”â”â”â”â”â”â”┃ â”â”â”› ┃ â”›â”â”â”â”â”┃ ┃ â”â”┃ â”â”â”â”â”┃ â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”┃ + ┃ â”â”â”â”â”â”› â”â”â”â”â”â”┃ â”â”â”â”┛┛┃ ┃┃ â”â”â”›â”â”┃┛â”â”â”â”┃ ┃â”â”┃┛â”â”â”â”â”â”┃ â”â”┃ â”â”â”â”â”â”â”› + <â”â”â”â”â”â”› â”› â”›>â”› â”› â”› â”â”â”› â”â”┛┛â”â”┛┛┛ â”â”â”â”┛┛┛â”â”┛┛┛ ┛┛ â”› â”â”â”› â”› â”â”â”› â”› â”â”â”› â”› â”› + ┃ â”â”â”â”┃ â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”┃ â”â”â”â”â”┃┛ + ┃ ┃ â”â”┛┛â”â”â”â”┃ ┃â”â”┃ ┃┃┃ â”â”›â”â”┃ ┃â”â”› + â”â”â”› â”â”â”› â”› â”â”â”â”┛┛â”â”â”â” â”›â”â”â”› â”â”â”› â”â”› + â”â”â”â”┃ ┃ ┃ â”â”â”â”â”â”â”â”┃ â”â”â”› ┃ â”›â”â”â”â”â”┃ ┃ â”┃┛ + ┃ â”â”â”â”â”â”› â”â”â”â”â”â”┃ â”â”â”â”┛┛┃ ┃┃ â”â”â”›â”â”┃┛ â”â”› + <â”â”â”â”â”â”› â”› â”›>â”› â”› â”› â”â”â”› â”â”┛┛â”â”┛┛┛ â”â”â”â”┛┛┛â”â”› + â”â”â”â”┃ ┃ ┃ â”â”┃ â”â”â”â”┃ â”â”â”â”â”â”┃ ┃┛â”â”┃ â”â”â”â”â”â”â”› + ┃ â”â”â”â”â”â”› ┃â”â”â”â”â”â”┃ ┃ ┃┃ ┃â”â”┃┃┃ â”â”›â”â”┃ â”â”┃ + <â”â”â”â”â”â”› â”› â”›> ┛┛ â”â”â”› â”â”â”â”┛┛ ┛┛ ┛┛â”â”â”› â”â”â”› â”â”â”› + â”â”â”â”┃ â”â”â”â”┛┛â”â”┃ â”â” â”â”┃ â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”›â”â”â”â”┃ â”â”┃ ┃ â”â”â”â”â”â”┃┛â”â”â”â”â”â”â”› + â”â”â”â”┃ â”â”â”â”┛┃â”â”┃ ┃ ┃ ┃â”â”┃ â”â”â”â”â”â”â”â”â”â”┃ ┃ ┃â”â”â”â”â”â”┃ ┃ â”â”┃ â”â”┛┃â”â”┛┃â”â”┃ + <â”› â”â”â”â”â”› â”› â”›â”â”â”â”â”â”> ┛┛ â”â”â”â”â”â”â”› â”› â”â”â”› â”› â”›â”â”â”› â”â”â”â”â”â”â”â”â”â”â”› ┛┛┛ â”›â”â”â”› + â”â”â”â”┃┛â”â”┃ ┃ â”â”┃ ┃┛â”â”┃┃â”â”â”â”â”â”â”›â”â”â”â”┃ ┃┛â”â”┃ â”â”â”â” + â”â”â”â”┛┃┃ â”â”┃ ┃â”â”┃┃â”â”┃┃â”â”â”â”┃ ┃ ┃┃ â”â”┃┃┃ â”â”›â”â”┃ ┃ + <â”â”â”› ┛┛â”â”â”› â”›> ┛┛ ┛┛â”â”â”â”â”› â”â”â”› â”› â”›â”â”â”› ┛┛â”â”â”› â”â”â”› ┛┛ + â”›â”â” â”â”â”â”â”â” â”›â”â”â”â” â”â”â”â”┃ â”â”┃ + â”â”┛┃┃ ┃ ┃ â”â”â”â”┃┃â”â”┃ â”┃ â”â”┃ â”â”┃ + ┛┛ â”›#â”â”â”â”â”┠┛┛ â”› â”›â”â”â”â”┛┛â”â”â”â”â”› diff --git a/externals/figlet/tests/res019.txt b/externals/figlet/tests/res019.txt new file mode 100644 index 0000000000..b1c4ee3688 --- /dev/null +++ b/externals/figlet/tests/res019.txt @@ -0,0 +1,36 @@ + ┃ ┃┃ ┃â”â”â”›â”â”┃ â”› + â”â”› â”â”┃â”â”┃┃ ┃ ┃ +>â”› ┛┛ â”›â”â”â”›â”â”â”›â”â”›< + â”â”â”›â”â”â”›â”â”┃â”â”â”›â”â”┃â”â”┃â”â”â”›â”â”┃┃ â”›â”â”â”›â”â”â”›â”â”â”› â”› ┃ ┃┃ ┃┃ â”â”â”›â”â” â”›â”â”┃┃ ┃┃ ┃â”â”â”›â”â”┃ â”› + â”â”â”› ┃ â”â”┃ ┃ ┃ ┃â”â”┛┃ ┃┃ ┃┃ â”› ┃ ┃ â”â”â”› â”› â”› â”› ┃ ┃┃ â”â”┛┃ ┃┃┃┛┛â”â”› â”â”┃â”â”┃┃ ┃ ┃ +â”›â”â”â”› â”› â”› â”› â”› â”â”┛┛ â”›â”â”â”›â”â”â”›â”â”┛┛ â”â”â”› â”› â”â”┛┛ ┛┛ â”›â”â”â”›â”â”┛┛ â”› ┛┛â”â”┛┛ ┛┛ â”›â”â”â”›â”â”â”›â”â”› +â”› â”› â”┠┃ ┃â”â”â”› â”â” +â”â”â”› ┃ ┃â”â”› â”â”┃â”â”┃ ┃ ┃ +â”› â”› â”› â”› â”› â”›â”â”â”› >â”â” +┃ ┃â”â”┃â”â”â”›â”┠┃ ┃â”â”â”› ┃ ┃â”┃ â”â”â”›â”┠┛┃ â”â”┛┃ ┃â”â”â”›â”â”┃â”â”┃â”â”┃ ┃ ┃┃ ┃â”â”â”›â”â”┃ â”› + â”› â”â”┃ ┃ ┃ ┃â”â”â”›â”â”┃ â”›â”â”┃ ┃ â”â”┛┃ ┃┃┃ â”›â”â”â”›â”â”┃┃ â”â”┃â”â”â”›â”â”┃ â”â”› â”â”┃â”â”┃┃ ┃ ┃ +â”› ┛┛ â”› â”› â”› â”› â”› â”â”â”› â”› â”›â”â”â”› â”â”┛┛ ┛┛â”â”â”› â”›â”â”┛┛ â”›â”â”┛┛ ┛┛ â”› â”› >â”› ┛┛ â”›â”â”â”›â”â”â”›â”â”›< +â”â” â”â”┛┃ ┃â”â”┃â”â”â”› â”â” â”â”â”›â”â”â”›â”â”â”›â”â”â”›â”â”┃┃ ┃â”â”â”›â”┠┃ ┃ â”â”┃â”â”┃â”â”â”›â”â” â”â”┃â”â”┃â”â”┃â”â”┃â”â”â”› +┃ ┃â”â”â”›â”â”› ┃ ┃ ┃ ┃ ┃â”â”â”› ┃ ┃ â”â”â”›â”â”â”› â”› â”â”┛┃ ┃┃ ┃ â”â”â”›â”â”┃â”â”┛┃ ┃ â”â”┛┃ ┃â”â”â”›â”â”â”›â”â”â”› +â”› â”›â”â”┛┛ â”›â”â”â”› â”› â”â” â”â”â”› â”› â”â”â”›â”â”┛┛ â”› â”›â”â”┛┛ â”›â”â”â”› â”› ┛┛ â”›â”â”┛┛ â”› â”› â”›â”â”┛┛ ┛┛ â”›â”â”â”› +â”›â”┃ â”› + â”â”› â”› + â”â”› +â”›â”┃ â”› ┃ ┃â”┃ â”â”â”›â”┠┛┃ â”â”┛┃ ┃â”â”â”›â”â”┃â”â”┃â”â”┃ ┃ ┃┃ ┃â”â”â”›â”â”┃ â”› + â”â”› â”› â”›â”â”┃ ┃ â”â”┛┃ ┃┃┃ â”›â”â”â”›â”â”┃┃ â”â”┃â”â”â”›â”â”┃ â”â”› â”â”┃â”â”┃┃ ┃ ┃ + â”â”› â”› â”›â”â”â”› â”â”┛┛ ┛┛â”â”â”› â”›â”â”┛┛ â”›â”â”┛┛ ┛┛ â”› â”› >â”› ┛┛ â”›â”â”â”›â”â”â”›â”â”›< +â”â”â”›â”â” â”â”┛┃ ┃â”â”┛┛┃ ┃â”â”â”› â”â”â”›â”â”┃┃ â”â”┃ â”â”┛┃ ┃â”â”â”› ┃ ┃┃ ┃â”â”â”›â”â”┃ â”› +â”â”┃┃ ┃â”â”â”›â”â”› ┃ ┃â”â”┃ ┃ ┃ ┃ ┃┃ â”â”â”› â”â”â”›â”â”┃ ┃ â”â”› â”â”┃â”â”┃┃ ┃ ┃ +â”â”┛┛ â”›â”â”┛┛ â”›â”â”┛┛┛ â”› â”› â”› â”â”â”›â”â”┛┛ â”â”┛┛ â”› â”› >â”› ┛┛ â”›â”â”â”›â”â”â”›â”â”›< +┃ ┃ â”â”┛┃ ┃â”â”â”› â”â”┛┛â”â” â”â”â”›â”â”┃â”â”┃ â”â”â”›â”â”â”›â”â”┃┃ ┃â”â”â”› â”┠┃ â”â”┛┛â”â”â”›â”â”┛┃ ┃â”â”â”›â”â”┃ +┃ ┃ â”â”â”›â”â”┃â”â”┃ ┃ ┃ ┃â”â”â”›â”â”â”›â”â”┃ â”â”â”›â”â”┃┃ ┃â”â”┃ ┃ ┃ ┃┃ â”â”┛┃â”â”â”›â”â”┛┃ ┃â”â”┃â”â”┃ +â”â”â”›â”â”â”›â”â”┛┛ â”›â”â”â”› â”› â”› â”›â”â”┛┛ ┛┛ â”› â”â”â”›â”â”â”›â”â”┛┛ â”› â”› >â”â” â”â”â”›â”â”┛┛┛ â”› â”â”â”›â”â”┛┛ â”›< +â”â”â”›â”â”â”›â”â”┃┛â”â”┃â”â”â”›â”â”â”› +â”â”┃ ┃ â”â”┛┃â”â”┛┃ â”â”┃ +â”â”â”› â”› â”› ┛┛ â”›â”â”â”›â”â”â”› + â”â” â”â”┛┃ ┃â”â”┛┛┃ ┃â”â”â”› â”â”┛┛â”â” â”â”â”›â”â”┃┃┃┃ â”â”┛┛┃ ┃â”â”â”› ┃ ┃â”â”┛┛â”â”┃â”â”â”› + ┃ ┃â”â”â”›â”â”› ┃ ┃â”â”┃┃ ┃ ┃ ┃â”â”┃â”â”┃┃┃┃ â”â”┃┃â”â”┃ ┃ â”â”┃┃ ┃â”â”â”›â”â”â”› +┛┛ â”›â”â”┛┛ â”›â”â”┛┛┛ â”›â”â”â”› â”› â”› â”›â”â”┛┛ â”›â”â”â”› â”â”┛┛┛ â”› â”› >â”› â”›â”â”┛┛┛ â”›â”â”â”›< +┃ â”â”┛┃ ┃â”â”â”›â”â” â”â” â”â”┃┛â”â” â”â”â”›â”â” â”â” â”› +┃ â”â”┛┃ ┃â”â”┛┃ ┃â”┛┃ ┃â”â”┃┃â”â”┃â”â”┛┃ ┃ ┃ ┃┃ â”â”›â”â”› +â”â”â”›â”â”â”› â”› â”â”â”›â”â” â”› ┛┛ ┛┛â”â” â”â”â”›â”â” # â”› ┛┛ diff --git a/externals/figlet/tests/res020.txt b/externals/figlet/tests/res020.txt new file mode 100644 index 0000000000..4de016c0e1 --- /dev/null +++ b/externals/figlet/tests/res020.txt @@ -0,0 +1,140 @@ + _ _ + /o | | | | \ +/ __ , | | | | \ +\ | / \_/ \_|/ \ |/_) / + \|/\__/ \/ | |_/| \_// + /| + \| + _ _ _ _ + o | | | | ____ o | | | | o / + __ , | | | | / __,\ _ _ | | | | /_ _|_ __ + | / \_/ \_|/ \ |/_) | / | || / |/ | |/ |/ | | /\/ /|/ | / + |/\__/ \/ | |_/| \_/| \_/|/ |_/ | |_/|__/|__/ \_/|_/ /\_/o/ |__/|_/\___/ +/| \____/ |\ +\| |/ + _ _ + /| | | \ | | + / | | __ __, ,_ __ _|_ __, _|_ _ __| \ , | | + / |/ / \_/ | / | / \_| / | | |/ / | / / \_|/ \ +/ |__/\__/ \_/|/ |_/\__/ |_/\_/|_/|_/|__/o\_/|_// \/ | |_/ + /| + \| + + + _ _ \|/ +-----/ |/ | --*-- + | |_/ /|\ + + + _ _ _ + /o | | | | \ | | o +/ __ , | | | | \ __, _ __, __ | | _ +\ | / \_/ \_|/ \ |/_) / / | |/ \_/ | / |/ \ |/ + \|/\__/ \/ | |_/| \_// \_/|_/|__/ \_/|_/\___/| |_/|__/o + /| /| + \| \| + _ , +| | o /|| | o +| | _ _ _ ||__|_ , _ _ _|_ __, +|/ | / |/ | |/ | | / \_| | / |/ | | / | /\/ +|__/|_/ | |_/|__/ | | o \/ \_/|/ | |_/|_/\_/|_/ /\_/ + /| + \| + + + _ ,_ ,_ __ ,_ _ _ _ __, ,_ +|/ / | / | / \_/ | / |/ | |/ / | / | +|__/ |_/ |_/\__/ |_/ | |_/|__/\_/|_/ |_/ + + + _ + | | | + _ _ _ _ _ __ _|_ _ __| _|_ __ | | _ _ _ +| | / |/ | |/ /\/ |/ \_|/ / | |/ / | | / \_|/_) |/ / |/ | + \_/|_/ | |_/|__/ /\_/|__/ |__/\___/|_/|__/\_/|_/ |_/\__/ | \_/|__/ | |_/ + /| + \| +o o +\\ / + | + > + | + / + + _ _ _ + /o | | | | \ | | o +/ __ , | | | | \ __, _ __, __ | | _ +\ | / \_/ \_|/ \ |/_) / / | |/ \_/ | / |/ \ |/ + \|/\__/ \/ | |_/| \_// \_/|_/|__/ \_/|_/\___/| |_/|__/o + /| /| + \| \| + _ , o o +| | o /|| | o \\ / +| | _ _ _ ||__|_ | +|/ | / |/ | |/ | | > +|__/|_/ | |_/|__/ | | o | + / + + _ _ _ _ + /o | | | | \ | | | | +/ __ , | | | | \ _|_ | | _ _ | | __ _|_ +\ | / \_/ \_|/ \ |/_) / | |/ \ |/ |/ \_|/ / \_| + \|/\__/ \/ | |_/| \_// |_/| |_/|__/ |__/ |__/\__/ |_/ + /| /| + \| \| + _ _ + | | o | | +_|_ | | __ | | _ _ _ , + | |/ \ | / |/_) |/ / |/ | / \_ + |_/| |_/|_/\___/| \_/|__/ | |_/ \/ + + + _ _ _ _ + / | | | | o | | | \ | | +/ __, , | | | | _ | | __| \ _|_ | | __ , _ +\ / | / \_| | |/ |/ | |/ |/ / | / | |/ \ / \_/ \_|/ + \\_/|_/ \/ \_/|_/|__/|__/|_/|__/|__/\_/|_// |_/| |_/\__/ \/ |__/ + |\ |\ + |/ |/ + o _ _ _ + / | | | | | | + __, ,_ _ _ _ _|_ , | | _ | | | | +/ | / | |/ / |/ | | / \_|/ \ |/ |/ |/ +\_/|_/ |_/|__/ | |_/ |_/ \/ | |_/|__/|__/|__/ + + + + o + , __ ,_ _ _|_ , +/ \_/ / | | |/ \_| / \_ + \/ \___/ |_/|_/|__/ |_/ \/ + /| + \| + _ _ + / o | | \ | | o +/ _ ,_ __ | | \ _|_ | | , +\ |/ / | | / |/ \ / | |/ \ | / \_ + \|__/ |_/|_/\___/| |_// |_/| |_/|_/ \/ + + + o _ _ + / | | o | | + __, , _ _ _|_ __ | | __ | | _ _ _ +| | |_/ | / \_/ |/ | | / |/ \ | / |/_) |/ / |/ | + \/ \/ \_/|_/ \/ | |_/ |_/ \___/| |_/|_/\___/| \_/|__/ | |_/o + + + + o + _ _ + ---------- | / |/ | + |_/ | |_/ + + + _ _ + | | | | | o | | | +--+--+-- __| _ | | __, _ _ __| _ _ | | +--+--+--/ | |/ |/ \_| / | / |/ |-----/ | |/ | |_|/ |/ + | | \_/|_/|__/\_/ |_/\_/|_/ | |_/ \_/|_/|__/ \/ |__/|__/ + + diff --git a/externals/figlet/tests/res021.txt b/externals/figlet/tests/res021.txt new file mode 100644 index 0000000000..b083225dbe --- /dev/null +++ b/externals/figlet/tests/res021.txt @@ -0,0 +1,36 @@ + __ _ _ _ __ _ _ _ ____ _ __ _ __ _ ___ _ _ ___ _ __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ _ __ __/\__ / /(_) ___ ___| |__ | | __\ \ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ _____| '_ \ \ / / / | |/ _ \/ __| '_ \| |/ / \ \ +\ \ | | (_) \__ \ | | | < / / | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | |_____| | | | /_ _\ \ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| |_| |_| \/ \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ |__/ \____/ |___/ |__/ + _ _ _ _ _ _ _ _ _ _ _ ___ _ + __ _ _ __ __ _ ___| |__ ___ _ | (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ ( ) \ ( ) + / _` | '_ \ / _` |/ __| '_ \ / _ (_) | | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| | | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ \|| ||/ +| (_| | |_) | (_| | (__| | | | __/_ | | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < | __/ | | | | (_) | | | | | | __/ (_| | | | |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | > > + \__,_| .__/ \__,_|\___|_| |_|\___(_) |_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| | | + |_| |___/ |_| /_/ + __ _ _ _ __ _ _ _ _ _ _ ___ _ __ _ _ _ __ _ _ _ _ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ | (_)_ __ ___ / | || | _ ( ) \ ( ) / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ | |_| |__ (_) ___| | _____ _ __ ___ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) | | | '_ \ / _ \ | | || |(_) \|| ||/ / / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| | __| '_ \| |/ __| |/ / _ \ '_ \/ __| +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ | | | | | | __/ | |__ _| > > \ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ | |_| | | | | (__| < __/ | | \__ \ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) |_|_|_| |_|\___| |_| |_|(_) | | \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| \__|_| |_|_|\___|_|\_\___|_| |_|___/ + |__/ |_| /_/ |__/ |_| + __ __ __ _ _ ___ _ _ _ _ _ _ _ _ _ __ _ _ __ _ _ _ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | ___ ___ _ __(_)_ __ | |_ ___ / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | / __|/ __| '__| | '_ \| __/ __| / // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ | (_| | | | __/ | | | | |_ \__ \ | | | __/ | | \__ \ (__| | | | |_) | |_\__ \ \ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| |___/\___|_| |_| .__/ \__|___/ \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + |_| + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ _ _ _ _ _ _ _ + (_)_ __ _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | + _____ _____ | | '_ \ |_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | + |_____|_____| | | | | | |_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_|_| |_| |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/externals/figlet/tests/res022.txt b/externals/figlet/tests/res022.txt new file mode 100644 index 0000000000..fb6147b2d9 --- /dev/null +++ b/externals/figlet/tests/res022.txt @@ -0,0 +1,1314 @@ + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + + + / + / + | | + \ + \ + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + _ + / + | | + | + |_| + + _ +| | +| | +| | +|_| + + + _ + | | + | | + \_ + + + __ + \ \ + > + /_/ + + + _ +(_) + _ +(_) + + + + / + / + /_/ + + + _ + / + | + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + + + / + / + /_/ + + _ +| | +| | +| | +|_| + + + _ + / + | ( + \_ + + + _ + / + | ( + \_ + |_ + + _ + | ' + | | + |_| + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | + \_ + + + + + _ +(_) + + + _ + / + | ( + \_ + +__ +\ \ + \ \ + / / +/_/ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + + + __ + |__ + + + + _ + | ' + | | + |_| + + + __/ + \ + /_ + \ + + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + + _ + / + | ( + \_ + + + _ + | ' + | | + | . + |_| + + _ + / + | ( + \_ + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + + _ +(_) + _ +(_) + + _ +| | +| | +| | +|_| + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + _ +/ | +| | +| | +|_| + + _ + | | + | | + |__ + + + + _ +(_) + _ +(_) + + + __ + / _ + \__ + |__ + + + _ + | | + | | + \_ + |_ + + _ + | ' + | | + |_| + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + + __ + \ \ + > + /_/ + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + + _ + | ' + | | + |_| + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + _ + | | + | | + \_ + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + + __ + \ \ + > + /_/ + + + _ + | ' + | | + | . + |_| + + _ + / + | + \_ + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | + \_ + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + _ + | | + | | + | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + _ +( ) + \| + + + + __ + \ \ + | + > + | + /_/ + _ +( ) +|/ + + + + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + + _ + / + | ( + \_ + + + _ + | ' + | | + | . + |_| + + _ + / + | ( + \_ + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + + _ +(_) + _ +(_) + + _ +| | +| | +| | +|_| + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + _ +/ | +| | +| | +|_| + + _ + | | + | | + |__ + + + + _ +(_) + _ +(_) + + _ +( ) + \| + + + + __ + \ \ + | + > + | + /_/ + _ +( ) +|/ + + + + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + | . + |_| + _ +| | +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | | + | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + + __ + / _ + \__ + |__ + + __ + / / +/ / +\ \ + \_\ + + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + + _ + | | + | | + \_ + + _ + / + | | + | + |_| + + _ + / + | | + | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | + \_ + + _ +| | +| | +| | +|_| + + + _ + / + | ( + \_ + +__ +\ \ + \ \ + / / +/_/ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + + _ + / + | + \_ + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + _ +( ) +|/ + + + + _ + | | + | _ + | | + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + _ +| | +| | +| | +|_| + + _ +| | +| | +| | +|_| + + + __ + / _ + \__ + |__ + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + | . + |_| + _ + | | + | _ + | | + \_ + + + __ + / _ + \__ + |__ + + __ + / / +/ / +\ \ + \_\ + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + +__ +\ \ + \ \ + / / +/_/ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + __ + / _ + \__ + |__ + + + __ + \ \ + \ + \ + + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + + _ + | ' + | | + |_| + + _ +( ) +|/ + + + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | | + | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + + + + _ +(_) + + + + + + + + + + __ + |__ + + + + + __ + |__ + + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + + _| + |_ + |_ + | + + + _ + / + | ( + \_ + + + _ + / + | + \_ + + _ + | | + | ' + | | + |_. + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + + __ + |__ + + + + _ + / + | ( + \_ + + + _ + / + | + \_ + + + __ + \ \ + \ + \ + + + _ + / + | + \_ + + _ +| | +| | +| | +|_| + diff --git a/externals/figlet/tests/res023.txt b/externals/figlet/tests/res023.txt new file mode 100644 index 0000000000..d4d7a719dd --- /dev/null +++ b/externals/figlet/tests/res023.txt @@ -0,0 +1,90 @@ + __ _ _ _ __ + / / (_) ___ ___| |_ | |__\ \ + < < | |/ _ \(_-<| ' \ | / / > > + \_\_/ |\___//__/|_||_||_\_\/_/ + |__/ + _ _ _ ____ _ __ _ _ __ _ + (_) ___ ___| |_ | |__ / __ \ (_) _ _ / _|| | _ _ __ __(_) / /___ | |_ + | |/ _ \(_-<| ' \ | / // / _` || || ' \ | _|| || || |\ \ / _ / // -_)| _| + _/ |\___//__/|_||_||_\_\\ \__,_||_||_||_||_| |_| \_,_|/_\_\(_)/_/ \___| \__| + |__/ \____/ + __ _ _ _ _ __ _ + __ / /| | ___ __ _ _ _ ___ | |_ __ _ | |_ ___ __| |\ \ ___| |_ + / _| / / | |/ _ \/ _` || '_|/ _ \| _|/ _` || _|/ -_) _ / _` | > > (_-<| ' \ + \__|/_/ |_|\___/\__, ||_| \___/ \__|\__,_| \__|\___|(_)\__,_|/_/ /__/|_||_| + |___/ + __ _ _ _ __ + ___ _ _ _/\_ / / (_) ___ ___| |_ | |__\ \ + |___|| ' \ > < < < | |/ _ \(_-<| ' \ | / / > > + |_||_| \/ \_\_/ |\___//__/|_||_||_\_\/_/ + |__/ + _ _ _ _ _ _ _ _ + __ _ _ __ __ _ __ | |_ ___ (_) | |(_) _ _ ___ / || | |(_) + / _` || '_ \/ _` |/ _|| ' \ / -_) _ | || || ' \ / -_) | ||_ _|_ + \__,_|| .__/\__,_|\__||_||_|\___|(_) |_||_||_||_|\___| |_| |_|(_) + |_| + _ + ___ _ _ _ _ | |_ __ _ __ __ ___ _ _ _ _ ___ _ _ + (_-<| || || ' \| _|/ _` |\ \ / / -_)| '_|| '_|/ _ \| '_| + /__/ \_, ||_||_|\__|\__,_|/_\_\ \___||_| |_| \___/|_| + |__/ + _ _ + _ _ ___ __ _ _ _ _ _ _ _ ___ __ __ _ __ ___ __ | |_ ___ __| | + | ' \ / -_)/ _` || '_| | || || ' \ / -_)\ \ /| '_ \/ -_)/ _|| _|/ -_)/ _` | + |_||_|\___|\__,_||_| \_,_||_||_|\___|/_\_\| .__/\___|\__| \__|\___|\__,_| + |_| + _ _ _ __ _ __ _ _ _ __ + | |_ ___ | |__ ___ _ _ ( )\ \ ( ) / / (_) ___ ___| |_ | |__\ \ + | _|/ _ \| / // -_)| ' \ \| | |_|/ < < | |/ _ \(_-<| ' \ | / / > > + \__|\___/|_\_\\___||_||_| | | \_\_/ |\___//__/|_||_||_\_\/_/ + /_/ |__/ + _ _ _ _ _ _ _ _ _ __ _ + __ _ _ __ __ _ __ | |_ ___ (_) | |(_) _ _ ___ / || | |(_) ( )\ \ ( ) + / _` || '_ \/ _` |/ _|| ' \ / -_) _ | || || ' \ / -_) | ||_ _|_ \| | |_|/ + \__,_|| .__/\__,_|\__||_||_|\___|(_) |_||_||_||_|\___| |_| |_|(_) | | + |_| /_/ + __ _ _ _ __ _ _ _ _ + / / (_) ___ ___| |_ | |__\ \ | |_ | |_ ___ _ __ | | ___ | |_ + < < | |/ _ \(_-<| ' \ | / / > > | _|| ' \ / -_) | '_ \| |/ _ \| _| + \_\_/ |\___//__/|_||_||_\_\/_/ \__||_||_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ + | |_ | |_ (_) __ | |__ ___ _ _ ___ + | _|| ' \ | |/ _|| / // -_)| ' \ (_-< + \__||_||_||_|\__||_\_\\___||_||_|/__/ + + __ __ __ _ _ _ __ _ _ + / / __ _ ___ _ _ / _| / _|(_) ___ | | __| |\ \ | |_ | |_ ___ ___ ___ + < < / _` |(_-<| || || _|| _|| |/ -_)| |/ _` | > > | _|| ' \ / _ \(_- > + /__/\__||_| |_|| .__/ \__|/__/ \_\\___||_| |_|\__||_||_|/_/ + |_| + _ _ _ _ _ + | |_ | |_ (_) ___ __ __ __ __ _ ___ _ _ ( )| |_ + | _|| ' \ | |(_-< \ V V // _` |(_-<| ' \|/ | _| + \__||_||_||_|/__/ \_/\_/ \__,_|/__/|_||_| \__| + + _ _ _ + __ | |_ (_) __ | |__ ___ _ _ + / _|| ' \ | |/ _|| / // -_)| ' \ _ + \__||_||_||_|\__||_\_\\___||_||_|(_) + + _ + ___ ___ (_) _ _ + |___||___| | || ' \ + |_||_||_| + + _ _ _ _ _ _ _ + _| | |_ __| | ___ | |__ (_) __ _ _ _ ___ __| | ___ __ __ ___ | | + |_ . _|/ _` |/ -_)| '_ \| |/ _` || ' \|___|/ _` |/ -_)\ V // -_)| | + |_ _|\__,_|\___||_.__/|_|\__,_||_||_| \__,_|\___| \_/ \___||_| + |_|_| diff --git a/externals/figlet/tests/res024.txt b/externals/figlet/tests/res024.txt new file mode 100644 index 0000000000..8f1923cef1 --- /dev/null +++ b/externals/figlet/tests/res024.txt @@ -0,0 +1,39 @@ +fonts/646-ca.flc +fonts/646-ca2.flc +fonts/646-cn.flc +fonts/646-cu.flc +fonts/646-de.flc +fonts/646-dk.flc +fonts/646-es.flc +fonts/646-es2.flc +fonts/646-fr.flc +fonts/646-gb.flc +fonts/646-hu.flc +fonts/646-irv.flc +fonts/646-it.flc +fonts/646-jp.flc +fonts/646-kr.flc +fonts/646-no.flc +fonts/646-no2.flc +fonts/646-pt.flc +fonts/646-pt2.flc +fonts/646-se.flc +fonts/646-se2.flc +fonts/646-yu.flc +fonts/8859-2.flc +fonts/8859-3.flc +fonts/8859-4.flc +fonts/8859-5.flc +fonts/8859-7.flc +fonts/8859-8.flc +fonts/8859-9.flc +fonts/frango.flc +fonts/hz.flc +fonts/ilhebrew.flc +fonts/jis0201.flc +fonts/koi8r.flc +fonts/moscow.flc +fonts/upper.flc +fonts/ushebrew.flc +fonts/uskata.flc +fonts/utf8.flc diff --git a/externals/figlet/tests/res025.txt b/externals/figlet/tests/res025.txt new file mode 100644 index 0000000000..12b3f95496 --- /dev/null +++ b/externals/figlet/tests/res025.txt @@ -0,0 +1,8 @@ +########## ## # # + ### ## ########## ####### ########## + # ## # # # # ## + # ## # ## # ## # + # # ## # ## # + # # ## # ## ## + # # ## ########## # + diff --git a/externals/figlet/tests/res026.txt b/externals/figlet/tests/res026.txt new file mode 100644 index 0000000000..12b3f95496 --- /dev/null +++ b/externals/figlet/tests/res026.txt @@ -0,0 +1,8 @@ +########## ## # # + ### ## ########## ####### ########## + # ## # # # # ## + # ## # ## # ## # + # # ## # ## # + # # ## # ## ## + # # ## ########## # + diff --git a/externals/figlet/tests/res027.txt b/externals/figlet/tests/res027.txt new file mode 100644 index 0000000000..7f6545f865 --- /dev/null +++ b/externals/figlet/tests/res027.txt @@ -0,0 +1,430 @@ + .--. .--. .---. .---. .-'''-. ,-----. .-./`) + | | _/ / | | |_ _| / _ \ .' .-, '. \ '_ .') _.--``) + | (`' ) / | | ( ' ) (`' )/`--' / ,-.| \ _ \ (_ (_) _)/_ _.-` + |(_ ()_) | '-(_{;}_)(_ o _). ; \ '_ / | : / . \/( ' ) + | (_,_) __ | (_,_) (_,_). '. | _`,/ \ _/ | ___ |-'`|((_{;}_) + | |\ \ | || _ _--. | .---. \ :: ( '\_/ \ ;| | | ' \(_,_) + | | \ `' /|( ' ) | | \ `-' | \ `"/ \ ) / | `-' / \ `-. + | | \ / (_{;}_)| | \ / '. \_/``".' \ / `---._) + `--' `'-' '(_,_) '---' `-...-' '-----' `-..-' + + + (``--._ + `-._ _\ + ( ` )\ + (_{;}_)) + (_,_)/ + .-' / + (_.---' + + + _-_'''-. .--. .--. .---. .---. .-'''-. ,-----. .-./`) + ( ' ) \ | | _/ / | | |_ _| / _ \ .' .-, '. \ '_ .') + (_{;}_) '| (`' ) / | | ( ' ) (`' )/`--' / ,-.| \ _ \ (_ (_) _) + .(_,_)--. ||(_ ()_) | '-(_{;}_)(_ o _). ; \ '_ / | : / . \ + | | / || (_,_) __ | (_,_) (_,_). '. | _`,/ \ _/ | ___ |-'`| + ' | /| |\ \ | || _ _--. | .---. \ :: ( '\_/ \ ;| | | ' + \ \____/ | | \ `' /|( ' ) | | \ `-' | \ `"/ \ ) / | `-' / + \ / | | \ / (_{;}_)| | \ / '. \_/``".' \ / + `'-...-' `--' `'-' '(_,_) '---' `-...-' '-----' `-..-' + + _ _ _____ __ ___ _ .---. ________ ,---. .--..-./`) + ( ` ) \ _\ / /.' | | | | ,_| | || \ | |\ .-.') + (_{;}_).-./ ). / ' | .' | |,-./ ) | .----'| , \ | |/ `-' \ + (_,_) \ '_ .') .' .' '_ | |\ '_ '`) | _|____ | |\_ \| | `-'`"` + (_ (_) _) ' ' ( \.-.| > (_) ) |_( )_ || _( )_\ | .---. + _ / \ \ ' (`. _` /|( . .-' (_ o._)__|| (_ o _) | | | + _( )_ `-'`-' \ | (_ (_) _) `-'`-'|___ |(_,_) | (_,_)\ | | | + (_ o _)/ / \ \ \ / . \ / | \| | | | | | | | + (_,_)'--' '----' ``-'`-'' `--------`'---' '--' '--' '---' + + .---. _ _ _______ ,---------. .-''-. _ _ + | ,_| ( ' ) / __ \\ \ .'_ _ \ ( ' ) + ,-./ ) (_{;}_) | ,_/ \__)`--. ,---'/ ( ` ) ' (_{;}_) + \ '_ '`) (_,_),-./ ) | \ . (_ o _) | (_,_) + > (_) ) // \ '_ '`) :_ _: | (_,_)___| // + ( . .-' // > (_) ) __ (_I_) ' \ .---. // + `-'`-'|___ ,-'/ ( . .-'_/ ) (_(=)_) \ `-' /,-'/ + | \) ( `-'`-' / (_I_) \ /) ( + `--------``---' `._____.' '---' `'-..-' `---' + + ____ ,---------. ,-----. .-------. .-_'''-. ,-----. + .' __ `.\ \ .' .-, '. | _ _ \ '_( )_ \ .' .-, '. + / ' \ \`--. ,---'/ ,-.| \ _ \ | ( ' ) | |(_ o _)| ' / ,-.| \ _ \ + |___| / | | \ ; \ '_ / | :|(_ o _) / . (_,_)/___| ; \ '_ / | : + _.-` | :_ _: | _`,/ \ _/ || (_,_).' __ | | .-----.| _`,/ \ _/ | + .' _ | (_I_) : ( '\_/ \ ;| |\ \ | |' \ '- .': ( '\_/ \ ; + | _( )_ | (_(=)_) \ `"/ \ ) / | | \ `' / \ `-'` | \ `"/ \ ) / + \ (_ o _) / (_I_) '. \_/``".' | | \ / \ / '. \_/``".' + '.(_,_).' '---' '-----' ''-' `'-' `'-...-' '-----' + + .---. .---. .-'''-. ______ .-''-. ,---------. + | | |_ _| / _ \ (``--._ | _ `''. .'_ _ \\ \ + | | ( ' ) (`' )/`--' `-._ _\ | _ | ) _ \ / ( ` ) '`--. ,---' + | '-(_{;}_)(_ o _). ( ` )\ |( ''_' ) | . (_ o _) | | \ + | (_,_) (_,_). '. (_{;}_))| . (_) `. | | (_,_)___| :_ _: + | _ _--. | .---. \ : (_,_)/ |(_ ._) '_ _' \ .---. (_I_) + |( ' ) | | \ `-' | .-' / | (_.\.' /( ` )\ `-' / (_(=)_) + (_{;}_)| | \ / (_.---' | .'(_{;}_)\ / (_I_) + '(_,_) '---' `-...-' '-----'` (_,_) `'-..-' '---' + + ,---. .--. + .-, | \ | | + ,-.| \ _ | , \ | | + \ '_ / | | |\_ \| | _ _ _ _ + _`,/ \ _/ | _( )_\ | ( ' )--( ' ) + ( '\_/ \ | (_ o _) |(_{;}_)(_{;}_) + `"/ \ ) | (_,_)\ | (_,_)--(_,_) + \_/``" | | | | + '--' '--' + + .--. .--. .---. .---. .-'''-. ,-----. .-./`) + | | _/ / | | |_ _| / _ \ .' .-, '. \ '_ .') _.--``) + | (`' ) / | | ( ' ) (`' )/`--' / ,-.| \ _ \ (_ (_) _)/_ _.-` + |(_ ()_) | '-(_{;}_)(_ o _). ; \ '_ / | : / . \/( ' ) + | (_,_) __ | (_,_) (_,_). '. | _`,/ \ _/ | ___ |-'`|((_{;}_) + | |\ \ | || _ _--. | .---. \ :: ( '\_/ \ ;| | | ' \(_,_) + | | \ `' /|( ' ) | | \ `-' | \ `"/ \ ) / | `-' / \ `-. + | | \ / (_{;}_)| | \ / '. \_/``".' \ / `---._) + `--' `'-' '(_,_) '---' `-...-' '-----' `-..-' + + + (``--._ + `-._ _\ + ( ` )\ + (_{;}_)) + (_,_)/ + .-' / + (_.---' + + + _ _ .-''-. .---. .---. _______ ____ .-------. ____ + ( ` ) .'_ _ \ | | |_ _| / __ \ .' __ `. \ _(`)_ \ .' __ `. + (_{;}_)/ ( ` ) '| | ( ' ) | ,_/ \__) / ' \ \| (_ o._)|/ ' \ \ + (_,_). (_ o _) || '-(_{;}_),-./ ) |___| / || (_,_) /|___| / | + | (_,_)___|| (_,_) \ '_ '`) _.-` || '-.-' _.-` | + _ ' \ .---.| _ _--. | > (_) ) __ .' _ || | .' _ | + _( )_ \ `-' /|( ' ) | | ( . .-'_/ )| _( )_ || | | _( )_ | + (_ o _) \ / (_{;}_)| | `-'`-' / \ (_ o _) // ) \ (_ o _) / + (_,_) `'-..-' '(_,_) '---' `._____.' '.(_,_).' `---' '.(_,_).' + + _ _ ,---. ,---. .-''-. ,---. .--..-./`) .---. + ( ` ) /,--.| /_ | .'_ _ \ | \ | |\ .-.') | ,_| + (_{;}_) //_ || ,_ | / ( ` ) '| , \ | |/ `-' \,-./ ) + (_,_) /_( )_|| ,-./ )| . (_ o _) || |\_ \| | `-'`"`\ '_ '`) + /(_ o _)| \ '_ '`) | (_,_)___|| _( )_\ | .---. > (_) ) + _ / /(_,_)||_ > (_) ) ' \ .---.| (_ o _) | | | ( . .-' + _( )_ / `-----' ||( . .-' \ `-' /| (_,_)\ | | | `-'`-'|___ + (_ o _)`-------|||-' `-'`-'| \ / | | | | | | | \ + (_,_) '-' '---' `'-..-' '--' '--' '---' `--------` + + _____ __ ____ ,---------. ,---. .--. ____ __ .-'''-. + \ _\ / / .' __ `.\ \| \ | | \ \ / // _ \ + .-./ ). / ' / ' \ \`--. ,---'| , \ | | \ _. / '(`' )/`--' + \ '_ .') .' |___| / | | \ | |\_ \| | _( )_ .'(_ o _). + (_ (_) _) ' _.-` | :_ _: | _( )_\ | ___(_ o _)' (_,_). '. + / \ \ .' _ | (_I_) | (_ o _) || |(_,_)' .---. \ : + `-'`-' \ | _( )_ | (_(=)_) | (_,_)\ || `-' / \ `-' | + / / \ \\ (_ o _) / (_I_) | | | | \ / \ / + '--' '----''.(_,_).' '---' '--' '--' `-..-' `-...-' + + .-------. ,-----. .-------. .-------. .-''-. + | _ _ \ .' .-, '. | _ _ \ | _ _ \ .'_ _ \ + | ( ' ) | / ,-.| \ _ \ | ( ' ) | | ( ' ) | / ( ` ) ' + |(_ o _) / ; \ '_ / | :|(_ o _) / |(_ o _) / . (_ o _) | + | (_,_).' __ | _`,/ \ _/ || (_,_).' __ | (_,_).' __ | (_,_)___| + | |\ \ | |: ( '\_/ \ ;| |\ \ | || |\ \ | |' \ .---. + | | \ `' / \ `"/ \ ) / | | \ `' /| | \ `' / \ `-' / + | | \ / '. \_/``".' | | \ / | | \ / \ / + ''-' `'-' '-----' ''-' `'-' ''-' `'-' `'-..-' + + .-------. ____ .-''-. ,---. .--. + | _ _ \ .' __ `. .'_ _ \ | \ | | + | ( ' ) | / ' \ \ / ( ` ) '| , \ | | + |(_ o _) / |___| / |. (_ o _) || |\_ \| | + | (_,_).' __ _.-` || (_,_)___|| _( )_\ | + | |\ \ | |.' _ |' \ .---.| (_ o _) | + | | \ `' /| _( )_ | \ `-' /| (_,_)\ | + | | \ / \ (_ o _) / \ / | | | | + ''-' `'-' '.(_,_).' `'-..-' '--' '--' + + .-''-. .-------. _____ __ .-''-. ,---. .--. ___ _ + .'_ _ \ \ _(`)_ \\ _\ / /.'_ _ \ | \ | |.' | | | + / ( ` ) '| (_ o._)|.-./ ). / '/ ( ` ) '| , \ | || .' | | + . (_ o _) || (_,_) /\ '_ .') .'. (_ o _) || |\_ \| |.' '_ | | + | (_,_)___|| '-.-'(_ (_) _) ' | (_,_)___|| _( )_\ |' ( \.-.| + ' \ .---.| | / \ \' \ .---.| (_ o _) |' (`. _` /| + \ `-' /| | `-'`-' \\ `-' /| (_,_)\ || (_ (_) _) + \ / / ) / / \ \\ / | | | | \ / . \ / + `'-..-' `---' '--' '----'`'-..-' '--' '--' ``-'`-'' + + ______ .-''-. ,---------. _______ + | _ `''. .'_ _ \\ \ / __ \ + | _ | ) _ \ / ( ` ) '`--. ,---'| ,_/ \__) + |( ''_' ) |. (_ o _) | | \ ,-./ ) + | . (_) `. || (_,_)___| :_ _: \ '_ '`) + |(_ ._) '' \ .---. (_I_) > (_) ) __ + | (_.\.' / \ `-' / (_(=)_)( . .-'_/ ) + | .' \ / (_I_) `-'`-' / + '-----'` `'-..-' '---' `._____.' + + ,---. .--. .-''-. .--. .--. ,-----. ,---------. + | \ | | .'_ _ \ | | _/ / .' .-, '.\ \ + | , \ | | / ( ` ) '| (`' ) / / ,-.| \ _ \`--. ,---' + | |\_ \| |. (_ o _) ||(_ ()_) ; \ '_ / | : | \ + | _( )_\ || (_,_)___|| (_,_) __ | _`,/ \ _/ | :_ _: + | (_ o _) |' \ .---.| |\ \ | |: ( '\_/ \ ; (_I_) + | (_,_)\ | \ `-' /| | \ `' / \ `"/ \ ) / (_(=)_) + | | | | \ / | | \ / '. \_/``".' (_I_) + '--' '--' `'-..-' `--' `'-' '-----' '---' + + _ _ .----, _ _ + ( ' )`-, ( (_I_) + (_{;}_) _\_ \(_(=)_) + (_,_) ( ' ) \(_I_) + (_{;}_) ( )/ + (_,_) / + / / + .-` ( + '----` + + .--. .--. .---. .---. .-'''-. ,-----. .-./`) + | | _/ / | | |_ _| / _ \ .' .-, '. \ '_ .') _.--``) + | (`' ) / | | ( ' ) (`' )/`--' / ,-.| \ _ \ (_ (_) _)/_ _.-` + |(_ ()_) | '-(_{;}_)(_ o _). ; \ '_ / | : / . \/( ' ) + | (_,_) __ | (_,_) (_,_). '. | _`,/ \ _/ | ___ |-'`|((_{;}_) + | |\ \ | || _ _--. | .---. \ :: ( '\_/ \ ;| | | ' \(_,_) + | | \ `' /|( ' ) | | \ `-' | \ `"/ \ ) / | `-' / \ `-. + | | \ / (_{;}_)| | \ / '. \_/``".' \ / `---._) + `--' `'-' '(_,_) '---' `-...-' '-----' `-..-' + + + (``--._ + `-._ _\ + ( ` )\ + (_{;}_)) + (_,_)/ + .-' / + (_.---' + + + _ _ .-''-. .---. .---. _______ ____ .-------. ____ + ( ` ) .'_ _ \ | | |_ _| / __ \ .' __ `. \ _(`)_ \ .' __ `. + (_{;}_)/ ( ` ) '| | ( ' ) | ,_/ \__) / ' \ \| (_ o._)|/ ' \ \ + (_,_). (_ o _) || '-(_{;}_),-./ ) |___| / || (_,_) /|___| / | + | (_,_)___|| (_,_) \ '_ '`) _.-` || '-.-' _.-` | + _ ' \ .---.| _ _--. | > (_) ) __ .' _ || | .' _ | + _( )_ \ `-' /|( ' ) | | ( . .-'_/ )| _( )_ || | | _( )_ | + (_ o _) \ / (_{;}_)| | `-'`-' / \ (_ o _) // ) \ (_ o _) / + (_,_) `'-..-' '(_,_) '---' `._____.' '.(_,_).' `---' '.(_,_).' + + _ _ ,---. ,---. .-''-. ,---. .--..-./`) .---. + ( ` ) /,--.| /_ | .'_ _ \ | \ | |\ .-.') | ,_| + (_{;}_) //_ || ,_ | / ( ` ) '| , \ | |/ `-' \,-./ ) + (_,_) /_( )_|| ,-./ )| . (_ o _) || |\_ \| | `-'`"`\ '_ '`) + /(_ o _)| \ '_ '`) | (_,_)___|| _( )_\ | .---. > (_) ) + _ / /(_,_)||_ > (_) ) ' \ .---.| (_ o _) | | | ( . .-' + _( )_ / `-----' ||( . .-' \ `-' /| (_,_)\ | | | `-'`-'|___ + (_ o _)`-------|||-' `-'`-'| \ / | | | | | | | \ + (_,_) '-' '---' `'-..-' '--' '--' '---' `--------` + + _ _ .----, _ _ + ( ' )`-, ( (_I_) + (_{;}_) _\_ \(_(=)_) + (_,_) ( ' ) \(_I_) + (_{;}_) ( )/ + (_,_) / + / / + .-` ( + '----` + + .--. .--. .---. .---. .-'''-. ,-----. .-./`) + | | _/ / | | |_ _| / _ \ .' .-, '. \ '_ .') _.--``) + | (`' ) / | | ( ' ) (`' )/`--' / ,-.| \ _ \ (_ (_) _)/_ _.-` + |(_ ()_) | '-(_{;}_)(_ o _). ; \ '_ / | : / . \/( ' ) + | (_,_) __ | (_,_) (_,_). '. | _`,/ \ _/ | ___ |-'`|((_{;}_) + | |\ \ | || _ _--. | .---. \ :: ( '\_/ \ ;| | | ' \(_,_) + | | \ `' /|( ' ) | | \ `-' | \ `"/ \ ) / | `-' / \ `-. + | | \ / (_{;}_)| | \ / '. \_/``".' \ / `---._) + `--' `'-' '(_,_) '---' `-...-' '-----' `-..-' + + .-''-. .---. .---.,---------. + .'_ _ \ | | |_ _|\ \ (``--._ + / ( ` ) '| | ( ' ) `--. ,---' `-._ _\ + . (_ o _) || '-(_{;}_) | \ ( ` )\ + | (_,_)___|| (_,_) :_ _: (_{;}_)) + ' \ .---.| _ _--. | (_I_) (_,_)/ + \ `-' /|( ' ) | | (_(=)_) .-' / + \ / (_{;}_)| | (_I_) (_.---' + `'-..-' '(_,_) '---' '---' + + ,---------. ,-----. .---. .-------. + \ \ .' .-, '. | ,_| \ _(`)_ \ + `--. ,---'/ ,-.| \ _ \ ,-./ ) | (_ o._)| + | \ ; \ '_ / | :\ '_ '`) | (_,_) / + :_ _: | _`,/ \ _/ | > (_) ) | '-.-' + (_I_) : ( '\_/ \ ;( . .-' | | + (_(=)_) \ `"/ \ ) / `-'`-'|___ | | + (_I_) '. \_/``".' | \/ ) + '---' '-----' `--------``---' + + .-''-. .--. .--. _______ .-./`) .---. .---.,---------. + .'_ _ \ | | _/ / / __ \ \ .-.')| | |_ _|\ \ + / ( ` ) '| (`' ) / | ,_/ \__)/ `-' \| | ( ' ) `--. ,---' + . (_ o _) ||(_ ()_) ,-./ ) `-'`"`| '-(_{;}_) | \ + | (_,_)___|| (_,_) __ \ '_ '`) .---. | (_,_) :_ _: + ' \ .---.| |\ \ | | > (_) ) __ | | | _ _--. | (_I_) + \ `-' /| | \ `' /( . .-'_/ )| | |( ' ) | | (_(=)_) + \ / | | \ / `-'`-' / | | (_{;}_)| | (_I_) + `'-..-' `--' `'-' `._____.' '---' '(_,_) '---' '---' + + .-'''-. ,---. .--. + / _ \| \ | | + (`' )/`--'| , \ | | + (_ o _). | |\_ \| | + (_,_). '. | _( )_\ | + .---. \ :| (_ o _) | + \ `-' || (_,_)\ | + \ / | | | | + `-...-' '--' '--' + + .-./`) ________ ________ ___ _ .-'''-. ____ + \ .-.')| || |.' | | | / _ \ .' __ `. _.--``) + / `-' \| .----'| .----'| .' | | (`' )/`--'/ ' \ \ /_ _.-` + `-'`"`| _|____ | _|____ .' '_ | |(_ o _). |___| / | /( ' ) + .---. |_( )_ ||_( )_ |' ( \.-.| (_,_). '. _.-` |((_{;}_) + | | (_ o._)__|(_ o._)__|' (`. _` /|.---. \ :.' _ | \(_,_) + | | |(_,_) |(_,_) | (_ (_) _)\ `-' || _( )_ | \ `-. + | | | | | | \ / . \ / \ / \ (_ o _) / `---._) + '---' '---' '---' ``-'`-'' `-...-' '.(_,_).' + + ______ .---. .-''-. + (``--._ | _ `''. | ,_| .'_ _ \ + `-._ _\ | _ | ) _ \,-./ ) / ( ` ) ' + ( ` )\ |( ''_' ) |\ '_ '`) . (_ o _) | + (_{;}_))| . (_) `. | > (_) ) | (_,_)___| + (_,_)/ |(_ ._) '( . .-' ' \ .---. + .-' / | (_.\.' / `-'`-'|___\ `-' / + (_.---' | .' | \\ / + '-----'` `--------` `'-..-' + + .-''-. .-'''-. ,-----. .---. .---.,---------. + .'_ _ \ / _ \ .' .-, '. | | |_ _|\ \ + / ( ` ) ' (`' )/`--' / ,-.| \ _ \ | | ( ' ) `--. ,---' + . (_ o _) |(_ o _). ; \ '_ / | :| '-(_{;}_) | \ + | (_,_)___| (_,_). '. | _`,/ \ _/ || (_,_) :_ _: + ' \ .---..---. \ :: ( '\_/ \ ;| _ _--. | (_I_) + \ `-' /\ `-' | \ `"/ \ ) / |( ' ) | | (_(=)_) + \ / \ / '. \_/``".' (_{;}_)| | (_I_) + `'-..-' `-...-' '-----' '(_,_) '---' '---' + + ,---------. _ _ ,---. .--. .-''-. .-------. ____ + \ \ ( ' ) | \ | | .'_ _ \ | _ _ \ .' __ `. + `--. ,---'(_{;}_)| , \ | | / ( ` ) '| ( ' ) | / ' \ \ + | \ (_,_) | |\_ \| |. (_ o _) ||(_ o _) / |___| / | + :_ _: | _( )_\ || (_,_)___|| (_,_).' __ _.-` | + (_I_) | (_ o _) |' \ .---.| |\ \ | |.' _ | + (_(=)_) | (_,_)\ | \ `-' /| | \ `' /| _( )_ | + (_I_) | | | | \ / | | \ / \ (_ o _) / + '---' '--' '--' `'-..-' ''-' `'-' '.(_,_).' + + .---. .---. .-''-. .---. .---. .-'''-. + | ,_| | ,_| .'_ _ \ | | |_ _| / _ \ + ,-./ ) ,-./ ) / ( ` ) '| | ( ' ) (`' )/`--' + \ '_ '`) \ '_ '`) . (_ o _) || '-(_{;}_)(_ o _). + > (_) ) > (_) ) | (_,_)___|| (_,_) (_,_). '. + ( . .-' ( . .-' ' \ .---.| _ _--. | .---. \ : + `-'`-'|___`-'`-'|___\ `-' /|( ' ) | | \ `-' | + | \| \\ / (_{;}_)| | \ / + `--------``--------` `'-..-' '(_,_) '---' `-...-' + + .-'''-. ,---------. .-------. .-./`) .-------. _______ .-'''-. + / _ \\ \\ _(`)_ \\ .-.')| _ _ \ / __ \ / _ \ + (`' )/`--' `--. ,---'| (_ o._)|/ `-' \| ( ' ) | | ,_/ \__) (`' )/`--' +(_ o _). | \ | (_,_) / `-'`"`|(_ o _) / ,-./ ) (_ o _). + (_,_). '. :_ _: | '-.-' .---. | (_,_).' __ \ '_ '`) (_,_). '. +.---. \ : (_I_) | | | | | |\ \ | | > (_) ) __ .---. \ : +\ `-' | (_(=)_) | | | | | | \ `' /( . .-'_/ )\ `-' | + \ / (_I_) / ) | | | | \ / `-'`-' / \ / + `-...-' '---' `---' '---' ''-' `'-' `._____.' `-...-' + + .---. .---. _______ .-./`) .-------. .-''-. +(``--._ | | |_ _| / __ \ \ .-.')| _ _ \ .'_ _ \ _.--``) + `-._ _\ | | ( ' ) | ,_/ \__)/ `-' \| ( ' ) | / ( ` ) ' /_ _.-` + ( ` )\ | '-(_{;}_),-./ ) `-'`"`|(_ o _) / . (_ o _) | /( ' ) + (_{;}_))| (_,_) \ '_ '`) .---. | (_,_).' __ | (_,_)___|((_{;}_) + (_,_)/ | _ _--. | > (_) ) __ | | | |\ \ | |' \ .---. \(_,_) + .-' / |( ' ) | | ( . .-'_/ )| | | | \ `' / \ `-' / \ `-. +(_.---' (_{;}_)| | `-'`-' / | | | | \ / \ / `---._) + '(_,_) '---' `._____.' '---' ''-' `'-' `'-..-' + + .-'''-. .-./`) .---. .---.,---------. + / _ \\ .-.')| | |_ _|\ \ + (`' )/`--'/ `-' \| | ( ' ) `--. ,---' + (_ o _). `-'`"`| '-(_{;}_) | \ + (_,_). '. .---. | (_,_) :_ _: + .---. \ : | | | _ _--. | (_I_) + \ `-' | | | |( ' ) | | (_(=)_) + \ / | | (_{;}_)| | (_I_) + `-...-' '---' '(_,_) '---' '---' + + ,---------. _ _ ,---. .--. .-'''-. ____ .--. .--. + \ \ ( ' ) | \ | | / _ \ .' __ `. | |_ | | + `--. ,---'(_{;}_)| , \ | | (`' )/`--'/ ' \ \| _( )_ | | + | \ (_,_) | |\_ \| |(_ o _). |___| / ||(_ o _) | | + :_ _: | _( )_\ | (_,_). '. _.-` || (_,_) \ | | + (_I_) | (_ o _) |.---. \ :.' _ || |/ \| | + (_(=)_) | (_,_)\ |\ `-' || _( )_ || ' /\ ` | + (_I_) | | | | \ / \ (_ o _) /| / \ | + '---' '--' '--' `-...-' '.(_,_).' `---' `---` + + .-''-. .--. .--. _______ .-./`) .---. .---. _______ + .'_ _ \ | | _/ / / __ \ \ .-.')| | |_ _| / __ \ + / ( ` ) '| (`' ) / | ,_/ \__)/ `-' \| | ( ' ) | ,_/ \__) + . (_ o _) ||(_ ()_) ,-./ ) `-'`"`| '-(_{;}_),-./ ) + | (_,_)___|| (_,_) __ \ '_ '`) .---. | (_,_) \ '_ '`) + ' \ .---.| |\ \ | | > (_) ) __ | | | _ _--. | > (_) ) __ + \ `-' /| | \ `' /( . .-'_/ )| | |( ' ) | | ( . .-'_/ ) + \ / | | \ / `-'`-' / | | (_{;}_)| | `-'`-' / + `'-..-' `--' `'-' `._____.' '---' '(_,_) '---' `._____.' + + ,---. .--. + | \ | | + | , \ | | + | |\_ \| | + | _( )_\ | + _ _ | (_ o _) | + ( ` ) | (_,_)\ | + (_{;}_)| | | | + (_,_) '--' '--' + + ,---. .--..-./`) + | \ | |\ .-.') + | , \ | |/ `-' \ + | |\_ \| | `-'`"` _ _ _ _ _ _ _ _ + | _( )_\ | .---. ( ' )--( ' ) ( ' )--( ' ) + | (_ o _) | | | (_{;}_)(_{;}_)(_{;}_)(_{;}_) + | (_,_)\ | | | (_,_)--(_,_) (_,_)--(_,_) + | | | | | | + '--' '--' '---' + + ,---. .--. ____ .-./`) _______ .-''-. ______ + | \ | | .' __ `. \ .-.')\ ____ \ .'_ _ \ | _ `''. + | , \ | |/ ' \ \/ `-' \| | \ | / ( ` ) '| _ | ) _ \ + | |\_ \| ||___| / | `-'`"`| |____/ / . (_ o _) ||( ''_' ) | + | _( )_\ | _.-` | .---. | _ _ '. | (_,_)___|| . (_) `. | + | (_ o _) |.' _ | | | | ( ' ) \' \ .---.|(_ ._) ' + | (_,_)\ || _( )_ | | | | (_{;}_) | \ `-' /| (_.\.' / + | | | |\ (_ o _) / | | | (_,_) / \ / | .' + '--' '--' '.(_,_).' '---' /_______.' `'-..-' '-----'` + + .---. .-''-. ,---. ,---. .-''-. ______ + | ,_| .'_ _ \ | / | | .'_ _ \ | _ `''. + ,-./ ) / ( ` ) '| | | .'/ ( ` ) '| _ | ) _ \ + \ '_ '`) . (_ o _) || | _ | |. (_ o _) ||( ''_' ) | _ _ _ _ + > (_) ) | (_,_)___|| _( )_ || (_,_)___|| . (_) `. | ( ' )--( ' ) + ( . .-' ' \ .---.\ (_ o._) /' \ .---.|(_ ._) '(_{;}_)(_{;}_) + `-'`-'|___\ `-' / \ (_,_) / \ `-' /| (_.\.' / (_,_)--(_,_) + | \\ / \ / \ / | .' + `--------` `'-..-' `---` `'-..-' '-----'` + diff --git a/externals/figlet/utf8.c b/externals/figlet/utf8.c new file mode 100644 index 0000000000..b8338c1ea8 --- /dev/null +++ b/externals/figlet/utf8.c @@ -0,0 +1,326 @@ +#ifdef TLF_FONTS +/* + * Copyright (c) 2007 Alexey Vatchenko + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#include + +#include +#include /* for htonl() */ + +#include "utf8.h" + +#define _NXT 0x80 +#define _SEQ2 0xc0 +#define _SEQ3 0xe0 +#define _SEQ4 0xf0 +#define _SEQ5 0xf8 +#define _SEQ6 0xfc + +#define _BOM 0xfeff + +static int __wchar_forbitten(wchar_t sym); +static int __utf8_forbitten(u_char octet); + +static int +__wchar_forbitten(wchar_t sym) +{ + + /* Surrogate pairs */ + if (sym >= 0xd800 && sym <= 0xdfff) + return (-1); + + return (0); +} + +static int +__utf8_forbitten(u_char octet) +{ + + switch (octet) { + case 0xc0: + case 0xc1: + case 0xf5: + case 0xff: + return (-1); + } + + return (0); +} + +/* + * DESCRIPTION + * This function translates UTF-8 string into UCS-4 string (all symbols + * will be in local machine byte order). + * + * It takes the following arguments: + * in - input UTF-8 string. It can be null-terminated. + * insize - size of input string in bytes. + * out - result buffer for UCS-4 string. If out is NULL, + * function returns size of result buffer. + * outsize - size of out buffer in wide characters. + * + * RETURN VALUES + * The function returns size of result buffer (in wide characters). + * Zero is returned in case of error. + * + * CAVEATS + * 1. If UTF-8 string contains zero symbols, they will be translated + * as regular symbols. + * 2. If UTF8_IGNORE_ERROR or UTF8_SKIP_BOM flag is set, sizes may vary + * when `out' is NULL and not NULL. It's because of special UTF-8 + * sequences which may result in forbitten (by RFC3629) UNICODE + * characters. So, the caller must check return value every time and + * not prepare buffer in advance (\0 terminate) but after calling this + * function. + */ +size_t +utf8_to_wchar(const char *in, size_t insize, wchar_t *out, size_t outsize, + int flags) +{ + u_char *p, *lim; + wchar_t *wlim, high; + size_t n, total, i, n_bits; + + if (in == NULL || insize == 0 || (outsize == 0 && out != NULL)) + return (0); + + total = 0; + p = (u_char *)in; + lim = p + insize; + wlim = out + outsize; + + for (; p < lim; p += n) { + if (__utf8_forbitten(*p) != 0 && + (flags & UTF8_IGNORE_ERROR) == 0) + return (0); + + /* + * Get number of bytes for one wide character. + */ + n = 1; /* default: 1 byte. Used when skipping bytes. */ + if ((*p & 0x80) == 0) + high = (wchar_t)*p; + else if ((*p & 0xe0) == _SEQ2) { + n = 2; + high = (wchar_t)(*p & 0x1f); + } else if ((*p & 0xf0) == _SEQ3) { + n = 3; + high = (wchar_t)(*p & 0x0f); + } else if ((*p & 0xf8) == _SEQ4) { + n = 4; + high = (wchar_t)(*p & 0x07); + } else if ((*p & 0xfc) == _SEQ5) { + n = 5; + high = (wchar_t)(*p & 0x03); + } else if ((*p & 0xfe) == _SEQ6) { + n = 6; + high = (wchar_t)(*p & 0x01); + } else { + if ((flags & UTF8_IGNORE_ERROR) == 0) + return (0); + continue; + } + + /* does the sequence header tell us truth about length? */ + if (lim - p <= n - 1) { + if ((flags & UTF8_IGNORE_ERROR) == 0) + return (0); + n = 1; + continue; /* skip */ + } + + /* + * Validate sequence. + * All symbols must have higher bits set to 10xxxxxx + */ + if (n > 1) { + for (i = 1; i < n; i++) { + if ((p[i] & 0xc0) != _NXT) + break; + } + if (i != n) { + if ((flags & UTF8_IGNORE_ERROR) == 0) + return (0); + n = 1; + continue; /* skip */ + } + } + + total++; + + if (out == NULL) + continue; + + if (out >= wlim) + return (0); /* no space left */ + + *out = 0; + n_bits = 0; + for (i = 1; i < n; i++) { + *out |= (wchar_t)(p[n - i] & 0x3f) << n_bits; + n_bits += 6; /* 6 low bits in every byte */ + } + *out |= high << n_bits; + + if (*out == 0) /* return at end of string */ + break; + + if (__wchar_forbitten(*out) != 0) { + if ((flags & UTF8_IGNORE_ERROR) == 0) + return (0); /* forbitten character */ + else { + total--; + out--; + } + } else if (*out == _BOM && (flags & UTF8_SKIP_BOM) != 0) { + total--; + out--; + } + + out++; + } + + return (total); +} + +/* + * DESCRIPTION + * This function translates UCS-4 symbols (given in local machine + * byte order) into UTF-8 string. + * + * It takes the following arguments: + * in - input unicode string. It can be null-terminated. + * insize - size of input string in wide characters. + * out - result buffer for utf8 string. If out is NULL, + * function returns size of result buffer. + * outsize - size of result buffer. + * + * RETURN VALUES + * The function returns size of result buffer (in bytes). Zero is returned + * in case of error. + * + * CAVEATS + * If UCS-4 string contains zero symbols, they will be translated + * as regular symbols. + */ +size_t +wchar_to_utf8(const wchar_t *in, size_t insize, char *out, size_t outsize, + int flags) +{ + wchar_t *w, *wlim, ch; + u_char *p, *lim, *oc; + size_t total, n; + + if (in == NULL || insize == 0 || (outsize == 0 && out != NULL)) + return (0); + + w = (wchar_t *)in; + wlim = w + insize; + p = (u_char *)out; + lim = p + outsize; + total = 0; + for (; w < wlim; w++) { + if (__wchar_forbitten(*w) != 0) { + if ((flags & UTF8_IGNORE_ERROR) == 0) + return (0); + else + continue; + } + + if (*w == _BOM && (flags & UTF8_SKIP_BOM) != 0) + continue; + + if (*w < 0) { + if ((flags & UTF8_IGNORE_ERROR) == 0) + return (0); + continue; + } else if (*w <= 0x0000007f) + n = 1; + else if (*w <= 0x000007ff) + n = 2; + else if (*w <= 0x0000ffff) + n = 3; + else if (*w <= 0x001fffff) + n = 4; + else if (*w <= 0x03ffffff) + n = 5; + else /* if (*w <= 0x7fffffff) */ + n = 6; + + total += n; + + if (out == NULL) + continue; + + if (lim - p <= n - 1) + return (0); /* no space left */ + + /* make it work under different endians */ + ch = htonl(*w); + oc = (u_char *)&ch; + switch (n) { + case 1: + *p = oc[3]; + break; + + case 2: + p[1] = _NXT | (oc[3] & 0x3f); + p[0] = _SEQ2 | (oc[3] >> 6) | ((oc[2] & 0x07) << 2); + break; + + case 3: + p[2] = _NXT | (oc[3] & 0x3f); + p[1] = _NXT | (oc[3] >> 6) | ((oc[2] & 0x0f) << 2); + p[0] = _SEQ3 | ((oc[2] & 0xf0) >> 4); + break; + + case 4: + p[3] = _NXT | (oc[3] & 0x3f); + p[2] = _NXT | (oc[3] >> 6) | ((oc[2] & 0x0f) << 2); + p[1] = _NXT | ((oc[2] & 0xf0) >> 4) | + ((oc[1] & 0x03) << 4); + p[0] = _SEQ4 | ((oc[1] & 0x1f) >> 2); + break; + + case 5: + p[4] = _NXT | (oc[3] & 0x3f); + p[3] = _NXT | (oc[3] >> 6) | ((oc[2] & 0x0f) << 2); + p[2] = _NXT | ((oc[2] & 0xf0) >> 4) | + ((oc[1] & 0x03) << 4); + p[1] = _NXT | (oc[1] >> 2); + p[0] = _SEQ5 | (oc[0] & 0x03); + break; + + case 6: + p[5] = _NXT | (oc[3] & 0x3f); + p[4] = _NXT | (oc[3] >> 6) | ((oc[2] & 0x0f) << 2); + p[3] = _NXT | (oc[2] >> 4) | ((oc[1] & 0x03) << 4); + p[2] = _NXT | (oc[1] >> 2); + p[1] = _NXT | (oc[0] & 0x3f); + p[0] = _SEQ6 | ((oc[0] & 0x40) >> 6); + break; + } + + /* + * NOTE: do not check here for forbitten UTF-8 characters. + * They cannot appear here because we do proper convertion. + */ + + p += n; + } + + return (total); +} +#endif /* TLF_FONTS */ diff --git a/externals/figlet/utf8.h b/externals/figlet/utf8.h new file mode 100644 index 0000000000..a3e09bdee8 --- /dev/null +++ b/externals/figlet/utf8.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2007 Alexey Vatchenko + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * utf8: implementation of UTF-8 charset encoding (RFC3629). + */ +#ifndef _UTF8_H_ +#define _UTF8_H_ + +#include + +#include + +#define UTF8_IGNORE_ERROR 0x01 +#define UTF8_SKIP_BOM 0x02 + +#ifdef __cplusplus +extern "C" { +#endif + +size_t utf8_to_wchar(const char *in, size_t insize, wchar_t *out, + size_t outsize, int flags); +size_t wchar_to_utf8(const wchar_t *in, size_t insize, char *out, + size_t outsize, int flags); + +#ifdef __cplusplus +} +#endif + +#endif /* !_UTF8_H_ */ diff --git a/externals/figlet/zipio.c b/externals/figlet/zipio.c new file mode 100644 index 0000000000..f7406d952a --- /dev/null +++ b/externals/figlet/zipio.c @@ -0,0 +1,818 @@ +/* + * zipio.c - stdio emulation library for reading zip files + * + * Version 1.1.2 + */ + +/* + * Copyright (C) 1995, Edward B. Hamrick + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of the copyright holders + * not be used in advertising or publicity pertaining to distribution of + * the software without specific, written prior permission. The copyright + * holders makes no representations about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT + * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Changes from 1.1 to 1.1.1: + * Changed "z*" functions to "Z*" to avoid namespace pollution. + * Added "zungetc" macro. + * Added definitions of SEEK_SET, SEEK_CUR, SEEK_END for the Posixly challenged + * John Cowan + * + * Changes from 1.1.1 to 1.1.2: + * Relicensed under the MIT license, with consent of the copyright holders. + * Avoid usage of unitialized "length" variable in _Zgetc + * Claudio Matsuoka (Jan 11 2011) + */ + +/* + * Refer to zipio.h for a description of this package. + */ + +/* + * The .zip file header is described below. It consists of + * 30 fixed bytes, followed by two variable length fields + * whose length is contained in the first 30 bytes. After this + * header, the data is stored (in deflate format if the compression + * method is 8). + * + * The crc-32 field is the crc on the uncompressed data. + * + * .zip file header: + * + * local file header signature 4 bytes (0x04034b50) + * version needed to extract 2 bytes + * general purpose bit flag 2 bytes + * compression method 2 bytes + * last mod file time 2 bytes + * last mod file date 2 bytes + * crc-32 4 bytes + * compressed size 4 bytes + * uncompressed size 4 bytes + * filename length 2 bytes + * extra field length 2 bytes + * + * filename (variable size) + * extra field (variable size) + * + * These fields are described in more detail in appnote.txt + * in the pkzip 1.93 distribution. + */ + +#include +#ifdef MEMCPY +#include +#endif + +#include "zipio.h" +#include "inflate.h" +#include "crc.h" + +/* + * Macros for constants + */ + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef ZIPSIGNATURE +#define ZIPSIGNATURE 0x04034b50L +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif + +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif + +#ifndef SEEK_END +#define SEEK_END 2 +#endif + + +/* + * Buffer size macros + * + * The following constants are optimized for large-model + * (but not flat model) Windows with virtual memory. It + * will work fine on unix and flat model Windows as well. + * + * The constant BUFFERTHRESHOLD determines when memory + * buffering changes to file buffering. + * + * Assumptions: + * + * 1) INPBUFSIZE + OUTBUFSIZE + sizeof(void *) * PTRBUFSIZE + delta < 64K + * + * 2) OUTBUFSIZE = 32K * N (related to inflate's 32K window size) + * + * 2) Max in-memory file size is OUTBUFSIZE * PTRBUFSIZE + * which is 64 MBytes by default (32K * 2K). + * + */ + +#ifndef BUFFERTHRESHOLD +#define BUFFERTHRESHOLD (256 * 1024L) +#endif + +#ifndef INPBUFSIZE +#define INPBUFSIZE ( 8 * 1024 ) +#endif + +#ifndef PTRBUFSIZE +#define PTRBUFSIZE ( 2 * 1024 ) +#endif + +#ifndef OUTBUFSIZE +#define OUTBUFSIZE ((unsigned int) ( 32 * 1024L)) +#endif + +#define MAXFILESIZE (OUTBUFSIZE * (long) PTRBUFSIZE) + +/* + * Macro for short-hand reference to ZipioState (from ZFILE *) + */ + +#define ZS ((struct ZipioState *) stream) + +/* + * Macro to manipulate Zgetc() cache + */ + +#define CACHEINIT \ + zs->ptr = NULL; \ + zs->len = 0; + +#define CACHEUPDATE \ + if (ZS->ptr) \ + { \ + ZS->fileposition &= ~((long) (OUTBUFSIZE-1)); \ + ZS->fileposition += ZS->ptr - ZS->getbuf; \ + ZS->ptr = NULL; \ + } \ + ZS->len = 0; + +/* + * Macros for run-time type identification + */ + +#ifndef RUNTIMEENABLE +#define RUNTIMEENABLE 0 +#endif + +#if RUNTIMEENABLE +#define ZIPIOSTATETYPE 0x0110f00fL +#define RUNTIMEINIT \ + zs->runtimetypeid1 = ZIPIOSTATETYPE; \ + zs->runtimetypeid2 = ZIPIOSTATETYPE; + +#define RUNTIMECHECK \ + if (!ZS || (ZS->runtimetypeid1 != ZIPIOSTATETYPE) \ + || (ZS->runtimetypeid2 != ZIPIOSTATETYPE)) return -1; +#else +#define RUNTIMEINIT +#define RUNTIMECHECK +#endif + +/* + * Macros for converting bytes to unsigned integers + */ + +#define GETUINT4(ptr, i4) \ + { \ + i4 = (((unsigned long) *(((unsigned char *) (ptr)) + 0)) ) | \ + (((unsigned long) *(((unsigned char *) (ptr)) + 1)) << 8) | \ + (((unsigned long) *(((unsigned char *) (ptr)) + 2)) << 16) | \ + (((unsigned long) *(((unsigned char *) (ptr)) + 3)) << 24) ; \ + } + +#define GETUINT2(ptr, i2) \ + { \ + i2 = (((unsigned int) *(((unsigned char *) (ptr)) + 0)) ) | \ + (((unsigned int) *(((unsigned char *) (ptr)) + 1)) << 8) ; \ + } + +/* Structure to hold state for decoding zip files */ +struct ZipioState { + + /* Fields overlaid with ZFILE structure */ + int len; /* length of Zgetc cache */ + unsigned char *ptr; /* pointer to Zgetc cache */ + + /* Fields invisible to users of ZFILE structure */ + + unsigned long runtimetypeid1; /* to detect run-time errors */ + int errorencountered; /* error encountered flag */ + + /* Buffering state */ + unsigned char inpbuf[INPBUFSIZE]; /* inp buffer from zip file */ + unsigned char *ptrbuf[PTRBUFSIZE]; /* pointers to in-memory bufs */ + + unsigned char getbuf[OUTBUFSIZE]; /* buffer for use by Zgetc */ + long getoff; /* starting offset of getbuf */ + + FILE *tmpfil; /* file ptr to temp file */ + + /* Amount of input data inflated */ + unsigned long inpinf; + unsigned long outinf; + + /* Zip file header */ + unsigned long sign; /* local file header signature (0x04034b50) */ + unsigned int vers; /* version needed to extract 2 bytes */ + unsigned int flag; /* general purpose bit flag 2 bytes */ + unsigned int comp; /* compression method 2 bytes */ + unsigned int mtim; /* last mod file time 2 bytes */ + unsigned int mdat; /* last mod file date 2 bytes */ + unsigned long crc3; /* crc-32 4 bytes */ + unsigned long csiz; /* compressed size 4 bytes */ + unsigned long usiz; /* uncompressed size 4 bytes */ + unsigned int flen; /* filename length 2 bytes */ + unsigned int elen; /* extra field length 2 bytes */ + + /* Application state */ + FILE *OpenFile; /* currently open file */ + + void *inflatestate; /* current state for inflate */ + + unsigned long fileposition; /* current file position */ + + unsigned long filecrc; /* current crc */ + + unsigned long runtimetypeid2; /* to detect run-time errors */ +}; + +/* + * Utility routines to handle uncompressed file buffers + */ + +/* Initialize buffering */ +static void BufferInitialize( + struct ZipioState *zs, + int doinflate +) +{ + zs->getoff = -1; + zs->tmpfil = NULL; + + /* + * If not inflating, use the input file + */ + + if (!doinflate) + { + zs->tmpfil = zs->OpenFile; + + /* Get the uncompressed file size */ + fseek(zs->tmpfil, 0, SEEK_END); + zs->usiz = ftell(zs->tmpfil); + zs->outinf = zs->usiz; + + /* Start at the beginning */ + fseek(zs->tmpfil, 0, SEEK_SET); + } + + /* If there's no file open, see if it's big enough for temp file */ + if (!zs->tmpfil) + { + if (zs->usiz >= BUFFERTHRESHOLD) + zs->tmpfil = tmpfile(); + } + + /* If there's no file open, then use memory buffering */ + if (!zs->tmpfil) + { + int i; + + for (i=0; iptrbuf[i] = NULL; + } +} + +/* pump data till length bytes of file are inflated or error encountered */ +static int BufferPump(struct ZipioState *zs, long length) +{ + size_t inplen, ret; + + /* Check to see if the length is valid */ + if (length > zs->usiz) return TRUE; + + /* Loop till enough data is pumped */ + while (!zs->errorencountered && (zs->outinf < length)) + { + /* Compute how much data to read */ + if ((zs->csiz - zs->inpinf) < INPBUFSIZE) + inplen = (size_t) (zs->csiz - zs->inpinf); + else + inplen = INPBUFSIZE; + + if (inplen <= 0) return TRUE; + + /* Read some data from the file */ + ret = fread(zs->inpbuf, 1, inplen, zs->OpenFile); + if (ret != inplen) return TRUE; + + /* Update how much data has been read from the file */ + zs->inpinf += inplen; + + /* Pump this data into the decompressor */ + if (InflatePutBuffer(zs->inflatestate, zs->inpbuf, inplen)) return TRUE; + } + + return FALSE; +} + +/* Read from the buffer */ +static int BufferRead( + struct ZipioState *zs, + long offset, + unsigned char *buffer, + long length +) +{ + /* + * Make sure enough bytes have been inflated + * Note that the correction for reading past EOF has to + * be done before calling this routine + */ + + if (BufferPump(zs, offset+length)) return TRUE; + + /* If using file buffering, just get the data from the file */ + if (zs->tmpfil) + { + if (fseek(zs->tmpfil, offset, SEEK_SET)) return TRUE; + if (fread(buffer, 1, (size_t) length, zs->tmpfil) != length) return TRUE; + } + /* If no temp file, use memory buffering */ + else + { + unsigned int i; + unsigned int off, len; + unsigned char *ptr; + + long tmpoff; + unsigned char *tmpbuf; + long tmplen; + + /* Save copies of offset, buffer and length for the loop */ + tmpoff = offset; + tmpbuf = buffer; + tmplen = length; + + /* Validate the transfer */ + if (tmpoff+tmplen > MAXFILESIZE) return TRUE; + + /* Loop till done */ + while (tmplen) + { + /* Get a pointer to the next block */ + i = (unsigned int) (tmpoff / OUTBUFSIZE); + ptr = zs->ptrbuf[i]; + if (!ptr) return TRUE; + + /* Get the offset,length for this block */ + off = (unsigned int) (tmpoff & (OUTBUFSIZE-1)); + len = OUTBUFSIZE - off; + if (len > tmplen) len = (unsigned int) tmplen; + + /* Get the starting pointer for the transfer */ + ptr += off; + + /* Copy the data for this block */ +#ifdef MEMCPY + memcpy(tmpbuf, ptr, len); +#else + for (i=0; itmpfil) + { + if (fseek(zs->tmpfil, zs->outinf, SEEK_SET)) return TRUE; + if (fwrite(buffer, 1, (size_t) length, zs->tmpfil) != length) return TRUE; + } + /* If no temp file, use memory buffering */ + else + { + unsigned int i; + unsigned int off, len; + unsigned char *ptr; + + long tmpoff; + unsigned char *tmpbuf; + long tmplen; + + /* Save copies of outinf, buffer and length for the loop */ + tmpoff = zs->outinf; + tmpbuf = buffer; + tmplen = length; + + /* Validate the transfer */ + if (tmpoff+tmplen > MAXFILESIZE) return TRUE; + + /* Loop till done */ + while (tmplen) + { + /* Get a pointer to the next block */ + i = (unsigned int) (tmpoff / OUTBUFSIZE); + ptr = zs->ptrbuf[i]; + if (!ptr) + { + ptr = (unsigned char *) malloc(OUTBUFSIZE); + if (!ptr) return TRUE; + zs->ptrbuf[i] = ptr; + } + + /* Get the offset,length for this block */ + off = (unsigned int) (tmpoff & (OUTBUFSIZE-1)); + len = OUTBUFSIZE - off; + if (len > tmplen) len = (unsigned int) tmplen; + + /* Get the starting pointer for the transfer */ + ptr += off; + + /* Copy the data for this block */ +#ifdef MEMCPY + memcpy(ptr, tmpbuf, len); +#else + for (i=0; ioutinf += length; + + /* return success */ + return FALSE; +} + +/* Terminate buffering */ +static void BufferTerminate( + struct ZipioState *zs +) +{ + /* If reading directly from the uncompressed file, just mark with NULL */ + if (zs->tmpfil == zs->OpenFile) + { + zs->tmpfil = NULL; + } + /* If using the a temporary file, close it */ + else if (zs->tmpfil) + { + fclose(zs->tmpfil); + zs->tmpfil = NULL; + } + /* If doing memory buffering, free the buffers */ + else + { + int i; + + for (i=0; iptrbuf[i]) free(zs->ptrbuf[i]); + } +} + +/* + * callout routines for InflateInitialize + */ + +static int inflate_putbuffer( /* returns 0 on success */ + void *stream, /* opaque ptr from Initialize */ + unsigned char *buffer, /* buffer to put */ + long length /* length of buffer */ +) +{ + RUNTIMECHECK; + + /* If the write will go past the end of file, return an error */ + if (ZS->outinf + length > ZS->usiz) return TRUE; + + /* Update the CRC */ + ZS->filecrc = CrcUpdate(ZS->filecrc, buffer, length); + + /* Append to the buffer */ + if (BufferAppend(ZS, buffer, length)) return TRUE; + + /* Return success */ + return FALSE; +} + +static void *inflate_malloc(long length) +{ + return malloc((size_t) length); +} + +static void inflate_free(void *buffer) +{ + free(buffer); +} + +ZFILE *Zopen(const char *path, const char *mode) +{ + struct ZipioState *zs; + + long inplen; + + /* Allocate the ZipioState memory area */ + zs = (struct ZipioState *) malloc(sizeof(struct ZipioState)); + if (!zs) return NULL; + + /* Set up the initial values of the inflate state */ + + CACHEINIT; + + RUNTIMEINIT; + + zs->errorencountered = FALSE; + + zs->inpinf = 0; + zs->outinf = 0; + + zs->fileposition = 0; + + zs->filecrc = 0xffffffffL; + + /* Open the real file */ + zs->OpenFile = fopen(path, mode); + if (!zs->OpenFile) + { + free(zs); + return NULL; + } + + /* Read the first input buffer */ + if ((inplen = (long) fread(zs->inpbuf, 1, INPBUFSIZE, zs->OpenFile)) >= 30) + { + GETUINT4(zs->inpbuf+ 0, zs->sign); + GETUINT2(zs->inpbuf+ 4, zs->vers); + GETUINT2(zs->inpbuf+ 6, zs->flag); + GETUINT2(zs->inpbuf+ 8, zs->comp); + GETUINT2(zs->inpbuf+10, zs->mtim); + GETUINT2(zs->inpbuf+12, zs->mdat); + GETUINT4(zs->inpbuf+14, zs->crc3); + GETUINT4(zs->inpbuf+18, zs->csiz); + GETUINT4(zs->inpbuf+22, zs->usiz); + GETUINT2(zs->inpbuf+26, zs->flen); + GETUINT2(zs->inpbuf+28, zs->elen); + +#ifdef PRINTZIPHEADER + fprintf(stderr, "local file header signature hex %8lx\n", zs->sign); + fprintf(stderr, "version needed to extract %8d\n" , zs->vers); + fprintf(stderr, "general purpose bit flag hex %8x\n" , zs->flag); + fprintf(stderr, "compression method %8d\n" , zs->comp); + fprintf(stderr, "last mod file time %8d\n" , zs->mtim); + fprintf(stderr, "last mod file date %8d\n" , zs->mdat); + fprintf(stderr, "crc-32 hex %8lx\n", zs->crc3); + fprintf(stderr, "compressed size %8ld\n", zs->csiz); + fprintf(stderr, "uncompressed size %8ld\n", zs->usiz); + fprintf(stderr, "filename length %8d\n" , zs->flen); + fprintf(stderr, "extra field length %8d\n" , zs->elen); +#endif + } + else + { + zs->sign = 0; + } + + /* + * If the file isn't a zip file, set up to read it normally + */ + if ((zs->sign != ZIPSIGNATURE) || + (zs->flag & 1) || + (zs->comp != 8) || + (inplen <= 30 + zs->flen + zs->elen) ) + { + /* Initialize buffering */ + BufferInitialize(zs, FALSE); + + zs->inflatestate = NULL; + } + else + { + /* Initialize buffering */ + BufferInitialize(zs, TRUE); + + zs->inflatestate = InflateInitialize( + (void *) zs, + inflate_putbuffer, + inflate_malloc, + inflate_free + ); + + if (InflatePutBuffer(zs->inflatestate, + zs->inpbuf+30+zs->flen+zs->elen, + inplen-30-zs->flen-zs->elen + ) + ) + zs->errorencountered = TRUE; + + zs->inpinf += inplen-30-zs->flen-zs->elen; + } + + /* Return this state info to the caller */ + return (ZFILE *) zs; +} + +int _Zgetc(ZFILE *stream) +{ + long offset, length; + + int off; + + RUNTIMECHECK; + + if (ZS->errorencountered) return -1; + + CACHEUPDATE; + + /* If already at EOF, return */ + if (ZS->fileposition >= ZS->usiz) return -1; + + /* If data isn't in current outbuf, get it */ + offset = ZS->fileposition & ~((long) (OUTBUFSIZE-1)); + length = ZS->usiz - offset; + if (length > OUTBUFSIZE) length = OUTBUFSIZE; + + if (ZS->getoff != offset) + { + if (BufferRead(ZS, offset, ZS->getbuf, length)) return -1; + + ZS->getoff = offset; + } + + /* Set up the cache */ + off = (int) (ZS->fileposition & (OUTBUFSIZE-1)); + ZS->len = (int) (length - off); + ZS->ptr = ZS->getbuf + off; + + /* Return the character */ + ZS->len--; + return *(ZS->ptr++); +} + +size_t Zread(void *ptr, size_t size, size_t n, ZFILE *stream) +{ + long length; + + RUNTIMECHECK; + + if (ZS->errorencountered) return 0; + + CACHEUPDATE; + + /* Compute the length requested */ + length = size * (long) n; + + /* Adjust the length to account for premature EOF */ + if (ZS->fileposition+length > ZS->usiz) + length = ZS->usiz - ZS->fileposition; + + /* If the length is zero, then just return an EOF error */ + if (length <= 0) return 0; + + /* Make the length a multiple of size */ + length /= size; + length *= size; + + /* If the length is zero, then just return an EOF error */ + if (length <= 0) return 0; + + /* Read from the buffer */ + if (BufferRead(ZS, ZS->fileposition, (unsigned char *) ptr, length)) + return 0; + + /* Update the file position */ + ZS->fileposition += length; + + /* Return the number of items transferred */ + return (size_t) (length / size); +} + +int Zseek(ZFILE *stream, long offset, int whence) +{ + long newoffset; + + RUNTIMECHECK; + + if (ZS->errorencountered) return -1; + + CACHEUPDATE; + + if (whence == SEEK_SET) + { + newoffset = offset; + } + else if (whence == SEEK_CUR) + { + newoffset = ZS->fileposition + offset; + } + else if (whence == SEEK_END) + { + newoffset = ZS->fileposition + ZS->usiz; + } + else + { + return -1; + } + + if ((newoffset < 0) || (newoffset > ZS->usiz)) return -1; + + ZS->fileposition = newoffset; + + return 0; +} + +long Ztell(ZFILE *stream) +{ + RUNTIMECHECK; + + if (ZS->errorencountered) return -1; + + CACHEUPDATE; + + return ZS->fileposition; +} + +int Zclose(ZFILE *stream) +{ + int ret; + + RUNTIMECHECK; + + CACHEUPDATE; + + /* terminate the inflate routines, and check for errors */ + if (ZS->inflatestate) + { + if (InflateTerminate(ZS->inflatestate)) + ZS->errorencountered = TRUE; + + /* Check that the CRC is OK */ + if (ZS->filecrc != (ZS->crc3 ^ 0xffffffffL)) + ZS->errorencountered = TRUE; + } + + /* save the final error status */ + ret = ZS->errorencountered; + + /* terminate the buffering */ + BufferTerminate(ZS); + + /* free the ZipioState structure */ + free(ZS); + + /* return the final error status */ + return ret; +} diff --git a/externals/figlet/zipio.h b/externals/figlet/zipio.h new file mode 100644 index 0000000000..12289d6581 --- /dev/null +++ b/externals/figlet/zipio.h @@ -0,0 +1,104 @@ +/* + * zipio.h - stdio emulation library for reading zip files + * + * Version 1.1.2 + */ + +/* + * Copyright (C) 1995, Edward B. Hamrick + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of the copyright holders + * not be used in advertising or publicity pertaining to distribution of + * the software without specific, written prior permission. The copyright + * holders makes no representations about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT + * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +/* + * Changes from 1.1 to 1.1.1: + * Changed "z*" functions to "Z*" to avoid namespace pollution. + * Added "zungetc" macro. + * John Cowan + * + * Changes from 1.1.1 to 1.1.2: + * Relicensed under the MIT license, with consent of the copyright holders. + * Claudio Matsuoka (Jan 11 2011) + */ + +/* + * This library of routines has the same calling sequence as + * the stdio.h routines for reading files. If these routines + * detect that they are reading from a zip file, they transparently + * unzip the file and make the application think they're reading + * from the uncompressed file. + * + * Note that this library is designed to work for zip files that + * use the deflate compression method, and to read the first file + * within the zip archive. + * + * There are a number of tunable parameters in the reference + * implementation relating to in-memory decompression and the + * use of temporary files. + * + * Particular care was taken to make the Zgetc() macro work + * as efficiently as possible. When reading an uncompressed + * file with Zgetc(), it has exactly the same performance as + * when using getc(). WHen reading a compressed file with + * Zgetc(), it has the same performance as fread(). The total + * CPU overhead for decompression is about 50 cycles per byte. + * + * The Zungetc() macro is quite limited. It ignores the character + * specified for pushback, and essentially just forces the last + * character read to be re-read. This is essential when parsing + * numbers and such. (1.1.1) + * + * There are a few stdio routines that aren't represented here, but + * they can be layered on top of these routines if needed. + */ + +#ifndef __ZIPIO_H +#define __ZIPIO_H + +#include + +typedef struct { + int len; + unsigned char *ptr; +} ZFILE; + +#define Zgetc(f) \ + ((--((f)->len) >= 0) \ + ? (unsigned char)(*(f)->ptr++) \ + : _Zgetc (f)) + +#define Zungetc(c,f) \ + ((f)->ptr--, (f)->len++, (c)) + +#ifdef __cplusplus +extern "C" { +#endif + +ZFILE *Zopen(const char *path, const char *mode); +int _Zgetc(ZFILE *stream); +size_t Zread(void *ptr, size_t size, size_t n, ZFILE *stream); +int Zseek(ZFILE *stream, long offset, int whence); +long Ztell(ZFILE *stream); +int Zclose(ZFILE *stream); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/externals/pear-figlet/Text/Figlet.php b/externals/pear-figlet/Text/Figlet.php new file mode 100644 index 0000000000..dd27cf9b73 --- /dev/null +++ b/externals/pear-figlet/Text/Figlet.php @@ -0,0 +1,510 @@ + +* @author Christian Weiske +* @license http://www.php.net/license PHP License +* @version CVS: $Id$ +* @link http://pear.php.net/package/Text_Figlet +*/ +require_once 'PEAR.php'; + +/** +* ASCII art text creation +* +* Project home page (Russian): http://bolknote.ru/files/figlet/ +* +* PHP Version 4 +* +* @category Text +* @package Text_Figlet +* @author Evgeny Stepanischev +* @author Christian Weiske +* @license http://www.php.net/license PHP License +* @link http://pear.php.net/package/Text_Figlet +*/ +class Text_Figlet +{ + /** + * Height of a letter + * + * @var integer + * + * @access protected + */ + var $height; + + /** + * Letter baseline + * + * @var integer + * + * @access protected + */ + var $oldlayout; + + /** + * Flag - RTL (right to left) or LTR (left to right) text direction + * + * @var integer + * + * @access protected + */ + var $rtol; + + /** + * Information about special 'hardblank' character + * + * @var integer + * + * @access protected + */ + var $hardblank; + + /** + * Is used for keeping font + * + * @var array + * + * @access protected + */ + var $font; + + /** + * Flag is true if smushing occured in letters printing cycle + * + * @var integer + * + * @access protected + */ + var $smush_flag; + + /** + * Comment lines buffer + * + * @var string + * + * @access public + */ + + var $font_comment; + + + /** + * Load user font. Must be invoked first. + * Automatically tries the Text_Figlet font data directory + * as long as no path separator is in the filename. + * + * @param string $filename font file name + * @param bool $loadgerman (optional) load German character set or not + * + * @access public + * @return mixed PEAR_Error or true for success + */ + function loadFont($filename, $loadgerman = true) + { + $this->font = array(); + if (!file_exists($filename)) { + //if it does not exist, try the Text_Figlet data directory + include_once 'PEAR/Config.php'; + + $config = PEAR_Config::singleton(); + $fontdir = $config->get('data_dir') . '/Text_Figlet/fonts/'; + + //only for filenames without path separators + if (strpos($filename, '/') === false + && file_exists($fontdir . $filename) + ) { + $filename = $fontdir . $filename; + } else { + return PEAR::raiseError('Figlet font file "' + . $filename + . '" cannot be found', 1); + } + } + + $this->font_comment = ''; + + // If Gzip compressed font + if (substr($filename, -3, 3) == '.gz') { + $filename = 'compress.zlib://' . $filename; + $compressed = true; + + if (!function_exists('gzcompress')) { + return PEAR::raiseError('Cannot load gzip compressed fonts since' + . ' gzcompress() is not available.', + 3); + } + } else { + $compressed = false; + } + + if (!($fp = fopen($filename, 'rb'))) { + return PEAR::raiseError('Cannot open figlet font file ' . $filename, 2); + } + + if (!$compressed) { + /* ZIPed font */ + if (fread($fp, 2) == 'PK') { + if (!function_exists('zip_open')) { + return PEAR::raiseError('Cannot load ZIP compressed fonts since' + . ' ZIP PHP extension is not available.', + 5); + } + + fclose($fp); + + if (!($fp = zip_open($filename))) { + return PEAR::raiseError('Cannot open figlet font file ' . $filename, 2); + } + + $name = zip_entry_name(zip_read($fp)); + zip_close($fp); + + if (!($fp = fopen('zip://' . realpath($filename) . '#' . $name, 'rb'))) { + return PEAR::raiseError('Cannot open figlet font file ' . $filename, 2); + } + + $compressed = true; + } else { + flock($fp, LOCK_SH); + rewind($fp); + } + } + + // flf2a$ 6 5 20 15 3 0 143 229 + // | | | | | | | | | | + // / / | | | | | | | \ + // Signature / / | | | | | \ Codetag_Count + // Hardblank / / | | | \ Full_Layout + // Height / | | \ Print_Direction + // Baseline / \ Comment_Lines + // Max_Length Old_Layout + + + $header = explode(' ', fgets($fp, 2048)); + + if (substr($header[0], 0, 5) <> 'flf2a') { + return PEAR::raiseError('Unknown FIGlet font format.', 4); + } + + @list ($this->hardblank, $this->height,,, + $this->oldlayout, $cmt_count, $this->rtol) = $header; + + $this->hardblank = substr($this->hardblank, -1, 1); + + for ($i = 0; $i < $cmt_count; $i++) { + $this->font_comment .= fgets($fp, 2048); + } + + // ASCII charcters + for ($i = 32; $i < 127; $i++) { + $this->font[$i] = $this->_char($fp); + } + + foreach (array(196, 214, 220, 228, 246, 252, 223) as $i) { + if ($loadgerman) { + $letter = $this->_char($fp); + + // Invalid character but main font is loaded and I can use it + if ($letter === false) { + fclose($fp); + return true; + } + + // Load if it is not blank only + if (trim(implode('', $letter)) <> '') { + $this->font[$i] = $letter; + } + } else { + $this->_skip($fp); + } + } + + // Extented characters + for ($n = 0; !feof($fp); $n++) { + list ($i) = explode(' ', rtrim(fgets($fp, 1024)), 2); + if ($i == '') { + continue; + } + + // If comment + if (preg_match('/^\-0x/i', $i)) { + $this->_skip($fp); + } else { + // If Unicode + if (preg_match('/^0x/i', $i)) { + $i = hexdec(substr($i, 2)); + } else { + // If octal + if ($i{0} === '0' && $i !== '0' || substr($i, 0, 2) == '-0') { + $i = octdec($i); + } + } + + $letter = $this->_char($fp); + + // Invalid character but main font is loaded and I can use it + if ($letter === false) { + fclose($fp); + return true; + } + + $this->font[$i] = $letter; + } + } + + fclose($fp); + return true; + } + + + + /** + * Print string using font loaded by LoadFont method + * + * @param string $str string for printing + * @param bool $inhtml (optional) output mode + * - HTML (true) or plain text (false) + * + * @access public + * @return string contains + */ + function lineEcho($str, $inhtml = false) + { + $out = array(); + + for ($i = 0; $ihardblank, '/'); + $sp = "$hb\\x00\\s"; + + // If chosen character not found try to use default + // If default character is not defined skip it + + if (!isset($this->font[$lt])) { + if (isset($this->font[0])) { + $lt = 0; + } else { + continue; + } + } + + for ($j = 0; $j < $this->height; $j++) { + $line = $this->font[$lt][$j]; + + // Replace hardblanks + if (isset($out[$j])) { + if ($this->rtol) { + $out[$j] = $line . $out[$j]; + } else { + $out[$j] .= $line; + } + } else { + $out[$j] = $line; + } + } + + if ($this->oldlayout > -1 && $i) { + // Calculate minimal distance between two last letters + + $mindiff = -1; + + for ($j = 0; $j < $this->height; $j++) { + if (preg_match("/\S(\s*\\x00\s*)\S/", $out[$j], $r)) { + if ($mindiff == -1) { + $mindiff = strlen($r[1]); + } else { + $mindiff = min($mindiff, strlen($r[1])); + } + } + } + + // Remove spaces between two last letter + // dec mindiff for exclude \x00 symbol + + if (--$mindiff > 0) { + for ($j = 0; $j < $this->height; $j++) { + if (preg_match("/\\x00(\s{0,{$mindiff}})/", $out[$j], $r)) { + $l = strlen($r[1]); + $b = $mindiff - $l; + $out[$j] = preg_replace("/\s{0,$b}\\x00\s{{$l}}/", + "\0", + $out[$j], + 1); + } + } + } + // Smushing + + $this->smush_flag = 0; + + for ($j = 0; $j < $this->height; $j++) { + $out[$j] = preg_replace_callback("#([^$sp])\\x00([^$sp])#", + array(&$this, '_rep'), + $out[$j]); + } + + // Remove one space if smushing + // and remove all \x00 except tail whenever + + if ($this->smush_flag) { + $pat = array("/\s\\x00(?!$)|\\x00\s/", "/\\x00(?!$)/"); + $rep = array('', ''); + } else { + $pat = "/\\x00(?!$)/"; + $rep = ''; + } + + for ($j = 0; $j<$this->height; $j++) { + $out[$j] = preg_replace($pat, $rep, $out[$j]); + } + } + } + + $trans = array("\0" => '', $this->hardblank => ' '); + $str = strtr(implode("\n", $out), $trans); + + if ($inhtml) { + return ''. + nl2br(str_replace(' ', ' ', htmlspecialchars($str))). + ''; + } + + return $str; + } + + + + /** + * It is preg_replace callback function that makes horizontal letter smushing + * + * @param array $r preg_replace matches array + * + * @return string + * @access private + */ + function _rep($r) + { + if ($this->oldlayout & 1 && $r[1] == $r[2]) { + $this->smush_flag = 1; + return $r[1]; + } + + if ($this->oldlayout & 2) { + $symb = '|/\\[]{}()<>'; + + if ($r[1] == '_' && strpos($symb, $r[2]) !== false || + $r[2] == '_' && strpos($symb, $r[1]) !== false) { + $this->smush_flag = 1; + return $r[1]; + } + } + + if ($this->oldlayout & 4) { + $classes = '|/\\[]{}()<>'; + + if (($left = strpos($classes, $r[1])) !== false) { + if (($right = strpos($classes, $r[2])) !== false) { + $this->smush_flag = 1; + return $right > $left ? $r[2] : $r[1]; + } + } + } + + if ($this->oldlayout & 8) { + $t = array('[' => ']', ']' => '[', '{' => '}', '}' => '{', + '(' => ')', ')' => '('); + + if (isset($t[$r[2]]) && $r[1] == $t[$r[2]]) { + $this->smush_flag = 1; + return '|'; + } + } + + if ($this->oldlayout & 16) { + $t = array("/\\" => '|', "\\/" => 'Y', '><' => 'X'); + + if (isset($t[$r[1].$r[2]])) { + $this->smush_flag = 1; + return $t[$r[1].$r[2]]; + } + } + + if ($this->oldlayout & 32) { + if ($r[1] == $r[2] && $r[1] == $this->hardblank) { + $this->smush_flag = 1; + return $this->hardblank; + } + } + + return $r[1]."\00".$r[2]; + } + + + + /** + * Function loads one character in the internal array from file + * + * @param resource &$fp handle of font file + * + * @return mixed lines of the character or false if foef occured + * @access private + */ + function _char(&$fp) + { + $out = array(); + + for ($i = 0; $i < $this->height; $i++) { + if (feof($fp)) { + return false; + } + + $line = rtrim(fgets($fp, 2048), "\r\n"); + if (preg_match('/(.){1,2}$/', $line, $r)) { + $line = str_replace($r[1], '', $line); + } + + $line .= "\x00"; + + $out[] = $line; + } + + return $out; + } + + + + /** + * Function for skipping one character in a font file + * + * @param resource &$fp handle of font file + * + * @return boolean always return true + * @access private + */ + function _skip(&$fp) + { + for ($i = 0; $i<$this->height && !feof($fp); $i++) { + fgets($fp, 2048); + } + + return true; + } +} +?> diff --git a/externals/pear-figlet/docs/README.TXT b/externals/pear-figlet/docs/README.TXT new file mode 100644 index 0000000000..544a5259a9 --- /dev/null +++ b/externals/pear-figlet/docs/README.TXT @@ -0,0 +1,26 @@ +FIGlet project home page: http://www.figlet.org/ +You can download FIGlet fonts from: ftp://ftp.figlet.org/pub/figlet/fonts/ +Project home page (Russian): http://bolknote.ru/files/figlet/ + +Notes: +1. There are no support flc and vertical smushing. +2. But horizontal smushing is supported. +3. Default character (0x00) is supported. +4. German symbols are supported. +5. It is supported Unicode as %uHHHH, HHHH - a hex code of a character (UCS-2). +7. RTL and LTR text directions are suppoted. +8. Windows and Unix font formats are supported. +9. Incomplete fonts are supported (for example dwhistled.flf). +10. Gzipped fonts supported as .flf.gz (zlib PHP extension required) +11. ZIPed fonts supported (ZIP PHP extension required) + ` +Usage: + + include_once 'Text/Figlet.php'; + + $figlet = new Text_Figlet(); + if (PEAR::isError($error = $figlet->LoadFont('slant.flf'))) { + echo 'Error: ', $error->getMessage(); + } else { + echo $figlet->LineEcho("Hello, world!"); + } \ No newline at end of file diff --git a/externals/pear-figlet/docs/examples/hello_world.php b/externals/pear-figlet/docs/examples/hello_world.php new file mode 100644 index 0000000000..849c997fb3 --- /dev/null +++ b/externals/pear-figlet/docs/examples/hello_world.php @@ -0,0 +1,35 @@ +LoadFont('makisupa.flf'); +if (PEAR::isError($error)) { + echo 'Error: ' . $error->getMessage() . "\n"; +} else { + echo $figlet->LineEcho(utf8tofiglet('Hello, world!')) . "\n"; +} +?> \ No newline at end of file diff --git a/externals/pear-figlet/fonts/makisupa.flf b/externals/pear-figlet/fonts/makisupa.flf new file mode 100644 index 0000000000..6ed7e1e6df --- /dev/null +++ b/externals/pear-figlet/fonts/makisupa.flf @@ -0,0 +1,2877 @@ +flf2a_ 16 16 100 -1 3 0 0 73 +Converted Makisupa (http://www.greywolfwebworks.com/fonts.html) +by Evgeny Stepanischev http://bolknote.ru/ 2010.07.08 +GPL and OFL license. +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_@@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_** _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_##**## _@ +_##**## _@ +_##**## _@ +_##**## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ ##* ##* _@ +_*##**##** _@ +_######### _@ +_######### _@ +_ ##* ##* _@ +_*##**##** _@ +_######### _@ +_######### _@ +_ ##* ##* _@ +_ _@ +_@@ +_ *## _@ +_ *##* _@ +_*#####* _@ +_#######* _@ +_###**##* _@ +_###* ##* _@ +_######* _@ +_*###### _@ +_ ***##* _@ +_###**##* _@ +_#######* _@ +_*#####* _@ +_ *###* _@ +_ *## _@ +_ _@ +_@@ +_*##* #** _@ +_#### *### _@ +_#### #### _@ +_####*###* _@ +_######## _@ +_*######* _@ +_ **###* _@ +_ *###* _@ +_ *###* _@ +_ *######* _@ +_*######## _@ +_*##*##*## _@ +_###*##### _@ +_*#* *###* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *####* _@ +_ ######* _@ +_ ###*##* _@ +_ ###*##* _@ +_ *####* _@ +_*#####*##* _@ +_#########* _@ +_##* ####* _@ +_###*#####* _@ +_*######### _@ +_ *####**#* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_###** _@ +_*#### _@ +_ *### _@ +_ _@ +_ _@ +_@@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ *##* _@ +_*###* _@ +_###* _@ +_##* _@ +_ _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ *# _@ +_#### _@ +_*### _@ +_#### _@ +_ *# _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***##**** _@ +_######### _@ +_######### _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_##* _@ +_##* _@ +_*# _@ +_** _@ +_#* _@ +_ _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_********* _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_** _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ *#* _@ +_ *### _@ +_ *##* _@ +_ *###* _@ +_ *##* _@ +_ *### _@ +_ ###* _@ +_ *### _@ +_ ###* _@ +_ *##* _@ +_*###* _@ +_*##* _@ +_###* _@ +_*#* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##*## *## _@ +_##*## *## _@ +_##*** *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_*###* _@ +_####* _@ +_**##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_**###** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_ *### _@ +_ *######* _@ +_*######* _@ +_###**** _@ +_##* _@ +_##* _@ +_###****** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_ *### _@ +_ #####* _@ +_ #####* _@ +_ ***### _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_ *##* _@ +_ *###* _@ +_ *####* _@ +_ *#####* _@ +_ *######* _@ +_ *####*##* _@ +_ ####**##* _@ +_*########* _@ +_*########* _@ +_ *##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_###****** _@ +_##* _@ +_##* _@ +_#######* _@ +_########* _@ +_******### _@ +_ *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_ *#* _@ +_ *## _@ +_ ### _@ +_ *##* _@ +_ *## _@ +_ ##* _@ +_*######* _@ +_########* _@ +_######### _@ +_##* *### _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_******### _@ +_ ###* _@ +_ *### _@ +_ *##* _@ +_ ###* _@ +_ *##* _@ +_ *##* _@ +_ ### _@ +_ *##* _@ +_ ### _@ +_ ##* _@ +_ ##* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_###* *### _@ +_*#######* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_###**#### _@ +_*######## _@ +_ *######* _@ +_ *### _@ +_ *##* _@ +_ *###* _@ +_ *### _@ +_ ###* _@ +_ *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_##* _@ +_##* _@ +_** _@ +_ _@ +_ _@ +_ _@ +_** _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ _@ +_** _@ +_##* _@ +_##* _@ +_ _@ +_ _@ +_ _@ +_ _@ +_##* _@ +_##* _@ +_*# _@ +_** _@ +_#* _@ +_ _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ *#* _@ +_ *### _@ +_ *###* _@ +_*###* _@ +_###* _@ +_###* _@ +_*###* _@ +_ *###* _@ +_ *### _@ +_ *#* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_********* _@ +_######### _@ +_######### _@ +_ _@ +_********* _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_*#* _@ +_###* _@ +_*###* _@ +_ *###* _@ +_ *### _@ +_ *### _@ +_ *###* _@ +_*###* _@ +_###* _@ +_*#* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_ *### _@ +_ *####* _@ +_ *####* _@ +_ *###** _@ +_ *##* _@ +_ ** _@ +_ ** _@ +_ *## _@ +_ *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ *####** _@ +_ *##*#*##* _@ +_ ##**#**#* _@ +_*#* #*# *# _@ +_*# ### *# _@ +_*#* #*# *# _@ +_ ## # #*## _@ +_ *### ###* _@ +_ *#####* _@ +_ *** _@ +_ _@ +_@@ +_ *###* _@ +_ *#####* _@ +_*###*###* _@ +_###* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_######### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_#######* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *### _@ +_########* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_########* _@ +_#######* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* _@ +_##* _@ +_##* _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_######* _@ +_#######* _@ +_###*####* _@ +_##* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *### _@ +_###*####* _@ +_#######* _@ +_######* _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_###****** _@ +_##* _@ +_##* _@ +_##* _@ +_#######* _@ +_#######* _@ +_###**** _@ +_##* _@ +_##* _@ +_###****** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_###****** _@ +_##* _@ +_##* _@ +_##* _@ +_#######* _@ +_#######* _@ +_###**** _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* _@ +_##* ##### _@ +_##* ##### _@ +_##* **### _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*######## _@ +_ *####### _@ +_ _@ +_@@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_######### _@ +_######### _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_***###*** _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***###*** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_ *##### _@ +_ *##### _@ +_ **### _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_##* *## _@ +_##* *## _@ +_##* ### _@ +_##* *##* _@ +_##* ###* _@ +_##* *##* _@ +_#######* _@ +_####### _@ +_###*###* _@ +_##* *### _@ +_##* *##* _@ +_##* ### _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_###****** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_##* *## _@ +_### ### _@ +_###* *### _@ +_####*#### _@ +_######### _@ +_######### _@ +_##*###*## _@ +_##*###*## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_##* *## _@ +_### *## _@ +_###* *## _@ +_####* *## _@ +_####* *## _@ +_#####**## _@ +_######*## _@ +_##*###### _@ +_##**##### _@ +_##* *#### _@ +_##* *#### _@ +_##* *### _@ +_##* ### _@ +_##* *## _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_#######* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *### _@ +_########* _@ +_#######* _@ +_###**** _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *#### _@ +_##* ##### _@ +_####*#### _@ +_*######## _@ +_ *######* _@ +_ _@ +_@@ +_#######* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *### _@ +_########* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ *#####* _@ +_ *#######* _@ +_ ###***### _@ +_ ##* *## _@ +_ ##* *## _@ +_ ###* _@ +_ *######* _@ +_ *######* _@ +_ ****### _@ +_ ##* *## _@ +_ ##* *## _@ +_ ###***### _@ +_ *#######* _@ +_ *#####* _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_***###*** _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ _@ +_@@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_### ### _@ +_*##* *##* _@ +_ ###*### _@ +_ *#####* _@ +_ ##### _@ +_ *###* _@ +_ ##* _@ +_ _@ +_@@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##*###*## _@ +_##*###*## _@ +_######### _@ +_######### _@ +_####*#### _@ +_###* *### _@ +_### ### _@ +_##* *## _@ +_ _@ +_@@ +_##* *## _@ +_### ### _@ +_###* *### _@ +_*### ###* _@ +_ ###*### _@ +_ *#####* _@ +_ ##### _@ +_ ##### _@ +_ *#####* _@ +_ ###*### _@ +_*### ###* _@ +_###* *### _@ +_### ### _@ +_##* *## _@ +_ _@ +_@@ +_##* ##* _@ +_##* ##* _@ +_##* ##* _@ +_##* *##* _@ +_### *##* _@ +_###**###* _@ +_*######* _@ +_ *####* _@ +_ *##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ _@ +_@@ +_######### _@ +_######### _@ +_*****###* _@ +_ *###* _@ +_ ###* _@ +_ *### _@ +_ ###* _@ +_ *### _@ +_ ###* _@ +_ *### _@ +_*###* _@ +_*###***** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_###** _@ +_#####* _@ +_#####* _@ +_ _@ +_ _@ +_@@ +_*#* _@ +_###* _@ +_*##* _@ +_*###* _@ +_ *##* _@ +_ ###* _@ +_ *### _@ +_ ###* _@ +_ *### _@ +_ *##* _@ +_ *###* _@ +_ *##* _@ +_ *### _@ +_ *#* _@ +_ _@ +_@@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***##* _@ +_#####* _@ +_#####* _@ +_ _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ *#* _@ +_*###* _@ +_##*## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_********** _@ +_########## _@ +_########## _@ +_ _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_*#* _@ +_###* _@ +_ *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_#####* _@ +_######* _@ +_##**### _@ +_##* *## _@ +_####### _@ +_######* _@ +_##**### _@ +_##* *## _@ +_##**### _@ +_######* _@ +_#####* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* _@ +_##* _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_#####* _@ +_######* _@ +_##*#### _@ +_##* ### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* ### _@ +_##*#### _@ +_######* _@ +_#####* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_####### _@ +_#######* _@ +_##***** _@ +_##* _@ +_###### _@ +_###### _@ +_##**** _@ +_##* _@ +_##***** _@ +_#######* _@ +_####### _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_####### _@ +_#######* _@ +_##***** _@ +_##* _@ +_###### _@ +_###### _@ +_##**** _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##*#### _@ +_##*#### _@ +_##***## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *##### _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_####### _@ +_####### _@ +_##***## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_####### _@ +_####### _@ +_***##** _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_***##** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *#### _@ +_ *#### _@ +_ ***## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_##* *## _@ +_##**### _@ +_##**##* _@ +_#####* _@ +_#####* _@ +_##*### _@ +_##**##* _@ +_##* ### _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##***** _@ +_#######* _@ +_####### _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_### ### _@ +_###*### _@ +_####### _@ +_####### _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_### *## _@ +_###**## _@ +_####*## _@ +_####*## _@ +_####### _@ +_##*#### _@ +_##*#### _@ +_##**### _@ +_##* ### _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_#####* _@ +_######* _@ +_##**### _@ +_##* *## _@ +_####### _@ +_######* _@ +_##**** _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##***## _@ +_##*#### _@ +_####### _@ +_*###### _@ +_ *####* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_#####* _@ +_######* _@ +_##**### _@ +_##* *## _@ +_####### _@ +_######* _@ +_##**### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_#####* _@ +_*#####* _@ +_ ***### _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_####### _@ +_####### _@ +_***##** _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ ##### _@ +_ *###* _@ +_ *#* _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_####### _@ +_####### _@ +_####### _@ +_####### _@ +_###*### _@ +_### ### _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_##* *## _@ +_##* *## _@ +_*##*##* _@ +_*#####* _@ +_ ##### _@ +_ *###* _@ +_ ##### _@ +_*#####* _@ +_*##*##* _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_### ##* _@ +_### ##* _@ +_### *##* _@ +_###**##* _@ +_*###### _@ +_ *####* _@ +_ *##* _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_####### _@ +_####### _@ +_****##* _@ +_ ###* _@ +_ *##* _@ +_ ### _@ +_ *##* _@ +_*### _@ +_*##**** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +_ ##* _@ +_ *##* _@ +_*###* _@ +_*###* _@ +_ *##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ####* _@ +_ *#### _@ +_ *### _@ +_ _@ +_ _@ +_@@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_ _@ +_@@ +_ ##* _@ +_ ##* _@ +_ ###* _@ +_ ###* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ *##* _@ +_*###* _@ +_###* _@ +_##* _@ +_ _@ +_ _@ +_@@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ **** _@ +_*#####*#* _@ +_######### _@ +_*****###* _@ +_ _@ +_@@ +_ *##* _@ +_ *####* _@ +_*######* _@ +_#### ###* _@ +_###* *##* _@ +_### *##* _@ +_### *##* _@ +_###***##* _@ +_########* _@ +_########* _@ +_###* *##* _@ +_### *##* _@ +_### *##* _@ +_### ##* _@ +_ _@ +_@@ +_ *####* _@ +_*######* _@ +_####*###* _@ +_###* *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_###* *##* _@ +_####*###* _@ +_*######* _@ +_ *####* _@ +_ _@ +_@@ +_### ##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_###* *##* _@ +_####*###* _@ +_*######* _@ +_ *####* _@ +_ _@ +_@@ +_ _@ +_ *# *# _@ +_ * * _@ +_ *###* _@ +_*#####* _@ +_####### _@ +_### *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +_ _@ +_ *# *# _@ +_ * * _@ +_ *####* _@ +_*###### _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *####* _@ +_ _@ +_@@ +_ _@ +_ *# *# _@ +_ * * _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *####* _@ +_ _@ +_@@ +_##* *## _@ +_##* *### _@ +_########* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *### _@ +_##* *###* _@ +_##**###* _@ +_ *###* _@ +_ ###* _@ +_ *#* _@ +_ _@ +_ _@ +_@@ +0x45e EXT +_ *## _@ +_ *## _@ +_ *####* _@ +_#######* _@ +_###**##* _@ +_### ##* _@ +_### _@ +_### _@ +_### ##* _@ +_###**##* _@ +_#######* _@ +_*#####* _@ +_ *#### _@ +_ *## _@ +_ _@ +_@@ +0x408 EXT +_ *#####* _@ +_ *#######* _@ +_ ###***### _@ +_ ##* *## _@ +_ ##* *## _@ +_*##* _@ +_####### _@ +_####### _@ +_*###*** _@ +_ ##* _@ +_ ##* _@ +_*###*** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +0x490 EXT +_##* *## _@ +_##* *## _@ +_##* *## _@ +_### *### _@ +_###**#### _@ +_*####### _@ +_ *##### _@ +_ *### _@ +_ ###### _@ +_ ###### _@ +_ **##** _@ +_ ###### _@ +_ ###### _@ +_ **##** _@ +_ _@ +_@@ +0xa4 EXT +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_##**## _@ +_###### _@ +_*#**#* _@ +_*#**#* _@ +_###### _@ +_##**## _@ +_ _@ +_@@ +0x2030 EXT +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ #****# _@ +_ ###### _@ +_ _@ +_@@ +0x457 EXT +_ ##* _@ +_ ##* _@ +_ ** _@ +_ *** _@ +_ *##* _@ +_ *###* _@ +_ *##### _@ +_*#####* _@ +_###*** _@ +_##* *## _@ +_##* *## _@ +_####*#### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x40e EXT +_##* _@ +_##* _@ +_** _@ +_ _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_@@ +0xa7 EXT +_### *## _@ +_####* _@ +_*#####* _@ +_####### _@ +_##***## _@ +_##***## _@ +_####### _@ +_*#####* _@ +_ *#### _@ +_##**### _@ +_###*### _@ +_*#####* _@ +_ *####* _@ +_ _@ +_ _@ +_@@ +0xb6 EXT +_ *############# _@ +_ *############## _@ +_*########***###* _@ +_*########* ##* _@ +_*########* ##* _@ +_*########* ##* _@ +_ *#######* ##* _@ +_ *######* ##* _@ +_ *##* ##* _@ +_ ##* ##* _@ +_ ##* ##* _@ +_ ##* ##* _@ +_ ##* ##* _@ +_ ##* ##* _@ +_ _@ +_@@ +0xb5 EXT +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_########* _@ +_##* _@ +_##* _@ +_##* _@ +_ _@ +_ _@ +_@@ +0xa9 EXT +_ _@ +_ _@ +_ _@ +_ _@ +_ *####** _@ +_ *#######* _@ +_ ##*#####* _@ +_*#**#**#*# _@ +_*# *# ***# _@ +_*#**#**#*# _@ +_ ## ###*## _@ +_ *##***##* _@ +_ *#####* _@ +_ *** _@ +_ _@ +_@@ +0xae EXT +_ _@ +_ _@ +_ _@ +_ _@ +_ *####** _@ +_ *##***##* _@ +_ ##*###*#* _@ +_*#* #*# *# _@ +_*# ### *# _@ +_*#* #*# *# _@ +_ ## # #*## _@ +_ *##* ###* _@ +_ *#####* _@ +_ *** _@ +_ _@ +_@@ +0x45b EXT +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ #****# _@ +_ ###### _@ +_ _@ +_@@ +0x40a EXT +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ # *# _@ +_ #****# _@ +_ ###### _@ +_ _@ +_@@ +0x42f EXT +_##* *## _@ +_##* *### _@ +_########* _@ +_########* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *### _@ +_##* *###* _@ +_##**###* _@ +_ *###* _@ +_ ###* _@ +_ *#* _@ +_ _@ +_ _@ +_@@ +0x410 EXT +_ *###* _@ +_ *#####* _@ +_*###*###* _@ +_###* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_######### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x411 EXT +_ *###* _@ +_ *#####* _@ +_*###*###* _@ +_###* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_######### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x412 EXT +_ *###* _@ +_ *#####* _@ +_*###*###* _@ +_###* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_######### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x413 EXT +_ *###* _@ +_ *#####* _@ +_*###*###* _@ +_###* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_######### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x414 EXT +_ *##* _@ +_ *####* _@ +_*######* _@ +_#### ###* _@ +_###* *##* _@ +_### *##* _@ +_### *##* _@ +_###***##* _@ +_########* _@ +_########* _@ +_###* *##* _@ +_### *##* _@ +_### *##* _@ +_### ##* _@ +_ _@ +_@@ +0x415 EXT +_ *###* _@ +_ *#####* _@ +_*###*###* _@ +_###* *### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_######### _@ +_######### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x416 EXT +_ *###*######### _@ +_ *############## _@ +_*###*####******* _@ +_###* *### _@ +_##* *## _@ +_##* *##* _@ +_##* *####### _@ +_###***######## _@ +_#########***** _@ +_######### _@ +_##* *## _@ +_##* *##******* _@ +_##* *######### _@ +_##* *######### _@ +_ _@ +_@@ +0x417 EXT +_##* *##* _@ +_##* ##* _@ +_##* ##* _@ +_##* _@ +_##* _@ +_##* _@ +_##* ##* _@ +_##* *##* _@ +_###**###* _@ +_*######* _@ +_ *####* _@ +_ ##* _@ +_ ##* _@ +_ _@ +_ _@ +_@@ +0x418 EXT +_######### _@ +_######### _@ +_###****** _@ +_##* _@ +_##* _@ +_##* _@ +_#######* _@ +_#######* _@ +_###**** _@ +_##* _@ +_##* _@ +_###****** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x419 EXT +_######### _@ +_######### _@ +_###****** _@ +_##* _@ +_##* _@ +_##* _@ +_#######* _@ +_#######* _@ +_###**** _@ +_##* _@ +_##* _@ +_###****** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x41a EXT +_######### _@ +_######### _@ +_###****** _@ +_##* _@ +_##* _@ +_##* _@ +_####### _@ +_####### _@ +_###**** _@ +_##* _@ +_##* _@ +_###****** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x41b EXT +_#########* _@ +_#########* _@ +_###******* _@ +_### _@ +_### _@ +_###* _@ +_######## _@ +_######## _@ +_###***** _@ +_### _@ +_### _@ +_###******* _@ +_#########* _@ +_#########* _@ +_ _@ +_@@ +0x41c EXT +_######### _@ +_######### _@ +_***###*** _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***###*** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x41d EXT +_######### _@ +_######### _@ +_***###*** _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***###*** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x41e EXT +_######### _@ +_######### _@ +_***###*** _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***###*** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x41f EXT +_######### _@ +_######### _@ +_***###*** _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_ ##* _@ +_***###*** _@ +_######### _@ +_######### _@ +_ _@ +_@@ +0x420 EXT +_ *#####* _@ +_ *######* _@ +_ *##**###* _@ +_ *## *###* _@ +_ *## *##* _@ +_ *## ##* _@ +_###### ##* _@ +_###### ##* _@ +_**##** ##* _@ +_ *## *##* _@ +_ *## *###* _@ +_ *##**###* _@ +_ *######* _@ +_ *#####* _@ +_ _@ +_@@ +0x421 EXT +_##* *## _@ +_### *## _@ +_###* *## _@ +_####* *## _@ +_####* *## _@ +_#####**## _@ +_######*## _@ +_##*###### _@ +_##**##### _@ +_##* ##### _@ +_##* *#### _@ +_##* *### _@ +_##* ### _@ +_##* *## _@ +_ _@ +_@@ +0x422 EXT +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_####*#### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x423 EXT +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_####*#### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x424 EXT +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x425 EXT +_ *#####* _@ +_*#######* _@ +_###***### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x426 EXT +_ *####* _@ +_*######* _@ +_####*###* _@ +_###* *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_###* *##* _@ +_####*###* _@ +_*######* _@ +_ *####* _@ +_ _@ +_@@ +0x427 EXT +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_*#* *#* _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_*#* *#* _@ +_ _@ +_@@ +0x428 EXT +_ *######* _@ +_*######## _@ +_###**#### _@ +_##* *#### _@ +_##* ##### _@ +_##**##### _@ +_##*###### _@ +_######*## _@ +_#####**## _@ +_##### *## _@ +_####* *## _@ +_####**### _@ +_########* _@ +_*######* _@ +_ _@ +_@@ +0x429 EXT +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_####*#### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x42a EXT +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_####*#### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x42b EXT +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###***### _@ +_*#######* _@ +_ *#####* _@ +_ _@ +_@@ +0x42c EXT +_### ##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_### *##* _@ +_###* *##* _@ +_####*###* _@ +_*######* _@ +_ *####* _@ +_ _@ +_@@ +0x430 EXT +_ ##* _@ +_ ### _@ +_ ** _@ +_ *###* _@ +_*#####* _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x431 EXT +_ *## _@ +_ ### _@ +_ ** _@ +_ *###* _@ +_*#####* _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x432 EXT +_ *##* _@ +_ #*## _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x433 EXT +_####### _@ +_*#*#### _@ +_ *** _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x434 EXT +_ _@ +_ *# *# _@ +_ * * _@ +_ *###* _@ +_*#####* _@ +_####### _@ +_### *## _@ +_##* *## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_ _@ +_@@ +0x435 EXT +_ *## _@ +_ *## _@ +_ _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* ## _@ +_##***## _@ +_####### _@ +_####### _@ +_##* *## _@ +_##* ## _@ +_##* ## _@ +_ _@ +_@@ +0x436 EXT +_ _@ +_ _@ +_ _@ +_ *##########* _@ +_*###########* _@ +_###*###***** _@ +_##* *##* _@ +_##* ###### _@ +_##***###### _@ +_#######**** _@ +_#######* _@ +_##* *##***** _@ +_##* #######* _@ +_##* #######* _@ +_ _@ +_@@ +0x437 EXT +_ *####* _@ +_*###### _@ +_###*###* _@ +_### *##* _@ +_### ##* _@ +_### _@ +_### _@ +_### ##* _@ +_###**##* _@ +_#######* _@ +_ *####* _@ +_ *## _@ +_ *## _@ +_ _@ +_ _@ +_@@ +0x438 EXT +_ ##* _@ +_ *## _@ +_ ** _@ +_####### _@ +_#######* _@ +_##***** _@ +_##* _@ +_###### _@ +_###### _@ +_##**** _@ +_##* _@ +_##***** _@ +_#######* _@ +_####### _@ +_ _@ +_@@ +0x439 EXT +_ *## _@ +_ ##* _@ +_ ** _@ +_####### _@ +_#######* _@ +_##***** _@ +_##* _@ +_###### _@ +_###### _@ +_##**** _@ +_##* _@ +_##***** _@ +_#######* _@ +_####### _@ +_ _@ +_@@ +0x43a EXT +_ *##* _@ +_ #*## _@ +_ _@ +_####### _@ +_#######* _@ +_##***** _@ +_##* _@ +_###### _@ +_###### _@ +_##**** _@ +_##* _@ +_##***** _@ +_#######* _@ +_####### _@ +_ _@ +_@@ +0x43b EXT +_ _@ +_ *# *# _@ +_ * * _@ +_####### _@ +_#######* _@ +_##***** _@ +_##* _@ +_###### _@ +_###### _@ +_##**** _@ +_##* _@ +_##***** _@ +_#######* _@ +_####### _@ +_ _@ +_@@ +0x43c EXT +_ ##* _@ +_ *## _@ +_ ** _@ +_####### _@ +_####### _@ +_***##** _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_***##** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +0x43d EXT +_ *## _@ +_ ##* _@ +_ ** _@ +_####### _@ +_####### _@ +_***##** _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_***##** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +0x43e EXT +_ *##* _@ +_ #*## _@ +_ _@ +_####### _@ +_####### _@ +_***##** _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_***##** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +0x43f EXT +_ _@ +_ *# *# _@ +_ * * _@ +_####### _@ +_####### _@ +_***##** _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_ *## _@ +_***##** _@ +_####### _@ +_####### _@ +_ _@ +_@@ +0x440 EXT +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ ## * _@ +_ *# ** _@ +_*#**#*#*# * _@ +_ #**#####*# _@ +_ # ######## _@ +_ ##*##**### _@ +_ *### _@ +_ _@ +_ _@ +_@@ +0x441 EXT +_####### _@ +_*#*#### _@ +_ *** _@ +_##* *## _@ +_### *## _@ +_###**## _@ +_####*## _@ +_####*## _@ +_####### _@ +_##*#### _@ +_##*#### _@ +_##**### _@ +_##* ### _@ +_##* *## _@ +_ _@ +_@@ +0x442 EXT +_ ##* _@ +_ *## _@ +_ ** _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +0x443 EXT +_ *## _@ +_ ##* _@ +_ ** _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +0x444 EXT +_ *##* _@ +_ #*## _@ +_ _@ +_ *#### _@ +_*###### _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *#### _@ +_ _@ +_@@ +0x445 EXT +_####### _@ +_*#*#### _@ +_ *** _@ +_ *###* _@ +_*#####* _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +0x446 EXT +_ _@ +_ *# *# _@ +_ * * _@ +_ *####* _@ +_*###### _@ +_###*### _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *####* _@ +_ _@ +_@@ +0x447 EXT +_ _@ +_ _@ +_ _@ +_ _@ +_ _@ +_ ##* _@ +_ ##* _@ +_ *** _@ +_********* _@ +_######### _@ +_######### _@ +_ *** _@ +_ ##* _@ +_ ##* _@ +_ _@ +_@@ +0x448 EXT +_ _@ +_ _@ +_ _@ +_ *##### _@ +_*###### _@ +_###*### _@ +_##*#### _@ +_##*#### _@ +_####### _@ +_####*## _@ +_####*## _@ +_###*### _@ +_######* _@ +_#####* _@ +_ _@ +_@@ +0x449 EXT +_ ##* _@ +_ *## _@ +_ ** _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +0x44a EXT +_ *## _@ +_ ##* _@ +_ ** _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*#####* _@ +_ *###* _@ +_ _@ +_@@ +0x44b EXT +_ *##* _@ +_ #*## _@ +_ _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *#### _@ +_ _@ +_@@ +0x44c EXT +_ _@ +_ *# *# _@ +_ * * _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_##* *## _@ +_###*### _@ +_*###### _@ +_ *####* _@ +_ _@ +_@@ diff --git a/resources/figlet/custom/README b/resources/figlet/custom/README new file mode 100644 index 0000000000..c667bb20e3 --- /dev/null +++ b/resources/figlet/custom/README @@ -0,0 +1,2 @@ +Add Figlet ".flf" font files here to make them available to the "figlet" +Remarkup interpreter. From 6bd8ee861ca7873b9ae006787679e728b02036c8 Mon Sep 17 00:00:00 2001 From: epriestley Date: Sun, 13 Sep 2015 12:31:07 -0700 Subject: [PATCH 04/12] Use PEAR Text_Figlet to render figlet fonts Summary: Ref T7785. Makes Figlet available without installing the `figlet` package. The PEAR Text_Figlet code is really sketchy and includes this API, which is quite marvelous: ``` function loadFont($filename, $loadgerman = true) ``` At some point, this should probably be rewritten into a modern style, but it's not trivial since the figlet file format and rendering engine are somewhat complicated. I made some adjustments: - Broke the dependency on the PEAR core. - Prevented it from doing any wrong HTML escaping. - Looked through it for any glaring security or correctness problems. This code isn't very pretty or modern, but as far as I can tell it's safe and does render Figlet fonts in a reasonable way. Test Plan: {F803268} Reviewers: chad Reviewed By: chad Maniphest Tasks: T9408, T7785 Differential Revision: https://secure.phabricator.com/D14102 --- externals/pear-figlet/Text/Figlet.php | 44 ++++++-------- ...bricatorRemarkupFigletBlockInterpreter.php | 60 ++++++++++++------- 2 files changed, 56 insertions(+), 48 deletions(-) diff --git a/externals/pear-figlet/Text/Figlet.php b/externals/pear-figlet/Text/Figlet.php index dd27cf9b73..cc121facb3 100644 --- a/externals/pear-figlet/Text/Figlet.php +++ b/externals/pear-figlet/Text/Figlet.php @@ -15,7 +15,6 @@ * @version CVS: $Id$ * @link http://pear.php.net/package/Text_Figlet */ -require_once 'PEAR.php'; /** * ASCII art text creation @@ -113,22 +112,9 @@ class Text_Figlet { $this->font = array(); if (!file_exists($filename)) { - //if it does not exist, try the Text_Figlet data directory - include_once 'PEAR/Config.php'; - - $config = PEAR_Config::singleton(); - $fontdir = $config->get('data_dir') . '/Text_Figlet/fonts/'; - - //only for filenames without path separators - if (strpos($filename, '/') === false - && file_exists($fontdir . $filename) - ) { - $filename = $fontdir . $filename; - } else { - return PEAR::raiseError('Figlet font file "' - . $filename - . '" cannot be found', 1); - } + return self::raiseError('Figlet font file "' + . $filename + . '" cannot be found', 1); } $this->font_comment = ''; @@ -139,7 +125,7 @@ class Text_Figlet $compressed = true; if (!function_exists('gzcompress')) { - return PEAR::raiseError('Cannot load gzip compressed fonts since' + return self::raiseError('Cannot load gzip compressed fonts since' . ' gzcompress() is not available.', 3); } @@ -148,14 +134,14 @@ class Text_Figlet } if (!($fp = fopen($filename, 'rb'))) { - return PEAR::raiseError('Cannot open figlet font file ' . $filename, 2); + return self::raiseError('Cannot open figlet font file ' . $filename, 2); } if (!$compressed) { /* ZIPed font */ if (fread($fp, 2) == 'PK') { if (!function_exists('zip_open')) { - return PEAR::raiseError('Cannot load ZIP compressed fonts since' + return self::raiseError('Cannot load ZIP compressed fonts since' . ' ZIP PHP extension is not available.', 5); } @@ -163,14 +149,14 @@ class Text_Figlet fclose($fp); if (!($fp = zip_open($filename))) { - return PEAR::raiseError('Cannot open figlet font file ' . $filename, 2); + return self::raiseError('Cannot open figlet font file ' . $filename, 2); } $name = zip_entry_name(zip_read($fp)); zip_close($fp); if (!($fp = fopen('zip://' . realpath($filename) . '#' . $name, 'rb'))) { - return PEAR::raiseError('Cannot open figlet font file ' . $filename, 2); + return self::raiseError('Cannot open figlet font file ' . $filename, 2); } $compressed = true; @@ -193,7 +179,7 @@ class Text_Figlet $header = explode(' ', fgets($fp, 2048)); if (substr($header[0], 0, 5) <> 'flf2a') { - return PEAR::raiseError('Unknown FIGlet font format.', 4); + return self::raiseError('Unknown FIGlet font format.', 4); } @list ($this->hardblank, $this->height,,, @@ -381,9 +367,9 @@ class Text_Figlet $str = strtr(implode("\n", $out), $trans); if ($inhtml) { - return ''. - nl2br(str_replace(' ', ' ', htmlspecialchars($str))). - ''; + self::raiseError( + 'Do not use the HTML escaping provided by this class in '. + 'a Phabricator context.'); } return $str; @@ -506,5 +492,9 @@ class Text_Figlet return true; } + + + private static function raiseError($message, $code = 1) { + throw new Exception($message); + } } -?> diff --git a/src/infrastructure/markup/interpreter/PhabricatorRemarkupFigletBlockInterpreter.php b/src/infrastructure/markup/interpreter/PhabricatorRemarkupFigletBlockInterpreter.php index c1b0d58055..e823d7bdeb 100644 --- a/src/infrastructure/markup/interpreter/PhabricatorRemarkupFigletBlockInterpreter.php +++ b/src/infrastructure/markup/interpreter/PhabricatorRemarkupFigletBlockInterpreter.php @@ -7,33 +7,28 @@ final class PhabricatorRemarkupFigletBlockInterpreter return 'figlet'; } + /** + * @phutil-external-symbol class Text_Figlet + */ public function markupContent($content, array $argv) { - if (!Filesystem::binaryExists('figlet')) { - return $this->markupError( - pht( - 'Unable to locate the `%s` binary. Install figlet.', - 'figlet')); + $map = self::getFigletMap(); + + $font = idx($argv, 'font'); + $font = phutil_utf8_strtolower($font); + if (empty($map[$font])) { + $font = 'standard'; } - $font = idx($argv, 'font', 'standard'); - $safe_font = preg_replace('/[^0-9a-zA-Z-_.]/', '', $font); - $future = id(new ExecFuture('figlet -f %s', $safe_font)) - ->setTimeout(15) - ->write(trim($content, "\n")); + $root = dirname(phutil_get_library_root('phabricator')); + require_once $root.'/externals/pear-figlet/Text/Figlet.php'; - list($err, $stdout, $stderr) = $future->resolve(); - - if ($err) { - return $this->markupError( - pht( - 'Execution of `%s` failed: %s', - 'figlet', - $stderr)); - } + $figlet = new Text_Figlet(); + $figlet->loadFont($map[$font]); + $result = $figlet->lineEcho($content); if ($this->getEngine()->isTextMode()) { - return $stdout; + return $result; } return phutil_tag( @@ -41,7 +36,30 @@ final class PhabricatorRemarkupFigletBlockInterpreter array( 'class' => 'PhabricatorMonospaced remarkup-figlet', ), - $stdout); + $result); + } + + private static function getFigletMap() { + $root = dirname(phutil_get_library_root('phabricator')); + + $dirs = array( + $root.'/externals/figlet/fonts/', + $root.'/externals/pear-figlet/fonts/', + $root.'/resources/figlet/custom/', + ); + + $map = array(); + foreach ($dirs as $dir) { + foreach (Filesystem::listDirectory($dir, false) as $file) { + if (preg_match('/\.flf\z/', $file)) { + $name = phutil_utf8_strtolower($file); + $name = preg_replace('/\.flf\z/', '', $name); + $map[$name] = $dir.$file; + } + } + } + + return $map; } } From 0449a07f537d1df22ce10cd396d1ba9067c40ac1 Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 14 Sep 2015 07:03:39 -0700 Subject: [PATCH 05/12] Add `bin/auth unlimit` and clean up a TODO Summary: I stumbled across this TODO and was worried that there was a glaring hole in MFA that I'd somehow forgotten about, but the TODO is just out of date. These actions are rate limited properly by `PhabricatorAuthTryFactorAction`, which permits a maximum of 10 actions per hour. - Remove the TODO. - Add `bin/auth unlimit` to make it easier to reset rate limits if someone needs to do that for whatever reason. Test Plan: - Tried to brute force through MFA. - Got rate limited properly after 10 failures. - Reset rate limit with `bin/auth unlimit`. - Saw the expected number of actions clear. {F805288} Reviewers: chad Reviewed By: chad Subscribers: joshuaspence Differential Revision: https://secure.phabricator.com/D14105 --- src/__phutil_library_map__.php | 2 + .../auth/factor/PhabricatorTOTPAuthFactor.php | 3 - ...abricatorAuthManagementUnlimitWorkflow.php | 67 +++++++++++++++++++ .../engine/PhabricatorSystemActionEngine.php | 31 +++++++++ 4 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 src/applications/auth/management/PhabricatorAuthManagementUnlimitWorkflow.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 039e0e0cfe..6fba6e6dcc 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1621,6 +1621,7 @@ phutil_register_library_map(array( 'PhabricatorAuthManagementRefreshWorkflow' => 'applications/auth/management/PhabricatorAuthManagementRefreshWorkflow.php', 'PhabricatorAuthManagementStripWorkflow' => 'applications/auth/management/PhabricatorAuthManagementStripWorkflow.php', 'PhabricatorAuthManagementTrustOAuthClientWorkflow' => 'applications/auth/management/PhabricatorAuthManagementTrustOAuthClientWorkflow.php', + 'PhabricatorAuthManagementUnlimitWorkflow' => 'applications/auth/management/PhabricatorAuthManagementUnlimitWorkflow.php', 'PhabricatorAuthManagementUntrustOAuthClientWorkflow' => 'applications/auth/management/PhabricatorAuthManagementUntrustOAuthClientWorkflow.php', 'PhabricatorAuthManagementVerifyWorkflow' => 'applications/auth/management/PhabricatorAuthManagementVerifyWorkflow.php', 'PhabricatorAuthManagementWorkflow' => 'applications/auth/management/PhabricatorAuthManagementWorkflow.php', @@ -5472,6 +5473,7 @@ phutil_register_library_map(array( 'PhabricatorAuthManagementRefreshWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementStripWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementTrustOAuthClientWorkflow' => 'PhabricatorAuthManagementWorkflow', + 'PhabricatorAuthManagementUnlimitWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementUntrustOAuthClientWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementVerifyWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementWorkflow' => 'PhabricatorManagementWorkflow', diff --git a/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php b/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php index f99a5f4a35..8c29eb7d14 100644 --- a/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php +++ b/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php @@ -192,9 +192,6 @@ final class PhabricatorTOTPAuthFactor extends PhabricatorAuthFactor { PhutilOpaqueEnvelope $key, $code) { - // TODO: This should use rate limiting to prevent multiple attempts in a - // short period of time. - $now = (int)(time() / 30); // Allow the user to enter a code a few minutes away on either side, in diff --git a/src/applications/auth/management/PhabricatorAuthManagementUnlimitWorkflow.php b/src/applications/auth/management/PhabricatorAuthManagementUnlimitWorkflow.php new file mode 100644 index 0000000000..843a5f70cf --- /dev/null +++ b/src/applications/auth/management/PhabricatorAuthManagementUnlimitWorkflow.php @@ -0,0 +1,67 @@ +setName('unlimit') + ->setExamples('**unlimit** --user __username__ --all') + ->setSynopsis( + pht( + 'Reset action counters so a user can continue taking '. + 'rate-limited actions.')) + ->setArguments( + array( + array( + 'name' => 'user', + 'param' => 'username', + 'help' => pht('Reset action counters for this user.'), + ), + array( + 'name' => 'all', + 'help' => pht('Reset all counters.'), + ), + )); + } + + public function execute(PhutilArgumentParser $args) { + $username = $args->getArg('user'); + if (!strlen($username)) { + throw new PhutilArgumentUsageException( + pht( + 'Use %s to choose a user to reset actions for.', '--user')); + } + + $user = id(new PhabricatorPeopleQuery()) + ->setViewer($this->getViewer()) + ->withUsernames(array($username)) + ->executeOne(); + if (!$user) { + throw new PhutilArgumentUsageException( + pht( + 'No user exists with username "%s".', + $username)); + } + + $all = $args->getArg('all'); + if (!$all) { + // TODO: Eventually, let users reset specific actions. For now, we + // require `--all` so that usage won't change when you can reset in a + // more tailored way. + throw new PhutilArgumentUsageException( + pht( + 'Specify %s to reset all action counters.', '--all')); + } + + $count = PhabricatorSystemActionEngine::resetActions( + array( + $user->getPHID(), + )); + + echo pht('Reset %s action(s).', new PhutilNumber($count))."\n"; + + return 0; + } + +} diff --git a/src/applications/system/engine/PhabricatorSystemActionEngine.php b/src/applications/system/engine/PhabricatorSystemActionEngine.php index 8f463c588e..b6a8e26711 100644 --- a/src/applications/system/engine/PhabricatorSystemActionEngine.php +++ b/src/applications/system/engine/PhabricatorSystemActionEngine.php @@ -167,4 +167,35 @@ final class PhabricatorSystemActionEngine extends Phobject { return phutil_units('1 hour in seconds'); } + + /** + * Reset all action counts for actions taken by some set of actors in the + * previous action window. + * + * @param list Actors to reset counts for. + * @return int Number of actions cleared. + */ + public static function resetActions(array $actors) { + $log = new PhabricatorSystemActionLog(); + $conn_w = $log->establishConnection('w'); + + $now = PhabricatorTime::getNow(); + + $hashes = array(); + foreach ($actors as $actor) { + $hashes[] = PhabricatorHash::digestForIndex($actor); + } + + queryfx( + $conn_w, + 'DELETE FROM %T + WHERE actorHash IN (%Ls) AND epoch BETWEEN %d AND %d', + $log->getTableName(), + $hashes, + $now - self::getWindow(), + $now); + + return $conn_w->getAffectedRows(); + } + } From a62337dcd83128aebb0940171524eb375ebac293 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Tue, 15 Sep 2015 18:32:01 -0700 Subject: [PATCH 06/12] Update PHUIActionPanelView Summary: Making these a little more fun, a little more flexible and better looking. Will have an update for rSAAS in a bit. Test Plan: Make lots of them. Click. {F815658} Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D14115 --- resources/celerity/map.php | 4 +- .../examples/PHUIActionPanelExample.php | 26 ++-- src/view/phui/PHUIActionPanelView.php | 97 +++++-------- webroot/rsrc/css/phui/phui-action-panel.css | 132 +++++++++++------- 4 files changed, 130 insertions(+), 129 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index 8875583e99..cb7a908fcb 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -121,7 +121,7 @@ return array( 'rsrc/css/phui/calendar/phui-calendar-month.css' => '476be7e0', 'rsrc/css/phui/calendar/phui-calendar.css' => 'ccabe893', 'rsrc/css/phui/phui-action-list.css' => 'c5eba19d', - 'rsrc/css/phui/phui-action-panel.css' => '3ee9afd5', + 'rsrc/css/phui/phui-action-panel.css' => '714a6c2f', 'rsrc/css/phui/phui-badge.css' => 'f25c3476', 'rsrc/css/phui/phui-box.css' => 'a5bb366d', 'rsrc/css/phui/phui-button.css' => '16020a60', @@ -764,7 +764,7 @@ return array( 'phortune-css' => '9149f103', 'phrequent-css' => 'ffc185ad', 'phriction-document-css' => 'd1861e06', - 'phui-action-panel-css' => '3ee9afd5', + 'phui-action-panel-css' => '714a6c2f', 'phui-badge-view-css' => 'f25c3476', 'phui-box-css' => 'a5bb366d', 'phui-button-css' => '16020a60', diff --git a/src/applications/uiexample/examples/PHUIActionPanelExample.php b/src/applications/uiexample/examples/PHUIActionPanelExample.php index cbffbf6124..ef27eacae7 100644 --- a/src/applications/uiexample/examples/PHUIActionPanelExample.php +++ b/src/applications/uiexample/examples/PHUIActionPanelExample.php @@ -13,8 +13,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { public function renderExample() { $view = id(new AphrontMultiColumnView()) - ->setFluidLayout(true) - ->setBorder(true); + ->setFluidLayout(true); /* Action Panels */ $panel1 = id(new PHUIActionPanelView()) @@ -22,8 +21,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Read Documentation')) ->setHref('#') ->setSubHeader(pht('Reading is a common way to learn about things.')) - ->setStatus(pht('Carrots help you see better.')) - ->setState(PHUIActionPanelView::STATE_NONE); + ->setState(PHUIActionPanelView::STATE_INFO); $view->addColumn($panel1); $panel2 = id(new PHUIActionPanelView()) @@ -31,7 +29,6 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Launch Instance')) ->setHref('#') ->setSubHeader(pht("Maybe this is what you're likely here for.")) - ->setStatus(pht('You have no instances.')) ->setState(PHUIActionPanelView::STATE_ERROR); $view->addColumn($panel2); @@ -40,7 +37,6 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Code with Friends')) ->setHref('#') ->setSubHeader(pht('Writing code is much more fun with friends!')) - ->setStatus(pht('You need more friends.')) ->setState(PHUIActionPanelView::STATE_WARN); $view->addColumn($panel3); @@ -49,13 +45,11 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Download Data')) ->setHref('#') ->setSubHeader(pht('Need a backup of all your kitten memes?')) - ->setStatus(pht('Building Download')) ->setState(PHUIActionPanelView::STATE_PROGRESS); $view->addColumn($panel4); $view2 = id(new AphrontMultiColumnView()) - ->setFluidLayout(true) - ->setBorder(true); + ->setFluidLayout(true); /* Action Panels */ $panel1 = id(new PHUIActionPanelView()) @@ -63,33 +57,31 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Account Balance')) ->setHref('#') ->setSubHeader(pht('You were last billed $2,245.12 on Dec 12, 2014.')) - ->setStatus(pht('Account in good standing.')) ->setState(PHUIActionPanelView::STATE_SUCCESS); $view2->addColumn($panel1); $panel2 = id(new PHUIActionPanelView()) - ->setBigText('148') + ->setBigText(true) ->setHeader(pht('Instance Users')) ->setHref('#') ->setSubHeader( - pht('You currently have 140 active and 8 inactive accounts')); + pht('148')); $view2->addColumn($panel2); $panel3 = id(new PHUIActionPanelView()) - ->setBigText('March 12') + ->setBigText(true) ->setHeader(pht('Next Maintenance Window')) ->setHref('#') ->setSubHeader( - pht('At 6:00 am PST, Phacility will conduct weekly maintenence.')) - ->setStatus(pht('Very Important!')) + pht('March 12')) ->setState(PHUIActionPanelView::STATE_ERROR); $view2->addColumn($panel3); $panel4 = id(new PHUIActionPanelView()) - ->setBigText('1,113,377') + ->setBigText(true) ->setHeader(pht('Lines of Code')) ->setHref('#') - ->setSubHeader(pht('Your team has reviewed lots of code!')); + ->setSubHeader(pht('1,113,377')); $view2->addColumn($panel4); $view = phutil_tag_div('mlb', $view); diff --git a/src/view/phui/PHUIActionPanelView.php b/src/view/phui/PHUIActionPanelView.php index ad260f2037..c798ae855f 100644 --- a/src/view/phui/PHUIActionPanelView.php +++ b/src/view/phui/PHUIActionPanelView.php @@ -52,29 +52,8 @@ final class PHUIActionPanelView extends AphrontTagView { return $this; } - protected function getStateIcon() { - $icon = new PHUIIconView(); - switch ($this->state) { - case self::STATE_WARN: - $icon->setIconFont('fa-exclamation-circle msr'); - break; - case self::STATE_INFO: - $icon->setIconFont('fa-info-circle msr'); - break; - case self::STATE_ERROR: - $icon->setIconFont('fa-exclamation-triangle msr'); - break; - case self::STATE_PROGRESS: - $icon->setIconFont('fa-refresh ph-spin msr'); - break; - case self::STATE_SUCCESS: - $icon->setIconFont('fa-check msr'); - break; - case self::STATE_NONE: - return null; - break; - } - return $icon; + protected function getTagName() { + return 'div'; } protected function getTagAttributes() { @@ -82,43 +61,26 @@ final class PHUIActionPanelView extends AphrontTagView { $classes = array(); $classes[] = 'phui-action-panel'; - if ($this->status) { - $classes[] = 'phui-action-panel-has-status'; + if ($this->state) { $classes[] = $this->state; - + } + if ($this->bigText) { + $classes[] = 'phui-action-panel-bigtext'; } return array( 'class' => implode(' ', $classes), ); - } protected function getTagContent() { $icon = null; - if ($this->fontIcon || $this->bigText) { - if ($this->fontIcon) { - $fonticon = id(new PHUIIconView()) - ->setIconFont($this->fontIcon); - } else { - $fonticon = phutil_tag( - 'span', - array( - 'class' => 'phui-action-panel-bigtext', - ), - $this->bigText); - } - if ($this->href) { - $fonticon = phutil_tag( - 'a', - array( - 'href' => $this->href, - ), - $fonticon); - } + if ($this->fontIcon) { + $fonticon = id(new PHUIIconView()) + ->setIconFont($this->fontIcon); $icon = phutil_tag( - 'div', + 'span', array( 'class' => 'phui-action-panel-icon', ), @@ -147,26 +109,39 @@ final class PHUIActionPanelView extends AphrontTagView { $subheader = null; if ($this->subHeader) { $subheader = phutil_tag( - 'div', + 'span', array( 'class' => 'phui-action-panel-subheader', ), $this->subHeader); } - $status = null; - if ($this->status && $this->state) { - $state_icon = $this->getStateIcon(); - $status = phutil_tag( - ($this->href) ? 'a' : 'div', - array( - 'class' => 'phui-action-panel-status', - 'href' => ($this->href) ? $this->href : null, - ), - array($state_icon, $this->status)); - } + $row = phutil_tag( + 'span', + array( + 'class' => 'phui-action-panel-row', + ), + array( + $icon, + $subheader, + )); - return array($icon, $header, $subheader, $status); + $table = phutil_tag( + 'span', + array( + 'class' => 'phui-action-panel-table', + ), + $row); + + $content = phutil_tag( + 'a', + array( + 'href' => $this->href, + 'class' => 'phui-action-panel-hitarea', + ), + $table); + + return array($header, $content); } diff --git a/webroot/rsrc/css/phui/phui-action-panel.css b/webroot/rsrc/css/phui/phui-action-panel.css index 0c9aa2c838..4569e1077b 100644 --- a/webroot/rsrc/css/phui/phui-action-panel.css +++ b/webroot/rsrc/css/phui/phui-action-panel.css @@ -4,23 +4,39 @@ .phui-action-panel { position: relative; + background-color: {$lightbluebackground}; + border: 1px solid {$lightgreyborder}; + border-radius: 3px; + margin: 0 8px; + min-height: 108px; } -.phui-action-panel-has-status.phui-action-panel { - padding-bottom: 44px; +.phui-action-panel-hitarea { + display: block; +} + +.phui-action-panel-table { + display: table; + height: 80px; + width: 100%; +} + +.phui-action-panel-row { + display: table-row; } .phui-action-panel-icon { - height: 128px; - line-height: 160px; + width: 64px; text-align: center; - vertical-align: bottom; + vertical-align: middle; + display: table-cell; } -.phui-action-panel-bigtext { - font-size: 40px; - color: {$lightgreytext}; - line-height: 96px; +.phui-action-panel-bigtext .phui-action-panel-subheader { + font-size: 28px; + color: {$darkbluetext}; + text-align: center; + padding: 0 8px; } .phui-action-panel-icon a { @@ -37,25 +53,28 @@ } .phui-action-panel-icon .phui-icon-view { - font-size: 64px; - color: {$lightgreytext}; + font-size: 36px; + color: {$lightbluetext}; } .phui-action-panel-header { - padding: 0 8px 4px 8px; - font-weight: bold; - font-size: {$biggerfontsize}; - color: {$darkbluetext}; + padding: 8px; + border-bottom: 1px solid {$thinblueborder}; } .phui-action-panel-header a { - color: {$blue}; + color: {$darkbluetext}; } .phui-action-panel-subheader { - padding: 0 8px 4px 8px; - font-size: {$normalfontsize}; - color: {$bluetext}; + display: table-cell; + vertical-align: middle; + color: {$darkbluetext}; + padding: 0 8px 0 0; +} + +.phui-action-panel-subheader a { + text-decoraction: none; } .phui-action-panel-status { @@ -80,52 +99,67 @@ color: {$greytext}; } -.phui-action-panel-warn .phui-action-panel-status { - background-color: {$lightyellow}; - border-left: 4px solid #bc7837; - color: #bc7837; +.phui-action-panel-warn { + background-color: {$sh-yellowbackground}; + border-color: {$sh-yellowborder}; } -.phui-action-panel-warn .phui-action-panel-status .phui-icon-view { - color: #bc7837; +.phui-action-panel-warn .phui-action-panel-icon .phui-icon-view { + color: {$sh-yellowicon}; } -.phui-action-panel-error .phui-action-panel-status { - background-color: {$lightred}; - border-left: 4px solid {$red}; - color: {$red}; +.phui-action-panel-warn .phui-action-panel-header { + border-color: {$sh-lightyellowborder}; } -.phui-action-panel-error .phui-action-panel-status .phui-icon-view { - color: {$red}; +.phui-action-panel-error { + background-color: {$sh-redbackground}; + border-color: {$sh-redborder}; } -.phui-action-panel-info .phui-action-panel-status { - background-color: {$lightblue}; - border-left: 4px solid {$blue}; - color: {$blue}; +.phui-action-panel-error .phui-action-panel-icon .phui-icon-view { + color: {$sh-redicon}; } -.phui-action-panel-info .phui-action-panel-status .phui-icon-view { - color: {$blue}; +.phui-action-panel-error .phui-action-panel-header { + border-color: {$sh-lightredborder}; } -.phui-action-panel-success .phui-action-panel-status { - background-color: {$lightgreen}; - color: {$green}; - border-left: 4px solid {$green}; +.phui-action-panel-info { + background-color: {$sh-bluebackground}; + border-color: {$sh-blueborder}; } -.phui-action-panel-success .phui-action-panel-status .phui-icon-view { - color: {$green}; +.phui-action-panel-info .phui-action-panel-icon .phui-icon-view { + color: {$sh-blueicon}; } -.phui-action-panel-progress .phui-action-panel-status { - background-color: {$lightblue}; - color: {$blue}; - border-left: 4px solid {$blue}; +.phui-action-panel-info .phui-action-panel-header { + border-color: {$sh-lightblueborder}; } -.phui-action-panel-progress .phui-action-panel-status .phui-icon-view { - color: {$blue}; +.phui-action-panel-success { + background-color: {$sh-greenbackground}; + border-color: {$sh-greenborder}; +} + +.phui-action-panel-success .phui-action-panel-icon .phui-icon-view { + color: {$sh-greenicon}; +} + +.phui-action-panel-success .phui-action-panel-header { + border-color: {$sh-lightgreenborder}; +} + +.phui-action-panel-progress { + background-color: {$sh-violetbackground}; + border-color: {$sh-violetborder}; +} + +.phui-action-panel-progress .phui-action-panel-icon .phui-icon-view { + color: {$sh-violeticon}; +} + +.phui-action-panel-progress .phui-action-panel-header { + border-color: {$sh-lightvioletborder}; } From 23b2653f52cd16bc9cedfdf7328d401171e668ca Mon Sep 17 00:00:00 2001 From: Chad Little Date: Wed, 16 Sep 2015 09:22:31 -0700 Subject: [PATCH 07/12] More ActionPanel colors, hardening Summary: Adds full ROYGBIVP color spectrum, adds basic overflow, collapse protection. Test Plan: Review small and large panels are various breakpoints. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D14120 --- resources/celerity/map.php | 4 +- .../examples/PHUIActionPanelExample.php | 15 +- src/view/phui/PHUIActionPanelView.php | 14 +- webroot/rsrc/css/phui/phui-action-panel.css | 135 ++++++++++++------ 4 files changed, 112 insertions(+), 56 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index cb7a908fcb..a9a4a3950f 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -121,7 +121,7 @@ return array( 'rsrc/css/phui/calendar/phui-calendar-month.css' => '476be7e0', 'rsrc/css/phui/calendar/phui-calendar.css' => 'ccabe893', 'rsrc/css/phui/phui-action-list.css' => 'c5eba19d', - 'rsrc/css/phui/phui-action-panel.css' => '714a6c2f', + 'rsrc/css/phui/phui-action-panel.css' => 'bac94b03', 'rsrc/css/phui/phui-badge.css' => 'f25c3476', 'rsrc/css/phui/phui-box.css' => 'a5bb366d', 'rsrc/css/phui/phui-button.css' => '16020a60', @@ -764,7 +764,7 @@ return array( 'phortune-css' => '9149f103', 'phrequent-css' => 'ffc185ad', 'phriction-document-css' => 'd1861e06', - 'phui-action-panel-css' => '714a6c2f', + 'phui-action-panel-css' => 'bac94b03', 'phui-badge-view-css' => 'f25c3476', 'phui-box-css' => 'a5bb366d', 'phui-button-css' => '16020a60', diff --git a/src/applications/uiexample/examples/PHUIActionPanelExample.php b/src/applications/uiexample/examples/PHUIActionPanelExample.php index ef27eacae7..c57617a566 100644 --- a/src/applications/uiexample/examples/PHUIActionPanelExample.php +++ b/src/applications/uiexample/examples/PHUIActionPanelExample.php @@ -21,7 +21,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Read Documentation')) ->setHref('#') ->setSubHeader(pht('Reading is a common way to learn about things.')) - ->setState(PHUIActionPanelView::STATE_INFO); + ->setState(PHUIActionPanelView::COLOR_BLUE); $view->addColumn($panel1); $panel2 = id(new PHUIActionPanelView()) @@ -29,7 +29,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Launch Instance')) ->setHref('#') ->setSubHeader(pht("Maybe this is what you're likely here for.")) - ->setState(PHUIActionPanelView::STATE_ERROR); + ->setState(PHUIActionPanelView::COLOR_RED); $view->addColumn($panel2); $panel3 = id(new PHUIActionPanelView()) @@ -37,7 +37,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Code with Friends')) ->setHref('#') ->setSubHeader(pht('Writing code is much more fun with friends!')) - ->setState(PHUIActionPanelView::STATE_WARN); + ->setState(PHUIActionPanelView::COLOR_YELLOW); $view->addColumn($panel3); $panel4 = id(new PHUIActionPanelView()) @@ -45,7 +45,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Download Data')) ->setHref('#') ->setSubHeader(pht('Need a backup of all your kitten memes?')) - ->setState(PHUIActionPanelView::STATE_PROGRESS); + ->setState(PHUIActionPanelView::COLOR_PINK); $view->addColumn($panel4); $view2 = id(new AphrontMultiColumnView()) @@ -57,7 +57,7 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHeader(pht('Account Balance')) ->setHref('#') ->setSubHeader(pht('You were last billed $2,245.12 on Dec 12, 2014.')) - ->setState(PHUIActionPanelView::STATE_SUCCESS); + ->setState(PHUIActionPanelView::COLOR_GREEN); $view2->addColumn($panel1); $panel2 = id(new PHUIActionPanelView()) @@ -74,14 +74,15 @@ final class PHUIActionPanelExample extends PhabricatorUIExample { ->setHref('#') ->setSubHeader( pht('March 12')) - ->setState(PHUIActionPanelView::STATE_ERROR); + ->setState(PHUIActionPanelView::COLOR_ORANGE); $view2->addColumn($panel3); $panel4 = id(new PHUIActionPanelView()) ->setBigText(true) ->setHeader(pht('Lines of Code')) ->setHref('#') - ->setSubHeader(pht('1,113,377')); + ->setSubHeader(pht('1,113,377')) + ->setState(PHUIActionPanelView::COLOR_INDIGO); $view2->addColumn($panel4); $view = phutil_tag_div('mlb', $view); diff --git a/src/view/phui/PHUIActionPanelView.php b/src/view/phui/PHUIActionPanelView.php index c798ae855f..90f4cab40b 100644 --- a/src/view/phui/PHUIActionPanelView.php +++ b/src/view/phui/PHUIActionPanelView.php @@ -10,12 +10,14 @@ final class PHUIActionPanelView extends AphrontTagView { private $state; private $status; - const STATE_WARN = 'phui-action-panel-warn'; - const STATE_INFO = 'phui-action-panel-info'; - const STATE_ERROR = 'phui-action-panel-error'; - const STATE_SUCCESS = 'phui-action-panel-success'; - const STATE_PROGRESS = 'phui-action-panel-progress'; - const STATE_NONE = 'phui-action-panel-none'; + const COLOR_RED = 'phui-action-panel-red'; + const COLOR_ORANGE = 'phui-action-panel-orange'; + const COLOR_YELLOW = 'phui-action-panel-yellow'; + const COLOR_GREEN = 'phui-action-panel-green'; + const COLOR_BLUE = 'phui-action-panel-blue'; + const COLOR_INDIGO = 'phui-action-panel-indigo'; + const COLOR_VIOLET = 'phui-action-panel-violet'; + const COLOR_PINK = 'phui-action-panel-pink'; public function setHref($href) { $this->href = $href; diff --git a/webroot/rsrc/css/phui/phui-action-panel.css b/webroot/rsrc/css/phui/phui-action-panel.css index 4569e1077b..5978c8a2b7 100644 --- a/webroot/rsrc/css/phui/phui-action-panel.css +++ b/webroot/rsrc/css/phui/phui-action-panel.css @@ -4,11 +4,16 @@ .phui-action-panel { position: relative; - background-color: {$lightbluebackground}; - border: 1px solid {$lightgreyborder}; + background-color: #fff; + border: 1px solid {$lightblueborder}; border-radius: 3px; margin: 0 8px; min-height: 108px; + overflow: hidden; +} + +.device .phui-action-panel { + margin: 0; } .phui-action-panel-hitarea { @@ -60,6 +65,9 @@ .phui-action-panel-header { padding: 8px; border-bottom: 1px solid {$thinblueborder}; + font-weight: bold; + white-space: nowrap; + overflow: hidden; } .phui-action-panel-header a { @@ -70,7 +78,7 @@ display: table-cell; vertical-align: middle; color: {$darkbluetext}; - padding: 0 8px 0 0; + padding: 8px 8px 8px 0; } .phui-action-panel-subheader a { @@ -89,77 +97,122 @@ text-decoration: none; } -.phui-action-panel-none .phui-action-panel-status { - background-color: {$lightgreybackground}; - border-left: 4px solid {$greyborder}; - color: {$greytext}; -} +/* - Red -------------------------------------------------------------------- */ -.phui-action-panel-warn .phui-action-panel-status .phui-icon-view { - color: {$greytext}; -} - -.phui-action-panel-warn { - background-color: {$sh-yellowbackground}; - border-color: {$sh-yellowborder}; -} - -.phui-action-panel-warn .phui-action-panel-icon .phui-icon-view { - color: {$sh-yellowicon}; -} - -.phui-action-panel-warn .phui-action-panel-header { - border-color: {$sh-lightyellowborder}; -} - -.phui-action-panel-error { +.phui-action-panel-red { background-color: {$sh-redbackground}; border-color: {$sh-redborder}; } -.phui-action-panel-error .phui-action-panel-icon .phui-icon-view { +.phui-action-panel-red .phui-action-panel-icon .phui-icon-view { color: {$sh-redicon}; } -.phui-action-panel-error .phui-action-panel-header { +.phui-action-panel-red .phui-action-panel-header { border-color: {$sh-lightredborder}; } -.phui-action-panel-info { - background-color: {$sh-bluebackground}; - border-color: {$sh-blueborder}; +/* - Orange ----------------------------------------------------------------- */ + +.phui-action-panel-orange { + background-color: {$sh-orangebackground}; + border-color: {$sh-orangeborder}; } -.phui-action-panel-info .phui-action-panel-icon .phui-icon-view { - color: {$sh-blueicon}; +.phui-action-panel-orange .phui-action-panel-icon .phui-icon-view { + color: {$sh-orangeicon}; } -.phui-action-panel-info .phui-action-panel-header { - border-color: {$sh-lightblueborder}; +.phui-action-panel-orange .phui-action-panel-header { + border-color: {$sh-lightorangeborder}; } -.phui-action-panel-success { +/* - Yellow ----------------------------------------------------------------- */ + +.phui-action-panel-yellow { + background-color: {$sh-yellowbackground}; + border-color: {$sh-yellowborder}; +} + +.phui-action-panel-yellow .phui-action-panel-icon .phui-icon-view { + color: {$sh-yellowicon}; +} + +.phui-action-panel-yellow .phui-action-panel-header { + border-color: {$sh-lightyellowborder}; +} + +/* - Green ------------------------------------------------------------------ */ + +.phui-action-panel-green { background-color: {$sh-greenbackground}; border-color: {$sh-greenborder}; } -.phui-action-panel-success .phui-action-panel-icon .phui-icon-view { +.phui-action-panel-green .phui-action-panel-icon .phui-icon-view { color: {$sh-greenicon}; } -.phui-action-panel-success .phui-action-panel-header { +.phui-action-panel-green .phui-action-panel-header { border-color: {$sh-lightgreenborder}; } -.phui-action-panel-progress { +/* - Blue ------------------------------------------------------------------- */ + +.phui-action-panel-blue { + background-color: {$sh-bluebackground}; + border-color: {$sh-blueborder}; +} + +.phui-action-panel-blue .phui-action-panel-icon .phui-icon-view { + color: {$sh-blueicon}; +} + +.phui-action-panel-blue .phui-action-panel-header { + border-color: {$sh-lightblueborder}; +} + +/* - Indigo ----------------------------------------------------------------- */ + +.phui-action-panel-indigo { + background-color: {$sh-indigobackground}; + border-color: {$sh-indigoborder}; +} + +.phui-action-panel-indigo .phui-action-panel-icon .phui-icon-view { + color: {$sh-indigoicon}; +} + +.phui-action-panel-indigo .phui-action-panel-header { + border-color: {$sh-lightindigoborder}; +} + +/* - Violet ----------------------------------------------------------------- */ + +.phui-action-panel-violet { background-color: {$sh-violetbackground}; border-color: {$sh-violetborder}; } -.phui-action-panel-progress .phui-action-panel-icon .phui-icon-view { +.phui-action-panel-violet .phui-action-panel-icon .phui-icon-view { color: {$sh-violeticon}; } -.phui-action-panel-progress .phui-action-panel-header { +.phui-action-panel-violet .phui-action-panel-header { border-color: {$sh-lightvioletborder}; } + +/* - Pink ------------------------------------------------------------------- */ + +.phui-action-panel-pink { + background-color: {$sh-pinkbackground}; + border-color: {$sh-violetborder}; +} + +.phui-action-panel-pink .phui-action-panel-icon .phui-icon-view { + color: {$sh-pinkicon}; +} + +.phui-action-panel-pink .phui-action-panel-header { + border-color: {$sh-lightpinkborder}; +} From 2e0cbaa366ff95c7eb894a20fe14499bbe8791f5 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 17 Sep 2015 08:22:23 -0700 Subject: [PATCH 08/12] Usability updates to ActionPanel Summary: Wraps entire element in the anchor tag, gives a hover state, makes icons bounce. Test Plan: Hover and click. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D14124 --- resources/celerity/map.php | 4 ++-- src/view/phui/PHUIActionPanelView.php | 19 ++++------------ webroot/rsrc/css/phui/phui-action-panel.css | 24 ++++++++++++++------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index a9a4a3950f..ec8b6b86c1 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -121,7 +121,7 @@ return array( 'rsrc/css/phui/calendar/phui-calendar-month.css' => '476be7e0', 'rsrc/css/phui/calendar/phui-calendar.css' => 'ccabe893', 'rsrc/css/phui/phui-action-list.css' => 'c5eba19d', - 'rsrc/css/phui/phui-action-panel.css' => 'bac94b03', + 'rsrc/css/phui/phui-action-panel.css' => '91c7b835', 'rsrc/css/phui/phui-badge.css' => 'f25c3476', 'rsrc/css/phui/phui-box.css' => 'a5bb366d', 'rsrc/css/phui/phui-button.css' => '16020a60', @@ -764,7 +764,7 @@ return array( 'phortune-css' => '9149f103', 'phrequent-css' => 'ffc185ad', 'phriction-document-css' => 'd1861e06', - 'phui-action-panel-css' => 'bac94b03', + 'phui-action-panel-css' => '91c7b835', 'phui-badge-view-css' => 'f25c3476', 'phui-box-css' => 'a5bb366d', 'phui-button-css' => '16020a60', diff --git a/src/view/phui/PHUIActionPanelView.php b/src/view/phui/PHUIActionPanelView.php index 90f4cab40b..bfe44ba13e 100644 --- a/src/view/phui/PHUIActionPanelView.php +++ b/src/view/phui/PHUIActionPanelView.php @@ -91,21 +91,12 @@ final class PHUIActionPanelView extends AphrontTagView { $header = null; if ($this->header) { - $header = $this->header; - if ($this->href) { - $header = phutil_tag( - 'a', - array( - 'href' => $this->href, - ), - $this->header); - } $header = phutil_tag( - 'div', + 'span', array( 'class' => 'phui-action-panel-header', ), - $header); + $this->header); } $subheader = null; @@ -135,15 +126,13 @@ final class PHUIActionPanelView extends AphrontTagView { ), $row); - $content = phutil_tag( + return phutil_tag( 'a', array( 'href' => $this->href, 'class' => 'phui-action-panel-hitarea', ), - $table); - - return array($header, $content); + array($header, $table)); } diff --git a/webroot/rsrc/css/phui/phui-action-panel.css b/webroot/rsrc/css/phui/phui-action-panel.css index 5978c8a2b7..6d7c566de7 100644 --- a/webroot/rsrc/css/phui/phui-action-panel.css +++ b/webroot/rsrc/css/phui/phui-action-panel.css @@ -20,6 +20,16 @@ display: block; } +.device-desktop .phui-action-panel-hitarea:hover { + text-decoration: none; + background-color: rgba(255,255,255,.25); +} + +.device-desktop .phui-action-panel-hitarea:hover .phui-icon-view { + margin-top: -4px; + transition-duration: .2s; +} + .phui-action-panel-table { display: table; height: 80px; @@ -37,13 +47,6 @@ display: table-cell; } -.phui-action-panel-bigtext .phui-action-panel-subheader { - font-size: 28px; - color: {$darkbluetext}; - text-align: center; - padding: 0 8px; -} - .phui-action-panel-icon a { display: block; } @@ -68,10 +71,15 @@ font-weight: bold; white-space: nowrap; overflow: hidden; + color: {$darkbluetext}; + display: block; } -.phui-action-panel-header a { +.phui-action-panel-bigtext .phui-action-panel-subheader { + font-size: 28px; color: {$darkbluetext}; + text-align: center; + padding: 0 8px; } .phui-action-panel-subheader { From f8997623649c409978995adc9622b7e3e8c84e80 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 17 Sep 2015 08:22:40 -0700 Subject: [PATCH 09/12] Better Paste layout on mobile Summary: Builds a container of paste, makes it smaller on mobile. Test Plan: View on desktop, tablet, mobile. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D14122 --- resources/celerity/map.php | 4 ++-- .../controller/PhabricatorPasteViewController.php | 12 +++++++----- webroot/rsrc/css/application/paste/paste.css | 8 ++++++++ 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index ec8b6b86c1..640f94f24a 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -80,7 +80,7 @@ return array( 'rsrc/css/application/maniphest/task-summary.css' => '11cc5344', 'rsrc/css/application/objectselector/object-selector.css' => '85ee8ce6', 'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b', - 'rsrc/css/application/paste/paste.css' => '1898e534', + 'rsrc/css/application/paste/paste.css' => 'b2f5a543', 'rsrc/css/application/people/people-profile.css' => '25970776', 'rsrc/css/application/phame/phame.css' => 'bb147387', 'rsrc/css/application/pholio/pholio-edit.css' => '3ad9d1ee', @@ -703,7 +703,7 @@ return array( 'multirow-row-manager' => 'b5d57730', 'owners-path-editor' => 'aa1733d0', 'owners-path-editor-css' => '2f00933b', - 'paste-css' => '1898e534', + 'paste-css' => 'b2f5a543', 'path-typeahead' => 'f7fc67ec', 'people-profile-css' => '25970776', 'phabricator-action-list-view-css' => 'c5eba19d', diff --git a/src/applications/paste/controller/PhabricatorPasteViewController.php b/src/applications/paste/controller/PhabricatorPasteViewController.php index 0273636d00..382d683f37 100644 --- a/src/applications/paste/controller/PhabricatorPasteViewController.php +++ b/src/applications/paste/controller/PhabricatorPasteViewController.php @@ -69,11 +69,13 @@ final class PhabricatorPasteViewController extends PhabricatorPasteController { null, $this->highlightMap); - $source_code = id(new PHUIBoxView()) - ->appendChild($source_code) - ->addMargin(PHUI::MARGIN_LARGE_LEFT) - ->addMargin(PHUI::MARGIN_LARGE_RIGHT) - ->addMargin(PHUI::MARGIN_LARGE_TOP); + require_celerity_resource('paste-css'); + $source_code = phutil_tag( + 'div', + array( + 'class' => 'container-of-paste', + ), + $source_code); $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()) ->addTextCrumb('P'.$paste->getID(), '/P'.$paste->getID()); diff --git a/webroot/rsrc/css/application/paste/paste.css b/webroot/rsrc/css/application/paste/paste.css index b9b2fe2dd2..ae53a577e7 100644 --- a/webroot/rsrc/css/application/paste/paste.css +++ b/webroot/rsrc/css/application/paste/paste.css @@ -2,6 +2,14 @@ * @provides paste-css */ +.container-of-paste { + margin: 16px; +} + +.device .container-of-paste { + margin: 8px; +} + .paste-embed { background: {$sh-yellowbackground}; border: 1px solid {$sh-lightyellowborder}; From ce7aa92c67783d8eae0be53bb315cb03313e8abc Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 17 Sep 2015 08:23:22 -0700 Subject: [PATCH 10/12] Normalize Paste, Remarkup code embed colors Summary: These currently use different yellows, and more importantly when pygmentized, is hard to read. This lightens up code embeds and pastes. Test Plan: Review Diviner docs, Pastes, and normal code embeds. {F820471} Reviewers: epriestley Reviewed By: epriestley Subscribers: tycho.tatitscheff, Korvin Differential Revision: https://secure.phabricator.com/D14123 --- resources/celerity/map.php | 10 +++++----- webroot/rsrc/css/core/remarkup.css | 6 +++--- .../rsrc/css/layout/phabricator-source-code-view.css | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index 640f94f24a..f1a20bf002 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -7,7 +7,7 @@ */ return array( 'names' => array( - 'core.pkg.css' => 'a2cf2f6c', + 'core.pkg.css' => '5eabac59', 'core.pkg.js' => '47dc9ebb', 'darkconsole.pkg.js' => 'e7393ebb', 'differential.pkg.css' => '2de124c9', @@ -104,7 +104,7 @@ return array( 'rsrc/css/application/tokens/tokens.css' => '3d0f239e', 'rsrc/css/application/uiexample/example.css' => '528b19de', 'rsrc/css/core/core.css' => 'a76cefc9', - 'rsrc/css/core/remarkup.css' => '1c4ac273', + 'rsrc/css/core/remarkup.css' => 'e27a26b2', 'rsrc/css/core/syntax.css' => '9fd11da8', 'rsrc/css/core/z-index.css' => '57ddcaa2', 'rsrc/css/diviner/diviner-shared.css' => '5a337049', @@ -115,7 +115,7 @@ return array( 'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82', 'rsrc/css/layout/phabricator-hovercard-view.css' => '1239cd52', 'rsrc/css/layout/phabricator-side-menu-view.css' => 'bec2458e', - 'rsrc/css/layout/phabricator-source-code-view.css' => '5e0178de', + 'rsrc/css/layout/phabricator-source-code-view.css' => 'cbeef983', 'rsrc/css/phui/calendar/phui-calendar-day.css' => 'd1cf6f93', 'rsrc/css/phui/calendar/phui-calendar-list.css' => 'c1c7f338', 'rsrc/css/phui/calendar/phui-calendar-month.css' => '476be7e0', @@ -733,12 +733,12 @@ return array( 'phabricator-object-selector-css' => '85ee8ce6', 'phabricator-phtize' => 'd254d646', 'phabricator-prefab' => '6920d200', - 'phabricator-remarkup-css' => '1c4ac273', + 'phabricator-remarkup-css' => 'e27a26b2', 'phabricator-search-results-css' => '7dea472c', 'phabricator-shaped-request' => '7cbe244b', 'phabricator-side-menu-view-css' => 'bec2458e', 'phabricator-slowvote-css' => '475b4bd2', - 'phabricator-source-code-view-css' => '5e0178de', + 'phabricator-source-code-view-css' => 'cbeef983', 'phabricator-standard-page-view' => '1f53d056', 'phabricator-textareautils' => '5c93c52c', 'phabricator-title' => 'df5e11d2', diff --git a/webroot/rsrc/css/core/remarkup.css b/webroot/rsrc/css/core/remarkup.css index 9a3906f3b8..98dad91a26 100644 --- a/webroot/rsrc/css/core/remarkup.css +++ b/webroot/rsrc/css/core/remarkup.css @@ -39,12 +39,12 @@ } .phabricator-remarkup .remarkup-code-block pre { - background: {$sh-yellowbackground}; + background: #FFFEF5; border: 1px solid {$sh-lightyellowborder}; display: block; - color: #000000; + color: #000; overflow: auto; - padding: 12px 8px; + padding: 8px; } .phabricator-remarkup pre.remarkup-counterexample { diff --git a/webroot/rsrc/css/layout/phabricator-source-code-view.css b/webroot/rsrc/css/layout/phabricator-source-code-view.css index 047a30459e..4bd57fcfcb 100644 --- a/webroot/rsrc/css/layout/phabricator-source-code-view.css +++ b/webroot/rsrc/css/layout/phabricator-source-code-view.css @@ -3,12 +3,11 @@ */ .phabricator-source-code-container { - background: #fff; overflow-x: auto; overflow-y: hidden; border: 1px solid {$sh-lightyellowborder}; border-radius: 3px; - background-color: #FCFBF7; + background-color: #FFFEF5; } .phui-object-item .phabricator-source-code-container { @@ -44,6 +43,7 @@ -webkit-user-select: none; -ms-user-select: none; user-select: none; + white-space: nowrap; } th.phabricator-source-line a { From 36c8df3ef95b7fdb94c43da45e6743972d3277fe Mon Sep 17 00:00:00 2001 From: Chad Little Date: Fri, 18 Sep 2015 13:58:07 -0700 Subject: [PATCH 11/12] Add pageObjects to Macro Summary: Fixes T9442 Test Plan: Like a macro, log out, switch to notchad, clear notification by visiting page Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T9442 Differential Revision: https://secure.phabricator.com/D14129 --- .../macro/controller/PhabricatorMacroViewController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/applications/macro/controller/PhabricatorMacroViewController.php b/src/applications/macro/controller/PhabricatorMacroViewController.php index 8915954fc4..7510c1845d 100644 --- a/src/applications/macro/controller/PhabricatorMacroViewController.php +++ b/src/applications/macro/controller/PhabricatorMacroViewController.php @@ -92,6 +92,7 @@ final class PhabricatorMacroViewController ), array( 'title' => $title_short, + 'pageObjects' => array($macro->getPHID()), )); } From 9c438538156dc18343e0c54c8dd845fd7e251ce2 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Fri, 18 Sep 2015 13:59:11 -0700 Subject: [PATCH 12/12] Restore the delicate balance of the universe --- .../macro/controller/PhabricatorMacroViewController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/applications/macro/controller/PhabricatorMacroViewController.php b/src/applications/macro/controller/PhabricatorMacroViewController.php index 7510c1845d..02a6f0d342 100644 --- a/src/applications/macro/controller/PhabricatorMacroViewController.php +++ b/src/applications/macro/controller/PhabricatorMacroViewController.php @@ -92,7 +92,7 @@ final class PhabricatorMacroViewController ), array( 'title' => $title_short, - 'pageObjects' => array($macro->getPHID()), + 'pageObjects' => array($macro->getPHID()), )); }