diff options
author | Jonathan McCrohan <jmccrohan@gmail.com> | 2012-05-08 14:52:11 +0100 |
---|---|---|
committer | Jonathan McCrohan <jmccrohan@gmail.com> | 2012-05-08 14:52:11 +0100 |
commit | 017f336a5121897cd64179e84ded15e1dd37bd92 (patch) | |
tree | 2ae42241ba854d6c7726ad857195d0f5edafa053 | |
parent | dee0cd250574b52e74a9390f6f9c1efd818223d4 (diff) | |
parent | 8fdab96d486ba52601544c67c38625480ddf7640 (diff) | |
download | figlet-017f336a5121897cd64179e84ded15e1dd37bd92.tar.gz |
Merge tag 'upstream/2.2.4'
Upstream version 2.2.4
-rw-r--r-- | CHANGES | 22 | ||||
-rw-r--r-- | FAQ | 2 | ||||
-rw-r--r-- | Makefile | 62 | ||||
-rw-r--r-- | README | 9 | ||||
-rw-r--r-- | chkfont.6 | 2 | ||||
-rw-r--r-- | figfont.txt | 8 | ||||
-rw-r--r-- | figlet.6 | 35 | ||||
-rw-r--r-- | figlet.c | 308 | ||||
-rwxr-xr-x | figlist | 15 | ||||
-rw-r--r-- | figlist.6 | 2 | ||||
-rwxr-xr-x | run-tests.sh | 86 | ||||
-rwxr-xr-x | showfigfonts | 23 | ||||
-rw-r--r-- | showfigfonts.6 | 2 | ||||
-rw-r--r-- | tests/emboss.tlf | 325 | ||||
-rw-r--r-- | tests/input.txt | 7 | ||||
-rw-r--r-- | tests/longtext.txt | 14 | ||||
-rw-r--r-- | tests/res001.txt | 148 | ||||
-rw-r--r-- | tests/res002.txt | 1992 | ||||
-rw-r--r-- | tests/res003.txt | 432 | ||||
-rw-r--r-- | tests/res004.txt | 120 | ||||
-rw-r--r-- | tests/res005.txt | 120 | ||||
-rw-r--r-- | tests/res006.txt | 120 | ||||
-rw-r--r-- | tests/res007.txt | 120 | ||||
-rw-r--r-- | tests/res008.txt | 120 | ||||
-rw-r--r-- | tests/res009.txt | 138 | ||||
-rw-r--r-- | tests/res010.txt | 156 | ||||
-rw-r--r-- | tests/res011.txt | 114 | ||||
-rw-r--r-- | tests/res012.txt | 36 | ||||
-rw-r--r-- | tests/res013.txt | 132 | ||||
-rw-r--r-- | tests/res014.txt | 144 | ||||
-rw-r--r-- | tests/res015.txt | 156 | ||||
-rw-r--r-- | tests/res016.txt | 152 | ||||
-rw-r--r-- | tests/res017.txt | 36 | ||||
-rw-r--r-- | tests/res018.txt | 27 | ||||
-rw-r--r-- | tests/res019.txt | 36 | ||||
-rw-r--r-- | tests/res020.txt | 140 | ||||
-rw-r--r-- | tests/res021.txt | 36 | ||||
-rw-r--r-- | tests/res022.txt | 1314 | ||||
-rw-r--r-- | tests/res023.txt | 90 | ||||
-rw-r--r-- | tests/res024.txt | 39 | ||||
-rw-r--r-- | utf8.c | 326 | ||||
-rw-r--r-- | utf8.h | 39 |
42 files changed, 7041 insertions, 164 deletions
@@ -1,3 +1,25 @@ +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 <cmatsuoka@gmail.com> +26 January 2011 + Changes in FIGlet 2.2.3 ----------------------- @@ -5,7 +5,7 @@ info@figlet.org http://www.figlet.org/ |__| [FIGlet FAQ v0.91] =========================================================================== -The latest version of FIGlet is 2.2.3 and can be downloaded from +The latest version of FIGlet is 2.2.4 and can be downloaded from ftp://ftp.figlet.org/pub/figlet/program =========================================================================== @@ -1,5 +1,5 @@ -# Makefile for figlet version 2.2.3 (11 Jan 2011) -# adapted from Makefile for figlet version 2.2.2 (05 July 2005) +# 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 @@ -24,38 +24,45 @@ CFLAGS = -g -O2 -Wall 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 = /usr/local/bin +BINDIR = $(prefix)/bin # Where the man page should be put -MANDIR = /usr/local/man +MANDIR = $(prefix)/man # Where figlet will search first for fonts (the ".flf" files). -DEFAULTFONTDIR = /usr/local/share/figlet -# Use this definition if you can't put things in /usr/local/share/figlet -DEFAULTFONTDIR = fonts +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 -# (standard.flf is recommended, but any other can be used). -# This font file should reside in the directory specified by -# DEFAULTFONTDIR. -DEFAULTFONTFILE = standard.flf +# 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.3 +VERSION = 2.2.4 DIST = figlet-$(VERSION) -OBJS = figlet.o zipio.o crc.o inflate.o +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 \ figlist showfigfonts CHANGES FAQ README LICENSE figfont.txt \ - crc.h inflate.h zipio.h + crc.h inflate.h zipio.h utf8.h run-tests.sh .c.o: - $(CC) -c $(CFLAGS) -DDEFAULTFONTDIR=\"$(DEFAULTFONTDIR)\" \ + $(CC) -c $(CFLAGS) $(XCFLAGS) -DDEFAULTFONTDIR=\"$(DEFAULTFONTDIR)\" \ -DDEFAULTFONTFILE=\"$(DEFAULTFONTFILE)\" -o $*.o $< all: $(BINS) @@ -84,9 +91,28 @@ 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) - ls -l $(DIST).tar.gz + tar xf $(DIST).tar.gz + (cd $(DIST); make all check vercheck) + @rm -Rf $(DIST) + @echo + @ls -l $(DIST).tar.gz + +check: + @echo -n "Run tests in " + @pwd + @./run-tests.sh fonts + @echo + +vercheck: + @echo -n "Infocode: "; ./figlet -I1 + @./figlet -v|sed -n '/Version/s/.*\(Version\)/\1/p' + @echo -n "README: "; head -1 < README|sed 's/.*) //' + @echo -n "FAQ: "; grep latest FAQ|sed 's/ and can.*//' + @grep -h "^\.TH" *.6 $(OBJS) chkfont.o getopt.o: Makefile chkfont.o: chkfont.c @@ -1,4 +1,4 @@ -About FIGlet (Frank, Ian & Glenn's Letters) release 2.2.3, 12 January 2011 +About FIGlet (Frank, Ian & Glenn's Letters) release 2.2.4, 26 January 2011 -------------------------------------------------------------------------- FIGlet is a program that creates large characters out of ordinary screen characters @@ -28,6 +28,8 @@ 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. @@ -152,7 +154,7 @@ 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. +-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 @@ -235,5 +237,6 @@ FIGlet was written mostly by Glenn Chappell <c486scm@semovm.semo.edu>. 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 <ianchai@usa.net> and has since moved on to -another FIGlet enthusiast, Christiaan Keet <info@figlet.org> +another FIGlet enthusiast, Christiaan Keet <info@figlet.org>. Current +maintenance is conducted by Claudio Matsuoka <cmatsuoka@gmail.com>. @@ -12,7 +12,7 @@ .\" .\" Manual page by Jonathon Abbott, for the Debian Project .\" slightly modified by Francesco Tapparo, for the Debian Project -.TH CHKFONT 6 "12 January 2011" "v2.2.3" +.TH CHKFONT 6 "26 January 2011" "v2.2.4" .SH NAME chkfont \- checks figlet 2.0 and up font files for format errors diff --git a/figfont.txt b/figfont.txt index 102707e..8cbe6ea 100644 --- a/figfont.txt +++ b/figfont.txt @@ -144,6 +144,14 @@ 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. @@ -9,7 +9,7 @@ .\" If you use FIGlet, please send an e-mail message to .\" <info@figlet.org> .\" -.TH FIGLET 6 "12 January 2011" "v2.2.3" +.TH FIGLET 6 "26 January 2011" "v2.2.4" .SH NAME FIGlet \- display large characters made up of ordinary screen characters @@ -75,7 +75,11 @@ with adjacent FIGcharacters kerned and ``smushed'' together in various ways. fonts are stored in separate files, which can be identified by the suffix .RB `` .flf ''. -Most +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 @@ -525,6 +529,19 @@ It is affected by the 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 @@ -912,6 +929,13 @@ 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 @@ -1063,6 +1087,10 @@ 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/) @@ -1070,4 +1098,5 @@ corresponding ftp://ftp.figlet.org/pub/figlet/) .SH SEE ALSO .BR figlist (6), .BR chkfont (6), -.BR showfigfonts (6) +.BR showfigfonts (6), +.BR toilet (1) @@ -11,9 +11,9 @@ (as listed in the file "LICENSE" which is included in this package) ****************************************************************************/ -#define DATE "12 January 2011" -#define VERSION "2.2.3" -#define VERSION_INT 20203 +#define DATE "26 January 2011" +#define VERSION "2.2.4" +#define VERSION_INT 20204 /* FIGlet (Frank, Ian & Glenn's Letters) */ /* by Glenn Chappell */ @@ -37,7 +37,8 @@ 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 January 2011 */ +/* 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 */ /*--------------------------------------------------------------------------- DEFAULTFONTDIR and DEFAULTFONTFILE should be defined in the Makefile. @@ -61,6 +62,7 @@ #endif #include <string.h> #include <ctype.h> +#include <sys/stat.h> #include <fcntl.h> /* Needed for get_columns */ #ifdef unix @@ -68,6 +70,12 @@ #include <sys/ioctl.h> /* Needed for get_columns */ #endif +#ifdef TLF_FONTS +#include <wchar.h> +#include <wctype.h> +#include "utf8.h" +#endif + #include "zipio.h" /* Package for reading compressed files */ #define MYSTRLEN(x) ((int)strlen(x)) /* Eliminate ANSI problem */ @@ -84,6 +92,16 @@ Note: '/' also used in filename in get_columns(). */ #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 /**************************************************************************** @@ -123,17 +141,31 @@ char **Myargv; ****************************************************************************/ +#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; - char **thechar; /* Alloc'd char thechar[charheight][]; */ + outchr **thechar; /* Alloc'd char thechar[charheight][]; */ struct fc *next; } fcharnode; fcharnode *fcharlist; -char **currchar; +outchr **currchar; int currcharwidth; int previouscharwidth; -char **outputline; /* Alloc'd char outputline[charheight][outlinelenlimit+1]; */ +outchr **outputline; /* Alloc'd char outputline[charheight][outlinelenlimit+1]; */ int outlinelen; @@ -364,6 +396,7 @@ ZFILE *fp; return (c==EOF) ? NULL : line; } + /**************************************************************************** usageerr @@ -398,8 +431,8 @@ int infonum; { switch (infonum) { case 0: /* Copyright message */ - printf("FIGlet Copyright 1991-2002 Glenn Chappell, Ian Chai, "); - printf("John Cowan, Christiaan Keet\n"); + printf("FIGlet Copyright (C) 1991-2011 Glenn Chappell, Ian Chai, "); + printf("John Cowan,\nChristiaan Keet and Claudio Matsuoka\n"); printf("Internet: <info@figlet.org> "); printf("Version: %s, date: %s\n\n",VERSION,DATE); printf("FIGlet, along with the various FIGlet fonts"); @@ -422,6 +455,13 @@ int infonum; 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"); } } @@ -645,6 +685,48 @@ ZFILE *controlfile; /**************************************************************************** + 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. @@ -658,36 +740,17 @@ char *controlname; inchr firstch,lastch; char dashcheck; inchr offset; - char *controlpath; int command; ZFILE *controlfile; - int namelen; - namelen = MYSTRLEN(fontdirname); - controlpath = (char*)myalloc(sizeof(char) - *(namelen+MYSTRLEN(controlname)+CSUFFIXLEN+2)); - controlfile = NULL; - if (!hasdirsep(controlname)) { - strcpy(controlpath,fontdirname); - controlpath[namelen] = DIRSEP; - controlpath[namelen+1] = '\0'; - strcat(controlpath,controlname); - strcat(controlpath,CONTROLFILESUFFIX); - controlfile = Zopen(controlpath,"rb"); - } + controlfile = FIGopen(controlname,CONTROLFILESUFFIX); + if (controlfile==NULL) { - strcpy(controlpath,controlname); - strcat(controlpath,CONTROLFILESUFFIX); - controlfile = Zopen(controlpath,"rb"); - if (controlfile==NULL) { - fprintf(stderr,"%s: %s: Unable to open control file\n",myname, - controlpath); - exit(1); - } + fprintf(stderr,"%s: %s: Unable to open control file\n",myname, + controlname); + exit(1); } - free(controlpath); - (*commandlistend) = (comnode*)myalloc(sizeof(comnode)); (*commandlistend)->thecommand = 0; /* Begin with a freeze command */ commandlistend = &(*commandlistend)->next; @@ -850,8 +913,8 @@ void getparams() extern char *optarg; extern int optind; int c; /* "Should" be a char -- need int for "!= -1" test*/ - int columns,firstfont,infoprint; - char *controlname; + int columns,infoprint; + char *controlname,*env; if ((myname = strrchr(Myargv[0],DIRSEP))!=NULL) { myname++; @@ -860,12 +923,11 @@ void getparams() myname = Myargv[0]; } fontdirname = DEFAULTFONTDIR; - firstfont = 1; - fontname = (char*)myalloc(sizeof(char)*(MYSTRLEN(DEFAULTFONTFILE)+1)); - strcpy(fontname,DEFAULTFONTFILE); /* Some systems don't have strdup() */ - if (suffixcmp(fontname,FONTFILESUFFIX)) { - fontname[MYSTRLEN(fontname)-FSUFFIXLEN]='\0'; + env = getenv("FIGLET_FONTDIR"); + if (env!=NULL) { + fontdirname = env; } + fontname = DEFAULTFONTFILE; cfilelist = NULL; cfilelistend = &cfilelist; commandlist = NULL; @@ -977,14 +1039,15 @@ void getparams() fontdirname = optarg; break; case 'f': - if (firstfont) { - free(fontname); - firstfont = 0; - } 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; @@ -1062,38 +1125,43 @@ void clearline() ****************************************************************************/ -void readfontchar(file,theord,line,maxlen) +void readfontchar(file,theord) ZFILE *file; inchr theord; -char *line; -int maxlen; { int row,k; - char endchar; + char templine[MAXLEN+1]; + outchr endchar, outline[MAXLEN+1]; fcharnode *fclsave; fclsave = fcharlist; fcharlist = (fcharnode*)myalloc(sizeof(fcharnode)); fcharlist->ord = theord; - fcharlist->thechar = (char**)myalloc(sizeof(char*)*charheight); + fcharlist->thechar = (outchr**)myalloc(sizeof(outchr*)*charheight); fcharlist->next = fclsave; + for (row=0;row<charheight;row++) { - if (myfgets(line,maxlen+1,file)==NULL) { - line[0] = '\0'; + if (myfgets(templine,MAXLEN,file)==NULL) { + templine[0] = '\0'; } - k = MYSTRLEN(line)-1; - while (k>=0 && isspace(line[k])) { +#ifdef TLF_FONTS + utf8_to_wchar(templine,MAXLEN,outline,MAXLEN,0); +#else + strcpy(outline,templine); +#endif + k = STRLEN(outline)-1; + while (k>=0 && ISSPACE(outline[k])) { /* remove trailing spaces */ k--; } if (k>=0) { - endchar = line[k]; - while (k>=0 ? line[k]==endchar : 0) { + endchar = outline[k]; /* remove endmarks */ + while (k>=0 && outline[k]==endchar) { k--; } } - line[k+1] = '\0'; - fcharlist->thechar[row] = (char*)myalloc(sizeof(char)*(k+2)); - strcpy(fcharlist->thechar[row],line); + outline[k+1] = '\0'; + fcharlist->thechar[row] = (outchr*)myalloc(sizeof(outchr)*(STRLEN(outline)+1)); + STRCPY(fcharlist->thechar[row],outline); } } @@ -1109,40 +1177,28 @@ int maxlen; void readfont() { -#define MAXFIRSTLINELEN 1000 int i,row,numsread; inchr theord; int maxlen,cmtlines,ffright2left; int smush,smush2; - char *fontpath,*fileline,magicnum[5]; + char fileline[MAXLEN+1],magicnum[5]; ZFILE *fontfile; - int namelen; - namelen = MYSTRLEN(fontdirname); - fontpath = (char*)myalloc(sizeof(char) - *(namelen+MYSTRLEN(fontname)+FSUFFIXLEN+2)); - fontfile = NULL; - if (!hasdirsep(fontname)) { - strcpy(fontpath,fontdirname); - fontpath[namelen] = DIRSEP; - fontpath[namelen+1] = '\0'; - strcat(fontpath,fontname); - strcat(fontpath,FONTFILESUFFIX); - fontfile = Zopen(fontpath,"rb"); + fontfile = FIGopen(fontname,FONTFILESUFFIX); +#ifdef TLF_FONTS + if (fontfile==NULL) { + fontfile = FIGopen(fontname,TOILETFILESUFFIX); + if(fontfile) toiletfont = 1; } +#endif + if (fontfile==NULL) { - strcpy(fontpath,fontname); - strcat(fontpath,FONTFILESUFFIX); - fontfile = Zopen(fontpath,"rb"); - if (fontfile==NULL) { - fprintf(stderr,"%s: %s: Unable to open font file\n",myname,fontpath); - exit(1); - } + fprintf(stderr,"%s: %s: Unable to open font file\n",myname,fontname); + exit(1); } readmagic(fontfile,magicnum); - fileline = (char*)myalloc(sizeof(char)*(MAXFIRSTLINELEN+1)); - if (myfgets(fileline,MAXFIRSTLINELEN+1,fontfile)==NULL) { + if (myfgets(fileline,MAXLEN,fontfile)==NULL) { fileline[0] = '\0'; } if (MYSTRLEN(fileline)>0 ? fileline[MYSTRLEN(fileline)-1]!='\n' : 0) { @@ -1151,15 +1207,23 @@ void readfont() numsread = sscanf(fileline,"%*c%c %d %*d %d %d %d %d %d", &hardblank,&charheight,&maxlen,&smush,&cmtlines, &ffright2left,&smush2); - free(fileline); + + 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) { - fprintf(stderr,"%s: %s: Not a FIGlet 2 font file\n",myname,fontpath); +#endif + fprintf(stderr,"%s: %s: Not a FIGlet 2 font file\n",myname,fontname); exit(1); } for (i=1;i<=cmtlines;i++) { skiptoeol(fontfile); } - free(fontpath); if (numsread<6) { ffright2left = 0; @@ -1194,28 +1258,26 @@ void readfont() justification = 2*right2left; } - fileline = (char*)myalloc(sizeof(char)*(maxlen+1)); /* Allocate "missing" character */ fcharlist = (fcharnode*)myalloc(sizeof(fcharnode)); fcharlist->ord = 0; - fcharlist->thechar = (char**)myalloc(sizeof(char*)*charheight); + fcharlist->thechar = (outchr**)myalloc(sizeof(outchr*)*charheight); fcharlist->next = NULL; for (row=0;row<charheight;row++) { - fcharlist->thechar[row] = (char*)myalloc(sizeof(char)); + fcharlist->thechar[row] = (outchr*)myalloc(sizeof(outchr)); fcharlist->thechar[row][0] = '\0'; } for (theord=' ';theord<='~';theord++) { - readfontchar(fontfile,theord,fileline,maxlen); + readfontchar(fontfile,theord); } for (theord=0;theord<=6;theord++) { - readfontchar(fontfile,deutsch[theord],fileline,maxlen); + readfontchar(fontfile,deutsch[theord]); } while (myfgets(fileline,maxlen+1,fontfile)==NULL?0: sscanf(fileline,"%li",&theord)==1) { - readfontchar(fontfile,theord,fileline,maxlen); + readfontchar(fontfile,theord); } Zclose(fontfile); - free(fileline); } @@ -1232,9 +1294,9 @@ void linealloc() { int row; - outputline = (char**)myalloc(sizeof(char*)*charheight); + outputline = (outchr**)myalloc(sizeof(outchr*)*charheight); for (row=0;row<charheight;row++) { - outputline[row] = (char*)myalloc(sizeof(char)*(outlinelenlimit+1)); + outputline[row] = (outchr*)myalloc(sizeof(outchr)*(outlinelenlimit+1)); } inchrlinelenlimit = outputwidth*4+100; inchrline = (inchr*)myalloc(sizeof(inchr)*(inchrlinelenlimit+1)); @@ -1267,7 +1329,7 @@ inchr c; currchar = charptr->thechar; } previouscharwidth = currcharwidth; - currcharwidth = MYSTRLEN(currchar[0]); + currcharwidth = STRLEN(currchar[0]); } @@ -1290,8 +1352,8 @@ inchr c; ****************************************************************************/ -char smushem(lch,rch) -char lch,rch; +outchr smushem(lch,rch) +outchr lch,rch; { if (lch==' ') return rch; if (rch==' ') return lch; @@ -1379,7 +1441,7 @@ int smushamt() { int maxsmush,amt; int row,linebd,charbd; - char ch1,ch2; + outchr ch1,ch2; if ((smushmode & (SM_SMUSH | SM_KERN)) == 0) { return 0; @@ -1387,13 +1449,13 @@ int smushamt() maxsmush = currcharwidth; for (row=0;row<charheight;row++) { if (right2left) { - for (charbd=MYSTRLEN(currchar[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=MYSTRLEN(outputline[row]); + 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; @@ -1426,8 +1488,8 @@ int smushamt() int addchar(c) inchr c; { - int smushamount,row,k,column,offset; - char *templine; + int smushamount,row,k,column; + outchr *templine; getletter(c); smushamount = smushamt(); @@ -1436,33 +1498,31 @@ inchr c; return 0; } - offset = 0; - templine = (char*)myalloc(sizeof(char)*(outlinelenlimit+1)); + templine = (outchr*)myalloc(sizeof(outchr)*(outlinelenlimit+1)); for (row=0;row<charheight;row++) { if (right2left) { - strcpy(templine,currchar[row]); + STRCPY(templine,currchar[row]); for (k=0;k<smushamount;k++) { templine[currcharwidth-smushamount+k] = smushem(templine[currcharwidth-smushamount+k],outputline[row][k]); } - strcat(templine,outputline[row]+smushamount); - strcpy(outputline[row],templine); + STRCAT(templine,outputline[row]+smushamount); + STRCPY(outputline[row],templine); } else { for (k=0;k<smushamount;k++) { column = outlinelen-smushamount+k; if (column < 0) { - offset = -column; column = 0; } outputline[row][column] = - smushem(outputline[row][column],currchar[row][k + offset]); + smushem(outputline[row][column],currchar[row][k]); } - strcat(outputline[row],currchar[row]+smushamount); + STRCAT(outputline[row],currchar[row]+smushamount); } } free(templine); - outlinelen = MYSTRLEN(outputline[0]); + outlinelen = STRLEN(outputline[0]); inchrline[inchrlinelen++] = c; return 1; } @@ -1482,11 +1542,16 @@ inchr c; ****************************************************************************/ void putstring(string) -char *string; +outchr *string; { int i,len; + char c[10]; +#ifdef TLF_FONTS + size_t size; + wchar_t wc[2]; +#endif - len = MYSTRLEN(string); + len = STRLEN(string); if (outputwidth>1) { if (len>outputwidth-1) { len = outputwidth-1; @@ -1498,7 +1563,20 @@ char *string; } } for (i=0;i<len;i++) { +#ifdef TLF_FONTS + wc[0] = string[i]; + wc[1] = 0; + size = wchar_to_utf8(wc,1,c,10,0); + if(size==1) { + if(c[0]==hardblank) { + c[0] = ' '; + } + } + c[size] = 0; + printf("%s",c); +#else putchar(string[i]==hardblank?' ':string[i]); +#endif } putchar('\n'); } @@ -1942,6 +2020,10 @@ char *argv[]; 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) { @@ -2003,7 +2085,7 @@ char *argv[]; else if (outlinelen==0) { for (i=0;i<charheight;i++) { if (right2left && outputwidth>1) { - putstring(currchar[i]+MYSTRLEN(currchar[i])-outlinelenlimit); + putstring(currchar[i]+STRLEN(currchar[i])-outlinelenlimit); } else { putstring(currchar[i]); @@ -7,14 +7,11 @@ # # Usage: figlist [ -d directory ] -# Set up PATH so figlet can be found -DIRSAVE=`pwd` -cd `dirname "$0"` -PATH="$PATH":`pwd` -cd "$DIRSAVE" +DIR=`dirname $0` +FIGLET=$DIR/figlet # Get figlet version -FIGLETVERSION=`figlet -I1 2>/dev/null` +FIGLETVERSION=`$FIGLET -I1 2>/dev/null` if [ -z "$FIGLETVERSION" ]; then FIGLETVERSION=20000 fi @@ -37,14 +34,14 @@ fi if [ "$FIGLETVERSION" -lt 20100 ]; then # figlet 2.0 - figlet $FONTDIROPT -F + $FIGLET $FONTDIROPT -F exit fi # From here on we may assume figlet 2.1 or later -FONTDIR=`figlet $FONTDIROPT -I2` -FONT=`figlet -I3` +FONTDIR=`$FIGLET $FONTDIROPT -I2` +FONT=`$FIGLET -I3` echo "Default font: $FONT" echo "Font directory: $FONTDIR" @@ -8,7 +8,7 @@ .\" .\" Manual page by Jonathon Abbott, for the Debian Project .\" slightly modified by Francesco Tapparo, for the Debian Project -.TH FIGLIST 6 "12 January 2011" "v2.2.3" +.TH FIGLIST 6 "26 January 2011" "v2.2.4" .SH NAME figlist \- lists figlet fonts and control files diff --git a/run-tests.sh b/run-tests.sh new file mode 100755 index 0000000..7e33405 --- /dev/null +++ b/run-tests.sh @@ -0,0 +1,86 @@ +#!/bin/sh + +LC_ALL=POSIX +export LC_ALL + +TESTDIR=tests +OUTPUT=`mktemp` +LOGFILE=tests.log +CMD=./figlet +FONTDIR="$1" + +run_test() { + test_num=$1 + test_dsc=$2 + test_cmd=$3 + + echo >> $LOGFILE + echo -n "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 +$CMD -f small "Test results" | tee -a $LOGFILE + +file="$TESTDIR/input.txt" +cmd="cat $file|$CMD" + +echo -n "Default font dir: "; $CMD -I2 +if [ -n "$FONTDIR" ]; then + FIGLET_FONTDIR="$FONTDIR" + export FIGLET_FONTDIR +fi +echo -n "Current font dir: "; $CMD -I2 +echo -n "Default font: "; $CMD -I3 +echo + +run_test 001 "showfigfonts output" "./showfigfonts" +run_test 002 "text rendering in all fonts" \ + "for i in fonts/*.flf; do $cmd -f \$i; done" +run_test 003 "long text rendering" "cat tests/longtext.txt|./figlet" +run_test 004 "left-to-right text" "$cmd -L" +run_test 005 "right-to-left text" "$cmd -R" +run_test 006 "flush-left justification" "$cmd -l" +run_test 007 "flush-right justification" "$cmd -r" +run_test 008 "center justification" "$cmd -c" +run_test 009 "kerning mode" "$cmd -k" +run_test 010 "full width mode" "$cmd -W" +run_test 011 "overlap mode" "$cmd -o" +run_test 012 "tlf2 font rendering" "$cmd -f tests/emboss" +run_test 013 "kerning flush-left right-to-left mode" "$cmd -klR" +run_test 014 "kerning centered right-to-left mode (slant)" "$cmd -kcR -f slant" +run_test 015 "full-width flush-right right-to-left mode" "$cmd -WrR" +run_test 016 "overlap flush-right mode (big)" "$cmd -or -f big" +run_test 017 "tlf2 kerning flush-right mode" "$cmd -kr -f tests/emboss" +run_test 018 "tlf2 overlap centered mode" "$cmd -oc -f tests/emboss" +run_test 019 "tlf2 full-width flush-left right-to-left mode" \ + "$cmd -WRl -f tests/emboss" +run_test 020 "specify font directory" \ + "X=`mktemp -d`;cp fonts/script.flf \$X/foo.flf;$cmd -d\$X -ffoo;rm -Rf \$X" +run_test 021 "paragraph mode long line output" "$cmd -p -w250" +run_test 022 "short line output" "$cmd -w5" +run_test 023 "kerning paragraph centered mode (small)" "$cmd -kpc -fsmall" +run_test 024 "list of control files" "ls fonts/*flc" + +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/showfigfonts b/showfigfonts index 643c60b..90c4d0a 100755 --- a/showfigfonts +++ b/showfigfonts @@ -10,14 +10,11 @@ # # Usage: showfigfonts [ -d directory ] [ word ] -# Set up PATH so figlet can be found -DIRSAVE=`pwd` -cd `dirname "$0"` -PATH="$PATH":`pwd` -cd "$DIRSAVE" +DIR=`dirname $0` +FIGLET=$DIR/figlet # Get figlet version -FIGLETVERSION=`figlet -I1 2>/dev/null` +FIGLETVERSION=`$FIGLET -I1 2>/dev/null` if [ -z "$FIGLETVERSION" ]; then FIGLETVERSION=20000 fi @@ -39,22 +36,20 @@ else fi if [ "$FIGLETVERSION" -lt 20100 ]; then # figlet 2.0 - FONTDIR="`figlet -F | sed -e '1d' -e '3,$d' -e 's/Font directory: //'`" + FONTDIR="`$FIGLET -F | sed -e '1d' -e '3,$d' -e 's/Font directory: //'`" else # figlet 2.1 or later - FONTDIR="`figlet -I2`" + FONTDIR="`$FIGLET -I2`" fi fi -cd "$FONTDIR" -FONTLIST=`ls *.flf | sed s/\.flf$//` -cd $DIRSAVE +FONTLIST=`ls "$FONTDIR"/*.flf | sed 's!.*/\(.*\)\.flf$!\1!'` for F in $FONTLIST ; do - echo "$F" : + echo "$F :" if [ -n "$WORD" ]; then - echo "$WORD" | figlet -d "$FONTDIR" -f "$F" + echo "$WORD" | $FIGLET -d "$FONTDIR" -f "$F" else - echo "$F" | figlet -d "$FONTDIR" -f "$F" + echo "$F" | $FIGLET -d "$FONTDIR" -f "$F" fi echo "" ; echo "" done diff --git a/showfigfonts.6 b/showfigfonts.6 index 6ac7cd1..a4eee79 100644 --- a/showfigfonts.6 +++ b/showfigfonts.6 @@ -11,7 +11,7 @@ .\" .\" Manual page by Jonathon Abbott, for the Debian Project .\" slightly modified by Francesco Tapparo, for the Debian Project -.TH SHOWFIGFONTS 6 "12 January 2011" "v2.2.3" +.TH SHOWFIGFONTS 6 "26 January 2011" "v2.2.4" .SH NAME showfigfonts \- prints a list of available figlet fonts diff --git a/tests/emboss.tlf b/tests/emboss.tlf new file mode 100644 index 0000000..eff0852 --- /dev/null +++ b/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 <sam@hocevar.net>. 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/tests/input.txt b/tests/input.txt new file mode 100644 index 0000000..8826520 --- /dev/null +++ b/tests/input.txt @@ -0,0 +1,7 @@ +<joshk> joshk@influx:/etc/logrotate.d> sh -n * +<joshk> apache: line 14: syntax error near unexpected token `}' +<joshk> apache: line 14: `}' +<joshk> the plot thickens +<asuffield> those aren't shell scripts +<erich> this wasn't chicken. + -- in #debian-devel diff --git a/tests/longtext.txt b/tests/longtext.txt new file mode 100644 index 0000000..72e3a18 --- /dev/null +++ b/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/tests/res001.txt b/tests/res001.txt new file mode 100644 index 0000000..a85fa59 --- /dev/null +++ b/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 : + __ __ + ___ __ _ ___ / /__ ____ / /_ + (_-</ ' \(_-</ / _ `/ _ \/ __/ +/___/_/_/_/___/_/\_,_/_//_/\__/ + + + +standard : + _ _ _ + ___| |_ __ _ _ __ __| | __ _ _ __ __| | +/ __| __/ _` | '_ \ / _` |/ _` | '__/ _` | +\__ \ || (_| | | | | (_| | (_| | | | (_| | +|___/\__\__,_|_| |_|\__,_|\__,_|_| \__,_| + + + +term : +term + + diff --git a/tests/res002.txt b/tests/res002.txt new file mode 100644 index 0000000..752f657 --- /dev/null +++ b/tests/res002.txt @@ -0,0 +1,1992 @@ + # # + # # #### #### # # # # # + # # # # # # # # # # +# # # # #### ###### #### # + # # # # # # # # # # + # # # # # # # # # # # # + # #### #### #### # # # # # + + ##### + # #### #### # # # # # # # # # ###### # # # + # # # # # # # # # ### # # ## # # # # # + # # # #### ###### #### # ### # # # # # ##### # # # + # # # # # # # # # #### # # # # # # # # +# # # # # # # # # # # # # ## # # # # + #### #### #### # # # # ##### # # # # ###### #### + + # # # +# # ### # ###### ##### #### # # #### #### ##### + # # # # # # # # # # # # # # # # + ## # ##### # # # # # # # # # + ## # # # # # # # # # # ### ##### + # # ### # # # # # # # # # # # # # +# # # # ###### # #### # ###### #### #### # # + + # + #### ##### ## ##### ###### ##### # #### # # +# # # # # # # # # # # # # +# # # # # # ##### # # # #### ###### +# # # ###### # # ### # # # # # # +# # # # # # # ### # # # # # # # + #### # # # # ###### ### ##### # #### # # + + + # # # # + ## # # # +##### # # # ####### + # # # # # + # ## # # + # # + + # # + # # #### #### # # # # # + # # # # # # # # # # +# # # # #### ###### #### # + # # # # # # # # # # + # # # # # # # # # # # # + # #### #### #### # # # # # + + # + ## ##### ## #### # # ###### ### # # # # ###### + # # # # # # # # # # # # # # ## # # +# # # # # # # ###### ##### # # # # # ##### +###### ##### ###### # # # # # # # # # # # +# # # # # # # # # # ### # # # ## # +# # # # # #### # # ###### # ###### # # # ###### + + # # # + ## # # ### #### # # # # ##### ## # # +# # # # # # # # ## # # # # # # + # # # #### # # # # # # # ## + # ####### # # # # # # # ###### ## + # # ### # # # # ## # # # # # +##### # # #### # # # # # # # # + + +###### ##### ##### #### ##### # # ###### ## ##### +# # # # # # # # # ## # # # # # # +##### # # # # # # # # # # # ##### # # # # +# ##### ##### # # ##### # # # # ###### ##### +# # # # # # # # # # ## # # # # # +###### # # # # #### # # # # ###### # # # # + + +# # # # ###### # # ##### ###### #### ##### ###### ##### +# # ## # # # # # # # # # # # # # +# # # # # ##### ## # # ##### # # ##### # # +# # # # # # ## ##### # # # # # # +# # # ## # # # # # # # # # # # + #### # # ###### # # # ###### #### # ###### ##### + + ### ### ### +##### #### # # ###### # # ### # ### + # # # # # # ## # # # # + # # # #### ##### # # # # ## # + # # # # # # # # # # + # # # # # # # ## # + # #### # # ###### # # ### + + # # + # # #### #### # # # # # + # # # # # # # # # # +# # # # #### ###### #### # + # # # # # # # # # # + # # # # # # # # # # # # + # #### #### #### # # # # # + + # + ## ##### ## #### # # ###### ### # # # # ###### + # # # # # # # # # # # # # # ## # # +# # # # # # # ###### ##### # # # # # ##### +###### ##### ###### # # # # # # # # # # # +# # # # # # # # # # ### # # # ## # +# # # # # #### # # ###### # ###### # # # ###### + + # # # ### ### ### + ## # # ### ### # ### +# # # # # # # # + # # # # ## # + # ####### # # + # # ### # +##### # # ### + + # # + # # #### #### # # # # # ##### # # ###### + # # # # # # # # # # # # # # +# # # # #### ###### #### # # ###### ##### + # # # # # # # # # # # # # # + # # # # # # # # # # # # # # # # + # #### #### #### # # # # # # # # ###### + + +##### # #### ##### +# # # # # # +# # # # # # +##### # # # # +# # # # # +# ###### #### # + + +##### # # # #### # # ###### # # #### + # # # # # # # # # ## # # + # ###### # # #### ##### # # # #### + # # # # # # # # # # # # + # # # # # # # # # # ## # # + # # # # #### # # ###### # # #### + + # # + # ## #### # # ###### ###### # ###### # ##### # + # # # # # # # # # # # # # # +# # # #### # # ##### ##### # ##### # # # # + # ###### # # # # # # # # # # # + # # # # # # # # # # # # # # # + # # # #### #### # # # ###### ###### ##### # + + ### +##### # # #### #### ###### ## ##### ###### # # ### ##### + # # # # # # # # # # # # ## # # # + # ###### # # #### ##### # # # # ##### # # # # # + # # # # # # # ###### ##### # # # # # + # # # # # # # # # # # # # # ## # + # # # #### #### ###### # # # # ###### # # # + + + #### # # ###### # # +# # # # # # + #### ###### ##### # # + # # # # # # +# # # # # # # + #### # # ###### ###### ###### + + + #### #### ##### # ##### ##### #### +# # # # # # # # # # + #### # # # # # # # #### + # # ##### # ##### # # +# # # # # # # # # # # + #### #### # # # # # #### + + # # + # ###### ##### # #### # # # ##### # # # #### + # # # # # # # # # # # # # # # +# ##### # # # # ###### # # ###### # #### + # # ##### # # # # # # # # # # + # # # # # # # # # # # # # # # # + # ###### # # # #### # # # # # # # #### + + ### +# # ## #### # # ### ##### +# # # # # ## # # # +# # # # #### # # # # # +# ## # ###### # # # # # +## ## # # # # # ## # +# # # # #### # # # + + + #### # # # #### # # ###### # # +# # # # # # # # # # ## # +# ###### # # #### ##### # # # +# # # # # # # # # # # ### +# # # # # # # # # # # ## ### + #### # # # #### # # ###### # # ### + + + # # # + # ## # + ##### ##### # # # # + # # # # + # # ## + # # # + + # # + # # ##### ###### ##### # ## # # ##### ###### # # ###### +####### # # # # # # # # ## # # # # # # # + # # # # ##### ##### # # # # # # ##### # # ##### # # ##### +####### # # # # # # ###### # # # # # # # # # + # # # # # # # # # # # ## # # # # # # + # # ##### ###### ##### # # # # # ##### ###### ## ###### + + +# +# +# +# +# +###### + + ___ _ _ __ + / (_) | | | | \ \ + / / _ ___ ___| |__ | | __ \ \ +< < | |/ _ \/ __| '_ \| |/ / > > + \ \| | (_) \__ \ | | | < / / + \_\ |\___/|___/_| |_|_|\_\/_/ + _/ | + |__/ + _ _ _ _ __ _ __ _ + (_) | | | | ____ (_) / _| | _ / / | | + _ ___ ___| |__ | | __/ __ \ _ _ __ | |_| |_ ___ _(_) / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| _| | | | \ \/ / / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | | | | |_| |> < _ / / __/ || (__ + | |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| + _/ | \____/ +|__/ + ___ _ _ ___ _ + / / | | | | | | \ \ | | + / /| | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| |\ \ ___| |__ + / / | |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` | > > / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + __/ | + |___/ + _ + /\| |/\ + ______ _ __ \ ` ' / +|______| '_ \ |_ _| + | | | | / , . \ + |_| |_| \/|_|\/ + + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __ \ \ __ _ _ __ __ _ ___| |__ ___(_) +< < | |/ _ \/ __| '_ \| |/ / > > / _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ _ +| (_) /_ | || | _ | | +| |_ _ __ ___ | | || |_(_) ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | |__ _| / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | | | | _ \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_| (_) |___/\__, |_| |_|\__\__,_/_/\_\ + __/ | + |___/ + + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + + _ _ _ _ + | | | | | | | | + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + | | + |_| + ___ _ +( ) \ ( ) + \|| ||/ + \ \ + / / + | | + /_/ + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __ \ \ __ _ _ __ __ _ ___| |__ ___(_) +< < | |/ _ \/ __| '_ \| |/ / > > / _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ ___ _ +| (_) /_ | || | _ ( ) \ ( ) +| |_ _ __ ___ | | || |_(_) \|| ||/ +| | | '_ \ / _ \ | |__ _| \ \ +| | | | | | __/ | | | | _ / / +|_|_|_| |_|\___| |_| |_| (_) | | + /_/ + + ___ _ _ __ _ _ _ _ + / (_) | | | | \ \ | | | | | | | | + / / _ ___ ___| |__ | | __ \ \ | |_| |__ ___ _ __ | | ___ | |_ +< < | |/ _ \/ __| '_ \| |/ / > > | __| '_ \ / _ \ | '_ \| |/ _ \| __| + \ \| | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + _/ | | | + |__/ |_| + _ _ _ _ +| | | | (_) | | +| |_| |__ _ ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + + __ __ __ _ _ ___ _ _ + / / / _|/ _(_) | | | \ \ | | | | + / / __ _ ___ _ _| |_| |_ _ ___| | __| |\ \ | |_| |__ ___ ___ ___ +< < / _` / __| | | | _| _| |/ _ \ |/ _` | > > | __| '_ \ / _ \/ __|/ _ \ + \ \ (_| \__ \ |_| | | | | | | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + + _ _ _ _ _ + ( ) | | | | | | + __ _ _ __ ___ _ __ |/| |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \ | __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + + _ _ + (_) | | + ___ ___ _ __ _ _ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + | | + |_| + __ _ _ __ _ _ _ + / / (_) | | \ \ | | | | (_) + / / ___ _ __ _ ___| |__ \ \ | |_| |__ _ ___ +< < / _ \ '__| |/ __| '_ \ > > | __| '_ \| / __| + \ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ + + + _ _ _ _ _ + ( ) | | | (_) | | +__ ____ _ ___ _ __ |/| |_ ___| |__ _ ___| | _____ _ __ +\ \ /\ / / _` / __| '_ \ | __| / __| '_ \| |/ __| |/ / _ \ '_ \ + \ 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 ||| |(/_ | | o | +_| | -' + +/o _ _|_ | \ _|_|_ _ ._ | __|_ _|_|_ o _| _ ._ _ +\|(_)_>| ||</ |_| |(/_ |_)|(_)|_ |_| ||(_|<(/_| |_> +_| | + _ _ +/ _. _ _|__|_o _ | _|\ _|_|_ _ _ _ _..__ ._/_|_ _|_ _ || _ _._o.__|_ _ +\(_|_>|_|| | |(/_|(_|/ |_| |(_)_>(/_ (_||(/_| | |_ _>| |(/_|| _>(_| ||_)|__> + | + +/ _ ._o _|_ \ _|_|_ o _ _. _._/_|_ _|_ o _| _ ._ +\(/_| |(_| |/ |_| ||_> \/\/(_|_>| | |_ (_| ||(_|<(/_| |o + + + ____ o._ -|-|- _| _ |_ o _..____| _ _ | + || | -|-|-(_|(/_|_)|(_|| |(_|(/_\/(/_| + +<joshk>&SPjoshk&Atinflux:/etc/logrotate.d>&SPsh&SP-n&SP* +<joshk>&SPapache:&SPline&SP14:&SPsyntax&SPerror&SPnear&SPunexpected&SPtoken +&'!&!)' +<joshk>&SPapache:&SPline&SP14:&SP&'!&!)' +<joshk>&SPthe&SPplot&SPthickens +<asuffield>&SPthose&SParen't&SPshell&SPscripts +<erich>&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 / _` (_-< ' \|/| _| + \_\___|_| |_\__|_||_/_/ \__|_||_|_/__/ \_/\_/\__,_/__/_||_| \__| + + _ _ _ + __| |_ (_)__| |_____ _ _ +/ _| ' \| / _| / / -_) ' \ _ +\__|_||_|_\__|_\_\___|_||_(_) + + _ + ___ ___ (_)_ _ + |___|___| | | ' \ + |_|_||_| + + _ _ _ _ _ _ _ + _| | |_ __| |___| |__(_)__ _ _ _ ___ __| |_____ _____| | +|_ . _/ _` / -_) '_ \ / _` | ' \___/ _` / -_) 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 / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | +|_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + +<joshk> joshk@influx:/etc/logrotate.d> sh -n * +<joshk> apache: line 14: syntax error near unexpected token `}' +<joshk> apache: line 14: `}' +<joshk> the plot thickens +<asuffield> those aren't shell scripts +<erich> this wasn't chicken. + -- in #debian-devel diff --git a/tests/res003.txt b/tests/res003.txt new file mode 100644 index 0000000..31770d6 --- /dev/null +++ b/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/tests/res004.txt b/tests/res004.txt new file mode 100644 index 0000000..8ece930 --- /dev/null +++ b/tests/res004.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ +/ / | |/ _ \/ __| '_ \| |/ / \ \ +\ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / +|_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ +( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___ / | || | _ ( ) \ ( ) +| | | '_ \ / _ \ | | || |(_) \|| ||/ +| | | | | | __/ | |__ _| > > +|_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| +\ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | +|_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/tests/res005.txt b/tests/res005.txt new file mode 100644 index 0000000..0e0921e --- /dev/null +++ b/tests/res005.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + \ \| | _| |__ ___ ___ (_)/ / + \ \ |/ / '_ \/ __|/ _ \| / / + / / <| | | \__ \ (_) | \ \ + /_/|_|\_\_| |_|___/\___// |\_\ + |__/ + _ __ _ __ _ ____ _ _ _ + ___| |_ ___ / /__ ___ _| |/ _|_ __ (_) / __ \| | _| |__ ___ ___ (_) + / __| __/ _ \ / (_) \/ / | | | | |_| '_ \| |/ / _` | |/ / '_ \/ __|/ _ \| | + | (__| || __// / _ > <| |_| | | _| | | | | | (_| | <| | | \__ \ (_) | | + \___|\__\___/_/ (_)_/\_\\__,_|_|_| |_| |_|_|\ \__,_|_|\_\_| |_|___/\___// | + \____/ |__/ + _ __ _ _ _ _ __ + | |__ ___ \ \ __| | ___| |_ __ _| |_ ___ _ __ __ _ ___ | | / / + | '_ \/ __| \ \/ _` | / _ \ __/ _` | __/ _ \| '__/ _` |/ _ \| | / / + | | | \__ \ / / (_| || __/ || (_| | || (_) | | | (_| | (_) | |/ / + |_| |_|___/ /_/ \__,_(_)___|\__\__,_|\__\___/|_| \__, |\___/|_/_/ + |___/ + + __/\__ _ __ + \ / | '_ \ _____ + /_ _\ | | | |_____| + \/ |_| |_| + + _ __ _ _ _ __ + _ ___| |__ ___ __ _ _ __ __ _ \ \| | _| |__ ___ ___ (_)/ / + (_) _ \ '_ \ / __/ _` | '_ \ / _` | \ \ |/ / '_ \/ __|/ _ \| / / + | __/ | | | (_| (_| | |_) | (_| | / / <| | | \__ \ (_) | \ \ + (_)___|_| |_|\___\__,_| .__/ \__,_| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + _ _ _ _ _ _ + __ ____ _| |_ _ __ _ _ ___ _| || | / | ___ _ __ (_) | + \ \/ / _` | __| '_ \| | | / __| (_) || |_| | / _ \ '_ \| | | + > < (_| | |_| | | | |_| \__ \ _|__ _| | | __/ | | | | | + /_/\_\__,_|\__|_| |_|\__, |___/ (_) |_| |_| \___|_| |_|_|_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__/ _` |/ _ \ '_ \ | '__/ _ \| '__| '__/ _ \ + | | | (_| | __/ | | | | | | (_) | | | | | __/ + |_| \__,_|\___|_| |_| |_| \___/|_| |_| \___| + + _ _ _ _ + _ __ ___| | _____ | |_ __| | ___| |_ ___ ___ _ ____ _____ _ __ _ _ + | '_ \ / _ \ |/ / _ \| __| / _` |/ _ \ __/ __/ _ \ '_ \ \/ / _ \ '_ \| | | | + | | | | __/ < (_) | |_ | (_| | __/ || (_| __/ |_) > < __/ | | | |_| | + |_| |_|\___|_|\_\___/ \__| \__,_|\___|\__\___\___| .__/_/\_\___|_| |_|\__,_| + |_| + ___ _ + ( ) \ ( ) + |/ | | \| + > > + | | + /_/ + _ __ _ _ _ __ + _ ___| |__ ___ __ _ _ __ __ _ \ \| | _| |__ ___ ___ (_)/ / + (_) _ \ '_ \ / __/ _` | '_ \ / _` | \ \ |/ / '_ \/ __|/ _ \| / / + | __/ | | | (_| (_| | |_) | (_| | / / <| | | \__ \ (_) | \ \ + (_)___|_| |_|\___\__,_| .__/ \__,_| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + ___ _ _ _ _ _ _ + ( ) \ ( ) _| || | / | ___ _ __ (_) | + |/ | | \| (_) || |_| | / _ \ '_ \| | | + > > _|__ _| | | __/ | | | | | + | | (_) |_| |_| \___|_| |_|_|_| + /_/ + _ _ _ _ __ _ _ _ __ + | |_ ___ | |_ __ ___| |__ | |_ \ \| | _| |__ ___ ___ (_)/ / + | __/ _ \| | '_ \ / _ \ '_ \| __| \ \ |/ / '_ \/ __|/ _ \| / / + | || (_) | | |_) | | __/ | | | |_ / / <| | | \__ \ (_) | \ \ + \__\___/|_| .__/ \___|_| |_|\__| /_/|_|\_\_| |_|___/\___// |\_\ + |_| |__/ + _ _ _ _ + ___ _ __ ___| | _____(_) |__ | |_ + / __| '_ \ / _ \ |/ / __| | '_ \| __| + \__ \ | | | __/ < (__| | | | | |_ + |___/_| |_|\___|_|\_\___|_|_| |_|\__| + + _ _ __ _ _ _ __ __ __ + ___ ___ ___ | |__ | |_ \ \ __| | | ___(_)/ _|/ _|_ _ ___ __ _ / / + / _ \/ __|/ _ \| '_ \| __| \ \/ _` | |/ _ \ | |_| |_| | | / __|/ _` / / + | __/\__ \ (_) | | | | |_ / / (_| | | __/ | _| _| |_| \__ \ (_| \ \ + \___||___/\___/|_| |_|\__| /_/ \__,_|_|\___|_|_| |_| \__,_|___/\__,_|\_\ + + _ _ _ _ _ + | | | ___| |__ ___ | |_( )_ __ ___ _ __ __ _ + | | |/ _ \ '_ \/ __| | __|/| '_ \ / _ \ '__/ _` | + | | | __/ | | \__ \ | |_ | | | | __/ | | (_| | + |_|_|\___|_| |_|___/ \__| |_| |_|\___|_| \__,_| + + _ _ + ___| |_ _ __ (_)_ __ ___ ___ + / __| __| '_ \| | '__/ __/ __| + \__ \ |_| |_) | | | | (__\__ \ + |___/\__| .__/|_|_| \___|___/ + |_| + _ _ _ __ _ _ __ + ___(_) |__ | |_ \ \| |__ ___(_)_ __ ___ / / + / __| | '_ \| __| \ \ '_ \ / __| | '__/ _ \/ / + \__ \ | | | | |_ / / | | | (__| | | | __/\ \ + |___/_|_| |_|\__| /_/|_| |_|\___|_|_| \___| \_\ + + _ _ _ _ _ + _ __ ___| | _____(_) |__ ___ | |_( )_ __ ___ __ ___ __ + | '_ \ / _ \ |/ / __| | '_ \ / __| | __|/| '_ \/ __|/ _` \ \ /\ / / + _| | | | __/ < (__| | | | | (__ | |_ | | | \__ \ (_| |\ V V / + (_)_| |_|\___|_|\_\___|_|_| |_|\___| \__| |_| |_|___/\__,_| \_/\_/ + + _ + _ __ (_) + | '_ \| | _____ _____ + | | | | | |_____|_____| + |_| |_|_| + + _ _ _ _ _ _ _ + | | _____ _____ __| | _ __ __ _(_) |__ ___ __| |_| || |_ + | |/ _ \ \ / / _ \/ _` |_____| '_ \ / _` | | '_ \ / _ \/ _` |_ .. _| + | | __/\ V / __/ (_| |_____| | | | (_| | | |_) | __/ (_| |_ _| + |_|\___| \_/ \___|\__,_| |_| |_|\__,_|_|_.__/ \___|\__,_| |_||_| + diff --git a/tests/res006.txt b/tests/res006.txt new file mode 100644 index 0000000..8ece930 --- /dev/null +++ b/tests/res006.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ +/ / | |/ _ \/ __| '_ \| |/ / \ \ +\ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / +|_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / +| | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < +|_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| +| __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ +( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___ / | || | _ ( ) \ ( ) +| | | '_ \ / _ \ | | || |(_) \|| ||/ +| | | | | | __/ | |__ _| > > +|_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| +\ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ \ '_ \/ __| +| |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | +| (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ +/ __|/ __| '__| | '_ \| __/ __| +\__ \ (__| | | | |_) | |_\__ \ +|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | +|_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/tests/res007.txt b/tests/res007.txt new file mode 100644 index 0000000..3f467dc --- /dev/null +++ b/tests/res007.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ + / / | |/ _ \/ __| '_ \| |/ / \ \ + \ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| + |__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | + /_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / + |_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ + | (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ + | | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / + | | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < + |_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| + | __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ + ( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ + | (_)_ __ ___ / | || | _ ( ) \ ( ) + | | | '_ \ / _ \ | | || |(_) \|| ||/ + | | | | | | __/ | |__ _| > > + |_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ + / / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| + \ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ + | |_| |__ (_) ___| | _____ _ __ ___ + | __| '_ \| |/ __| |/ / _ \ '_ \/ __| + | |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ + / // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ + \ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | + | (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ + / __|/ __| '__| | '_ \| __/ __| + \__ \ (__| | | | |_) | |_\__ \ + |___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ + | (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | + |_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | + |_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/tests/res008.txt b/tests/res008.txt new file mode 100644 index 0000000..3048a10 --- /dev/null +++ b/tests/res008.txt @@ -0,0 +1,120 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ + / / | |/ _ \/ __| '_ \| |/ / \ \ + \ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| + | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ + _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___| + |__/ \____/ + ___ _ _ ___ _ + / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | + /_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| + |___/ + + _ __ __/\__ + _____| '_ \ \ / + |_____| | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ + | (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ + | | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / + | | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < + |_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| + | __/ | | | | (_) | | | | | | __/ (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ +| |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | + \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| + |_| + ___ _ + ( ) \ ( ) + \|| ||/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ + / / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) + \ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ + | (_)_ __ ___ / | || | _ ( ) \ ( ) + | | | '_ \ / _ \ | | || |(_) \|| ||/ + | | | | | | __/ | |__ _| > > + |_|_|_| |_|\___| |_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ + / / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| + \ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ + | |_| |__ (_) ___| | _____ _ __ ___ + | __| '_ \| |/ __| |/ / _ \ '_ \/ __| + | |_| | | | | (__| < __/ | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ + / // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ + \ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ + __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | + / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | + | (_| | | | __/ | | | | |_ \__ \ | | | __/ | | + \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| + + _ _ + ___ ___ _ __(_)_ __ | |_ ___ + / __|/ __| '__| | '_ \| __/ __| + \__ \ (__| | | | |_) | |_\__ \ + |___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ + | (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____ | | '_ \ + |_____|_____| | | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | + |_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | + |_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/tests/res009.txt b/tests/res009.txt new file mode 100644 index 0000000..57f8690 --- /dev/null +++ b/tests/res009.txt @@ -0,0 +1,138 @@ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __\ \ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ +\ \ | || (_) |\__ \| | | || < / / + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ + |__/ + _ _ _ ____ _ __ _ __ + (_) ___ ___ | |__ | | __ / __ \ (_) _ __ / _|| | _ _ __ __ _ / / + | | / _ \ / __|| '_ \ | |/ // / _` || || '_ \ | |_ | || | | |\ \/ /(_) / / + | || (_) |\__ \| | | || <| | (_| || || | | || _|| || |_| | > < _ / / + _/ | \___/ |___/|_| |_||_|\_\\ \__,_||_||_| |_||_| |_| \__,_|/_/\_\(_)/_/ +|__/ \____/ + _ __ _ _ _ + ___ | |_ ___ / /| | ___ __ _ _ __ ___ | |_ __ _ | |_ ___ + / _ \| __|/ __| / / | | / _ \ / _` || '__|/ _ \ | __|/ _` || __|/ _ \ +| __/| |_| (__ / / | || (_) || (_| || | | (_) || |_| (_| || |_| __/ _ + \___| \__|\___|/_/ |_| \___/ \__, ||_| \___/ \__|\__,_| \__|\___|(_) + |___/ + _ __ _ + __| |\ \ ___ | |__ _ __ __/\__ + / _` | \ \ / __|| '_ \ _____ | '_ \ \ / +| (_| | / / \__ \| | | | |_____|| | | | /_ _\ + \__,_|/_/ |___/|_| |_| |_| |_| \/ + + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __\ \ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ +\ \ | || (_) |\__ \| | | || < / / + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ + |__/ + _ _ _ _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | |(_) _ __ ___ / || || | _ + / _` || '_ \ / _` | / __|| '_ \ / _ \(_) | || || '_ \ / _ \ | || || |_(_) +| (_| || |_) || (_| || (__ | | | || __/ _ | || || | | || __/ | ||__ _|_ + \__,_|| .__/ \__,_| \___||_| |_| \___|(_) |_||_||_| |_| \___| |_| |_| (_) + |_| + _ + ___ _ _ _ __ | |_ __ _ __ __ ___ _ __ _ __ ___ _ __ +/ __|| | | || '_ \ | __|/ _` |\ \/ / / _ \| '__|| '__|/ _ \ | '__| +\__ \| |_| || | | || |_| (_| | > < | __/| | | | | (_) || | +|___/ \__, ||_| |_| \__|\__,_|/_/\_\ \___||_| |_| \___/ |_| + |___/ + + _ __ ___ __ _ _ __ +| '_ \ / _ \ / _` || '__| +| | | || __/| (_| || | +|_| |_| \___| \__,_||_| + + _ _ + _ _ _ __ ___ __ __ _ __ ___ ___ | |_ ___ __| | +| | | || '_ \ / _ \\ \/ /| '_ \ / _ \ / __|| __|/ _ \ / _` | +| |_| || | | || __/ > < | |_) || __/| (__ | |_| __/| (_| | + \__,_||_| |_| \___|/_/\_\| .__/ \___| \___| \__|\___| \__,_| + |_| + _ _ _ __ _ +| |_ ___ | | __ ___ _ __ ( )\ \ ( ) +| __|/ _ \ | |/ // _ \| '_ \ \| | ||/ +| |_| (_) || <| __/| | | | > > + \__|\___/ |_|\_\\___||_| |_| | | + /_/ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __\ \ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ +\ \ | || (_) |\__ \| | | || < / / + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ + |__/ + _ _ _ _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | |(_) _ __ ___ / || || | _ + / _` || '_ \ / _` | / __|| '_ \ / _ \(_) | || || '_ \ / _ \ | || || |_(_) +| (_| || |_) || (_| || (__ | | | || __/ _ | || || | | || __/ | ||__ _|_ + \__,_|| .__/ \__,_| \___||_| |_| \___|(_) |_||_||_| |_| \___| |_| |_| (_) + |_| + _ __ _ +( )\ \ ( ) + \| | ||/ + > > + | | + /_/ + __ _ _ _ __ _ _ _ _ + / / (_) ___ ___ | |__ | | __\ \ | |_ | |__ ___ _ __ | | ___ | |_ +/ / | | / _ \ / __|| '_ \ | |/ / \ \ | __|| '_ \ / _ \ | '_ \ | | / _ \ | __| +\ \ | || (_) |\__ \| | | || < / / | |_ | | | || __/ | |_) || || (_) || |_ + \_\_/ | \___/ |___/|_| |_||_|\_\/_/ \__||_| |_| \___| | .__/ |_| \___/ \__| + |__/ |_| + _ _ _ _ +| |_ | |__ (_) ___ | | __ ___ _ __ ___ +| __|| '_ \ | | / __|| |/ // _ \| '_ \ / __| +| |_ | | | || || (__ | <| __/| | | |\__ \ + \__||_| |_||_| \___||_|\_\\___||_| |_||___/ + + __ __ __ _ _ _ __ + / / __ _ ___ _ _ / _| / _|(_) ___ | | __| |\ \ +/ / / _` |/ __|| | | || |_ | |_ | | / _ \| | / _` | \ \ +\ \| (_| |\__ \| |_| || _|| _|| || __/| || (_| | / / + \_\\__,_||___/ \__,_||_| |_| |_| \___||_| \__,_|/_/ + + _ _ _ _ +| |_ | |__ ___ ___ ___ __ _ _ __ ___ _ __ ( )| |_ +| __|| '_ \ / _ \ / __| / _ \ / _` || '__|/ _ \| '_ \|/ | __| +| |_ | | | || (_) |\__ \| __/ | (_| || | | __/| | | | | |_ + \__||_| |_| \___/ |___/ \___| \__,_||_| \___||_| |_| \__| + + _ _ _ _ _ + ___ | |__ ___ | || | ___ ___ _ __ (_) _ __ | |_ ___ +/ __|| '_ \ / _ \| || | / __| / __|| '__|| || '_ \ | __|/ __| +\__ \| | | || __/| || | \__ \| (__ | | | || |_) || |_ \__ \ +|___/|_| |_| \___||_||_| |___/ \___||_| |_|| .__/ \__||___/ + |_| + __ _ _ __ _ _ _ + / / ___ _ __ (_) ___ | |__ \ \ | |_ | |__ (_) ___ +/ / / _ \| '__|| | / __|| '_ \ \ \ | __|| '_ \ | |/ __| +\ \| __/| | | || (__ | | | | / / | |_ | | | || |\__ \ + \_\\___||_| |_| \___||_| |_|/_/ \__||_| |_||_||___/ + + _ _ _ _ _ +__ __ __ _ ___ _ __ ( )| |_ ___ | |__ (_) ___ | | __ ___ _ __ +\ \ /\ / // _` |/ __|| '_ \|/ | __| / __|| '_ \ | | / __|| |/ // _ \| '_ \ + \ V V /| (_| |\__ \| | | | | |_ | (__ | | | || || (__ | <| __/| | | | _ + \_/\_/ \__,_||___/|_| |_| \__| \___||_| |_||_| \___||_|\_\\___||_| |_|(_) + + _ + (_) _ __ + _____ _____ | || '_ \ + |_____||_____| | || | | | + |_||_| |_| + + _ _ _ _ _ _ + _| || |_ __| | ___ | |__ (_) __ _ _ __ __| | ___ __ __ ___ +|_ .. _| / _` | / _ \| '_ \ | | / _` || '_ \ _____ / _` | / _ \\ \ / // _ \ +|_ _|| (_| || __/| |_) || || (_| || | | ||_____|| (_| || __/ \ V /| __/ + |_||_| \__,_| \___||_.__/ |_| \__,_||_| |_| \__,_| \___| \_/ \___| + + _ +| | +| | +| | +|_| + diff --git a/tests/res010.txt b/tests/res010.txt new file mode 100644 index 0000000..43a2523 --- /dev/null +++ b/tests/res010.txt @@ -0,0 +1,156 @@ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __ \ \ + / / | | / _ \ / __| | '_ \ | |/ / \ \ + \ \ | | | (_) | \__ \ | | | | | < / / + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ + |__/ + _ _ _ ____ _ __ _ + (_) ___ ___ | |__ | | __ / __ \ (_) _ __ / _| | | _ _ + | | / _ \ / __| | '_ \ | |/ / / / _` | | | | '_ \ | |_ | | | | | | + | | | (_) | \__ \ | | | | | < | | (_| | | | | | | | | _| | | | |_| | + _/ | \___/ |___/ |_| |_| |_|\_\ \ \__,_| |_| |_| |_| |_| |_| \__,_| + |__/ \____/ + __ _ __ _ + __ __ _ / / ___ | |_ ___ / / | | ___ __ _ _ __ + \ \/ / (_) / / / _ \ | __| / __| / / | | / _ \ / _` | | '__| + > < _ / / | __/ | |_ | (__ / / | | | (_) | | (_| | | | + /_/\_\ (_) /_/ \___| \__| \___| /_/ |_| \___/ \__, | |_| + |___/ + _ _ _ __ _ + ___ | |_ __ _ | |_ ___ __| | \ \ ___ | |__ + / _ \ | __| / _` | | __| / _ \ / _` | \ \ / __| | '_ \ + | (_) | | |_ | (_| | | |_ | __/ _ | (_| | / / \__ \ | | | | + \___/ \__| \__,_| \__| \___| (_) \__,_| /_/ |___/ |_| |_| + + + _ __ __/\__ + _____ | '_ \ \ / + |_____| | | | | /_ _\ + |_| |_| \/ + + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __ \ \ + / / | | / _ \ / __| | '_ \ | |/ / \ \ + \ \ | | | (_) | \__ \ | | | | | < / / + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ + |__/ + _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | | (_) _ __ ___ + / _` | | '_ \ / _` | / __| | '_ \ / _ \ (_) | | | | | '_ \ / _ \ + | (_| | | |_) | | (_| | | (__ | | | | | __/ _ | | | | | | | | | __/ + \__,_| | .__/ \__,_| \___| |_| |_| \___| (_) |_| |_| |_| |_| \___| + |_| + _ _ _ _ + / | | || | _ ___ _ _ _ __ | |_ __ _ __ __ + | | | || |_ (_) / __| | | | | | '_ \ | __| / _` | \ \/ / + | | |__ _| _ \__ \ | |_| | | | | | | |_ | (_| | > < + |_| |_| (_) |___/ \__, | |_| |_| \__| \__,_| /_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ \ | '__| | '__| / _ \ | '__| | '_ \ / _ \ / _` | | '__| + | __/ | | | | | (_) | | | | | | | | __/ | (_| | | | + \___| |_| |_| \___/ |_| |_| |_| \___| \__,_| |_| + + _ _ + _ _ _ __ ___ __ __ _ __ ___ ___ | |_ ___ __| | + | | | | | '_ \ / _ \ \ \/ / | '_ \ / _ \ / __| | __| / _ \ / _` | + | |_| | | | | | | __/ > < | |_) | | __/ | (__ | |_ | __/ | (_| | + \__,_| |_| |_| \___| /_/\_\ | .__/ \___| \___| \__| \___| \__,_| + |_| + _ _ _ __ _ + | |_ ___ | | __ ___ _ __ ( ) \ \ ( ) + | __| / _ \ | |/ / / _ \ | '_ \ \| | | |/ + | |_ | (_) | | < | __/ | | | | > > + \__| \___/ |_|\_\ \___| |_| |_| | | + /_/ + __ _ _ _ __ + / / (_) ___ ___ | |__ | | __ \ \ + / / | | / _ \ / __| | '_ \ | |/ / \ \ + \ \ | | | (_) | \__ \ | | | | | < / / + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ + |__/ + _ _ _ + __ _ _ __ __ _ ___ | |__ ___ _ | | (_) _ __ ___ + / _` | | '_ \ / _` | / __| | '_ \ / _ \ (_) | | | | | '_ \ / _ \ + | (_| | | |_) | | (_| | | (__ | | | | | __/ _ | | | | | | | | | __/ + \__,_| | .__/ \__,_| \___| |_| |_| \___| (_) |_| |_| |_| |_| \___| + |_| + _ _ _ _ __ _ + / | | || | _ ( ) \ \ ( ) + | | | || |_ (_) \| | | |/ + | | |__ _| _ > > + |_| |_| (_) | | + /_/ + __ _ _ _ __ _ _ + / / (_) ___ ___ | |__ | | __ \ \ | |_ | |__ ___ + / / | | / _ \ / __| | '_ \ | |/ / \ \ | __| | '_ \ / _ \ + \ \ | | | (_) | \__ \ | | | | | < / / | |_ | | | | | __/ + \_\ _/ | \___/ |___/ |_| |_| |_|\_\ /_/ \__| |_| |_| \___| + |__/ + _ _ + _ __ | | ___ | |_ + | '_ \ | | / _ \ | __| + | |_) | | | | (_) | | |_ + | .__/ |_| \___/ \__| + |_| + _ _ _ _ + | |_ | |__ (_) ___ | | __ ___ _ __ ___ + | __| | '_ \ | | / __| | |/ / / _ \ | '_ \ / __| + | |_ | | | | | | | (__ | < | __/ | | | | \__ \ + \__| |_| |_| |_| \___| |_|\_\ \___| |_| |_| |___/ + + __ __ __ _ _ _ __ + / / __ _ ___ _ _ / _| / _| (_) ___ | | __| | \ \ + / / / _` | / __| | | | | | |_ | |_ | | / _ \ | | / _` | \ \ + \ \ | (_| | \__ \ | |_| | | _| | _| | | | __/ | | | (_| | / / + \_\ \__,_| |___/ \__,_| |_| |_| |_| \___| |_| \__,_| /_/ + + _ _ _ _ + | |_ | |__ ___ ___ ___ __ _ _ __ ___ _ __ ( ) | |_ + | __| | '_ \ / _ \ / __| / _ \ / _` | | '__| / _ \ | '_ \ |/ | __| + | |_ | | | | | (_) | \__ \ | __/ | (_| | | | | __/ | | | | | |_ + \__| |_| |_| \___/ |___/ \___| \__,_| |_| \___| |_| |_| \__| + + _ _ _ _ _ + ___ | |__ ___ | | | | ___ ___ _ __ (_) _ __ | |_ ___ + / __| | '_ \ / _ \ | | | | / __| / __| | '__| | | | '_ \ | __| / __| + \__ \ | | | | | __/ | | | | \__ \ | (__ | | | | | |_) | | |_ \__ \ + |___/ |_| |_| \___| |_| |_| |___/ \___| |_| |_| | .__/ \__| |___/ + |_| + __ _ _ __ _ _ _ + / / ___ _ __ (_) ___ | |__ \ \ | |_ | |__ (_) ___ + / / / _ \ | '__| | | / __| | '_ \ \ \ | __| | '_ \ | | / __| + \ \ | __/ | | | | | (__ | | | | / / | |_ | | | | | | \__ \ + \_\ \___| |_| |_| \___| |_| |_| /_/ \__| |_| |_| |_| |___/ + + _ _ + __ __ __ _ ___ _ __ ( ) | |_ + \ \ /\ / / / _` | / __| | '_ \ |/ | __| + \ V V / | (_| | \__ \ | | | | | |_ + \_/\_/ \__,_| |___/ |_| |_| \__| + + _ _ _ + ___ | |__ (_) ___ | | __ ___ _ __ + / __| | '_ \ | | / __| | |/ / / _ \ | '_ \ + | (__ | | | | | | | (__ | < | __/ | | | | _ + \___| |_| |_| |_| \___| |_|\_\ \___| |_| |_| (_) + + _ + (_) _ __ + _____ _____ | | | '_ \ + |_____| |_____| | | | | | | + |_| |_| |_| + + _ _ _ _ _ _ + _| || |_ __| | ___ | |__ (_) __ _ _ __ __| | ___ + |_ .. _| / _` | / _ \ | '_ \ | | / _` | | '_ \ _____ / _` | / _ \ + |_ _| | (_| | | __/ | |_) | | | | (_| | | | | | |_____| | (_| | | __/ + |_||_| \__,_| \___| |_.__/ |_| \__,_| |_| |_| \__,_| \___| + + _ + __ __ ___ | | + \ \ / / / _ \ | | + \ V / | __/ | | + \_/ \___| |_| + diff --git a/tests/res011.txt b/tests/res011.txt new file mode 100644 index 0000000..3b669a1 --- /dev/null +++ b/tests/res011.txt @@ -0,0 +1,114 @@ + __ _ _ _ __ + / /(_) ___ ___| |__ | | _\ \ +/ / | |/ _ \/ __| '_ \| |/ /\ \ +\ \ | | (_) \__ | | | | < / / + \__/ |\___/|___|_| |_|_|\_/_/ + |__/ + _ _ _ ____ _ __ _ __ _ + (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / ___| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ | __/ __| + | | (_) \__ | | | | | | (_| | | | | | _| | |_| |> < _ / | __| || (__ + _/ |\___/|___|_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_/_/ \___|\__\___| +|__/ \____/ + ___ _ _ ___ _ + / | | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ _ __ + / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ / __| '_ \ _____| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ \__ | | | |_____| | | | +/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_\__,_/_/|___|_| |_| |_| |_| + |___/ + +__/\__ +\ / +/_ _\ + \/ + + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | _\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ /\ \/ _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ | | | | < / | (_| | |_) | (_| | (__| | | | __/_ + \__/ |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ _ +| (_)_ __ ___/ | || | _ ___ _ _ _ __ | |_ __ ___ __ +| | | '_ \ / _ | | || |(_/ __| | | | '_ \| __/ _` \ \/ / +| | | | | | __| |__ __\__ | |_| | | | | || (_| |> < +|_|_|_| |_|\___|_| |_|(_|___/\__, |_| |_|\__\__,_/_/\_\ + |___/ + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ | '__| '__/ _ \| '__| '_ \ / _ \/ _` | '__| +| __| | | | | (_) | | | | | | __| (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + _ _ _ _ + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | |_ ___ | | _____ _ __ +| | | | '_ \ / _ \ \/ | '_ \ / _ \/ __| __/ _ \/ _` | __/ _ \| |/ / _ | '_ \ +| |_| | | | | __/> <| |_) | __| (__| || __| (_| | || (_) | | __| | | | + \__,_|_| |_|\___/_/\_| .__/ \___|\___|\__\___|\__,_|\__\___/|_|\_\___|_| |_| + |_| + ___ _ +( \ \( ) + \|| |/ + > > + | | + /_/ + __ _ _ _ __ _ + / /(_) ___ ___| |__ | | _\ \ __ _ _ __ __ _ ___| |__ ___ _ +/ / | |/ _ \/ __| '_ \| |/ /\ \/ _` | '_ \ / _` |/ __| '_ \ / _ (_) +\ \ | | (_) \__ | | | | < / | (_| | |_) | (_| | (__| | | | __/_ + \__/ |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + |__/ |_| + _ _ _ _ _ ___ _ +| (_)_ __ ___/ | || | _( \ \( ) +| | | '_ \ / _ | | || |(_)\|| |/ +| | | | | | __| |__ __ > > +|_|_|_| |_|\___|_| |_|(_) | | + /_/ + __ _ _ _ __ _ _ _ _ + / /(_) ___ ___| |__ | | _\ \| |_| |__ ___ _ __ | | ___ | |_ +/ / | |/ _ \/ __| '_ \| |/ /\ | __| '_ \ / _ | '_ \| |/ _ \| __| +\ \ | | (_) \__ | | | | < / | |_| | | | __| |_) | | (_) | |_ + \__/ |\___/|___|_| |_|_|\_/_/ \__|_| |_|\___| .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ +| |_| |__ (_) ___| | _____ _ __ ___ +| __| '_ \| |/ __| |/ / _ | '_ \/ __| +| |_| | | | | (__| | __| | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + __ __ __ _ _ ___ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \| |_| |__ ___ ___ ___ +/ // _` / __| | | | |_| |_| |/ _ | |/ _` |\ | __| '_ \ / _ \/ __|/ _ \ +\ | (_| \__ | |_| | _| _| | __| | (_| |/ | |_| | | | (_) \__ | __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + _ _ _ _ _ _ _ + __ _ _ __ ___ _ __( | |_ ___| |__ ___| | |___ ___ _ __(_)_ __ | |_ ___ + / _` | '__/ _ | '_ |/| __/ __| '_ \ / _ | | / __|/ __| '__| | '_ \| __/ __| +| (_| | | | __| | | || |_\__ | | | | __| | \__ | (__| | | | |_) | |_\__ \ + \__,_|_| \___|_| |_| \__|___|_| |_|\___|_|_|___/\___|_| |_| .__/ \__|___/ + |_| + __ _ _ __ _ _ _ _ _ + / /___ _ __(_) ___| |__ \ \| |_| |__ (_)_____ ____ _ ___ _ __( | |_ +/ // _ | '__| |/ __| '_ \ \ | __| '_ \| / __\ \ /\ / / _` / __| '_ |/| __| +\ | __| | | | (__| | | |/ | |_| | | | \__ \\ V V | (_| \__ | | | || |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___|_| |_| \__| + + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ | '_ \ +| (__| | | | | (__| | __| | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ + (_)_ __ + _____ _____| | '_ \ +|_____|_____| | | | | + |_|_| |_| + + _ _ _ _ _ _ _ + _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | +|_ .. _|/ _` |/ _ | '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ | | +|_ _| (_| | __| |_) | | (_| | | | |_____| (_| | __/\ V | __| | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/tests/res012.txt b/tests/res012.txt new file mode 100644 index 0000000..3a25e26 --- /dev/null +++ b/tests/res012.txt @@ -0,0 +1,36 @@ + ┛┏━┃┏━┛┃ ┃┃ ┃ + ┃┃ ┃━━┃┏━┃┏┛ +<━┛━━┛━━┛┛ ┛┛ ┛> + ┛┏━┃┏━┛┃ ┃┃ ┃┏━┃┛┏━ ┏━┛┃ ┃ ┃┃ ┃ ┛┏━┛━┏┛┏━┛ ┛┃ ┏━┃┏━┛┏━┃┏━┃━┏┛┏━┃━┏┛┏━┛ + ┃┃ ┃━━┃┏━┃┏┛ ┃┛┛┃┃ ┃┏━┛┃ ┃ ┃ ┛ ┛ ┛ ┏━┛ ┃ ┃ ┛ ┃ ┃ ┃┃ ┃┏┏┛┃ ┃ ┃ ┏━┃ ┃ ┏━┛ +━┛━━┛━━┛┛ ┛┛ ┛━━┛┛┛ ┛┛ ━━┛━━┛┛ ┛┛┛ ━━┛ ┛ ━━┛┛ ━━┛━━┛━━┛┛ ┛━━┛ ┛ ┛ ┛ ┛ ━━┛┛ +┏━ ┏━┛┃ ┃ ┏━ ┛ ┛ +┃ ┃ ━━┃┏━┃ ━┛┃ ┃ ━┏┛ +━━ > ━━┛┛ ┛ ┛ ┛ ┛ ┛ + ┛┏━┃┏━┛┃ ┃┃ ┃ ┏━┃┏━┃┏━┃┏━┛┃ ┃┏━┛ ┃ ┛┏━ ┏━┛ ━┃ ┃ ┃ ┏━┛┃ ┃┏━ ━┏┛┏━┃┃ ┃ + ┃┃ ┃━━┃┏━┃┏┛ ┏━┃┏━┛┏━┃┃ ┏━┃┏━┛┛ ┃ ┃┃ ┃┏━┛ ┃ ━━┃┛ ━━┃━┏┛┃ ┃ ┃ ┏━┃ ┛ +<━┛━━┛━━┛┛ ┛┛ ┛> ┛ ┛┛ ┛ ┛━━┛┛ ┛━━┛┛ ━━┛┛┛ ┛━━┛ ━━┛ ┛┛ ━━┛ ┛ ┛ ┛ ┛ ┛ ┛┛ ┛ +┏━┛┏━┃┏━┃┏━┃┏━┃ ┏━ ┏━┛┏━┃┏━┃ ┃ ┃┏━ ┏━┛┃ ┃┏━┃┏━┛┏━┛━┏┛┏━┛┏━ ━┏┛┏━┃┃ ┃┏━┛┏━ +┏━┛┏┏┛┏┏┛┃ ┃┏┏┛ ┃ ┃┏━┛┏━┃┏┏┛ ┃ ┃┃ ┃┏━┛ ┛ ┏━┛┏━┛┃ ┃ ┏━┛┃ ┃ ┃ ┃ ┃┏┛ ┏━┛┃ ┃ +━━┛┛ ┛┛ ┛━━┛┛ ┛ ┛ ┛━━┛┛ ┛┛ ┛ ━━┛┛ ┛━━┛┛ ┛┛ ━━┛━━┛ ┛ ━━┛━━ ┛ ━━┛┛ ┛━━┛┛ ┛ +┛ ━┃ ┛ + ┛ ┏┛ + ━┛ + ┛┏━┃┏━┛┃ ┃┃ ┃ ┏━┃┏━┃┏━┃┏━┛┃ ┃┏━┛ ┃ ┛┏━ ┏━┛ ━┃ ┃ ┃ ┛ ━┃ ┛ + ┃┃ ┃━━┃┏━┃┏┛ ┏━┃┏━┛┏━┃┃ ┏━┃┏━┛┛ ┃ ┃┃ ┃┏━┛ ┃ ━━┃┛ ┛ ┏┛ +<━┛━━┛━━┛┛ ┛┛ ┛> ┛ ┛┛ ┛ ┛━━┛┛ ┛━━┛┛ ━━┛┛┛ ┛━━┛ ━━┛ ┛┛ ━┛ + ┛┏━┃┏━┛┃ ┃┃ ┃ ━┏┛┃ ┃┏━┛ ┏━┃┃ ┏━┃━┏┛ ━┏┛┃ ┃┛┏━┛┃ ┃┏━┛┏━ ┏━┛ + ┃┃ ┃━━┃┏━┃┏┛ ┃ ┏━┃┏━┛ ┏━┛┃ ┃ ┃ ┃ ┃ ┏━┃┃┃ ┏┛ ┏━┛┃ ┃━━┃ +<━┛━━┛━━┛┛ ┛┛ ┛> ┛ ┛ ┛━━┛ ┛ ━━┛━━┛ ┛ ┛ ┛ ┛┛━━┛┛ ┛━━┛┛ ┛━━┛ + ┏━┃┏━┛┃ ┃┏━┛┏━┛┛┏━┛┃ ┏━ ━┏┛┃ ┃┏━┃┏━┛┏━┛ ┏━┃┏━┃┏━┛┏━ ┛━┏┛ ┏━┛┃ ┃┏━┛┃ ┃ + ┏━┃━━┃┃ ┃┏━┛┏━┛┃┏━┛┃ ┃ ┃ ┃ ┏━┃┃ ┃━━┃┏━┛ ┏━┃┏┏┛┏━┛┃ ┃ ┃ ━━┃┏━┃┏━┛┃ ┃ +<┛ ┛━━┛━━┛┛ ┛ ┛━━┛━━┛━━ > ┛ ┛ ┛━━┛━━┛━━┛ ┛ ┛┛ ┛━━┛┛ ┛ ┛ ━━┛┛ ┛━━┛━━┛━━┛ +┏━┛┏━┛┏━┃┛┏━┃━┏┛┏━┛ +━━┃┃ ┏┏┛┃┏━┛ ┃ ━━┃ +━━┛━━┛┛ ┛┛┛ ┛ ━━┛ + ┏━┛┏━┃┛┏━┛┃ ┃ ━┏┛┃ ┃┛┏━┛ ┃┃┃┏━┃┏━┛┏━ ┛━┏┛ ┏━┛┃ ┃┛┏━┛┃ ┃┏━┛┏━ + ┏━┛┏┏┛┃┃ ┏━┃ ┃ ┏━┃┃━━┃ ┃┃┃┏━┃━━┃┃ ┃ ┃ ┃ ┏━┃┃┃ ┏┛ ┏━┛┃ ┃ +<━━┛┛ ┛┛━━┛┛ ┛> ┛ ┛ ┛┛━━┛ ━━┛┛ ┛━━┛┛ ┛ ┛ ━━┛┛ ┛┛━━┛┛ ┛━━┛┛ ┛┛ + ┛┏━ ┏━ ┏━┛┏━ ┛┏━┃┏━ ┏━ ┏━┛┃ ┃┏━┛┃ + ━┛━┛ ┃┃ ┃ ┃ ┃┏━┛┏━┃┃┏━┃┃ ┃━┛┃ ┃┏━┛┃ ┃┏━┛┃ + ┛┛ ┛ #━━ ━━┛━━ ┛┛ ┛┛ ┛ ━━ ━━┛ ┛ ━━┛━━┛ diff --git a/tests/res013.txt b/tests/res013.txt new file mode 100644 index 0000000..6983f2f --- /dev/null +++ b/tests/res013.txt @@ -0,0 +1,132 @@ + __ _ _ _ __ + \ \ | | __| |__ ___ ___ (_) / / + \ \| |/ /| '_ \ / __| / _ \ | |/ / + / /| < | | | |\__ \| (_) || |\ \ + /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |__/ + __ _ __ _ ____ _ _ _ + / /_ __ __ _ _ | | / _| _ __ (_) / __ \ | | __| |__ ___ ___ (_) + / /(_)\ \/ /| | | || || |_ | '_ \ | | / / _` || |/ /| '_ \ / __| / _ \ | | + / / _ > < | |_| || || _|| | | || || | (_| || < | | | |\__ \| (_) || | + /_/ (_)/_/\_\ \__,_||_||_| |_| |_||_| \ \__,_||_|\_\|_| |_||___/ \___/_/ | + \____/ |__/ + _ _ _ __ _ + ___ | |_ __ _ | |_ ___ _ __ __ _ ___ | | / /___ | |_ ___ + / _ \| __|/ _` || __|/ _ \ | '__|/ _` | / _ \ | | / // __|| __|/ _ \ + _| __/| |_| (_| || |_| (_) || | | (_| || (_) || | / /| (__ | |_| __/ + (_)\___| \__|\__,_| \__|\___/ |_| \__, | \___/ |_|/_/ \___| \__|\___| + |___/ + _ __ _ + __/\__ _ __ | |__ ___ \ \ __| | + \ / | '_ \ _____ | '_ \ / __| \ \ / _` | + /_ _\ | | | ||_____| | | | |\__ \ / /| (_| | + \/ |_| |_| |_| |_||___/ /_/ \__,_| + + _ __ _ _ _ __ + _ ___ | |__ ___ __ _ _ __ __ _ \ \ | | __| |__ ___ ___ (_) / / + (_)/ _ \| '_ \ / __|/ _` || '_ \ / _` | \ \| |/ /| '_ \ / __| / _ \ | |/ / + _| __/| | | || (__| (_| || |_) || (_| | / /| < | | | |\__ \| (_) || |\ \ + (_)\___||_| |_| \___|\__,_|| .__/ \__,_| /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |_| |__/ + _ _ _ _ _ _ + __ __ __ _ | |_ _ __ _ _ ___ _ | || | / | ___ _ __ (_)| | + \ \/ // _` || __|| '_ \ | | | |/ __| (_)| || |_ | | / _ \| '_ \ | || | + > <| (_| || |_ | | | || |_| |\__ \ _ |__ _|| | | __/| | | || || | + /_/\_\\__,_| \__||_| |_| \__, ||___/ (_) |_| |_| \___||_| |_||_||_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__|/ _` | / _ \| '_ \ | '__|/ _ \ | '__|| '__|/ _ \ + | | | (_| || __/| | | | | | | (_) || | | | | __/ + |_| \__,_| \___||_| |_| |_| \___/ |_| |_| \___| + + _ _ + __| | ___ | |_ ___ ___ _ __ __ __ ___ _ __ _ _ + / _` | / _ \| __|/ __|/ _ \| '_ \\ \/ // _ \| '_ \ | | | | + | (_| || __/| |_| (__| __/| |_) |> <| __/| | | || |_| | + \__,_| \___| \__|\___|\___|| .__//_/\_\\___||_| |_| \__,_| + |_| + _ __ _ _ _ + ( )\ \ ( ) _ __ ___ | | __ ___ | |_ + |/ | | \| | '_ \ / _ \| |/ // _ \ | __| + > > | | | || __/| <| (_) || |_ + | | |_| |_| \___||_|\_\\___/ \__| + /_/ + _ __ _ _ _ __ + _ ___ | |__ ___ __ _ _ __ __ _ \ \ | | __| |__ ___ ___ (_) / / + (_)/ _ \| '_ \ / __|/ _` || '_ \ / _` | \ \| |/ /| '_ \ / __| / _ \ | |/ / + _| __/| | | || (__| (_| || |_) || (_| | / /| < | | | |\__ \| (_) || |\ \ + (_)\___||_| |_| \___|\__,_|| .__/ \__,_| /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |_| |__/ + _ __ _ _ _ _ _ _ + ( )\ \ ( ) _ | || | / | ___ _ __ (_)| | + |/ | | \| (_)| || |_ | | / _ \| '_ \ | || | + > > _ |__ _|| | | __/| | | || || | + | | (_) |_| |_| \___||_| |_||_||_| + /_/ + _ _ _ _ __ _ _ _ __ + | |_ ___ | | _ __ ___ | |__ | |_ \ \ | | __| |__ ___ ___ (_) / / + | __|/ _ \ | || '_ \ / _ \| '_ \ | __| \ \| |/ /| '_ \ / __| / _ \ | |/ / + | |_| (_) || || |_) | | __/| | | || |_ / /| < | | | |\__ \| (_) || |\ \ + \__|\___/ |_|| .__/ \___||_| |_| \__| /_/ |_|\_\|_| |_||___/ \___/_/ | \_\ + |_| |__/ + _ _ _ _ + ___ _ __ ___ | | __ ___ (_)| |__ | |_ + / __|| '_ \ / _ \| |/ // __|| || '_ \ | __| + \__ \| | | || __/| <| (__ | || | | || |_ + |___/|_| |_| \___||_|\_\\___||_||_| |_| \__| + + __ _ _ _ __ __ __ + \ \ __| || | ___ (_) / _| / _| _ _ ___ __ _ / / + \ \ / _` || | / _ \| || |_ | |_ | | | |/ __| / _` |/ / + / /| (_| || || __/| || _|| _|| |_| |\__ \| (_| |\ \ + /_/ \__,_||_| \___||_||_| |_| \__,_||___/ \__,_| \_\ + + _ _ _ _ + | |_ ( )_ __ ___ _ __ __ _ ___ ___ ___ | |__ | |_ + | __||/| '_ \ / _ \| '__|/ _` | / _ \/ __| / _ \ | '_ \ | __| + | |_ | | | || __/| | | (_| | | __/\__ \| (_) || | | || |_ + \__| |_| |_| \___||_| \__,_| \___||___/ \___/ |_| |_| \__| + + _ _ _ _ _ + ___ | |_ _ __ (_) _ __ ___ ___ | || | ___ | |__ ___ + / __|| __|| '_ \ | || '__|/ __|/ __| | || | / _ \| '_ \ / __| + \__ \| |_ | |_) || || | | (__ \__ \ | || || __/| | | |\__ \ + |___/ \__|| .__/ |_||_| \___||___/ |_||_| \___||_| |_||___/ + |_| + _ _ _ __ _ _ __ + ___ (_)| |__ | |_ \ \ | |__ ___ (_) _ __ ___ / / + / __|| || '_ \ | __| \ \| '_ \ / __|| || '__|/ _ \/ / + \__ \| || | | || |_ / /| | | || (__ | || | | __/\ \ + |___/|_||_| |_| \__| /_/ |_| |_| \___||_||_| \___| \_\ + + _ _ + | |_ ( )_ __ ___ __ _ __ __ + | __||/| '_ \ / __| / _` |\ \ /\ / / + | |_ | | | |\__ \| (_| | \ V V / + \__| |_| |_||___/ \__,_| \_/\_/ + + _ _ _ + _ __ ___ | | __ ___ (_)| |__ ___ + | '_ \ / _ \| |/ // __|| || '_ \ / __| + _ | | | || __/| <| (__ | || | | || (__ + (_)|_| |_| \___||_|\_\\___||_||_| |_| \___| + + _ + _ __ (_) + | '_ \ | | _____ _____ + | | | || | |_____||_____| + |_| |_||_| + + _ _ _ _ _ _ + __ __ ___ __| | _ __ __ _ (_)| |__ ___ __| | _| || |_ + \ \ / // _ \ / _` | _____ | '_ \ / _` || || '_ \ / _ \ / _` ||_ .. _| + \ V /| __/| (_| ||_____|| | | || (_| || || |_) || __/| (_| ||_ _| + \_/ \___| \__,_| |_| |_| \__,_||_||_.__/ \___| \__,_| |_||_| + + _ + | | ___ + | | / _ \ + | || __/ + |_| \___| + diff --git a/tests/res014.txt b/tests/res014.txt new file mode 100644 index 0000000..545bbce --- /dev/null +++ b/tests/res014.txt @@ -0,0 +1,144 @@ + __ __ __ _ __ + \ \ / /__ / /_ _____ ____ (_)/ / + \ \ / //_// __ \ / ___// __ \ / // / + / // ,< / / / /(__ )/ /_/ / / / \ \ + /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + __ ____ _ ______ __ __ _ + _ _ __ __ __ / // __/____ (_)/ ____ \ / /__ / /_ _____ ____ (_) + (_)| |/_// / / // // /_ / __ \ / // / __ `// //_// __ \ / ___// __ \ / / + _ _> < / /_/ // // __// / / // // / /_/ // ,< / / / /(__ )/ /_/ / / / + (_)/_/|_| \__,_//_//_/ /_/ /_//_/ \ \__,_//_/|_|/_/ /_//____/ \____/__/ / + \____/ /___/ + __ __ __ __ __ __ + / /_ ____ _ / /_ ____ _____ ____ _ ____ / / _/_/_____ / /_ ___ _/_/ + / __// __ `// __// __ \ / ___// __ `// __ \ / / _/_/ / ___// __// _ \ _/_/ + / /_ / /_/ // /_ / /_/ // / / /_/ // /_/ // /_/_/ / /__ / /_ / __/_/_/ + \__/ \__,_/ \__/ \____//_/ \__, / \____//_//_/ \___/ \__/ \___//_/ + /____/ + __ __ __ + __/|_ ____ / /_ _____ \ \ ____/ / ___ + | / / __ \ ______ / __ \ / ___/ \ \ / __ / / _ \ + /_ __| / / / //_____/ / / / /(__ ) / // /_/ /_ / __/ + |/ /_/ /_/ /_/ /_//____/ /_/ \__,_/(_)\___/ + + __ __ __ _ __ + \ \ / /__ / /_ _____ ____ (_)/ / + \ \ / //_// __ \ / ___// __ \ / // / + / // ,< / / / /(__ )/ /_/ / / / \ \ + /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + _ __ __ + ___ ____ (_)/ / _ ___ / /_ _____ ____ _ ____ ____ _ + / _ \ / __ \ / // / (_)/ _ \ / __ \ / ___// __ `// __ \ / __ `/ + / __// / / // // / _ / __// / / // /__ / /_/ // /_/ // /_/ / + \___//_/ /_//_//_/ (_) \___//_/ /_/ \___/ \__,_// .___/ \__,_/ + /_/ + __ __ __ ___ + _ __ ____ _ / /_ ____ __ __ _____ _ / // / < / + | |/_// __ `// __// __ \ / / / // ___/ (_)/ // /_ / / + _> < / /_/ // /_ / / / // /_/ /(__ ) _ /__ __// / + /_/|_| \__,_/ \__//_/ /_/ \__, //____/ (_) /_/ /_/ + /____/ + + _____ ____ _ ___ ____ _____ ____ _____ _____ ___ + / ___// __ `// _ \ / __ \ / ___// __ \ / ___// ___// _ \ + / / / /_/ // __// / / / / / / /_/ // / / / / __/ + /_/ \__,_/ \___//_/ /_/ /_/ \____//_/ /_/ \___/ + + __ __ + ____/ /___ / /_ _____ ___ ____ _ __ ___ ____ __ __ + / __ // _ \ / __// ___// _ \ / __ \ | |/_// _ \ / __ \ / / / / + / /_/ // __// /_ / /__ / __// /_/ /_> < / __// / / // /_/ / + \__,_/ \___/ \__/ \___/ \___// .___//_/|_| \___//_/ /_/ \__,_/ + /_/ + _ _ _ __ __ + ( )| |( ) ____ ___ / /__ ____ / /_ + |/ / / V / __ \ / _ \ / //_// __ \ / __/ + _>_> / / / // __// ,< / /_/ // /_ + _/_/ /_/ /_/ \___//_/|_| \____/ \__/ + /_/ + __ __ __ _ __ + \ \ / /__ / /_ _____ ____ (_)/ / + \ \ / //_// __ \ / ___// __ \ / // / + / // ,< / / / /(__ )/ /_/ / / / \ \ + /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + _ __ __ + ___ ____ (_)/ / _ ___ / /_ _____ ____ _ ____ ____ _ + / _ \ / __ \ / // / (_)/ _ \ / __ \ / ___// __ `// __ \ / __ `/ + / __// / / // // / _ / __// / / // /__ / /_/ // /_/ // /_/ / + \___//_/ /_//_//_/ (_) \___//_/ /_/ \___/ \__,_// .___/ \__,_/ + /_/ + _ _ _ __ __ ___ + ( )| |( ) _ / // / < / + |/ / / V (_)/ // /_ / / + _>_> _ /__ __// / + _/_/ (_) /_/ /_/ + /_/ + __ __ __ __ __ _ __ + ___ / /_ / /_ \ \ / /__ / /_ _____ ____ (_)/ / + / _ \ / __ \ / __/ \ \ / //_// __ \ / ___// __ \ / // / + / __// / / // /_ / // ,< / / / /(__ )/ /_/ / / / \ \ + \___//_/ /_/ \__/ /_//_/|_|/_/ /_//____/ \____/__/ / \_\ + /___/ + __ _ __ __ __ __ + _____ ____ ___ / /__ _____ (_)/ /_ / /_ / /_ ____ / /____ + / ___// __ \ / _ \ / //_// ___// // __ \ / __/ / __// __ \ / // __ \ + (__ )/ / / // __// ,< / /__ / // / / // /_ / /_ / /_/ // // /_/ / + /____//_/ /_/ \___//_/|_| \___//_//_/ /_/ \__/ \__/ \____//_// .___/ + /_/ + __ __ __ _ ____ ____ __ + \ \ ____/ // /___ (_)/ __// __/__ __ _____ ____ _ / / + \ \ / __ // // _ \ / // /_ / /_ / / / // ___// __ `// / + / // /_/ // // __// // __// __// /_/ /(__ )/ /_/ / \ \ + /_/ \__,_//_/ \___//_//_/ /_/ \__,_//____/ \__,_/ \_\ + + __ _ __ __ + / /_( )____ ___ _____ ____ _ ___ _____ ____ / /_ / /_ + / __/|// __ \ / _ \ / ___// __ `/ / _ \ / ___// __ \ / __ \ / __/ + / /_ / / / // __// / / /_/ / / __/(__ )/ /_/ // / / // /_ + \__/ /_/ /_/ \___//_/ \__,_/ \___//____/ \____//_/ /_/ \__/ + + __ _ __ __ __ + _____ / /_ ____ (_)_____ _____ _____ / // /___ / /_ _____ + / ___// __// __ \ / // ___// ___// ___/ / // // _ \ / __ \ / ___/ + (__ )/ /_ / /_/ // // / / /__ (__ ) / // // __// / / /(__ ) + /____/ \__// .___//_//_/ \___//____/ /_//_/ \___//_/ /_//____/ + /_/ + _ __ __ __ __ _ __ + _____ (_)/ /_ / /_ \ \ / /_ _____ (_)_____ ___ / / + / ___// // __ \ / __/ \ \ / __ \ / ___// // ___// _ \/ / + (__ )/ // / / // /_ / // / / // /__ / // / / __/\ \ + /____//_//_/ /_/ \__/ /_//_/ /_/ \___//_//_/ \___/ \_\ + + __ _ + / /_( )____ _____ ____ _ _ __ + / __/|// __ \ / ___// __ `/| | /| / / + / /_ / / / /(__ )/ /_/ / | |/ |/ / + \__/ /_/ /_//____/ \__,_/ |__/|__/ + + __ _ __ + ____ ___ / /__ _____ (_)/ /_ _____ + / __ \ / _ \ / //_// ___// // __ \ / ___/ + _ / / / // __// ,< / /__ / // / / // /__ + (_)/_/ /_/ \___//_/|_| \___//_//_/ /_/ \___/ + + _ + ____ (_) + / __ \ / / ______ ______ + / / / // / /_____//_____/ + /_/ /_//_/ + + __ _ __ __ __ __ + _ __ ___ ____/ / ____ ____ _ (_)/ /_ ___ ____/ /__/ // /_ + | | / // _ \ / __ /______ / __ \ / __ `// // __ \ / _ \ / __ //_ _ __/ + | |/ // __// /_/ //_____// / / // /_/ // // /_/ // __// /_/ //_ _ __/ + |___/ \___/ \__,_/ /_/ /_/ \__,_//_//_.___/ \___/ \__,_/ /_//_/ + + __ + / /___ + / // _ \ + / // __/ + /_/ \___/ + diff --git a/tests/res015.txt b/tests/res015.txt new file mode 100644 index 0000000..de7bcd4 --- /dev/null +++ b/tests/res015.txt @@ -0,0 +1,156 @@ + __ _ _ _ __ + \ \ | | __ | |__ ___ ___ (_) / / + \ \ | |/ / | '_ \ / __| / _ \ | | / / + / / | < | | | | \__ \ | (_) | | | \ \ + /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ __ _ ____ _ _ _ + _ _ | | / _| _ __ (_) / __ \ | | __ | |__ ___ ___ (_) + | | | | | | | |_ | '_ \ | | / / _` | | |/ / | '_ \ / __| / _ \ | | + | |_| | | | | _| | | | | | | | | (_| | | < | | | | \__ \ | (_) | | | + \__,_| |_| |_| |_| |_| |_| \ \__,_| |_|\_\ |_| |_| |___/ \___/ _/ | + \____/ |__/ + _ __ _ __ + _ __ __ _ ___ | | / / ___ | |_ ___ / / _ __ __ + | '__| / _` | / _ \ | | / / / __| | __| / _ \ / / (_) \ \/ / + | | | (_| | | (_) | | | / / | (__ | |_ | __/ / / _ > < + |_| \__, | \___/ |_| /_/ \___| \__| \___| /_/ (_) /_/\_\ + |___/ + _ __ _ _ _ + | |__ ___ \ \ __| | ___ | |_ __ _ | |_ ___ + | '_ \ / __| \ \ / _` | / _ \ | __| / _` | | __| / _ \ + | | | | \__ \ / / | (_| | _ | __/ | |_ | (_| | | |_ | (_) | + |_| |_| |___/ /_/ \__,_| (_) \___| \__| \__,_| \__| \___/ + + + __/\__ _ __ + \ / | '_ \ _____ + /_ _\ | | | | |_____| + \/ |_| |_| + + __ _ _ _ __ + \ \ | | __ | |__ ___ ___ (_) / / + \ \ | |/ / | '_ \ / __| / _ \ | | / / + / / | < | | | | \__ \ | (_) | | | \ \ + /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ _ _ + ___ _ __ (_) | | _ ___ | |__ ___ __ _ _ __ __ _ + / _ \ | '_ \ | | | | (_) / _ \ | '_ \ / __| / _` | | '_ \ / _` | + | __/ | | | | | | | | _ | __/ | | | | | (__ | (_| | | |_) | | (_| | + \___| |_| |_| |_| |_| (_) \___| |_| |_| \___| \__,_| | .__/ \__,_| + |_| + _ _ _ _ + __ __ __ _ | |_ _ __ _ _ ___ _ | || | / | + \ \/ / / _` | | __| | '_ \ | | | | / __| (_) | || |_ | | + > < | (_| | | |_ | | | | | |_| | \__ \ _ |__ _| | | + /_/\_\ \__,_| \__| |_| |_| \__, | |___/ (_) |_| |_| + |___/ + + _ __ __ _ ___ _ __ _ __ ___ _ __ _ __ ___ + | '__| / _` | / _ \ | '_ \ | '__| / _ \ | '__| | '__| / _ \ + | | | (_| | | __/ | | | | | | | (_) | | | | | | __/ + |_| \__,_| \___| |_| |_| |_| \___/ |_| |_| \___| + + _ _ + __| | ___ | |_ ___ ___ _ __ __ __ ___ _ __ _ _ + / _` | / _ \ | __| / __| / _ \ | '_ \ \ \/ / / _ \ | '_ \ | | | | + | (_| | | __/ | |_ | (__ | __/ | |_) | > < | __/ | | | | | |_| | + \__,_| \___| \__| \___| \___| | .__/ /_/\_\ \___| |_| |_| \__,_| + |_| + _ __ _ _ _ + ( ) \ \ ( ) _ __ ___ | | __ ___ | |_ + |/ | | \| | '_ \ / _ \ | |/ / / _ \ | __| + > > | | | | | __/ | < | (_) | | |_ + | | |_| |_| \___| |_|\_\ \___/ \__| + /_/ + __ _ _ _ __ + \ \ | | __ | |__ ___ ___ (_) / / + \ \ | |/ / | '_ \ / __| / _ \ | | / / + / / | < | | | | \__ \ | (_) | | | \ \ + /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ _ _ + ___ _ __ (_) | | _ ___ | |__ ___ __ _ _ __ __ _ + / _ \ | '_ \ | | | | (_) / _ \ | '_ \ / __| / _` | | '_ \ / _` | + | __/ | | | | | | | | _ | __/ | | | | | (__ | (_| | | |_) | | (_| | + \___| |_| |_| |_| |_| (_) \___| |_| |_| \___| \__,_| | .__/ \__,_| + |_| + _ __ _ _ _ _ + ( ) \ \ ( ) _ | || | / | + |/ | | \| (_) | || |_ | | + > > _ |__ _| | | + | | (_) |_| |_| + /_/ + _ _ __ _ _ _ __ + ___ | |__ | |_ \ \ | | __ | |__ ___ ___ (_) / / + / _ \ | '_ \ | __| \ \ | |/ / | '_ \ / __| / _ \ | | / / + | __/ | | | | | |_ / / | < | | | | \__ \ | (_) | | | \ \ + \___| |_| |_| \__| /_/ |_|\_\ |_| |_| |___/ \___/ _/ | \_\ + |__/ + _ _ + | |_ ___ | | _ __ + | __| / _ \ | | | '_ \ + | |_ | (_) | | | | |_) | + \__| \___/ |_| | .__/ + |_| + _ _ _ _ + ___ _ __ ___ | | __ ___ (_) | |__ | |_ + / __| | '_ \ / _ \ | |/ / / __| | | | '_ \ | __| + \__ \ | | | | | __/ | < | (__ | | | | | | | |_ + |___/ |_| |_| \___| |_|\_\ \___| |_| |_| |_| \__| + + __ _ _ _ __ __ __ + \ \ __| | | | ___ (_) / _| / _| _ _ ___ __ _ / / + \ \ / _` | | | / _ \ | | | |_ | |_ | | | | / __| / _` | / / + / / | (_| | | | | __/ | | | _| | _| | |_| | \__ \ | (_| | \ \ + /_/ \__,_| |_| \___| |_| |_| |_| \__,_| |___/ \__,_| \_\ + + _ _ _ _ + | |_ ( ) _ __ ___ _ __ __ _ ___ ___ ___ | |__ | |_ + | __| |/ | '_ \ / _ \ | '__| / _` | / _ \ / __| / _ \ | '_ \ | __| + | |_ | | | | | __/ | | | (_| | | __/ \__ \ | (_) | | | | | | |_ + \__| |_| |_| \___| |_| \__,_| \___| |___/ \___/ |_| |_| \__| + + _ _ _ _ _ + ___ | |_ _ __ (_) _ __ ___ ___ | | | | ___ | |__ ___ + / __| | __| | '_ \ | | | '__| / __| / __| | | | | / _ \ | '_ \ / __| + \__ \ | |_ | |_) | | | | | | (__ \__ \ | | | | | __/ | | | | \__ \ + |___/ \__| | .__/ |_| |_| \___| |___/ |_| |_| \___| |_| |_| |___/ + |_| + _ _ _ __ _ _ __ + ___ (_) | |__ | |_ \ \ | |__ ___ (_) _ __ ___ / / + / __| | | | '_ \ | __| \ \ | '_ \ / __| | | | '__| / _ \ / / + \__ \ | | | | | | | |_ / / | | | | | (__ | | | | | __/ \ \ + |___/ |_| |_| |_| \__| /_/ |_| |_| \___| |_| |_| \___| \_\ + + _ _ + | |_ ( ) _ __ ___ __ _ __ __ + | __| |/ | '_ \ / __| / _` | \ \ /\ / / + | |_ | | | | \__ \ | (_| | \ V V / + \__| |_| |_| |___/ \__,_| \_/\_/ + + _ _ _ + _ __ ___ | | __ ___ (_) | |__ ___ + | '_ \ / _ \ | |/ / / __| | | | '_ \ / __| + _ | | | | | __/ | < | (__ | | | | | | | (__ + (_) |_| |_| \___| |_|\_\ \___| |_| |_| |_| \___| + + _ + _ __ (_) + | '_ \ | | _____ _____ + | | | | | | |_____| |_____| + |_| |_| |_| + + _ _ _ _ _ _ + ___ __| | _ __ __ _ (_) | |__ ___ __| | _| || |_ + / _ \ / _` | _____ | '_ \ / _` | | | | '_ \ / _ \ / _` | |_ .. _| + | __/ | (_| | |_____| | | | | | (_| | | | | |_) | | __/ | (_| | |_ _| + \___| \__,_| |_| |_| \__,_| |_| |_.__/ \___| \__,_| |_||_| + + _ + | | ___ __ __ + | | / _ \ \ \ / / + | | | __/ \ V / + |_| \___| \_/ + diff --git a/tests/res016.txt b/tests/res016.txt new file mode 100644 index 0000000..cf70546 --- /dev/null +++ b/tests/res016.txt @@ -0,0 +1,152 @@ + ___ _ _ __ + / (_) | | | | \ \ + / / _ ___ ___| |__ | | __\ \ + < < | |/ _ \/ __| '_ \| |/ / > > + \ \| | (_) \__ | | | | < / / + \_| |\___/|___|_| |_|_|\_/_/ + _/ | + |__/ + _ _ _ _ __ _ __ _ + (_) | | | | ____ (_) / _| | _ / / | | + _ ___ ___| |__ | | __/ __ \ _ _ __ | |_| |_ ___ _(_) / ___| |_ ___ + | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| _| | | | \ \/ / / / _ | __/ __| + | | (_) \__ | | | | | | (_| | | | | | | | | |_| |> < _ / | __| || (__ + | |\___/|___|_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_/_/ \___|\__\___| + _/ | \____/ + |__/ + ___ _ _ ___ _ + / | | | | | | | \ \ | | + / /| | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| |\ \ ___| |__ + / / | |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` | > / __| '_ \ + / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ /\__ | | | | + /_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_\__,_/_/ |___|_| |_| + __/ | + |___/ + _ + /\| |/\ + ______ _ __ \ ` ' / + |______| '_ \|_ _| + | | | |/ , . \ + |_| |_|\/|_|\/ + + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___(_) + < < | |/ _ \/ __| '_ \| |/ / > >/ _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ | | | | < / /| (_| | |_) | (_| | (__| | | | __/_ + \_| |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ _ + | (_) /_ | || | _ | | + | |_ _ __ ___ | | || |(_)___ _ _ _ __ | |_ __ ___ __ + | | | '_ \ / _ \| |__ _|/ __| | | | '_ \| __/ _` \ \/ / + | | | | | | __/| | | | _\__ | |_| | | | | || (_| |> < + |_|_|_| |_|\___||_| |_|(_|___/\__, |_| |_|\__\__,_/_/\_\ + __/ | + |___/ + + + ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ + / _ | '__| '__/ _ \| '__| '_ \ / _ \/ _` | '__| + | __| | | | | (_) | | | | | | __| (_| | | + \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| + + + _ _ _ _ + | | | | | | | + _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | |_ ___ | | _____ _ __ + | | | | '_ \ / _ \ \/ | '_ \ / _ \/ __| __/ _ \/ _` | __/ _ \| |/ / _ | '_ \ + | |_| | | | | __/> <| |_) | __| (__| || __| (_| | || (_) | | __| | | | + \__,_|_| |_|\___/_/\_| .__/ \___|\___|\__\___|\__,_|\__\___/|_|\_\___|_| |_| + | | + |_| + ___ _ + ( \ \( ) + \|| |/ + \ \ + / / + | | + /_/ + + ___ _ _ __ _ + / (_) | | | | \ \ | | _ + / / _ ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___(_) + < < | |/ _ \/ __| '_ \| |/ / > >/ _` | '_ \ / _` |/ __| '_ \ / _ \ + \ \| | (_) \__ | | | | < / /| (_| | |_) | (_| | (__| | | | __/_ + \_| |\___/|___|_| |_|_|\_/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) + _/ | | | + |__/ |_| + _ _ __ _ _ ___ _ + | (_) /_ | || | _( \ \( ) + | |_ _ __ ___ | | || |(_)\|| |/ + | | | '_ \ / _ \| |__ _| \ \ + | | | | | | __/| | | | _ / / + |_|_|_| |_|\___||_| |_|(_) | | + /_/ + + ___ _ _ __ _ _ _ _ + / (_) | | | | \ \ | | | | | | | | + / / _ ___ ___| |__ | | __\ \| |_| |__ ___ _ __ | | ___ | |_ + < < | |/ _ \/ __| '_ \| |/ / > | __| '_ \ / _ | '_ \| |/ _ \| __| + \ \| | (_) \__ | | | | < / /| |_| | | | __| |_) | | (_) | |_ + \_| |\___/|___|_| |_|_|\_/_/ \__|_| |_|\___| .__/|_|\___/ \__| + _/ | | | + |__/ |_| + _ _ _ _ + | | | | (_) | | + | |_| |__ _ ___| | _____ _ __ ___ + | __| '_ \| |/ __| |/ / _ | '_ \/ __| + | |_| | | | | (__| | __| | | \__ \ + \__|_| |_|_|\___|_|\_\___|_| |_|___/ + + + __ __ __ _ _ ___ _ _ + / / / _|/ _(_) | | | \ \ | | | | + / / __ _ ___ _ _| |_| |_ _ ___| | __| |\ \| |_| |__ ___ ___ ___ + < < / _` / __| | | | _| _| |/ _ | |/ _` | > | __| '_ \ / _ \/ __|/ _ \ + \ | (_| \__ | |_| | | | | | | __| | (_| |/ /| |_| | | | (_) \__ | __/ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| + + + _ _ _ _ _ _ _ + ( | | | | | | | (_) | | + __ _ _ __ ___ _ __|/| |_ ___| |__ ___| | |___ ___ _ __ _ _ __ | |_ ___ + / _` | '__/ _ | '_ \ | __/ __| '_ \ / _ | | / __|/ __| '__| | '_ \| __/ __| + | (_| | | | __| | | || |_\__ | | | | __| | \__ | (__| | | | |_) | |_\__ \ + \__,_|_| \___|_| |_| \__|___|_| |_|\___|_|_|___/\___|_| |_| .__/ \__|___/ + | | + |_| + __ _ _ __ _ _ _ _ _ + / / (_) | | \ \ | | | | (_) ( | | + / / ___ _ __ _ ___| |__ \ \| |_| |__ _ _____ ____ _ ___ _ __|/| |_ + < < / _ | '__| |/ __| '_ \ > | __| '_ \| / __\ \ /\ / / _` / __| '_ \ | __| + \ | __| | | | (__| | | |/ /| |_| | | | \__ \\ V V | (_| \__ | | | || |_ + \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___|_| |_| \__| + + + _ _ _ + | | (_) | | + ___| |__ _ ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ | '_ \ + | (__| | | | | (__| | __| | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + + _ + (_) + ______ ______ _ _ __ + |______|______| | '_ \ + | | | | | + |_|_| |_| + + + _ _ _ _ _ _ _ + _| || |_ | | | | (_) | | | | + |_ __ _| __| | ___| |__ _ __ _ _ __ ______ __| | _____ _____| | + _| || |_ / _` |/ _ | '_ \| |/ _` | '_ |______/ _` |/ _ \ \ / / _ | | + |_ __ _| (_| | __| |_) | | (_| | | | | | (_| | __/\ V | __| | + |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + + diff --git a/tests/res017.txt b/tests/res017.txt new file mode 100644 index 0000000..3296f8c --- /dev/null +++ b/tests/res017.txt @@ -0,0 +1,36 @@ + ┛┏━┃┏━┛┃ ┃┃ ┃ + ┃┃ ┃━━┃┏━┃┏┛ + <━┛━━┛━━┛┛ ┛┛ ┛> + ┛┏━┃┏━┛┃ ┃┃ ┃┏━┃┛┏━ ┏━┛┃ ┃ ┃┃ ┃ ┛┏━┛━┏┛┏━┛ ┛┃ ┏━┃┏━┛┏━┃┏━┃━┏┛┏━┃━┏┛┏━┛ + ┃┃ ┃━━┃┏━┃┏┛ ┃┛┛┃┃ ┃┏━┛┃ ┃ ┃ ┛ ┛ ┛ ┏━┛ ┃ ┃ ┛ ┃ ┃ ┃┃ ┃┏┏┛┃ ┃ ┃ ┏━┃ ┃ ┏━┛ + ━┛━━┛━━┛┛ ┛┛ ┛━━┛┛┛ ┛┛ ━━┛━━┛┛ ┛┛┛ ━━┛ ┛ ━━┛┛ ━━┛━━┛━━┛┛ ┛━━┛ ┛ ┛ ┛ ┛ ━━┛┛ + ┏━ ┏━┛┃ ┃ ┏━ ┛ ┛ + ┃ ┃ ━━┃┏━┃ ━┛┃ ┃ ━┏┛ + ━━> ━━┛┛ ┛ ┛ ┛ ┛ ┛ + ┛┏━┃┏━┛┃ ┃┃ ┃ ┏━┃┏━┃┏━┃┏━┛┃ ┃┏━┛ ┃ ┛┏━ ┏━┛ ━┃┃ ┃ ┏━┛┃ ┃┏━━┏┛┏━┃┃ ┃ + ┃┃ ┃━━┃┏━┃┏┛ ┏━┃┏━┛┏━┃┃ ┏━┃┏━┛┛ ┃ ┃┃ ┃┏━┛ ┃━━┃┛ ━━┃━┏┛┃ ┃┃ ┏━┃ ┛ + <━┛━━┛━━┛┛ ┛┛ ┛> ┛ ┛┛ ┛ ┛━━┛┛ ┛━━┛┛ ━━┛┛┛ ┛━━┛ ━━┛ ┛┛ ━━┛ ┛ ┛ ┛┛ ┛ ┛┛ ┛ + ┏━┛┏━┃┏━┃┏━┃┏━┃ ┏━ ┏━┛┏━┃┏━┃ ┃ ┃┏━ ┏━┛┃ ┃┏━┃┏━┛┏━┛━┏┛┏━┛┏━ ━┏┛┏━┃┃ ┃┏━┛┏━ + ┏━┛┏┏┛┏┏┛┃ ┃┏┏┛ ┃ ┃┏━┛┏━┃┏┏┛ ┃ ┃┃ ┃┏━┛ ┛ ┏━┛┏━┛┃ ┃ ┏━┛┃ ┃ ┃ ┃ ┃┏┛ ┏━┛┃ ┃ + ━━┛┛ ┛┛ ┛━━┛┛ ┛ ┛ ┛━━┛┛ ┛┛ ┛ ━━┛┛ ┛━━┛┛ ┛┛ ━━┛━━┛ ┛ ━━┛━━ ┛ ━━┛┛ ┛━━┛┛ ┛ + ┛━┃┛ + ┛┏┛ + ━┛ + ┛┏━┃┏━┛┃ ┃┃ ┃ ┏━┃┏━┃┏━┃┏━┛┃ ┃┏━┛ ┃ ┛┏━ ┏━┛ ━┃┃ ┃ ┛━┃┛ + ┃┃ ┃━━┃┏━┃┏┛ ┏━┃┏━┛┏━┃┃ ┏━┃┏━┛┛ ┃ ┃┃ ┃┏━┛ ┃━━┃┛ ┛┏┛ + <━┛━━┛━━┛┛ ┛┛ ┛> ┛ ┛┛ ┛ ┛━━┛┛ ┛━━┛┛ ━━┛┛┛ ┛━━┛ ━━┛ ┛┛ ━┛ + ┛┏━┃┏━┛┃ ┃┃ ┃ ━┏┛┃ ┃┏━┛ ┏━┃┃ ┏━┃━┏┛ ━┏┛┃ ┃┛┏━┛┃ ┃┏━┛┏━ ┏━┛ + ┃┃ ┃━━┃┏━┃┏┛ ┃ ┏━┃┏━┛ ┏━┛┃ ┃ ┃ ┃ ┃ ┏━┃┃┃ ┏┛ ┏━┛┃ ┃━━┃ + <━┛━━┛━━┛┛ ┛┛ ┛> ┛ ┛ ┛━━┛ ┛ ━━┛━━┛ ┛ ┛ ┛ ┛┛━━┛┛ ┛━━┛┛ ┛━━┛ + ┏━┃┏━┛┃ ┃┏━┛┏━┛┛┏━┛┃ ┏━ ━┏┛┃ ┃┏━┃┏━┛┏━┛ ┏━┃┏━┃┏━┛┏━┛━┏┛ ┏━┛┃ ┃┏━┛┃ ┃ + ┏━┃━━┃┃ ┃┏━┛┏━┛┃┏━┛┃ ┃ ┃ ┃ ┏━┃┃ ┃━━┃┏━┛ ┏━┃┏┏┛┏━┛┃ ┃ ┃ ━━┃┏━┃┏━┛┃ ┃ + <┛ ┛━━┛━━┛┛ ┛ ┛━━┛━━┛━━> ┛ ┛ ┛━━┛━━┛━━┛ ┛ ┛┛ ┛━━┛┛ ┛ ┛ ━━┛┛ ┛━━┛━━┛━━┛ + ┏━┛┏━┛┏━┃┛┏━┃━┏┛┏━┛ + ━━┃┃ ┏┏┛┃┏━┛ ┃ ━━┃ + ━━┛━━┛┛ ┛┛┛ ┛ ━━┛ + ┏━┛┏━┃┛┏━┛┃ ┃ ━┏┛┃ ┃┛┏━┛ ┃┃┃┏━┃┏━┛┏━┛━┏┛ ┏━┛┃ ┃┛┏━┛┃ ┃┏━┛┏━ + ┏━┛┏┏┛┃┃ ┏━┃ ┃ ┏━┃┃━━┃ ┃┃┃┏━┃━━┃┃ ┃ ┃ ┃ ┏━┃┃┃ ┏┛ ┏━┛┃ ┃ + <━━┛┛ ┛┛━━┛┛ ┛> ┛ ┛ ┛┛━━┛ ━━┛┛ ┛━━┛┛ ┛ ┛ ━━┛┛ ┛┛━━┛┛ ┛━━┛┛ ┛┛ + ┛┏━ ┏━ ┏━┛┏━ ┛┏━┃┏━ ┏━ ┏━┛┃ ┃┏━┛┃ + ━┛━┛ ┃┃ ┃ ┃ ┃┏━┛┏━┃┃┏━┃┃ ┃━┛┃ ┃┏━┛┃ ┃┏━┛┃ + ┛┛ ┛ #━━ ━━┛━━ ┛┛ ┛┛ ┛ ━━ ━━┛ ┛ ━━┛━━┛ diff --git a/tests/res018.txt b/tests/res018.txt new file mode 100644 index 0000000..7551e08 --- /dev/null +++ b/tests/res018.txt @@ -0,0 +1,27 @@ + ┏━┏━┃ ┃ ┃ ┏━┏━┃ ┃ ┏━┃┛┏━┏━┃ ┃ ┃ ┃ ┏━━┏┏━┛ ┃ ┏━┏━┏━┏━━┏┏━━┏┏━┛ ┏━ ┏━┃ ┃┏━ + ┃ ━━┏━┏┛ ┃ ━━┏━┏┛┃┛┛┃┃ ┏━┃ ┃ ┃┛ ┛ ┛┏━┛┃┃ ┛┃ ┃ ┃ ┏┏┃ ┃┃┏━┃┃┏━┛ ┃ ┃━━┏━━┃ ┃ + <━━━━━┛ ┛ ┛>━━━━━┛ ┛ ━━┛┛┛ ┛ ━━━━┛ ┛┛┛ ━━┛┛━━┛ ━━━━━━┛ ━━┛┛┛ ┛┛━━┛┛━━>━━┛ ┛┛ ┛ + ┛ ┛ + ━┏┛ + ┛ ┛ + ┏━┏━┃ ┃ ┃ ┏━┏━┏━┏━┃ ┏━┛ ┃ ┛┏━┏━━┃ ┃ ┏━┃ ┏━┏┏━┃ ┏━┏━┏━┏━┏━┏━┏━┏━┏━┃ + ┃ ━━┏━┏┛ ┏━┏━┏━┃ ┏━┏━┛┛┃ ┃┃ ┏━┛━━┃┛━━━┏┃ ┃┏━┃┛┏━┏┏┏┏┃ ┏┏┃ ┏━┏━┏┏┛ + <━━━━━┛ ┛ ┛>┛ ┛ ┛ ━━┛ ━━┛┛━━┛┛┛ ━━━━┛┛┛━━┛┛┛ ┛┛ ┛ ━━┛ ┛ ━━┛ ┛ ━━┛ ┛ ┛ + ┃ ┏━┏━┃ ┏━┏━┏━━┏┏━┏━━┏┏━┃ ┏━┏━━┃┛ + ┃ ┃ ┏━┛┛┏━┏━┃ ┃┏━┃ ┃┃┃ ┏┛┏━┃ ┃┏┛ + ━━┛ ━━┛ ┛ ━━━━┛┛━━━━ ┛━━┛ ━━┛ ━┛ + ┏━┏━┃ ┃ ┃ ┏━┏━┏━┏━┃ ┏━┛ ┃ ┛┏━┏━━┃ ┃ ━┃┛ + ┃ ━━┏━┏┛ ┏━┏━┏━┃ ┏━┏━┛┛┃ ┃┃ ┏━┛━━┃┛ ┏┛ + <━━━━━┛ ┛ ┛>┛ ┛ ┛ ━━┛ ━━┛┛━━┛┛┛ ━━━━┛┛┛━┛ + ┏━┏━┃ ┃ ┃ ━┏┃ ┏━┏━┃ ┏━━┏━┏┃ ┃┛┏━┃ ┏━┏━┏━┛ + ┃ ━━┏━┏┛ ┃┏━┏━┏━┃ ┃ ┃┃ ┃┏━┃┃┃ ┏┛┏━┃ ━━┃ + <━━━━━┛ ┛ ┛> ┛┛ ━━┛ ━━━━┛┛ ┛┛ ┛┛━━┛ ━━┛ ━━┛ + ┏━┏━┃ ┏━┏━┛┛┏━┃ ┏━ ━┏┃ ┏━┏━┏━┏━┏━┏━┏━┛━┏┏━┃ ┏━┃ ┃ ┏━┏━┏━┃┛┏━━┏┏━┛ + ┏━━━┃ ┏━┏━┛┃┏━┃ ┃ ┃ ┃┏━┃ ━━┏━┏━┏┏┏━┃ ┃ ┃━━┏━┏━┃ ┃ ━━┃ ┏┏┛┃┏━┛┃━━┃ + <┛ ━━━━┛ ┛ ┛━━━━━━> ┛┛ ━━━━━━┛ ┛ ━━┛ ┛ ┛━━┛ ━━━━━━━━━━┛ ┛┛┛ ┛━━┛ + ┏━┏━┃┛┏━┃ ┃ ━┏┃ ┃┛┏━┃┃┏━┏━┏━┛━┏┏━┃ ┃┛┏━┃ ┏━┏━ + ┏━┏┏┛┃┃ ┏━┃ ┃┏━┃┃━━┃┃┏━━━┃ ┃ ┃┃ ┏━┃┃┃ ┏┛┏━┃ ┃ + <━━┛ ┛┛━━┛ ┛> ┛┛ ┛┛━━━━┛ ━━┛ ┛ ┛━━┛ ┛┛━━┛ ━━┛ ┛┛ + ┛┏━ ┏━┏━┏━ ┛┏━┏━ ┏━┏━┃ ┏━┃ + ━━┛┃┃ ┃ ┃ ┏━┏━┃┃┏━┃ ━┃ ┏━┃ ┏━┃ + ┛┛ ┛#━━━━━━ ┛┛ ┛ ┛━━━━┛┛━━━━┛ diff --git a/tests/res019.txt b/tests/res019.txt new file mode 100644 index 0000000..b1c4ee3 --- /dev/null +++ b/tests/res019.txt @@ -0,0 +1,36 @@ + ┃ ┃┃ ┃┏━┛┏━┃ ┛ + ┏┛ ┏━┃━━┃┃ ┃ ┃ +>┛ ┛┛ ┛━━┛━━┛━┛< + ┏━┛━┏┛┏━┃━┏┛┏━┃┏━┃┏━┛┏━┃┃ ┛┏━┛━┏┛┏━┛ ┛ ┃ ┃┃ ┃┃ ┏━┛┏━ ┛┏━┃┃ ┃┃ ┃┏━┛┏━┃ ┛ + ┏━┛ ┃ ┏━┃ ┃ ┃ ┃┏┏┛┃ ┃┃ ┃┃ ┛ ┃ ┃ ┏━┛ ┛ ┛ ┛ ┃ ┃┃ ┏━┛┃ ┃┃┃┛┛┏┛ ┏━┃━━┃┃ ┃ ┃ +┛━━┛ ┛ ┛ ┛ ┛ ━━┛┛ ┛━━┛━━┛━━┛┛ ━━┛ ┛ ━━┛┛ ┛┛ ┛━━┛━━┛┛ ┛ ┛┛━━┛┛ ┛┛ ┛━━┛━━┛━┛ +┛ ┛ ┏━ ┃ ┃┏━┛ ┏━ +━┏┛ ┃ ┃━┛ ┏━┃━━┃ ┃ ┃ +┛ ┛ ┛ ┛ ┛ ┛━━┛ >━━ +┃ ┃┏━┃━┏┛┏━ ┃ ┃┏━┛ ┃ ┃━┃ ┏━┛┏━ ┛┃ ┏━┛┃ ┃┏━┛┏━┃┏━┃┏━┃ ┃ ┃┃ ┃┏━┛┏━┃ ┛ + ┛ ┏━┃ ┃ ┃ ┃━┏┛━━┃ ┛━━┃ ┃ ┏━┛┃ ┃┃┃ ┛┏━┛┏━┃┃ ┏━┃┏━┛┏━┃ ┏┛ ┏━┃━━┃┃ ┃ ┃ +┛ ┛┛ ┛ ┛ ┛ ┛ ┛ ━━┛ ┛ ┛━━┛ ━━┛┛ ┛┛━━┛ ┛━━┛┛ ┛━━┛┛ ┛┛ ┛ ┛ >┛ ┛┛ ┛━━┛━━┛━┛< +┏━ ┏━┛┃ ┃┏━┃━┏┛ ┏━ ┏━┛━┏┛┏━┛┏━┛┏━┃┃ ┃┏━┛┏━ ┃ ┃ ┏━┃┏━┃┏━┛┏━ ┏━┃┏━┃┏━┃┏━┃┏━┛ +┃ ┃┏━┛┏┛ ┃ ┃ ┃ ┃ ┃┏━┛ ┃ ┃ ┏━┛┏━┛ ┛ ┏━┛┃ ┃┃ ┃ ┏┏┛┏━┃┏━┛┃ ┃ ┏┏┛┃ ┃┏┏┛┏┏┛┏━┛ +┛ ┛━━┛┛ ┛━━┛ ┛ ━━ ━━┛ ┛ ━━┛━━┛┛ ┛ ┛━━┛┛ ┛━━┛ ┛ ┛┛ ┛━━┛┛ ┛ ┛ ┛━━┛┛ ┛┛ ┛━━┛ +┛━┃ ┛ + ┏┛ ┛ + ━┛ +┛━┃ ┛ ┃ ┃━┃ ┏━┛┏━ ┛┃ ┏━┛┃ ┃┏━┛┏━┃┏━┃┏━┃ ┃ ┃┃ ┃┏━┛┏━┃ ┛ + ┏┛ ┛ ┛━━┃ ┃ ┏━┛┃ ┃┃┃ ┛┏━┛┏━┃┃ ┏━┃┏━┛┏━┃ ┏┛ ┏━┃━━┃┃ ┃ ┃ + ━┛ ┛ ┛━━┛ ━━┛┛ ┛┛━━┛ ┛━━┛┛ ┛━━┛┛ ┛┛ ┛ ┛ >┛ ┛┛ ┛━━┛━━┛━┛< +┏━┛┏━ ┏━┛┃ ┃┏━┛┛┃ ┃━┏┛ ━┏┛┏━┃┃ ┏━┃ ┏━┛┃ ┃━┏┛ ┃ ┃┃ ┃┏━┛┏━┃ ┛ +━━┃┃ ┃┏━┛┏┛ ┃ ┃┏━┃ ┃ ┃ ┃ ┃┃ ┏━┛ ┏━┛┏━┃ ┃ ┏┛ ┏━┃━━┃┃ ┃ ┃ +━━┛┛ ┛━━┛┛ ┛━━┛┛┛ ┛ ┛ ┛ ━━┛━━┛┛ ━━┛┛ ┛ ┛ >┛ ┛┛ ┛━━┛━━┛━┛< +┃ ┃ ┏━┛┃ ┃┏━┛ ━┏┛┛┏━ ┏━┛┏━┃┏━┃ ┏━┛┏━┛┏━┃┃ ┃━┏┛ ┏━ ┃ ┏━┛┛┏━┛┏━┛┃ ┃┏━┛┏━┃ +┃ ┃ ┏━┛┏━┃━━┃ ┃ ┃ ┃┏━┛┏┏┛┏━┃ ┏━┛━━┃┃ ┃┏━┃ ┃ ┃ ┃┃ ┏━┛┃┏━┛┏━┛┃ ┃━━┃┏━┃ +━━┛━━┛━━┛┛ ┛━━┛ ┛ ┛ ┛━━┛┛ ┛┛ ┛ ━━┛━━┛━━┛┛ ┛ ┛ >━━ ━━┛━━┛┛┛ ┛ ━━┛━━┛┛ ┛< +┏━┛━┏┛┏━┃┛┏━┃┏━┛┏━┛ +━━┃ ┃ ┏━┛┃┏┏┛┃ ━━┃ +━━┛ ┛ ┛ ┛┛ ┛━━┛━━┛ + ┏━ ┏━┛┃ ┃┏━┛┛┃ ┃┏━┛ ━┏┛┛┏━ ┏━┛┏━┃┃┃┃ ┏━┛┛┃ ┃━┏┛ ┃ ┃┏━┛┛┏━┃┏━┛ + ┃ ┃┏━┛┏┛ ┃ ┃┏━┃┃ ┃ ┃ ┃━━┃┏━┃┃┃┃ ━━┃┃┏━┃ ┃ ┏━┃┃ ┃┏┏┛┏━┛ +┛┛ ┛━━┛┛ ┛━━┛┛┛ ┛━━┛ ┛ ┛ ┛━━┛┛ ┛━━┛ ━━┛┛┛ ┛ ┛ >┛ ┛━━┛┛┛ ┛━━┛< +┃ ┏━┛┃ ┃┏━┛┏━ ┏━ ┏━┃┛┏━ ┏━┛┏━ ┏━ ┛ +┃ ┏━┛┃ ┃┏━┛┃ ┃━┛┃ ┃┏━┃┃┏━┃┏━┛┃ ┃ ┃ ┃┃ ━┛━┛ +━━┛━━┛ ┛ ━━┛━━ ┛ ┛┛ ┛┛━━ ━━┛━━ # ┛ ┛┛ diff --git a/tests/res020.txt b/tests/res020.txt new file mode 100644 index 0000000..4de016c --- /dev/null +++ b/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/tests/res021.txt b/tests/res021.txt new file mode 100644 index 0000000..b083225 --- /dev/null +++ b/tests/res021.txt @@ -0,0 +1,36 @@ + __ _ _ _ __ _ _ _ ____ _ __ _ __ _ ___ _ _ ___ _ __ _ _ _ __ + / /(_) ___ ___| |__ | | __\ \ (_) ___ ___| |__ | | __/ __ \(_)_ __ / _| |_ ___ ___ / /__| |_ ___ / / | ___ __ _ _ __ ___ | |_ __ _| |_ ___ __| \ \ ___| |__ _ __ __/\__ / /(_) ___ ___| |__ | | __\ \ +/ / | |/ _ \/ __| '_ \| |/ / \ \ | |/ _ \/ __| '_ \| |/ / / _` | | '_ \| |_| | | | \ \/ (_) / / _ \ __/ __| / /| |/ _ \ / _` | '__/ _ \| __/ _` | __/ _ \ / _` |\ \ / __| '_ \ _____| '_ \ \ / / / | |/ _ \/ __| '_ \| |/ / \ \ +\ \ | | (_) \__ \ | | | < / / | | (_) \__ \ | | | < | (_| | | | | | _| | |_| |> < _ / / __/ || (__ / / | | (_) | (_| | | | (_) | || (_| | || __/| (_| |/ / \__ \ | | | |_____| | | | /_ _\ \ \ | | (_) \__ \ | | | < / / + \_\/ |\___/|___/_| |_|_|\_\/_/ _/ |\___/|___/_| |_|_|\_\ \__,_|_|_| |_|_| |_|\__,_/_/\_(_)_/ \___|\__\___/_/ |_|\___/ \__, |_| \___/ \__\__,_|\__\___(_)__,_/_/ |___/_| |_| |_| |_| \/ \_\/ |\___/|___/_| |_|_|\_\/_/ + |__/ |__/ \____/ |___/ |__/ + _ _ _ _ _ _ _ _ _ _ _ ___ _ + __ _ _ __ __ _ ___| |__ ___ _ | (_)_ __ ___ / | || | _ ___ _ _ _ __ | |_ __ ___ __ ___ _ __ _ __ ___ _ __ _ __ ___ __ _ _ __ _ _ _ __ _____ ___ __ ___ ___| |_ ___ __| | | |_ ___ | | _____ _ __ ( ) \ ( ) + / _` | '_ \ / _` |/ __| '_ \ / _ (_) | | | '_ \ / _ \ | | || |(_) / __| | | | '_ \| __/ _` \ \/ / / _ \ '__| '__/ _ \| '__| | '_ \ / _ \/ _` | '__| | | | | '_ \ / _ \ \/ / '_ \ / _ \/ __| __/ _ \/ _` | | __/ _ \| |/ / _ \ '_ \ \|| ||/ +| (_| | |_) | (_| | (__| | | | __/_ | | | | | | __/ | |__ _| \__ \ |_| | | | | || (_| |> < | __/ | | | | (_) | | | | | | __/ (_| | | | |_| | | | | __/> <| |_) | __/ (__| || __/ (_| | | || (_) | < __/ | | | > > + \__,_| .__/ \__,_|\___|_| |_|\___(_) |_|_|_| |_|\___| |_| |_|(_) |___/\__, |_| |_|\__\__,_/_/\_\ \___|_| |_| \___/|_| |_| |_|\___|\__,_|_| \__,_|_| |_|\___/_/\_\ .__/ \___|\___|\__\___|\__,_| \__\___/|_|\_\___|_| |_| | | + |_| |___/ |_| /_/ + __ _ _ _ __ _ _ _ _ _ _ ___ _ __ _ _ _ __ _ _ _ _ _ _ _ _ + / /(_) ___ ___| |__ | | __\ \ __ _ _ __ __ _ ___| |__ ___ _ | (_)_ __ ___ / | || | _ ( ) \ ( ) / /(_) ___ ___| |__ | | __\ \ | |_| |__ ___ _ __ | | ___ | |_ | |_| |__ (_) ___| | _____ _ __ ___ +/ / | |/ _ \/ __| '_ \| |/ / \ \ / _` | '_ \ / _` |/ __| '_ \ / _ (_) | | | '_ \ / _ \ | | || |(_) \|| ||/ / / | |/ _ \/ __| '_ \| |/ / \ \ | __| '_ \ / _ \ | '_ \| |/ _ \| __| | __| '_ \| |/ __| |/ / _ \ '_ \/ __| +\ \ | | (_) \__ \ | | | < / / | (_| | |_) | (_| | (__| | | | __/_ | | | | | | __/ | |__ _| > > \ \ | | (_) \__ \ | | | < / / | |_| | | | __/ | |_) | | (_) | |_ | |_| | | | | (__| < __/ | | \__ \ + \_\/ |\___/|___/_| |_|_|\_\/_/ \__,_| .__/ \__,_|\___|_| |_|\___(_) |_|_|_| |_|\___| |_| |_|(_) | | \_\/ |\___/|___/_| |_|_|\_\/_/ \__|_| |_|\___| | .__/|_|\___/ \__| \__|_| |_|_|\___|_|\_\___|_| |_|___/ + |__/ |_| /_/ |__/ |_| + __ __ __ _ _ ___ _ _ _ _ _ _ _ _ _ __ _ _ __ _ _ _ _ _ + / /__ _ ___ _ _ / _|/ _(_) ___| | __| \ \ | |_| |__ ___ ___ ___ __ _ _ __ ___ _ __ ( ) |_ ___| |__ ___| | | ___ ___ _ __(_)_ __ | |_ ___ / /___ _ __(_) ___| |__ \ \ | |_| |__ (_)___ __ ____ _ ___ _ __ ( ) |_ +/ // _` / __| | | | |_| |_| |/ _ \ |/ _` |\ \ | __| '_ \ / _ \/ __|/ _ \ / _` | '__/ _ \ '_ \|/| __| / __| '_ \ / _ \ | | / __|/ __| '__| | '_ \| __/ __| / // _ \ '__| |/ __| '_ \ \ \ | __| '_ \| / __| \ \ /\ / / _` / __| '_ \|/| __| +\ \ (_| \__ \ |_| | _| _| | __/ | (_| |/ / | |_| | | | (_) \__ \ __/ | (_| | | | __/ | | | | |_ \__ \ | | | __/ | | \__ \ (__| | | | |_) | |_\__ \ \ \ __/ | | | (__| | | |/ / | |_| | | | \__ \ \ V V / (_| \__ \ | | | | |_ + \_\__,_|___/\__,_|_| |_| |_|\___|_|\__,_/_/ \__|_| |_|\___/|___/\___| \__,_|_| \___|_| |_| \__| |___/_| |_|\___|_|_| |___/\___|_| |_| .__/ \__|___/ \_\___|_| |_|\___|_| |_/_/ \__|_| |_|_|___/ \_/\_/ \__,_|___/_| |_| \__| + |_| + _ _ _ + ___| |__ (_) ___| | _____ _ __ + / __| '_ \| |/ __| |/ / _ \ '_ \ +| (__| | | | | (__| < __/ | | |_ + \___|_| |_|_|\___|_|\_\___|_| |_(_) + + _ _ _ _ _ _ _ _ + (_)_ __ _| || |_ __| | ___| |__ (_) __ _ _ __ __| | _____ _____| | + _____ _____ | | '_ \ |_ .. _|/ _` |/ _ \ '_ \| |/ _` | '_ \ _____ / _` |/ _ \ \ / / _ \ | + |_____|_____| | | | | | |_ _| (_| | __/ |_) | | (_| | | | |_____| (_| | __/\ V / __/ | + |_|_| |_| |_||_| \__,_|\___|_.__/|_|\__,_|_| |_| \__,_|\___| \_/ \___|_| + diff --git a/tests/res022.txt b/tests/res022.txt new file mode 100644 index 0000000..fb6147b --- /dev/null +++ b/tests/res022.txt @@ -0,0 +1,1314 @@ + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + + + / + / + | | + \ + \ + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + _ + / + | | + | + |_| + + _ +| | +| | +| | +|_| + + + _ + | | + | | + \_ + + + __ + \ \ + > + /_/ + + + _ +(_) + _ +(_) + + + + / + / + /_/ + + + _ + / + | + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + + + / + / + /_/ + + _ +| | +| | +| | +|_| + + + _ + / + | ( + \_ + + + _ + / + | ( + \_ + |_ + + _ + | ' + | | + |_| + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | + \_ + + + + + _ +(_) + + + _ + / + | ( + \_ + +__ +\ \ + \ \ + / / +/_/ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + + + __ + |__ + + + + _ + | ' + | | + |_| + + + __/ + \ + /_ + \ + + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + + _ + / + | ( + \_ + + + _ + | ' + | | + | . + |_| + + _ + / + | ( + \_ + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + + _ +(_) + _ +(_) + + _ +| | +| | +| | +|_| + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + _ +/ | +| | +| | +|_| + + _ + | | + | | + |__ + + + + _ +(_) + _ +(_) + + + __ + / _ + \__ + |__ + + + _ + | | + | | + \_ + |_ + + _ + | ' + | | + |_| + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + + __ + \ \ + > + /_/ + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + + _ + | ' + | | + |_| + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + _ + | | + | | + \_ + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + + __ + \ \ + > + /_/ + + + _ + | ' + | | + | . + |_| + + _ + / + | + \_ + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | + \_ + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + _ + | | + | | + | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + _ +( ) + \| + + + + __ + \ \ + | + > + | + /_/ + _ +( ) +|/ + + + + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + + _ + / + | ( + \_ + + + _ + | ' + | | + | . + |_| + + _ + / + | ( + \_ + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + + _ +(_) + _ +(_) + + _ +| | +| | +| | +|_| + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + _ +/ | +| | +| | +|_| + + _ + | | + | | + |__ + + + + _ +(_) + _ +(_) + + _ +( ) + \| + + + + __ + \ \ + | + > + | + /_/ + _ +( ) +|/ + + + + __ + / / +/ / +\ \ + \_\ + + + ( + | + | + _/ + |__ + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + _ + | | + | | + | + |_| + +__ +\ \ + \ \ + / / +/_/ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + | . + |_| + _ +| | +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | _ + | | + \_ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | | + | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + + __ + / _ + \__ + |__ + + __ + / / +/ / +\ \ + \_\ + + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + + _ + | | + | | + \_ + + _ + / + | | + | + |_| + + _ + / + | | + | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | + \_ + + _ +| | +| | +| | +|_| + + + _ + / + | ( + \_ + +__ +\ \ + \ \ + / / +/_/ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + + _ + / + | + \_ + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + _ +( ) +|/ + + + + _ + | | + | _ + | | + \_ + + + __ + / _ + \__ + |__ + + _ + | | + | ' + | | + |_| + + + _ + / + | + \_ + + _ +| | +| | +| | +|_| + + _ +| | +| | +| | +|_| + + + __ + / _ + \__ + |__ + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + | . + |_| + _ + | | + | _ + | | + \_ + + + __ + / _ + \__ + |__ + + __ + / / +/ / +\ \ + \_\ + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + +__ +\ \ + \ \ + / / +/_/ + + _ + | | + | _ + | | + \_ + + _ + | | + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + __ + / _ + \__ + |__ + + + __ + \ \ + \ + \ + + + _ + / + | ( + \_ + + + __ + / _ + \__ + |__ + + + _ + | ' + | | + |_| + + _ +( ) +|/ + + + + _ + | | + | _ + | | + \_ + + + _ + / + | ( + \_ + + _ + | | + | ' + | | + |_| + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + _ + | | + | | + | + |_| + + + _ + / + | + \_ + + + _ + | ' + | | + |_| + + + + + _ +(_) + + + + + + + + + + __ + |__ + + + + + __ + |__ + + + _ +(_) +| | +| | +|_| + + + _ + | ' + | | + |_| + + + _| + |_ + |_ + | + + + _ + / + | ( + \_ + + + _ + / + | + \_ + + _ + | | + | ' + | | + |_. + + _ +(_) +| | +| | +|_| + + + _ + / + | ( + \_ + + + _ + | ' + | | + |_| + + + + __ + |__ + + + + _ + / + | ( + \_ + + + _ + / + | + \_ + + + __ + \ \ + \ + \ + + + _ + / + | + \_ + + _ +| | +| | +| | +|_| + diff --git a/tests/res023.txt b/tests/res023.txt new file mode 100644 index 0000000..d4d7a71 --- /dev/null +++ b/tests/res023.txt @@ -0,0 +1,90 @@ + __ _ _ _ __ + / / (_) ___ ___| |_ | |__\ \ + < < | |/ _ \(_-<| ' \ | / / > > + \_\_/ |\___//__/|_||_||_\_\/_/ + |__/ + _ _ _ ____ _ __ _ _ __ _ + (_) ___ ___| |_ | |__ / __ \ (_) _ _ / _|| | _ _ __ __(_) / /___ | |_ + | |/ _ \(_-<| ' \ | / // / _` || || ' \ | _|| || || |\ \ / _ / // -_)| _| + _/ |\___//__/|_||_||_\_\\ \__,_||_||_||_||_| |_| \_,_|/_\_\(_)/_/ \___| \__| + |__/ \____/ + __ _ _ _ _ __ _ + __ / /| | ___ __ _ _ _ ___ | |_ __ _ | |_ ___ __| |\ \ ___| |_ + / _| / / | |/ _ \/ _` || '_|/ _ \| _|/ _` || _|/ -_) _ / _` | > > (_-<| ' \ + \__|/_/ |_|\___/\__, ||_| \___/ \__|\__,_| \__|\___|(_)\__,_|/_/ /__/|_||_| + |___/ + __ _ _ _ __ + ___ _ _ _/\_ / / (_) ___ ___| |_ | |__\ \ + |___|| ' \ > < < < | |/ _ \(_-<| ' \ | / / > > + |_||_| \/ \_\_/ |\___//__/|_||_||_\_\/_/ + |__/ + _ _ _ _ _ _ _ _ + __ _ _ __ __ _ __ | |_ ___ (_) | |(_) _ _ ___ / || | |(_) + / _` || '_ \/ _` |/ _|| ' \ / -_) _ | || || ' \ / -_) | ||_ _|_ + \__,_|| .__/\__,_|\__||_||_|\___|(_) |_||_||_||_|\___| |_| |_|(_) + |_| + _ + ___ _ _ _ _ | |_ __ _ __ __ ___ _ _ _ _ ___ _ _ + (_-<| || || ' \| _|/ _` |\ \ / / -_)| '_|| '_|/ _ \| '_| + /__/ \_, ||_||_|\__|\__,_|/_\_\ \___||_| |_| \___/|_| + |__/ + _ _ + _ _ ___ __ _ _ _ _ _ _ _ ___ __ __ _ __ ___ __ | |_ ___ __| | + | ' \ / -_)/ _` || '_| | || || ' \ / -_)\ \ /| '_ \/ -_)/ _|| _|/ -_)/ _` | + |_||_|\___|\__,_||_| \_,_||_||_|\___|/_\_\| .__/\___|\__| \__|\___|\__,_| + |_| + _ _ _ __ _ __ _ _ _ __ + | |_ ___ | |__ ___ _ _ ( )\ \ ( ) / / (_) ___ ___| |_ | |__\ \ + | _|/ _ \| / // -_)| ' \ \| | |_|/ < < | |/ _ \(_-<| ' \ | / / > > + \__|\___/|_\_\\___||_||_| | | \_\_/ |\___//__/|_||_||_\_\/_/ + /_/ |__/ + _ _ _ _ _ _ _ _ _ __ _ + __ _ _ __ __ _ __ | |_ ___ (_) | |(_) _ _ ___ / || | |(_) ( )\ \ ( ) + / _` || '_ \/ _` |/ _|| ' \ / -_) _ | || || ' \ / -_) | ||_ _|_ \| | |_|/ + \__,_|| .__/\__,_|\__||_||_|\___|(_) |_||_||_||_|\___| |_| |_|(_) | | + |_| /_/ + __ _ _ _ __ _ _ _ _ + / / (_) ___ ___| |_ | |__\ \ | |_ | |_ ___ _ __ | | ___ | |_ + < < | |/ _ \(_-<| ' \ | / / > > | _|| ' \ / -_) | '_ \| |/ _ \| _| + \_\_/ |\___//__/|_||_||_\_\/_/ \__||_||_|\___| | .__/|_|\___/ \__| + |__/ |_| + _ _ _ _ + | |_ | |_ (_) __ | |__ ___ _ _ ___ + | _|| ' \ | |/ _|| / // -_)| ' \ (_-< + \__||_||_||_|\__||_\_\\___||_||_|/__/ + + __ __ __ _ _ _ __ _ _ + / / __ _ ___ _ _ / _| / _|(_) ___ | | __| |\ \ | |_ | |_ ___ ___ ___ + < < / _` |(_-<| || || _|| _|| |/ -_)| |/ _` | > > | _|| ' \ / _ \(_-</ -_) + \_\\__,_|/__/ \_,_||_| |_| |_|\___||_|\__,_|/_/ \__||_||_|\___//__/\___| + + _ _ _ _ _ + __ _ _ _ ___ _ _ ( )| |_ ___| |_ ___ | || | + / _` || '_|/ -_)| ' \|/ | _| (_-<| ' \ / -_)| || | + \__,_||_| \___||_||_| \__| /__/|_||_|\___||_||_| + + _ _ __ _ _ __ + ___ __ _ _ (_) _ __ | |_ ___ / / ___ _ _ (_) __ | |_ \ \ + (_-</ _|| '_|| || '_ \| _|(_-< < < / -_)| '_|| |/ _|| ' \ > > + /__/\__||_| |_|| .__/ \__|/__/ \_\\___||_| |_|\__||_||_|/_/ + |_| + _ _ _ _ _ + | |_ | |_ (_) ___ __ __ __ __ _ ___ _ _ ( )| |_ + | _|| ' \ | |(_-< \ V V // _` |(_-<| ' \|/ | _| + \__||_||_||_|/__/ \_/\_/ \__,_|/__/|_||_| \__| + + _ _ _ + __ | |_ (_) __ | |__ ___ _ _ + / _|| ' \ | |/ _|| / // -_)| ' \ _ + \__||_||_||_|\__||_\_\\___||_||_|(_) + + _ + ___ ___ (_) _ _ + |___||___| | || ' \ + |_||_||_| + + _ _ _ _ _ _ _ + _| | |_ __| | ___ | |__ (_) __ _ _ _ ___ __| | ___ __ __ ___ | | + |_ . _|/ _` |/ -_)| '_ \| |/ _` || ' \|___|/ _` |/ -_)\ V // -_)| | + |_ _|\__,_|\___||_.__/|_|\__,_||_||_| \__,_|\___| \_/ \___||_| + |_|_| diff --git a/tests/res024.txt b/tests/res024.txt new file mode 100644 index 0000000..8f1923c --- /dev/null +++ b/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 @@ -0,0 +1,326 @@ +#ifdef TLF_FONTS +/* + * Copyright (c) 2007 Alexey Vatchenko <av@bsdua.org> + * + * 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 <sys/types.h> + +#include <wchar.h> +#include <arpa/inet.h> /* 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 */ @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2007 Alexey Vatchenko <av@bsdua.org> + * + * 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 <sys/types.h> + +#include <wchar.h> + +#define UTF8_IGNORE_ERROR 0x01 +#define UTF8_SKIP_BOM 0x02 + +__BEGIN_DECLS + +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); + +__END_DECLS + +#endif /* !_UTF8_H_ */ |