xref: /original-bsd/usr.bin/banner/banner.c (revision 42f60e33)
1 /*
2  * Copyright (c) 1980, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  */
7 
8 #ifndef lint
9 static char copyright[] =
10 "@(#) Copyright (c) 1980, 1993\n\
11 	The Regents of the University of California.  All rights reserved.\n";
12 #endif /* not lint */
13 
14 #ifndef lint
15 static char sccsid[] = "@(#)banner.c	8.1 (Berkeley) 06/06/93";
16 #endif /* not lint */
17 
18 /*
19  * banner - prints large signs
20  * banner [-w#] [-d] [-t] message ...
21  */
22 
23 #include <stdio.h>
24 
25 #define MAXMSG 1024
26 #define DWIDTH 132
27 #define NCHARS 128
28 #define NBYTES 9271
29 
30 /* Pointers into data_table for each ASCII char */
31 int asc_ptr[NCHARS] = {
32 /* ^@ */   0,      0,      0,      0,      0,      0,      0,      0,
33 /* ^H */   0,      0,      0,      0,      0,      0,      0,      0,
34 /* ^P */   0,      0,      0,      0,      0,      0,      0,      0,
35 /* ^X */   0,      0,      0,      0,      0,      0,      0,      0,
36 /*    */   1,      3,     50,     81,    104,    281,    483,    590,
37 /*  ( */ 621,    685,    749,    851,    862,    893,    898,    921,
38 /*  0 */1019,   1150,   1200,   1419,   1599,   1744,   1934,   2111,
39 /*  8 */2235,   2445,   2622,   2659,      0,   2708,      0,   2715,
40 /*  @ */2857,   3072,   3273,   3403,   3560,   3662,   3730,   3785,
41 /*  H */3965,   4000,   4015,   4115,   4281,   4314,   4432,   4548,
42 /*  P */4709,   4790,   4999,   5188,   5397,   5448,   5576,   5710,
43 /*  X */5892,   6106,   6257,      0,      0,      0,      0,      0,
44 /*  ` */  50,   6503,   6642,   6733,   6837,   6930,   7073,   7157,
45 /*  h */7380,   7452,   7499,   7584,   7689,   7702,   7797,   7869,
46 /*  p */7978,   8069,   8160,   8222,   8381,   8442,   8508,   8605,
47 /*  x */8732,   8888,   9016,      0,      0,      0,      0,      0
48 };
49 
50 /*
51  * Table of stuff to print. Format:
52  * 128+n -> print current line n times.
53  * 64+n  -> this is last byte of char.
54  * else, put m chars at position n (where m
55  * is the next elt in array) and goto second
56  * next element in array.
57  */
58 char data_table[NBYTES] = {
59 /*             0     1     2     3     4     5     6     7     8     9 */
60 /*    0 */   129,  227,  130,   34,    6,   90,   19,  129,   32,   10,
61 /*   10 */    74,   40,  129,   31,   12,   64,   53,  129,   30,   14,
62 /*   20 */    54,   65,  129,   30,   14,   53,   67,  129,   30,   14,
63 /*   30 */    54,   65,  129,   31,   12,   64,   53,  129,   32,   10,
64 /*   40 */    74,   40,  129,   34,    6,   90,   19,  129,  194,  130,
65 /*   50 */    99,    9,  129,   97,   14,  129,   96,   18,  129,   95,
66 /*   60 */    22,  129,   95,   16,  117,    2,  129,   95,   14,  129,
67 /*   70 */    96,   11,  129,   97,    9,  129,   99,    6,  129,  194,
68 /*   80 */   129,   87,    4,  101,    4,  131,   82,   28,  131,   87,
69 /*   90 */     4,  101,    4,  133,   82,   28,  131,   87,    4,  101,
70 /*  100 */     4,  131,  193,  129,   39,    1,   84,   27,  129,   38,
71 /*  110 */     3,   81,   32,  129,   37,    5,   79,   35,  129,   36,
72 /*  120 */     5,   77,   38,  129,   35,    5,   76,   40,  129,   34,
73 /*  130 */     5,   75,   21,  103,   14,  129,   33,    5,   74,   19,
74 /*  140 */   107,   11,  129,   32,    5,   73,   17,  110,    9,  129,
75 /*  150 */    32,    4,   73,   16,  112,    7,  129,   31,    4,   72,
76 /*  160 */    15,  114,    6,  129,   31,    4,   72,   14,  115,    5,
77 /*  170 */   129,   30,    4,   71,   15,  116,    5,  129,   27,   97,
78 /*  180 */   131,   30,    4,   69,   14,  117,    4,  129,   30,    4,
79 /*  190 */    68,   15,  117,    4,  132,   30,    4,   68,   14,  117,
80 /*  200 */     4,  129,   27,   97,  131,   30,    5,   65,   15,  116,
81 /*  210 */     5,  129,   31,    4,   65,   14,  116,    4,  129,   31,
82 /*  220 */     6,   64,   15,  116,    4,  129,   32,    7,   62,   16,
83 /*  230 */   115,    4,  129,   32,    9,   61,   17,  114,    5,  129,
84 /*  240 */    33,   11,   58,   19,  113,    5,  129,   34,   14,   55,
85 /*  250 */    21,  112,    5,  129,   35,   40,  111,    5,  129,   36,
86 /*  260 */    38,  110,    5,  129,   37,   35,  109,    5,  129,   38,
87 /*  270 */    32,  110,    3,  129,   40,   27,  111,    1,  129,  193,
88 /*  280 */   129,   30,    4,  103,    9,  129,   30,    7,  100,   15,
89 /*  290 */   129,   30,   10,   99,   17,  129,   33,   10,   97,    6,
90 /*  300 */   112,    6,  129,   36,   10,   96,    5,  114,    5,  129,
91 /*  310 */    39,   10,   96,    4,  115,    4,  129,   42,   10,   95,
92 /*  320 */     4,  116,    4,  129,   45,   10,   95,    3,  117,    3,
93 /*  330 */   129,   48,   10,   95,    3,  117,    3,  129,   51,   10,
94 /*  340 */    95,    4,  116,    4,  129,   54,   10,   96,    4,  115,
95 /*  350 */     4,  129,   57,   10,   96,    5,  114,    5,  129,   60,
96 /*  360 */    10,   97,    6,  112,    6,  129,   63,   10,   99,   17,
97 /*  370 */   129,   66,   10,  100,   15,  129,   69,   10,  103,    9,
98 /*  380 */   129,   39,    9,   72,   10,  129,   36,   15,   75,   10,
99 /*  390 */   129,   35,   17,   78,   10,  129,   33,    6,   48,    6,
100 /*  400 */    81,   10,  129,   32,    5,   50,    5,   84,   10,  129,
101 /*  410 */    32,    4,   51,    4,   87,   10,  129,   31,    4,   52,
102 /*  420 */     4,   90,   10,  129,   31,    3,   53,    3,   93,   10,
103 /*  430 */   129,   31,    3,   53,    3,   96,   10,  129,   31,    4,
104 /*  440 */    52,    4,   99,   10,  129,   32,    4,   51,    4,  102,
105 /*  450 */    10,  129,   32,    5,   50,    5,  105,   10,  129,   33,
106 /*  460 */     6,   48,    6,  108,   10,  129,   35,   17,  111,   10,
107 /*  470 */   129,   36,   15,  114,    7,  129,   40,    9,  118,    4,
108 /*  480 */   129,  193,  129,   48,   18,  129,   43,   28,  129,   41,
109 /*  490 */    32,  129,   39,   36,  129,   37,   40,  129,   35,   44,
110 /*  500 */   129,   34,   46,  129,   33,   13,   68,   13,  129,   32,
111 /*  510 */     9,   73,    9,  129,   32,    7,   75,    7,  129,   31,
112 /*  520 */     6,   77,    6,  129,   31,    5,   78,    5,  129,   30,
113 /*  530 */     5,   79,    5,  129,   20,   74,  132,   30,    4,   80,
114 /*  540 */     4,  129,   31,    3,   79,    4,  129,   31,    4,   79,
115 /*  550 */     4,  129,   32,    3,   78,    4,  129,   32,    4,   76,
116 /*  560 */     6,  129,   33,    4,   74,    7,  129,   34,    4,   72,
117 /*  570 */     8,  129,   35,    5,   72,    7,  129,   37,    5,   73,
118 /*  580 */     4,  129,   39,    4,   74,    1,  129,  129,  193,  130,
119 /*  590 */   111,    6,  129,  109,   10,  129,  108,   12,  129,  107,
120 /*  600 */    14,  129,   97,    2,  105,   16,  129,   99,   22,  129,
121 /*  610 */   102,   18,  129,  105,   14,  129,  108,    9,  129,  194,
122 /*  620 */   130,   63,   25,  129,   57,   37,  129,   52,   47,  129,
123 /*  630 */    48,   55,  129,   44,   63,  129,   41,   69,  129,   38,
124 /*  640 */    75,  129,   36,   79,  129,   34,   83,  129,   33,   28,
125 /*  650 */    90,   28,  129,   32,   23,   96,   23,  129,   32,   17,
126 /*  660 */   102,   17,  129,   31,   13,  107,   13,  129,   30,    9,
127 /*  670 */   112,    9,  129,   30,    5,  116,    5,  129,   30,    1,
128 /*  680 */   120,    1,  129,  194,  130,   30,    1,  120,    1,  129,
129 /*  690 */    30,    5,  116,    5,  129,   30,    9,  112,    9,  129,
130 /*  700 */    31,   13,  107,   13,  129,   32,   17,  102,   17,  129,
131 /*  710 */    32,   23,   96,   23,  129,   33,   28,   90,   28,  129,
132 /*  720 */    34,   83,  129,   36,   79,  129,   38,   75,  129,   41,
133 /*  730 */    69,  129,   44,   63,  129,   48,   55,  129,   52,   47,
134 /*  740 */   129,   57,   37,  129,   63,   25,  129,  194,  129,   80,
135 /*  750 */     4,  130,   80,    4,  129,   68,    2,   80,    4,   94,
136 /*  760 */     2,  129,   66,    6,   80,    4,   92,    6,  129,   67,
137 /*  770 */     7,   80,    4,   90,    7,  129,   69,    7,   80,    4,
138 /*  780 */    88,    7,  129,   71,    6,   80,    4,   87,    6,  129,
139 /*  790 */    72,   20,  129,   74,   16,  129,   76,   12,  129,   62,
140 /*  800 */    40,  131,   76,   12,  129,   74,   16,  129,   72,   20,
141 /*  810 */   129,   71,    6,   80,    4,   87,    6,  129,   69,    7,
142 /*  820 */    80,    4,   88,    7,  129,   67,    7,   80,    4,   90,
143 /*  830 */     7,  129,   66,    6,   80,    4,   92,    6,  129,   68,
144 /*  840 */     2,   80,    4,   94,    2,  129,   80,    4,  130,  193,
145 /*  850 */   129,   60,    4,  139,   41,   42,  131,   60,    4,  139,
146 /*  860 */   193,  130,   34,    6,  129,   32,   10,  129,   31,   12,
147 /*  870 */   129,   30,   14,  129,   20,    2,   28,   16,  129,   22,
148 /*  880 */    22,  129,   24,   19,  129,   27,   15,  129,   31,    9,
149 /*  890 */   129,  194,  129,   60,    4,  152,  193,  130,   34,    6,
150 /*  900 */   129,   32,   10,  129,   31,   12,  129,   30,   14,  131,
151 /*  910 */    31,   12,  129,   32,   10,  129,   34,    6,  129,  194,
152 /*  920 */   129,   30,    4,  129,   30,    7,  129,   30,   10,  129,
153 /*  930 */    33,   10,  129,   36,   10,  129,   39,   10,  129,   42,
154 /*  940 */    10,  129,   45,   10,  129,   48,   10,  129,   51,   10,
155 /*  950 */   129,   54,   10,  129,   57,   10,  129,   60,   10,  129,
156 /*  960 */    63,   10,  129,   66,   10,  129,   69,   10,  129,   72,
157 /*  970 */    10,  129,   75,   10,  129,   78,   10,  129,   81,   10,
158 /*  980 */   129,   84,   10,  129,   87,   10,  129,   90,   10,  129,
159 /*  990 */    93,   10,  129,   96,   10,  129,   99,   10,  129,  102,
160 /* 1000 */    10,  129,  105,   10,  129,  108,   10,  129,  111,   10,
161 /* 1010 */   129,  114,    7,  129,  117,    4,  129,  193,  129,   60,
162 /* 1020 */    31,  129,   53,   45,  129,   49,   53,  129,   46,   59,
163 /* 1030 */   129,   43,   65,  129,   41,   69,  129,   39,   73,  129,
164 /* 1040 */    37,   77,  129,   36,   79,  129,   35,   15,  101,   15,
165 /* 1050 */   129,   34,   11,  106,   11,  129,   33,    9,  109,    9,
166 /* 1060 */   129,   32,    7,  112,    7,  129,   31,    6,  114,    6,
167 /* 1070 */   129,   31,    5,  115,    5,  129,   30,    5,  116,    5,
168 /* 1080 */   129,   30,    4,  117,    4,  132,   30,    5,  116,    5,
169 /* 1090 */   129,   31,    5,  115,    5,  129,   31,    6,  114,    6,
170 /* 1100 */   129,   32,    7,  112,    7,  129,   33,    9,  109,    9,
171 /* 1110 */   129,   34,   11,  106,   11,  129,   35,   15,  101,   15,
172 /* 1120 */   129,   36,   79,  129,   37,   77,  129,   39,   73,  129,
173 /* 1130 */    41,   69,  129,   43,   65,  129,   46,   59,  129,   49,
174 /* 1140 */    53,  129,   53,   45,  129,   60,   31,  129,  193,  129,
175 /* 1150 */    30,    4,  129,   30,    4,  100,    1,  129,   30,    4,
176 /* 1160 */   100,    3,  129,   30,    4,  100,    5,  129,   30,   76,
177 /* 1170 */   129,   30,   78,  129,   30,   80,  129,   30,   82,  129,
178 /* 1180 */    30,   83,  129,   30,   85,  129,   30,   87,  129,   30,
179 /* 1190 */    89,  129,   30,   91,  129,   30,    4,  132,  193,  129,
180 /* 1200 */    30,    3,  129,   30,    7,  129,   30,   10,  112,    1,
181 /* 1210 */   129,   30,   13,  112,    2,  129,   30,   16,  112,    3,
182 /* 1220 */   129,   30,   18,  111,    5,  129,   30,   21,  111,    6,
183 /* 1230 */   129,   30,   23,  112,    6,  129,   30,   14,   47,    8,
184 /* 1240 */   113,    6,  129,   30,   14,   49,    8,  114,    5,  129,
185 /* 1250 */    30,   14,   51,    8,  115,    5,  129,   30,   14,   53,
186 /* 1260 */     8,  116,    4,  129,   30,   14,   55,    8,  116,    5,
187 /* 1270 */   129,   30,   14,   56,    9,  117,    4,  129,   30,   14,
188 /* 1280 */    57,    9,  117,    4,  129,   30,   14,   58,   10,  117,
189 /* 1290 */     4,  129,   30,   14,   59,   10,  117,    4,  129,   30,
190 /* 1300 */    14,   60,   11,  117,    4,  129,   30,   14,   61,   11,
191 /* 1310 */   116,    5,  129,   30,   14,   62,   11,  116,    5,  129,
192 /* 1320 */    30,   14,   63,   12,  115,    6,  129,   30,   14,   64,
193 /* 1330 */    13,  114,    7,  129,   30,   14,   65,   13,  113,    8,
194 /* 1340 */   129,   30,   14,   65,   15,  111,    9,  129,   30,   14,
195 /* 1350 */    66,   16,  109,   11,  129,   30,   14,   67,   17,  107,
196 /* 1360 */    12,  129,   30,   14,   68,   20,  103,   16,  129,   30,
197 /* 1370 */    14,   69,   49,  129,   30,   14,   70,   47,  129,   30,
198 /* 1380 */    14,   71,   45,  129,   30,   14,   73,   42,  129,   30,
199 /* 1390 */    15,   75,   38,  129,   33,   12,   77,   34,  129,   36,
200 /* 1400 */    10,   79,   30,  129,   40,    6,   82,   23,  129,   44,
201 /* 1410 */     3,   86,   15,  129,   47,    1,  129,  193,  129,  129,
202 /* 1420 */    38,    3,  129,   37,    5,  111,    1,  129,   36,    7,
203 /* 1430 */   111,    2,  129,   35,    9,  110,    5,  129,   34,    8,
204 /* 1440 */   110,    6,  129,   33,    7,  109,    8,  129,   32,    7,
205 /* 1450 */   110,    8,  129,   32,    6,  112,    7,  129,   31,    6,
206 /* 1460 */   113,    6,  129,   31,    5,  114,    6,  129,   30,    5,
207 /* 1470 */   115,    5,  129,   30,    5,  116,    4,  129,   30,    4,
208 /* 1480 */   117,    4,  131,   30,    4,  117,    4,  129,   30,    4,
209 /* 1490 */    79,    2,  117,    4,  129,   30,    5,   78,    4,  117,
210 /* 1500 */     4,  129,   30,    5,   77,    6,  116,    5,  129,   30,
211 /* 1510 */     6,   76,    8,  115,    6,  129,   30,    7,   75,   11,
212 /* 1520 */   114,    6,  129,   30,    8,   73,   15,  112,    8,  129,
213 /* 1530 */    31,    9,   71,   19,  110,    9,  129,   31,   11,   68,
214 /* 1540 */    26,  107,   12,  129,   32,   13,   65,   14,   82,   36,
215 /* 1550 */   129,   32,   16,   61,   17,   83,   34,  129,   33,   44,
216 /* 1560 */    84,   32,  129,   34,   42,   85,   30,  129,   35,   40,
217 /* 1570 */    87,   27,  129,   36,   38,   89,   23,  129,   38,   34,
218 /* 1580 */    92,   17,  129,   40,   30,   95,   11,  129,   42,   26,
219 /* 1590 */   129,   45,   20,  129,   49,   11,  129,  193,  129,   49,
220 /* 1600 */     1,  129,   49,    4,  129,   49,    6,  129,   49,    8,
221 /* 1610 */   129,   49,   10,  129,   49,   12,  129,   49,   14,  129,
222 /* 1620 */    49,   17,  129,   49,   19,  129,   49,   21,  129,   49,
223 /* 1630 */    23,  129,   49,   14,   65,    9,  129,   49,   14,   67,
224 /* 1640 */     9,  129,   49,   14,   69,    9,  129,   49,   14,   71,
225 /* 1650 */    10,  129,   49,   14,   74,    9,  129,   49,   14,   76,
226 /* 1660 */     9,  129,   49,   14,   78,    9,  129,   49,   14,   80,
227 /* 1670 */     9,  129,   49,   14,   82,    9,  129,   49,   14,   84,
228 /* 1680 */     9,  129,   30,    4,   49,   14,   86,   10,  129,   30,
229 /* 1690 */     4,   49,   14,   89,    9,  129,   30,    4,   49,   14,
230 /* 1700 */    91,    9,  129,   30,    4,   49,   14,   93,    9,  129,
231 /* 1710 */    30,   74,  129,   30,   76,  129,   30,   78,  129,   30,
232 /* 1720 */    81,  129,   30,   83,  129,   30,   85,  129,   30,   87,
233 /* 1730 */   129,   30,   89,  129,   30,   91,  129,   30,    4,   49,
234 /* 1740 */    14,  132,  193,  129,   37,    1,  129,   36,    3,   77,
235 /* 1750 */     3,  129,   35,    5,   78,   11,  129,   34,    7,   78,
236 /* 1760 */    21,  129,   33,    7,   79,   29,  129,   32,    7,   79,
237 /* 1770 */    38,  129,   32,    6,   80,    4,   92,   29,  129,   31,
238 /* 1780 */     6,   80,    5,  102,   19,  129,   31,    5,   80,    6,
239 /* 1790 */   107,   14,  129,   31,    4,   81,    5,  107,   14,  129,
240 /* 1800 */    30,    5,   81,    6,  107,   14,  129,   30,    4,   81,
241 /* 1810 */     6,  107,   14,  130,   30,    4,   81,    7,  107,   14,
242 /* 1820 */   129,   30,    4,   80,    8,  107,   14,  130,   30,    5,
243 /* 1830 */    80,    8,  107,   14,  129,   30,    5,   79,    9,  107,
244 /* 1840 */    14,  129,   31,    5,   79,    9,  107,   14,  129,   31,
245 /* 1850 */     6,   78,   10,  107,   14,  129,   32,    6,   76,   11,
246 /* 1860 */   107,   14,  129,   32,    8,   74,   13,  107,   14,  129,
247 /* 1870 */    33,   10,   71,   16,  107,   14,  129,   33,   15,   67,
248 /* 1880 */    19,  107,   14,  129,   34,   51,  107,   14,  129,   35,
249 /* 1890 */    49,  107,   14,  129,   36,   47,  107,   14,  129,   37,
250 /* 1900 */    45,  107,   14,  129,   39,   41,  107,   14,  129,   41,
251 /* 1910 */    37,  107,   14,  129,   44,   32,  107,   14,  129,   47,
252 /* 1920 */    25,  111,   10,  129,   51,   16,  115,    6,  129,  119,
253 /* 1930 */     2,  129,  193,  129,   56,   39,  129,   51,   49,  129,
254 /* 1940 */    47,   57,  129,   44,   63,  129,   42,   67,  129,   40,
255 /* 1950 */    71,  129,   38,   75,  129,   37,   77,  129,   35,   81,
256 /* 1960 */   129,   34,   16,   74,    5,  101,   16,  129,   33,   11,
257 /* 1970 */    76,    5,  107,   11,  129,   32,    9,   77,    5,  110,
258 /* 1980 */     9,  129,   32,    7,   79,    4,  112,    7,  129,   31,
259 /* 1990 */     6,   80,    4,  114,    6,  129,   31,    5,   81,    4,
260 /* 2000 */   115,    5,  129,   30,    5,   82,    4,  116,    5,  129,
261 /* 2010 */    30,    4,   82,    4,  116,    5,  129,   30,    4,   82,
262 /* 2020 */     5,  117,    4,  131,   30,    5,   82,    5,  117,    4,
263 /* 2030 */   129,   31,    5,   81,    6,  117,    4,  129,   31,    6,
264 /* 2040 */    80,    7,  117,    4,  129,   32,    7,   79,    8,  117,
265 /* 2050 */     4,  129,   32,    9,   77,    9,  116,    5,  129,   33,
266 /* 2060 */    11,   75,   11,  116,    4,  129,   34,   16,   69,   16,
267 /* 2070 */   115,    5,  129,   35,   49,  114,    5,  129,   37,   46,
268 /* 2080 */   113,    5,  129,   38,   44,  112,    6,  129,   40,   41,
269 /* 2090 */   112,    5,  129,   42,   37,  113,    3,  129,   44,   33,
270 /* 2100 */   114,    1,  129,   47,   27,  129,   51,   17,  129,  193,
271 /* 2110 */   129,  103,    2,  129,  103,    6,  129,  104,    9,  129,
272 /* 2120 */   105,   12,  129,  106,   15,  129,  107,   14,  135,   30,
273 /* 2130 */    10,  107,   14,  129,   30,   17,  107,   14,  129,   30,
274 /* 2140 */    25,  107,   14,  129,   30,   31,  107,   14,  129,   30,
275 /* 2150 */    37,  107,   14,  129,   30,   42,  107,   14,  129,   30,
276 /* 2160 */    46,  107,   14,  129,   30,   50,  107,   14,  129,   30,
277 /* 2170 */    54,  107,   14,  129,   30,   58,  107,   14,  129,   59,
278 /* 2180 */    32,  107,   14,  129,   64,   30,  107,   14,  129,   74,
279 /* 2190 */    23,  107,   14,  129,   81,   18,  107,   14,  129,   86,
280 /* 2200 */    16,  107,   14,  129,   91,   14,  107,   14,  129,   96,
281 /* 2210 */    25,  129,  100,   21,  129,  104,   17,  129,  107,   14,
282 /* 2220 */   129,  111,   10,  129,  114,    7,  129,  117,    4,  129,
283 /* 2230 */   120,    1,  129,  193,  129,   48,   13,  129,   44,   21,
284 /* 2240 */   129,   42,   26,  129,   40,   30,   92,   12,  129,   38,
285 /* 2250 */    34,   88,   20,  129,   36,   37,   86,   25,  129,   35,
286 /* 2260 */    39,   84,   29,  129,   34,   13,   63,   12,   82,   33,
287 /* 2270 */   129,   33,   11,   67,    9,   80,   36,  129,   32,    9,
288 /* 2280 */    70,    7,   79,   38,  129,   31,    8,   72,   46,  129,
289 /* 2290 */    30,    7,   74,   22,  108,   11,  129,   30,    6,   75,
290 /* 2300 */    19,  111,    9,  129,   30,    5,   75,   17,  113,    7,
291 /* 2310 */   129,   30,    5,   74,   16,  114,    6,  129,   30,    4,
292 /* 2320 */    73,   16,  115,    6,  129,   30,    4,   72,   16,  116,
293 /* 2330 */     5,  129,   30,    4,   72,   15,  117,    4,  129,   30,
294 /* 2340 */     4,   71,   16,  117,    4,  129,   30,    5,   70,   16,
295 /* 2350 */   117,    4,  129,   30,    5,   70,   15,  117,    4,  129,
296 /* 2360 */    30,    6,   69,   15,  116,    5,  129,   30,    7,   68,
297 /* 2370 */    17,  115,    5,  129,   30,    9,   67,   19,  114,    6,
298 /* 2380 */   129,   30,   10,   65,   22,  113,    6,  129,   31,   12,
299 /* 2390 */    63,   27,  110,    9,  129,   32,   14,   60,   21,   84,
300 /* 2400 */     9,  106,   12,  129,   33,   47,   85,   32,  129,   34,
301 /* 2410 */    45,   86,   30,  129,   35,   43,   88,   26,  129,   36,
302 /* 2420 */    40,   90,   22,  129,   38,   36,   93,   17,  129,   40,
303 /* 2430 */    32,   96,   10,  129,   42,   28,  129,   44,   23,  129,
304 /* 2440 */    48,   15,  129,  193,  129,   83,   17,  129,   77,   27,
305 /* 2450 */   129,   36,    1,   74,   33,  129,   35,    3,   72,   37,
306 /* 2460 */   129,   34,    5,   70,   41,  129,   33,    6,   69,   44,
307 /* 2470 */   129,   33,    5,   68,   46,  129,   32,    5,   67,   49,
308 /* 2480 */   129,   31,    5,   66,   17,  101,   16,  129,   31,    5,
309 /* 2490 */    66,   11,  108,   10,  129,   30,    4,   65,    9,  110,
310 /* 2500 */     9,  129,   30,    4,   64,    8,  112,    7,  129,   30,
311 /* 2510 */     4,   64,    7,  114,    6,  129,   30,    4,   64,    6,
312 /* 2520 */   115,    5,  129,   30,    4,   64,    5,  116,    5,  129,
313 /* 2530 */    30,    4,   64,    5,  117,    4,  131,   30,    4,   65,
314 /* 2540 */     4,  117,    4,  129,   30,    5,   65,    4,  116,    5,
315 /* 2550 */   129,   31,    5,   66,    4,  115,    5,  129,   31,    6,
316 /* 2560 */    67,    4,  114,    6,  129,   32,    7,   68,    4,  112,
317 /* 2570 */     7,  129,   32,    9,   69,    5,  110,    9,  129,   33,
318 /* 2580 */    11,   70,    5,  107,   11,  129,   34,   16,   72,    5,
319 /* 2590 */   101,   16,  129,   35,   81,  129,   37,   77,  129,   38,
320 /* 2600 */    75,  129,   40,   71,  129,   42,   67,  129,   44,   63,
321 /* 2610 */   129,   47,   57,  129,   51,   49,  129,   56,   39,  129,
322 /* 2620 */   193,  130,   34,    6,   74,    6,  129,   32,   10,   72,
323 /* 2630 */    10,  129,   31,   12,   71,   12,  129,   30,   14,   70,
324 /* 2640 */    14,  131,   31,   12,   71,   12,  129,   32,   10,   72,
325 /* 2650 */    10,  129,   34,    6,   74,    6,  129,  194,  130,   34,
326 /* 2660 */     6,   74,    6,  129,   32,   10,   72,   10,  129,   31,
327 /* 2670 */    12,   71,   12,  129,   30,   14,   70,   14,  129,   20,
328 /* 2680 */     2,   28,   16,   70,   14,  129,   22,   22,   70,   14,
329 /* 2690 */   129,   24,   19,   71,   12,  129,   27,   15,   72,   10,
330 /* 2700 */   129,   31,    9,   74,    6,  129,  194,  129,   53,    4,
331 /* 2710 */    63,    4,  152,  193,  130,   99,    7,  129,   97,   13,
332 /* 2720 */   129,   96,   16,  129,   96,   18,  129,   96,   19,  129,
333 /* 2730 */    97,   19,  129,   99,    6,  110,    7,  129,  112,    6,
334 /* 2740 */   129,  114,    5,  129,   34,    6,   57,    5,  115,    4,
335 /* 2750 */   129,   32,   10,   54,   12,  116,    4,  129,   31,   12,
336 /* 2760 */    53,   16,  117,    3,  129,   30,   14,   52,   20,  117,
337 /* 2770 */     4,  129,   30,   14,   52,   23,  117,    4,  129,   30,
338 /* 2780 */    14,   52,   25,  117,    4,  129,   31,   12,   52,   27,
339 /* 2790 */   117,    4,  129,   32,   10,   53,   10,   70,   11,  116,
340 /* 2800 */     5,  129,   34,    6,   55,    5,   73,   10,  115,    6,
341 /* 2810 */   129,   74,   11,  114,    7,  129,   75,   12,  112,    9,
342 /* 2820 */   129,   76,   13,  110,   10,  129,   77,   16,  106,   14,
343 /* 2830 */   129,   78,   41,  129,   80,   38,  129,   81,   36,  129,
344 /* 2840 */    82,   34,  129,   84,   30,  129,   86,   26,  129,   88,
345 /* 2850 */    22,  129,   92,   14,  129,  194,  129,   55,   15,  129,
346 /* 2860 */    50,   25,  129,   47,   32,  129,   45,   13,   70,   12,
347 /* 2870 */   129,   43,    9,   76,   10,  129,   42,    6,   79,    8,
348 /* 2880 */   129,   41,    5,   81,    7,  129,   40,    4,   84,    6,
349 /* 2890 */   129,   39,    4,   59,   12,   85,    6,  129,   38,    4,
350 /* 2900 */    55,   19,   87,    5,  129,   37,    4,   53,   23,   88,
351 /* 2910 */     4,  129,   36,    4,   51,    8,   71,    6,   89,    4,
352 /* 2920 */   129,   36,    4,   51,    6,   73,    4,   89,    4,  129,
353 /* 2930 */    36,    4,   50,    6,   74,    4,   90,    3,  129,   35,
354 /* 2940 */     4,   50,    5,   75,    3,   90,    4,  129,   35,    4,
355 /* 2950 */    50,    4,   75,    4,   90,    4,  131,   35,    4,   50,
356 /* 2960 */     5,   75,    4,   90,    4,  129,   36,    4,   51,    5,
357 /* 2970 */    75,    4,   90,    4,  129,   36,    4,   51,    6,   75,
358 /* 2980 */     4,   90,    4,  129,   36,    4,   53,   26,   90,    4,
359 /* 2990 */   129,   37,    4,   54,   25,   90,    4,  129,   37,    4,
360 /* 3000 */    52,   27,   90,    3,  129,   38,    4,   52,    4,   89,
361 /* 3010 */     4,  129,   39,    4,   51,    4,   88,    4,  129,   40,
362 /* 3020 */     4,   50,    4,   87,    5,  129,   41,    4,   50,    4,
363 /* 3030 */    86,    5,  129,   42,    4,   50,    4,   85,    5,  129,
364 /* 3040 */    43,    3,   50,    4,   83,    6,  129,   44,    2,   51,
365 /* 3050 */     5,   80,    7,  129,   46,    1,   52,    6,   76,    9,
366 /* 3060 */   129,   54,   28,  129,   56,   23,  129,   60,   16,  129,
367 /* 3070 */   193,  129,   30,    4,  132,   30,    5,  129,   30,    8,
368 /* 3080 */   129,   30,   12,  129,   30,   16,  129,   30,    4,   37,
369 /* 3090 */    12,  129,   30,    4,   41,   12,  129,   30,    4,   44,
370 /* 3100 */    13,  129,   30,    4,   48,   13,  129,   52,   13,  129,
371 /* 3110 */    56,   12,  129,   58,   14,  129,   58,    4,   64,   12,
372 /* 3120 */   129,   58,    4,   68,   12,  129,   58,    4,   72,   12,
373 /* 3130 */   129,   58,    4,   75,   13,  129,   58,    4,   79,   13,
374 /* 3140 */   129,   58,    4,   83,   13,  129,   58,    4,   87,   13,
375 /* 3150 */   129,   58,    4,   91,   12,  129,   58,    4,   95,   12,
376 /* 3160 */   129,   58,    4,   96,   15,  129,   58,    4,   93,   22,
377 /* 3170 */   129,   58,    4,   89,   30,  129,   58,    4,   85,   36,
378 /* 3180 */   129,   58,    4,   81,   38,  129,   58,    4,   77,   38,
379 /* 3190 */   129,   58,    4,   73,   38,  129,   58,    4,   70,   37,
380 /* 3200 */   129,   58,    4,   66,   37,  129,   58,   41,  129,   58,
381 /* 3210 */    37,  129,   54,   38,  129,   30,    4,   50,   38,  129,
382 /* 3220 */    30,    4,   46,   38,  129,   30,    4,   42,   38,  129,
383 /* 3230 */    30,    4,   38,   39,  129,   30,   43,  129,   30,   39,
384 /* 3240 */   129,   30,   35,  129,   30,   31,  129,   30,   27,  129,
385 /* 3250 */    30,   24,  129,   30,   20,  129,   30,   16,  129,   30,
386 /* 3260 */    12,  129,   30,    8,  129,   30,    5,  129,   30,    4,
387 /* 3270 */   132,  193,  129,   30,    4,  117,    4,  132,   30,   91,
388 /* 3280 */   137,   30,    4,   80,    4,  117,    4,  138,   30,    4,
389 /* 3290 */    80,    5,  116,    5,  129,   30,    5,   79,    6,  116,
390 /* 3300 */     5,  130,   30,    6,   78,    8,  115,    6,  129,   31,
391 /* 3310 */     6,   77,    9,  115,    6,  129,   31,    7,   76,   11,
392 /* 3320 */   114,    6,  129,   31,    8,   75,   14,  112,    8,  129,
393 /* 3330 */    32,    8,   74,   16,  111,    9,  129,   32,    9,   73,
394 /* 3340 */    19,  109,   10,  129,   33,   10,   71,   24,  106,   13,
395 /* 3350 */   129,   33,   13,   68,   12,   83,   35,  129,   34,   16,
396 /* 3360 */    64,   15,   84,   33,  129,   35,   43,   85,   31,  129,
397 /* 3370 */    36,   41,   86,   29,  129,   37,   39,   88,   25,  129,
398 /* 3380 */    38,   37,   90,   21,  129,   40,   33,   93,   15,  129,
399 /* 3390 */    42,   29,   96,    9,  129,   45,   24,  129,   49,   16,
400 /* 3400 */   129,  193,  129,   63,   25,  129,   57,   37,  129,   53,
401 /* 3410 */    45,  129,   50,   51,  129,   47,   57,  129,   45,   61,
402 /* 3420 */   129,   43,   65,  129,   41,   69,  129,   39,   73,  129,
403 /* 3430 */    38,   25,   92,   21,  129,   36,   21,   97,   18,  129,
404 /* 3440 */    35,   18,  102,   14,  129,   34,   16,  106,   11,  129,
405 /* 3450 */    33,   14,  108,   10,  129,   32,   12,  111,    8,  129,
406 /* 3460 */    32,   10,  113,    6,  129,   31,   10,  114,    6,  129,
407 /* 3470 */    31,    8,  115,    5,  129,   30,    8,  116,    5,  129,
408 /* 3480 */    30,    7,  116,    5,  129,   30,    6,  117,    4,  130,
409 /* 3490 */    30,    5,  117,    4,  131,   31,    4,  116,    5,  129,
410 /* 3500 */    32,    4,  116,    4,  129,   32,    5,  115,    5,  129,
411 /* 3510 */    33,    4,  114,    5,  129,   34,    4,  112,    6,  129,
412 /* 3520 */    35,    4,  110,    7,  129,   37,    4,  107,    9,  129,
413 /* 3530 */    39,    4,  103,   12,  129,   41,    4,  103,   18,  129,
414 /* 3540 */    43,    4,  103,   18,  129,   45,    5,  103,   18,  129,
415 /* 3550 */    48,    5,  103,   18,  129,   51,    1,  129,  193,  129,
416 /* 3560 */    30,    4,  117,    4,  132,   30,   91,  137,   30,    4,
417 /* 3570 */   117,    4,  135,   30,    5,  116,    5,  130,   30,    6,
418 /* 3580 */   115,    6,  130,   31,    6,  114,    6,  129,   31,    7,
419 /* 3590 */   113,    7,  129,   32,    7,  112,    7,  129,   32,    8,
420 /* 3600 */   111,    8,  129,   33,    9,  109,    9,  129,   33,   12,
421 /* 3610 */   106,   12,  129,   34,   13,  104,   13,  129,   35,   15,
422 /* 3620 */   101,   15,  129,   36,   19,   96,   19,  129,   37,   24,
423 /* 3630 */    90,   24,  129,   39,   73,  129,   40,   71,  129,   42,
424 /* 3640 */    67,  129,   44,   63,  129,   46,   59,  129,   49,   53,
425 /* 3650 */   129,   52,   47,  129,   56,   39,  129,   61,   29,  129,
426 /* 3660 */   193,  129,   30,    4,  117,    4,  132,   30,   91,  137,
427 /* 3670 */    30,    4,   80,    4,  117,    4,  140,   30,    4,   79,
428 /* 3680 */     6,  117,    4,  129,   30,    4,   77,   10,  117,    4,
429 /* 3690 */   129,   30,    4,   73,   18,  117,    4,  132,   30,    4,
430 /* 3700 */   117,    4,  130,   30,    5,  116,    5,  130,   30,    7,
431 /* 3710 */   114,    7,  129,   30,    8,  113,    8,  129,   30,   11,
432 /* 3720 */   110,   11,  129,   30,   18,  103,   18,  132,  193,  129,
433 /* 3730 */    30,    4,  117,    4,  132,   30,   91,  137,   30,    4,
434 /* 3740 */    80,    4,  117,    4,  132,   80,    4,  117,    4,  136,
435 /* 3750 */    79,    6,  117,    4,  129,   77,   10,  117,    4,  129,
436 /* 3760 */    73,   18,  117,    4,  132,  117,    4,  130,  116,    5,
437 /* 3770 */   130,  114,    7,  129,  113,    8,  129,  110,   11,  129,
438 /* 3780 */   103,   18,  132,  193,  129,   63,   25,  129,   57,   37,
439 /* 3790 */   129,   53,   45,  129,   50,   51,  129,   47,   57,  129,
440 /* 3800 */    45,   61,  129,   43,   65,  129,   41,   69,  129,   39,
441 /* 3810 */    73,  129,   38,   25,   92,   21,  129,   36,   21,   97,
442 /* 3820 */    18,  129,   35,   18,  102,   14,  129,   34,   16,  106,
443 /* 3830 */    11,  129,   33,   14,  108,   10,  129,   32,   12,  111,
444 /* 3840 */     8,  129,   32,   10,  113,    6,  129,   31,   10,  114,
445 /* 3850 */     6,  129,   31,    8,  115,    5,  129,   30,    8,  116,
446 /* 3860 */     5,  129,   30,    7,  116,    5,  129,   30,    6,  117,
447 /* 3870 */     4,  130,   30,    5,  117,    4,  131,   30,    5,   75,
448 /* 3880 */     4,  116,    5,  129,   31,    5,   75,    4,  116,    4,
449 /* 3890 */   129,   31,    6,   75,    4,  115,    5,  129,   32,    7,
450 /* 3900 */    75,    4,  114,    5,  129,   32,    9,   75,    4,  112,
451 /* 3910 */     6,  129,   33,   11,   75,    4,  110,    7,  129,   34,
452 /* 3920 */    15,   75,    4,  107,    9,  129,   35,   44,  103,   12,
453 /* 3930 */   129,   36,   43,  103,   18,  129,   38,   41,  103,   18,
454 /* 3940 */   129,   39,   40,  103,   18,  129,   41,   38,  103,   18,
455 /* 3950 */   129,   44,   35,  129,   48,   31,  129,   52,   27,  129,
456 /* 3960 */    61,   18,  129,  193,  129,   30,    4,  117,    4,  132,
457 /* 3970 */    30,   91,  137,   30,    4,   80,    4,  117,    4,  132,
458 /* 3980 */    80,    4,  140,   30,    4,   80,    4,  117,    4,  132,
459 /* 3990 */    30,   91,  137,   30,    4,  117,    4,  132,  193,  129,
460 /* 4000 */    30,    4,  117,    4,  132,   30,   91,  137,   30,    4,
461 /* 4010 */   117,    4,  132,  193,  129,   44,    7,  129,   40,   13,
462 /* 4020 */   129,   37,   17,  129,   35,   20,  129,   34,   22,  129,
463 /* 4030 */    33,   23,  129,   32,   24,  129,   32,   23,  129,   31,
464 /* 4040 */     6,   41,   13,  129,   31,    5,   42,   11,  129,   30,
465 /* 4050 */     5,   44,    7,  129,   30,    4,  132,   30,    5,  130,
466 /* 4060 */    31,    5,  129,   31,    6,  117,    4,  129,   31,    8,
467 /* 4070 */   117,    4,  129,   32,    9,  117,    4,  129,   33,   11,
468 /* 4080 */   117,    4,  129,   34,   87,  129,   35,   86,  129,   36,
469 /* 4090 */    85,  129,   37,   84,  129,   38,   83,  129,   40,   81,
470 /* 4100 */   129,   42,   79,  129,   45,   76,  129,   50,   71,  129,
471 /* 4110 */   117,    4,  132,  193,  129,   30,    4,  117,    4,  132,
472 /* 4120 */    30,   91,  137,   30,    4,   76,    8,  117,    4,  129,
473 /* 4130 */    30,    4,   73,   13,  117,    4,  129,   30,    4,   70,
474 /* 4140 */    18,  117,    4,  129,   30,    4,   67,   23,  117,    4,
475 /* 4150 */   129,   65,   26,  129,   62,   31,  129,   59,   35,  129,
476 /* 4160 */    56,   29,   89,    7,  129,   53,   29,   91,    7,  129,
477 /* 4170 */    50,   29,   93,    7,  129,   47,   29,   95,    6,  129,
478 /* 4180 */    30,    4,   45,   29,   96,    7,  129,   30,    4,   42,
479 /* 4190 */    29,   98,    7,  129,   30,    4,   39,   30,  100,    6,
480 /* 4200 */   129,   30,    4,   36,   30,  101,    7,  129,   30,   33,
481 /* 4210 */   103,    7,  117,    4,  129,   30,   30,  105,    6,  117,
482 /* 4220 */     4,  129,   30,   27,  106,    7,  117,    4,  129,   30,
483 /* 4230 */    25,  108,    7,  117,    4,  129,   30,   22,  110,   11,
484 /* 4240 */   129,   30,   19,  111,   10,  129,   30,   16,  113,    8,
485 /* 4250 */   129,   30,   13,  115,    6,  129,   30,   11,  116,    5,
486 /* 4260 */   129,   30,    8,  117,    4,  129,   30,    5,  117,    4,
487 /* 4270 */   129,   30,    4,  117,    4,  130,   30,    4,  130,  193,
488 /* 4280 */   129,   30,    4,  117,    4,  132,   30,   91,  137,   30,
489 /* 4290 */     4,  117,    4,  132,   30,    4,  144,   30,    5,  130,
490 /* 4300 */    30,    7,  129,   30,    8,  129,   30,   11,  129,   30,
491 /* 4310 */    18,  132,  193,  129,   30,    4,  117,    4,  132,   30,
492 /* 4320 */    91,  132,   30,    4,  103,   18,  129,   30,    4,   97,
493 /* 4330 */    24,  129,   30,    4,   92,   29,  129,   30,    4,   87,
494 /* 4340 */    34,  129,   81,   40,  129,   76,   45,  129,   70,   49,
495 /* 4350 */   129,   65,   49,  129,   60,   49,  129,   55,   49,  129,
496 /* 4360 */    50,   48,  129,   44,   49,  129,   39,   48,  129,   33,
497 /* 4370 */    49,  129,   30,   47,  129,   34,   37,  129,   40,   26,
498 /* 4380 */   129,   46,   19,  129,   52,   19,  129,   58,   19,  129,
499 /* 4390 */    64,   19,  129,   70,   19,  129,   76,   19,  129,   82,
500 /* 4400 */    19,  129,   30,    4,   88,   18,  129,   30,    4,   94,
501 /* 4410 */    18,  129,   30,    4,  100,   18,  129,   30,    4,  106,
502 /* 4420 */    15,  129,   30,   91,  137,   30,    4,  117,    4,  132,
503 /* 4430 */   193,  129,   30,    4,  117,    4,  132,   30,   91,  132,
504 /* 4440 */    30,    4,  107,   14,  129,   30,    4,  104,   17,  129,
505 /* 4450 */    30,    4,  101,   20,  129,   30,    4,   99,   22,  129,
506 /* 4460 */    96,   25,  129,   93,   28,  129,   91,   28,  129,   88,
507 /* 4470 */    29,  129,   85,   29,  129,   82,   29,  129,   79,   29,
508 /* 4480 */   129,   76,   29,  129,   74,   29,  129,   71,   29,  129,
509 /* 4490 */    68,   29,  129,   65,   29,  129,   62,   29,  129,   60,
510 /* 4500 */    29,  129,   57,   29,  129,   54,   29,  129,   51,   29,
511 /* 4510 */   129,   49,   28,  129,   46,   29,  129,   43,   29,  129,
512 /* 4520 */    40,   29,  117,    4,  129,   37,   29,  117,    4,  129,
513 /* 4530 */    35,   29,  117,    4,  129,   32,   29,  117,    4,  129,
514 /* 4540 */    30,   91,  132,  117,    4,  132,  193,  129,   63,   25,
515 /* 4550 */   129,   57,   37,  129,   53,   45,  129,   50,   51,  129,
516 /* 4560 */    47,   57,  129,   45,   61,  129,   43,   65,  129,   41,
517 /* 4570 */    69,  129,   39,   73,  129,   38,   21,   92,   21,  129,
518 /* 4580 */    36,   18,   97,   18,  129,   35,   14,  102,   14,  129,
519 /* 4590 */    34,   11,  106,   11,  129,   33,   10,  108,   10,  129,
520 /* 4600 */    32,    8,  111,    8,  129,   32,    6,  113,    6,  129,
521 /* 4610 */    31,    6,  114,    6,  129,   31,    5,  115,    5,  129,
522 /* 4620 */    30,    5,  116,    5,  130,   30,    4,  117,    4,  132,
523 /* 4630 */    30,    5,  116,    5,  130,   31,    5,  115,    5,  129,
524 /* 4640 */    31,    6,  114,    6,  129,   32,    6,  113,    6,  129,
525 /* 4650 */    32,    8,  111,    8,  129,   33,   10,  108,   10,  129,
526 /* 4660 */    34,   11,  106,   11,  129,   35,   14,  102,   14,  129,
527 /* 4670 */    36,   18,   97,   18,  129,   38,   21,   92,   21,  129,
528 /* 4680 */    39,   73,  129,   41,   69,  129,   43,   65,  129,   45,
529 /* 4690 */    61,  129,   47,   57,  129,   50,   51,  129,   53,   45,
530 /* 4700 */   129,   57,   37,  129,   63,   25,  129,  193,  129,   30,
531 /* 4710 */     4,  117,    4,  132,   30,   91,  137,   30,    4,   80,
532 /* 4720 */     4,  117,    4,  132,   80,    4,  117,    4,  134,   80,
533 /* 4730 */     5,  116,    5,  131,   80,    6,  115,    6,  130,   81,
534 /* 4740 */     6,  114,    6,  129,   81,    8,  112,    8,  129,   81,
535 /* 4750 */     9,  111,    9,  129,   82,   10,  109,   10,  129,   82,
536 /* 4760 */    13,  106,   13,  129,   83,   35,  129,   84,   33,  129,
537 /* 4770 */    85,   31,  129,   86,   29,  129,   88,   25,  129,   90,
538 /* 4780 */    21,  129,   93,   15,  129,   96,    9,  129,  193,  129,
539 /* 4790 */    63,   25,  129,   57,   37,  129,   53,   45,  129,   50,
540 /* 4800 */    51,  129,   47,   57,  129,   45,   61,  129,   43,   65,
541 /* 4810 */   129,   41,   69,  129,   39,   73,  129,   38,   21,   92,
542 /* 4820 */    21,  129,   36,   18,   97,   18,  129,   35,   14,  102,
543 /* 4830 */    14,  129,   34,   11,  106,   11,  129,   33,   10,  108,
544 /* 4840 */    10,  129,   32,    8,  111,    8,  129,   32,    6,  113,
545 /* 4850 */     6,  129,   31,    6,  114,    6,  129,   31,    5,  115,
546 /* 4860 */     5,  129,   30,    5,  116,    5,  130,   30,    4,   39,
547 /* 4870 */     2,  117,    4,  129,   30,    4,   40,    4,  117,    4,
548 /* 4880 */   129,   30,    4,   41,    5,  117,    4,  129,   30,    4,
549 /* 4890 */    41,    6,  117,    4,  129,   30,    5,   40,    8,  116,
550 /* 4900 */     5,  129,   30,    5,   39,   10,  116,    5,  129,   31,
551 /* 4910 */     5,   38,   11,  115,    5,  129,   31,   18,  114,    6,
552 /* 4920 */   129,   32,   17,  113,    6,  129,   32,   16,  111,    8,
553 /* 4930 */   129,   33,   15,  108,   10,  129,   33,   14,  106,   11,
554 /* 4940 */   129,   32,   17,  102,   14,  129,   31,   23,   97,   18,
555 /* 4950 */   129,   31,   28,   92,   21,  129,   30,   82,  129,   30,
556 /* 4960 */    80,  129,   30,   11,   43,   65,  129,   30,   10,   45,
557 /* 4970 */    61,  129,   31,    8,   47,   57,  129,   32,    6,   50,
558 /* 4980 */    51,  129,   33,    5,   53,   45,  129,   35,    4,   57,
559 /* 4990 */    37,  129,   38,    2,   63,   25,  129,  193,  129,   30,
560 /* 5000 */     4,  117,    4,  132,   30,   91,  137,   30,    4,   76,
561 /* 5010 */     8,  117,    4,  129,   30,    4,   73,   11,  117,    4,
562 /* 5020 */   129,   30,    4,   70,   14,  117,    4,  129,   30,    4,
563 /* 5030 */    67,   17,  117,    4,  129,   65,   19,  117,    4,  129,
564 /* 5040 */    62,   22,  117,    4,  129,   59,   25,  117,    4,  129,
565 /* 5050 */    56,   28,  117,    4,  129,   53,   31,  117,    4,  129,
566 /* 5060 */    50,   34,  117,    4,  129,   47,   29,   80,    5,  116,
567 /* 5070 */     5,  129,   30,    4,   45,   29,   80,    5,  116,    5,
568 /* 5080 */   129,   30,    4,   42,   29,   80,    5,  116,    5,  129,
569 /* 5090 */    30,    4,   39,   30,   80,    6,  115,    6,  129,   30,
570 /* 5100 */     4,   36,   30,   80,    6,  115,    6,  129,   30,   33,
571 /* 5110 */    81,    6,  114,    6,  129,   30,   30,   81,    8,  112,
572 /* 5120 */     8,  129,   30,   27,   81,    9,  111,    9,  129,   30,
573 /* 5130 */    25,   82,   10,  109,   10,  129,   30,   22,   82,   13,
574 /* 5140 */   106,   13,  129,   30,   19,   83,   35,  129,   30,   16,
575 /* 5150 */    84,   33,  129,   30,   13,   85,   31,  129,   30,   11,
576 /* 5160 */    86,   29,  129,   30,    8,   88,   25,  129,   30,    5,
577 /* 5170 */    90,   21,  129,   30,    4,   93,   15,  129,   30,    4,
578 /* 5180 */    96,    9,  129,   30,    4,  130,  193,  129,   30,   18,
579 /* 5190 */   130,   30,   18,   89,   15,  129,   30,   18,   85,   23,
580 /* 5200 */   129,   34,   11,   83,   27,  129,   34,    9,   81,   31,
581 /* 5210 */   129,   33,    8,   79,   35,  129,   33,    6,   78,   16,
582 /* 5220 */   106,    9,  129,   32,    6,   77,   15,  109,    7,  129,
583 /* 5230 */    32,    5,   76,   14,  111,    6,  129,   31,    5,   75,
584 /* 5240 */    14,  113,    5,  129,   31,    4,   74,   15,  114,    5,
585 /* 5250 */   129,   31,    4,   74,   14,  115,    4,  129,   30,    4,
586 /* 5260 */    73,   15,  116,    4,  129,   30,    4,   73,   14,  116,
587 /* 5270 */     4,  129,   30,    4,   73,   14,  117,    4,  129,   30,
588 /* 5280 */     4,   72,   15,  117,    4,  130,   30,    4,   71,   15,
589 /* 5290 */   117,    4,  130,   30,    4,   70,   15,  117,    4,  129,
590 /* 5300 */    30,    5,   70,   15,  117,    4,  129,   30,    5,   69,
591 /* 5310 */    15,  116,    5,  129,   30,    6,   68,   16,  115,    5,
592 /* 5320 */   129,   31,    6,   67,   16,  114,    6,  129,   31,    7,
593 /* 5330 */    66,   17,  113,    6,  129,   32,    7,   64,   18,  111,
594 /* 5340 */     8,  129,   32,    8,   62,   19,  109,    9,  129,   33,
595 /* 5350 */     9,   60,   20,  107,   10,  129,   34,   11,   57,   22,
596 /* 5360 */   103,   13,  129,   35,   43,  103,   18,  129,   36,   41,
597 /* 5370 */   103,   18,  129,   38,   38,  103,   18,  129,   39,   35,
598 /* 5380 */   103,   18,  129,   41,   31,  129,   43,   27,  129,   46,
599 /* 5390 */    22,  129,   49,   14,  129,  193,  129,  103,   18,  132,
600 /* 5400 */   110,   11,  129,  113,    8,  129,  114,    7,  129,  116,
601 /* 5410 */     5,  130,  117,    4,  132,   30,    4,  117,    4,  132,
602 /* 5420 */    30,   91,  137,   30,    4,  117,    4,  132,  117,    4,
603 /* 5430 */   132,  116,    5,  130,  114,    7,  129,  113,    8,  129,
604 /* 5440 */   110,   11,  129,  103,   18,  132,  193,  129,  117,    4,
605 /* 5450 */   132,   56,   65,  129,   50,   71,  129,   46,   75,  129,
606 /* 5460 */    44,   77,  129,   42,   79,  129,   40,   81,  129,   38,
607 /* 5470 */    83,  129,   36,   85,  129,   35,   86,  129,   34,   20,
608 /* 5480 */   117,    4,  129,   33,   17,  117,    4,  129,   32,   15,
609 /* 5490 */   117,    4,  129,   32,   13,  117,    4,  129,   31,   12,
610 /* 5500 */   129,   31,   10,  129,   31,    9,  129,   30,    9,  129,
611 /* 5510 */    30,    8,  130,   30,    7,  132,   31,    6,  130,   31,
612 /* 5520 */     7,  129,   32,    6,  129,   32,    7,  129,   33,    7,
613 /* 5530 */   129,   34,    7,  129,   35,    8,  129,   36,    9,  117,
614 /* 5540 */     4,  129,   38,    9,  117,    4,  129,   40,   10,  117,
615 /* 5550 */     4,  129,   42,   12,  117,    4,  129,   44,   77,  129,
616 /* 5560 */    46,   75,  129,   50,   71,  129,   56,   43,  100,   21,
617 /* 5570 */   129,  117,    4,  132,  193,  129,  117,    4,  132,  115,
618 /* 5580 */     6,  129,  110,   11,  129,  105,   16,  129,  101,   20,
619 /* 5590 */   129,   96,   25,  129,   92,   29,  129,   87,   34,  129,
620 /* 5600 */    83,   38,  129,   78,   43,  129,   74,   47,  129,   70,
621 /* 5610 */    42,  117,    4,  129,   65,   42,  117,    4,  129,   60,
622 /* 5620 */    43,  117,    4,  129,   56,   42,  129,   51,   42,  129,
623 /* 5630 */    46,   43,  129,   42,   43,  129,   37,   44,  129,   33,
624 /* 5640 */    43,  129,   30,   42,  129,   33,   34,  129,   38,   25,
625 /* 5650 */   129,   42,   16,  129,   47,   15,  129,   52,   15,  129,
626 /* 5660 */    57,   15,  129,   61,   16,  129,   66,   16,  129,   71,
627 /* 5670 */    16,  129,   76,   16,  129,   80,   16,  129,   85,   16,
628 /* 5680 */   117,    4,  129,   90,   16,  117,    4,  129,   95,   16,
629 /* 5690 */   117,    4,  129,  100,   21,  129,  105,   16,  129,  110,
630 /* 5700 */    11,  129,  114,    7,  129,  117,    4,  132,  193,  129,
631 /* 5710 */   117,    4,  132,  115,    6,  129,  110,   11,  129,  105,
632 /* 5720 */    16,  129,  101,   20,  129,   96,   25,  129,   92,   29,
633 /* 5730 */   129,   87,   34,  129,   83,   38,  129,   78,   43,  129,
634 /* 5740 */    74,   47,  129,   70,   42,  117,    4,  129,   65,   42,
635 /* 5750 */   117,    4,  129,   60,   43,  117,    4,  129,   56,   42,
636 /* 5760 */   129,   51,   42,  129,   46,   43,  129,   42,   43,  129,
637 /* 5770 */    37,   44,  129,   33,   43,  129,   30,   42,  129,   33,
638 /* 5780 */    34,  129,   38,   25,  129,   42,   16,  129,   47,   15,
639 /* 5790 */   129,   52,   15,  129,   57,   15,  129,   61,   16,  129,
640 /* 5800 */    65,   17,  129,   60,   27,  129,   56,   36,  129,   51,
641 /* 5810 */    42,  129,   46,   43,  129,   42,   43,  129,   37,   44,
642 /* 5820 */   129,   33,   43,  129,   30,   42,  129,   33,   34,  129,
643 /* 5830 */    38,   25,  129,   42,   16,  129,   47,   15,  129,   52,
644 /* 5840 */    15,  129,   57,   15,  129,   61,   16,  129,   66,   16,
645 /* 5850 */   129,   71,   16,  129,   76,   16,  129,   80,   16,  129,
646 /* 5860 */    85,   16,  117,    4,  129,   90,   16,  117,    4,  129,
647 /* 5870 */    95,   16,  117,    4,  129,  100,   21,  129,  105,   16,
648 /* 5880 */   129,  110,   11,  129,  114,    7,  129,  117,    4,  132,
649 /* 5890 */   193,  129,   30,    4,  117,    4,  132,   30,    4,  115,
650 /* 5900 */     6,  129,   30,    4,  112,    9,  129,   30,    6,  109,
651 /* 5910 */    12,  129,   30,    9,  106,   15,  129,   30,   11,  103,
652 /* 5920 */    18,  129,   30,   14,  100,   21,  129,   30,    4,   38,
653 /* 5930 */     9,   98,   23,  129,   30,    4,   40,   10,   95,   26,
654 /* 5940 */   129,   30,    4,   43,    9,   92,   29,  129,   46,    9,
655 /* 5950 */    89,   32,  129,   49,    8,   86,   28,  117,    4,  129,
656 /* 5960 */    51,    9,   83,   28,  117,    4,  129,   54,    9,   80,
657 /* 5970 */    28,  117,    4,  129,   57,    8,   77,   28,  117,    4,
658 /* 5980 */   129,   59,    9,   74,   28,  129,   62,   37,  129,   64,
659 /* 5990 */    33,  129,   66,   28,  129,   63,   28,  129,   60,   28,
660 /* 6000 */   129,   57,   28,  129,   54,   33,  129,   51,   39,  129,
661 /* 6010 */    48,   29,   83,    9,  129,   30,    4,   45,   29,   86,
662 /* 6020 */     9,  129,   30,    4,   42,   29,   89,    9,  129,   30,
663 /* 6030 */     4,   39,   29,   92,    8,  129,   30,    4,   36,   29,
664 /* 6040 */    94,    9,  129,   30,   32,   97,    9,  129,   30,   29,
665 /* 6050 */   100,    8,  117,    4,  129,   30,   26,  103,    8,  117,
666 /* 6060 */     4,  129,   30,   23,  105,    9,  117,    4,  129,   30,
667 /* 6070 */    20,  108,   13,  129,   30,   18,  111,   10,  129,   30,
668 /* 6080 */    15,  113,    8,  129,   30,   12,  116,    5,  129,   30,
669 /* 6090 */     9,  117,    4,  129,   30,    6,  117,    4,  129,   30,
670 /* 6100 */     4,  117,    4,  132,  193,  129,  117,    4,  132,  114,
671 /* 6110 */     7,  129,  111,   10,  129,  108,   13,  129,  105,   16,
672 /* 6120 */   129,  102,   19,  129,  100,   21,  129,   96,   25,  129,
673 /* 6130 */    93,   28,  129,   90,   31,  129,   87,   34,  129,   84,
674 /* 6140 */    30,  117,    4,  129,   30,    4,   81,   30,  117,    4,
675 /* 6150 */   129,   30,    4,   78,   30,  117,    4,  129,   30,    4,
676 /* 6160 */    75,   30,  117,    4,  129,   30,    4,   72,   30,  129,
677 /* 6170 */    30,   69,  129,   30,   66,  129,   30,   63,  129,   30,
678 /* 6180 */    60,  129,   30,   57,  129,   30,   54,  129,   30,   51,
679 /* 6190 */   129,   30,   48,  129,   30,   51,  129,   30,    4,   73,
680 /* 6200 */    12,  129,   30,    4,   76,   12,  129,   30,    4,   80,
681 /* 6210 */    12,  129,   30,    4,   83,   12,  129,   87,   12,  129,
682 /* 6220 */    90,   12,  117,    4,  129,   94,   11,  117,    4,  129,
683 /* 6230 */    97,   12,  117,    4,  129,  101,   12,  117,    4,  129,
684 /* 6240 */   104,   17,  129,  108,   13,  129,  111,   10,  129,  115,
685 /* 6250 */     6,  129,  117,    4,  134,  193,  129,   30,    1,  103,
686 /* 6260 */    18,  129,   30,    4,  103,   18,  129,   30,    7,  103,
687 /* 6270 */    18,  129,   30,    9,  103,   18,  129,   30,   12,  110,
688 /* 6280 */    11,  129,   30,   15,  113,    8,  129,   30,   18,  114,
689 /* 6290 */     7,  129,   30,   21,  116,    5,  129,   30,   24,  116,
690 /* 6300 */     5,  129,   30,   27,  117,    4,  129,   30,   30,  117,
691 /* 6310 */     4,  129,   30,   33,  117,    4,  129,   30,    4,   37,
692 /* 6320 */    28,  117,    4,  129,   30,    4,   40,   28,  117,    4,
693 /* 6330 */   129,   30,    4,   42,   29,  117,    4,  129,   30,    4,
694 /* 6340 */    45,   29,  117,    4,  129,   30,    4,   48,   29,  117,
695 /* 6350 */     4,  129,   30,    4,   51,   29,  117,    4,  129,   30,
696 /* 6360 */     4,   54,   29,  117,    4,  129,   30,    4,   57,   29,
697 /* 6370 */   117,    4,  129,   30,    4,   59,   30,  117,    4,  129,
698 /* 6380 */    30,    4,   62,   30,  117,    4,  129,   30,    4,   65,
699 /* 6390 */    30,  117,    4,  129,   30,    4,   68,   30,  117,    4,
700 /* 6400 */   129,   30,    4,   71,   30,  117,    4,  129,   30,    4,
701 /* 6410 */    74,   30,  117,    4,  129,   30,    4,   77,   30,  117,
702 /* 6420 */     4,  129,   30,    4,   80,   30,  117,    4,  129,   30,
703 /* 6430 */     4,   83,   30,  117,    4,  129,   30,    4,   86,   35,
704 /* 6440 */   129,   30,    4,   89,   32,  129,   30,    4,   91,   30,
705 /* 6450 */   129,   30,    4,   94,   27,  129,   30,    5,   97,   24,
706 /* 6460 */   129,   30,    5,  100,   21,  129,   30,    7,  103,   18,
707 /* 6470 */   129,   30,    8,  106,   15,  129,   30,   11,  109,   12,
708 /* 6480 */   129,   30,   18,  112,    9,  129,   30,   18,  115,    6,
709 /* 6490 */   129,   30,   18,  117,    4,  129,   30,   18,  120,    1,
710 /* 6500 */   129,  193,  129,   42,    8,  129,   38,   16,  129,   36,
711 /* 6510 */    20,  129,   34,   24,   71,    5,  129,   33,   26,   69,
712 /* 6520 */    10,  129,   32,   28,   68,   13,  129,   31,   30,   68,
713 /* 6530 */    14,  129,   31,    9,   52,    9,   68,   15,  129,   30,
714 /* 6540 */     8,   54,    8,   69,   14,  129,   30,    7,   55,    7,
715 /* 6550 */    71,    4,   78,    6,  129,   30,    6,   56,    6,   79,
716 /* 6560 */     5,  129,   30,    6,   56,    6,   80,    4,  130,   31,
717 /* 6570 */     5,   56,    5,   80,    4,  129,   31,    5,   56,    5,
718 /* 6580 */    79,    5,  129,   32,    5,   55,    5,   78,    6,  129,
719 /* 6590 */    33,    5,   54,    5,   77,    7,  129,   34,    6,   52,
720 /* 6600 */     6,   74,    9,  129,   35,   48,  129,   33,   49,  129,
721 /* 6610 */    32,   49,  129,   31,   49,  129,   30,   49,  129,   30,
722 /* 6620 */    47,  129,   30,   45,  129,   30,   41,  129,   30,    6,
723 /* 6630 */   129,   30,    4,  129,   30,    3,  129,   30,    2,  129,
724 /* 6640 */   193,  129,   30,    4,  117,    4,  130,   31,   90,  136,
725 /* 6650 */    37,    5,   72,    5,  129,   35,    5,   74,    5,  129,
726 /* 6660 */    33,    5,   76,    5,  129,   32,    5,   77,    5,  129,
727 /* 6670 */    31,    5,   78,    5,  129,   31,    4,   79,    4,  129,
728 /* 6680 */    30,    5,   79,    5,  131,   30,    6,   78,    6,  129,
729 /* 6690 */    30,    7,   77,    7,  129,   31,    8,   75,    8,  129,
730 /* 6700 */    31,   11,   72,   11,  129,   32,   15,   67,   15,  129,
731 /* 6710 */    33,   48,  129,   34,   46,  129,   35,   44,  129,   37,
732 /* 6720 */    40,  129,   39,   36,  129,   42,   30,  129,   46,   22,
733 /* 6730 */   129,  193,  129,   48,   18,  129,   43,   28,  129,   41,
734 /* 6740 */    32,  129,   39,   36,  129,   37,   40,  129,   35,   44,
735 /* 6750 */   129,   34,   46,  129,   33,   13,   68,   13,  129,   32,
736 /* 6760 */     9,   73,    9,  129,   32,    7,   75,    7,  129,   31,
737 /* 6770 */     6,   77,    6,  129,   31,    5,   78,    5,  129,   30,
738 /* 6780 */     5,   79,    5,  129,   30,    4,   80,    4,  133,   31,
739 /* 6790 */     3,   79,    4,  129,   31,    4,   79,    4,  129,   32,
740 /* 6800 */     3,   78,    4,  129,   32,    4,   76,    6,  129,   33,
741 /* 6810 */     4,   74,    7,  129,   34,    4,   72,    8,  129,   35,
742 /* 6820 */     5,   72,    7,  129,   37,    5,   73,    4,  129,   39,
743 /* 6830 */     4,   74,    1,  129,  129,  193,  129,   46,   22,  129,
744 /* 6840 */    42,   30,  129,   39,   36,  129,   37,   40,  129,   35,
745 /* 6850 */    44,  129,   34,   46,  129,   33,   48,  129,   32,   15,
746 /* 6860 */    67,   15,  129,   31,   11,   72,   11,  129,   31,    8,
747 /* 6870 */    75,    8,  129,   30,    7,   77,    7,  129,   30,    6,
748 /* 6880 */    78,    6,  129,   30,    5,   79,    5,  131,   31,    4,
749 /* 6890 */    79,    4,  129,   31,    5,   78,    5,  129,   32,    5,
750 /* 6900 */    77,    5,  129,   33,    5,   76,    5,  129,   35,    5,
751 /* 6910 */    74,    5,  117,    4,  129,   37,    5,   72,    5,  117,
752 /* 6920 */     4,  129,   30,   91,  136,   30,    4,  130,  193,  129,
753 /* 6930 */    48,   18,  129,   43,   28,  129,   41,   32,  129,   39,
754 /* 6940 */    36,  129,   37,   40,  129,   35,   44,  129,   34,   46,
755 /* 6950 */   129,   33,   13,   55,    4,   68,   13,  129,   32,    9,
756 /* 6960 */    55,    4,   73,    9,  129,   32,    7,   55,    4,   75,
757 /* 6970 */     7,  129,   31,    6,   55,    4,   77,    6,  129,   31,
758 /* 6980 */     5,   55,    4,   78,    5,  129,   30,    5,   55,    4,
759 /* 6990 */    79,    5,  129,   30,    4,   55,    4,   80,    4,  132,
760 /* 7000 */    30,    4,   55,    4,   79,    5,  129,   31,    3,   55,
761 /* 7010 */     4,   78,    5,  129,   31,    4,   55,    4,   77,    6,
762 /* 7020 */   129,   32,    3,   55,    4,   75,    7,  129,   32,    4,
763 /* 7030 */    55,    4,   73,    9,  129,   33,    4,   55,    4,   68,
764 /* 7040 */    13,  129,   34,    4,   55,   25,  129,   35,    5,   55,
765 /* 7050 */    24,  129,   37,    5,   55,   22,  129,   39,    4,   55,
766 /* 7060 */    20,  129,   55,   18,  129,   55,   16,  129,   55,   11,
767 /* 7070 */   129,  193,  129,   80,    4,  129,   30,    4,   80,    4,
768 /* 7080 */   130,   30,   78,  129,   30,   82,  129,   30,   85,  129,
769 /* 7090 */    30,   87,  129,   30,   88,  129,   30,   89,  129,   30,
770 /* 7100 */    90,  130,   30,    4,   80,    4,  115,    6,  129,   30,
771 /* 7110 */     4,   80,    4,  117,    4,  129,   80,    4,  105,    6,
772 /* 7120 */   117,    4,  129,   80,    4,  103,   10,  116,    5,  129,
773 /* 7130 */    80,    4,  102,   19,  129,   80,    4,  101,   19,  129,
774 /* 7140 */   101,   19,  129,  101,   18,  129,  102,   16,  129,  103,
775 /* 7150 */    12,  129,  105,    6,  129,  193,  129,   12,   10,   59,
776 /* 7160 */    11,  129,    9,   16,   55,   19,  129,    7,   20,   53,
777 /* 7170 */    23,  129,    6,    7,   23,    5,   32,    6,   51,   27,
778 /* 7180 */   129,    4,    7,   25,   16,   50,   29,  129,    3,    6,
779 /* 7190 */    27,   16,   49,   31,  129,    2,    6,   28,   16,   48,
780 /* 7200 */    33,  129,    1,    6,   27,   18,   47,   35,  129,    1,
781 /* 7210 */     6,   27,   31,   71,   12,  129,    1,    5,   26,   15,
782 /* 7220 */    44,   10,   75,    8,  129,    1,    5,   25,   14,   45,
783 /* 7230 */     7,   77,    7,  129,    1,    5,   25,   13,   45,    5,
784 /* 7240 */    79,    5,  129,    1,    5,   24,   14,   45,    4,   80,
785 /* 7250 */     4,  129,    1,    5,   24,   13,   45,    4,   80,    4,
786 /* 7260 */   129,    1,    5,   23,   14,   45,    4,   80,    4,  129,
787 /* 7270 */     1,    5,   23,   13,   45,    4,   80,    4,  129,    1,
788 /* 7280 */     6,   22,   13,   45,    5,   79,    5,  129,    1,    6,
789 /* 7290 */    21,   14,   45,    7,   77,    7,  129,    1,    7,   21,
790 /* 7300 */    13,   46,    8,   75,    8,  129,    1,    8,   20,   13,
791 /* 7310 */    46,   12,   71,   12,  129,    1,   10,   18,   15,   47,
792 /* 7320 */    35,  129,    2,   30,   48,   33,  129,    3,   29,   49,
793 /* 7330 */    32,  129,    4,   27,   50,   31,  129,    5,   25,   51,
794 /* 7340 */    27,   80,    2,   86,    4,  129,    7,   21,   53,   23,
795 /* 7350 */    80,    3,   85,    6,  129,    9,   17,   55,   19,   80,
796 /* 7360 */    12,  129,   12,   12,   59,   11,   81,   11,  129,   82,
797 /* 7370 */    10,  129,   84,    7,  129,   86,    4,  129,  193,  129,
798 /* 7380 */    30,    4,  117,    4,  130,   30,   91,  136,   30,    4,
799 /* 7390 */    72,    5,  129,   30,    4,   74,    5,  129,   75,    5,
800 /* 7400 */   129,   76,    5,  129,   76,    6,  129,   77,    6,  130,
801 /* 7410 */    77,    7,  130,   76,    8,  129,   30,    4,   75,    9,
802 /* 7420 */   129,   30,    4,   72,   12,  129,   30,   54,  129,   30,
803 /* 7430 */    53,  130,   30,   52,  129,   30,   51,  129,   30,   49,
804 /* 7440 */   129,   30,   46,  129,   30,   42,  129,   30,    4,  130,
805 /* 7450 */   193,  129,   30,    4,   80,    4,  129,   30,    4,   80,
806 /* 7460 */     4,  100,    6,  129,   30,   54,   98,   10,  129,   30,
807 /* 7470 */    54,   97,   12,  129,   30,   54,   96,   14,  131,   30,
808 /* 7480 */    54,   97,   12,  129,   30,   54,   98,   10,  129,   30,
809 /* 7490 */    54,  100,    6,  129,   30,    4,  130,  193,  129,    7,
810 /* 7500 */     6,  129,    4,   11,  129,    3,   13,  129,    2,   14,
811 /* 7510 */   129,    1,   15,  130,    1,    3,    6,    9,  129,    1,
812 /* 7520 */     3,    7,    6,  129,    1,    3,  130,    1,    4,  129,
813 /* 7530 */     1,    5,   80,    4,  129,    1,    7,   80,    4,  100,
814 /* 7540 */     6,  129,    2,   82,   98,   10,  129,    3,   81,   97,
815 /* 7550 */    12,  129,    4,   80,   96,   14,  129,    5,   79,   96,
816 /* 7560 */    14,  129,    7,   77,   96,   14,  129,   10,   74,   97,
817 /* 7570 */    12,  129,   14,   70,   98,   10,  129,   19,   65,  100,
818 /* 7580 */     6,  129,  193,  129,   30,    4,  117,    4,  130,   30,
819 /* 7590 */    91,  136,   30,    4,   57,    9,  129,   30,    4,   55,
820 /* 7600 */    12,  129,   52,   17,  129,   50,   20,  129,   48,   24,
821 /* 7610 */   129,   46,   27,  129,   44,   21,   69,    6,  129,   41,
822 /* 7620 */    22,   70,    6,   80,    4,  129,   30,    4,   39,   21,
823 /* 7630 */    72,    6,   80,    4,  129,   30,    4,   36,   22,   73,
824 /* 7640 */    11,  129,   30,   26,   75,    9,  129,   30,   23,   76,
825 /* 7650 */     8,  129,   30,   21,   78,    6,  129,   30,   19,   79,
826 /* 7660 */     5,  129,   30,   16,   80,    4,  129,   30,   14,   80,
827 /* 7670 */     4,  129,   30,   12,  129,   30,   10,  129,   30,    7,
828 /* 7680 */   129,   30,    5,  129,   30,    4,  130,  193,  129,   30,
829 /* 7690 */     4,  117,    4,  130,   30,   91,  136,   30,    4,  130,
830 /* 7700 */   193,  129,   30,    4,   80,    4,  130,   30,   54,  136,
831 /* 7710 */    30,    4,   72,    5,  129,   30,    4,   74,    5,  129,
832 /* 7720 */    75,    5,  129,   76,    5,  129,   30,    4,   75,    7,
833 /* 7730 */   129,   30,    4,   74,    9,  129,   30,   54,  132,   30,
834 /* 7740 */    53,  129,   30,   52,  129,   30,   51,  129,   30,   48,
835 /* 7750 */   129,   30,    4,   72,    5,  129,   30,    4,   74,    5,
836 /* 7760 */   129,   75,    5,  129,   76,    5,  129,   30,    4,   75,
837 /* 7770 */     7,  129,   30,    4,   74,    9,  129,   30,   54,  132,
838 /* 7780 */    30,   53,  129,   30,   52,  129,   30,   51,  129,   30,
839 /* 7790 */    48,  129,   30,    4,  130,  193,  129,   30,    4,   80,
840 /* 7800 */     4,  130,   30,   54,  136,   30,    4,   72,    5,  129,
841 /* 7810 */    30,    4,   74,    5,  129,   75,    5,  129,   76,    5,
842 /* 7820 */   129,   76,    6,  129,   77,    6,  130,   77,    7,  130,
843 /* 7830 */    76,    8,  129,   30,    4,   75,    9,  129,   30,    4,
844 /* 7840 */    72,   12,  129,   30,   54,  129,   30,   53,  130,   30,
845 /* 7850 */    52,  129,   30,   51,  129,   30,   49,  129,   30,   46,
846 /* 7860 */   129,   30,   42,  129,   30,    4,  130,  193,  129,   48,
847 /* 7870 */    18,  129,   43,   28,  129,   41,   32,  129,   39,   36,
848 /* 7880 */   129,   37,   40,  129,   35,   44,  129,   34,   46,  129,
849 /* 7890 */    33,   13,   68,   13,  129,   32,    9,   73,    9,  129,
850 /* 7900 */    32,    7,   75,    7,  129,   31,    6,   77,    6,  129,
851 /* 7910 */    31,    5,   78,    5,  129,   30,    5,   79,    5,  129,
852 /* 7920 */    30,    4,   80,    4,  132,   30,    5,   79,    5,  130,
853 /* 7930 */    31,    5,   78,    5,  129,   31,    6,   77,    6,  129,
854 /* 7940 */    32,    7,   75,    7,  129,   32,    9,   73,    9,  129,
855 /* 7950 */    33,   13,   68,   13,  129,   34,   46,  129,   35,   44,
856 /* 7960 */   129,   37,   40,  129,   39,   36,  129,   41,   32,  129,
857 /* 7970 */    43,   28,  129,   48,   18,  129,  193,  129,    1,    3,
858 /* 7980 */    80,    4,  130,    1,   83,  137,   37,    5,   72,    5,
859 /* 7990 */   129,   35,    5,   74,    5,  129,   33,    5,   76,    5,
860 /* 8000 */   129,   32,    5,   77,    5,  129,   31,    5,   78,    5,
861 /* 8010 */   129,   31,    4,   79,    4,  129,   30,    5,   79,    5,
862 /* 8020 */   131,   30,    6,   78,    6,  129,   30,    7,   77,    7,
863 /* 8030 */   129,   31,    8,   75,    8,  129,   31,   11,   72,   11,
864 /* 8040 */   129,   32,   15,   67,   15,  129,   33,   48,  129,   34,
865 /* 8050 */    46,  129,   35,   44,  129,   37,   40,  129,   39,   36,
866 /* 8060 */   129,   42,   30,  129,   46,   22,  129,  193,  129,   46,
867 /* 8070 */    22,  129,   42,   30,  129,   39,   36,  129,   37,   40,
868 /* 8080 */   129,   35,   44,  129,   34,   46,  129,   33,   48,  129,
869 /* 8090 */    32,   15,   67,   15,  129,   31,   11,   72,   11,  129,
870 /* 8100 */    31,    8,   75,    8,  129,   30,    7,   77,    7,  129,
871 /* 8110 */    30,    6,   78,    6,  129,   30,    5,   79,    5,  131,
872 /* 8120 */    31,    4,   79,    4,  129,   31,    5,   78,    5,  129,
873 /* 8130 */    32,    5,   77,    5,  129,   33,    5,   76,    5,  129,
874 /* 8140 */    35,    5,   74,    5,  129,   37,    5,   72,    5,  129,
875 /* 8150 */     1,   83,  136,    1,    3,   80,    4,  130,  193,  129,
876 /* 8160 */    30,    4,   80,    4,  130,   30,   54,  136,   30,    4,
877 /* 8170 */    68,    6,  129,   30,    4,   70,    6,  129,   71,    7,
878 /* 8180 */   129,   72,    7,  129,   73,    7,  129,   74,    7,  129,
879 /* 8190 */    74,    8,  129,   75,    8,  130,   69,   15,  129,   67,
880 /* 8200 */    17,  129,   66,   18,  129,   65,   19,  130,   65,   18,
881 /* 8210 */   130,   66,   16,  129,   67,   13,  129,   69,    8,  129,
882 /* 8220 */   193,  129,   30,   13,   64,    8,  129,   30,   13,   61,
883 /* 8230 */    14,  129,   30,   13,   59,   18,  129,   30,   13,   57,
884 /* 8240 */    22,  129,   33,    8,   56,   24,  129,   32,    7,   55,
885 /* 8250 */    26,  129,   32,    6,   54,   28,  129,   31,    6,   53,
886 /* 8260 */    16,   77,    6,  129,   31,    5,   53,   14,   79,    4,
887 /* 8270 */   129,   30,    5,   52,   14,   80,    4,  129,   30,    5,
888 /* 8280 */    52,   13,   80,    4,  129,   30,    4,   52,   13,   80,
889 /* 8290 */     4,  129,   30,    4,   52,   12,   80,    4,  129,   30,
890 /* 8300 */     4,   51,   13,   80,    4,  130,   30,    4,   50,   13,
891 /* 8310 */    79,    5,  129,   30,    4,   50,   13,   78,    5,  129,
892 /* 8320 */    30,    5,   49,   14,   77,    6,  129,   31,    4,   49,
893 /* 8330 */    13,   76,    6,  129,   31,    5,   48,   14,   75,    7,
894 /* 8340 */   129,   32,    5,   47,   14,   73,    8,  129,   32,    6,
895 /* 8350 */    45,   16,   71,   13,  129,   33,   27,   71,   13,  129,
896 /* 8360 */    34,   26,   71,   13,  129,   35,   24,   71,   13,  129,
897 /* 8370 */    37,   20,  129,   39,   16,  129,   43,    9,  129,  193,
898 /* 8380 */   129,   80,    4,  131,   41,   56,  129,   37,   60,  129,
899 /* 8390 */    35,   62,  129,   33,   64,  129,   32,   65,  129,   31,
900 /* 8400 */    66,  129,   30,   67,  130,   30,   11,   80,    4,  129,
901 /* 8410 */    30,    9,   80,    4,  129,   30,    8,   80,    4,  129,
902 /* 8420 */    31,    7,   80,    4,  129,   31,    6,  129,   32,    5,
903 /* 8430 */   129,   33,    5,  129,   35,    4,  129,   38,    3,  129,
904 /* 8440 */   193,  129,   80,    4,  130,   42,   42,  129,   38,   46,
905 /* 8450 */   129,   35,   49,  129,   33,   51,  129,   32,   52,  129,
906 /* 8460 */    31,   53,  130,   30,   54,  129,   30,   12,  129,   30,
907 /* 8470 */     9,  129,   30,    8,  129,   30,    7,  130,   31,    6,
908 /* 8480 */   130,   32,    6,  129,   33,    5,  129,   34,    5,  129,
909 /* 8490 */    35,    5,   80,    4,  129,   37,    5,   80,    4,  129,
910 /* 8500 */    30,   54,  136,   30,    4,  130,  193,  129,   80,    4,
911 /* 8510 */   130,   77,    7,  129,   74,   10,  129,   70,   14,  129,
912 /* 8520 */    66,   18,  129,   62,   22,  129,   59,   25,  129,   55,
913 /* 8530 */    29,  129,   51,   33,  129,   47,   37,  129,   44,   32,
914 /* 8540 */    80,    4,  129,   40,   32,   80,    4,  129,   36,   32,
915 /* 8550 */   129,   32,   33,  129,   30,   31,  129,   33,   24,  129,
916 /* 8560 */    36,   17,  129,   40,   12,  129,   44,   12,  129,   48,
917 /* 8570 */    12,  129,   51,   13,  129,   55,   13,  129,   59,   13,
918 /* 8580 */    80,    4,  129,   63,   13,   80,    4,  129,   67,   17,
919 /* 8590 */   129,   71,   13,  129,   74,   10,  129,   78,    6,  129,
920 /* 8600 */    80,    4,  131,  193,  129,   80,    4,  130,   77,    7,
921 /* 8610 */   129,   74,   10,  129,   70,   14,  129,   66,   18,  129,
922 /* 8620 */    62,   22,  129,   59,   25,  129,   55,   29,  129,   51,
923 /* 8630 */    33,  129,   47,   37,  129,   44,   32,   80,    4,  129,
924 /* 8640 */    40,   32,   80,    4,  129,   36,   32,  129,   32,   33,
925 /* 8650 */   129,   30,   31,  129,   33,   24,  129,   36,   17,  129,
926 /* 8660 */    40,   12,  129,   44,   12,  129,   47,   13,  129,   44,
927 /* 8670 */    20,  129,   40,   28,  129,   36,   31,  129,   32,   32,
928 /* 8680 */   129,   30,   30,  129,   33,   24,  129,   36,   17,  129,
929 /* 8690 */    40,   12,  129,   44,   12,  129,   48,   12,  129,   51,
930 /* 8700 */    13,  129,   55,   13,  129,   59,   13,   80,    4,  129,
931 /* 8710 */    63,   13,   80,    4,  129,   67,   17,  129,   71,   13,
932 /* 8720 */   129,   74,   10,  129,   78,    6,  129,   80,    4,  131,
933 /* 8730 */   193,  129,   30,    4,   80,    4,  130,   30,    4,   79,
934 /* 8740 */     5,  129,   30,    5,   77,    7,  129,   30,    6,   74,
935 /* 8750 */    10,  129,   30,    8,   72,   12,  129,   30,   11,   69,
936 /* 8760 */    15,  129,   30,   13,   67,   17,  129,   30,    4,   37,
937 /* 8770 */     8,   64,   20,  129,   30,    4,   39,    8,   62,   22,
938 /* 8780 */   129,   41,    8,   59,   25,  129,   43,    8,   57,   27,
939 /* 8790 */   129,   45,    8,   55,   22,   80,    4,  129,   47,   27,
940 /* 8800 */    80,    4,  129,   49,   23,  129,   47,   22,  129,   44,
941 /* 8810 */    23,  129,   42,   22,  129,   30,    4,   39,   27,  129,
942 /* 8820 */    30,    4,   37,   31,  129,   30,   27,   62,    8,  129,
943 /* 8830 */    30,   25,   64,    8,  129,   30,   22,   66,    8,   80,
944 /* 8840 */     4,  129,   30,   20,   68,    8,   80,    4,  129,   30,
945 /* 8850 */    17,   70,    8,   80,    4,  129,   30,   15,   73,   11,
946 /* 8860 */   129,   30,   12,   75,    9,  129,   30,   10,   77,    7,
947 /* 8870 */   129,   30,    7,   79,    5,  129,   30,    5,   80,    4,
948 /* 8880 */   129,   30,    4,   80,    4,  130,  193,  129,    4,    5,
949 /* 8890 */    80,    4,  129,    2,    9,   80,    4,  129,    1,   11,
950 /* 8900 */    77,    7,  129,    1,   12,   74,   10,  129,    1,   12,
951 /* 8910 */    70,   14,  129,    1,   12,   66,   18,  129,    1,   11,
952 /* 8920 */    62,   22,  129,    2,    9,   59,   25,  129,    4,   11,
953 /* 8930 */    55,   29,  129,    7,   12,   51,   33,  129,   10,   12,
954 /* 8940 */    47,   37,  129,   14,   12,   44,   32,   80,    4,  129,
955 /* 8950 */    17,   13,   40,   32,   80,    4,  129,   21,   13,   36,
956 /* 8960 */    32,  129,   25,   40,  129,   29,   32,  129,   33,   24,
957 /* 8970 */   129,   36,   17,  129,   40,   12,  129,   44,   12,  129,
958 /* 8980 */    48,   12,  129,   51,   13,  129,   55,   13,  129,   59,
959 /* 8990 */    13,   80,    4,  129,   63,   13,   80,    4,  129,   67,
960 /* 9000 */    17,  129,   71,   13,  129,   74,   10,  129,   78,    6,
961 /* 9010 */   129,   80,    4,  131,  193,  129,   30,    1,   71,   13,
962 /* 9020 */   129,   30,    3,   71,   13,  129,   30,    6,   71,   13,
963 /* 9030 */   129,   30,    9,   75,    9,  129,   30,   11,   77,    7,
964 /* 9040 */   129,   30,   14,   79,    5,  129,   30,   17,   79,    5,
965 /* 9050 */   129,   30,   19,   80,    4,  129,   30,   22,   80,    4,
966 /* 9060 */   129,   30,   25,   80,    4,  129,   30,   27,   80,    4,
967 /* 9070 */   129,   30,    4,   36,   24,   80,    4,  129,   30,    4,
968 /* 9080 */    38,   25,   80,    4,  129,   30,    4,   41,   24,   80,
969 /* 9090 */     4,  129,   30,    4,   44,   24,   80,    4,  129,   30,
970 /* 9100 */     4,   46,   25,   80,    4,  129,   30,    4,   49,   25,
971 /* 9110 */    80,    4,  129,   30,    4,   52,   24,   80,    4,  129,
972 /* 9120 */    30,    4,   54,   30,  129,   30,    4,   57,   27,  129,
973 /* 9130 */    30,    4,   59,   25,  129,   30,    4,   62,   22,  129,
974 /* 9140 */    30,    4,   65,   19,  129,   30,    5,   67,   17,  129,
975 /* 9150 */    30,    5,   70,   14,  129,   30,    7,   73,   11,  129,
976 /* 9160 */    30,    9,   76,    8,  129,   30,   13,   78,    6,  129,
977 /* 9170 */    30,   13,   81,    3,  129,   30,   13,  129,  193,    2,
978 /* 9180 */     9,   59,   25,  129,    4,   11,   55,   29,  129,    7,
979 /* 9190 */    12,   51,   33,  129,   10,   12,   47,   37,  129,   14,
980 /* 9200 */    12,   44,   32,   80,    4,  129,   17,   13,   40,   32,
981 /* 9210 */    80,    4,  129,   21,   13,   36,   32,  129,   25,   40,
982 /* 9220 */   129,   29,   32,  129,   33,   24,  129,   36,   17,  129,
983 /* 9230 */    40,   12,  129,   44,   12,  129,   48,   12,  129,   51,
984 /* 9240 */    13,  129,   55,   13,  129,   59,   13,   80,    4,  129,
985 /* 9250 */    63,   13,   80,    4,  129,   67,   17,  129,   71,   13,
986 /* 9260 */   129,   74,   10,  129,   78,    6,  129,   80,    4,  131,
987 /* 9270 */   193
988 };
989 
990 int i,j;
991 int width = DWIDTH;	/* -w option: scrunch letters to 80 columns */
992 int debug;
993 int trace;
994 char line[DWIDTH];
995 char print[DWIDTH];
996 char message[MAXMSG];
997 int nchars;
998 int linen;
999 int x,y;
1000 int term;
1001 int pc;
1002 int max;
1003 
1004 main(argc, argv)
1005 	int argc;
1006 	char **argv;
1007 {
1008 	extern char *optarg;
1009 	extern int optind;
1010 	int ch;
1011 	char *strcpy(), *strcat();
1012 
1013 	while ((ch = getopt(argc, argv, "w:td")) != EOF)
1014 		switch((char)ch) {
1015 		case 'w':
1016 			width = atoi(optarg);
1017 			if (width <= 0)
1018 				width = 80;
1019 			break;
1020 		case 'd':
1021 			debug = 1;
1022 			break;
1023 		case 't':
1024 			trace = 1;
1025 			break;
1026 		case '?':
1027 		default:
1028 			fprintf(stderr, "usage: banner [-w width]\n");
1029 			exit(1);
1030 		}
1031 	argc -= optind;
1032 	argv += optind;
1033 
1034 	for (i=0; i<width; i++) {
1035 		j = i * 132 / width;
1036 		print[j] = 1;
1037 	}
1038 
1039 #ifdef notdef
1040 	{
1041 #define dir(f) "/e1/mrh/ucb/lib/f"
1042 #define INDTBL dir(ban.dat.indtbl)
1043 #define OBJECT dir(ban.dat.object)
1044 		FILE *fd;
1045 
1046 		fd = fopen(INDTBL, "r");
1047 		for (i=0; i<NCHARS; i++) {
1048 			fscanf(fd, "%d", &asc_ptr[i]);
1049 		}
1050 		fclose(fd);
1051 
1052 		fd = fopen(OBJECT, "r");
1053 		fread(data_table, 1, NBYTES, fd);
1054 		fclose(fd);
1055 	}
1056 #endif
1057 
1058 	/* Have now read in the data. Next get the message to be printed. */
1059 	if (*argv) {
1060 		strcpy(message, *argv);
1061 		while (*++argv) {
1062 			strcat(message, " ");
1063 			strcat(message, *argv);
1064 		}
1065 		nchars = strlen(message);
1066 	} else {
1067 		fprintf(stderr,"Message: ");
1068 		(void)fgets(message, sizeof(message), stdin);
1069 		nchars = strlen(message);
1070 		message[nchars--] = '\0';	/* get rid of newline */
1071 	}
1072 
1073 	/* some debugging print statements */
1074 	if (debug) {
1075 		printf("int asc_ptr[128] = {\n");
1076 		for (i=0; i<128; i++) {
1077 			printf("%4d,   ",asc_ptr[i]);
1078 			if ((i+1) % 8 == 0)
1079 				printf("\n");
1080 		}
1081 		printf("};\nchar data_table[NBYTES] = {\n");
1082 		printf("  /*   ");
1083 		for (i=0; i<10; i++) printf(" %3d  ",i);
1084 		printf("   */\n");
1085 		for (i=0; i<NBYTES; i += 10) {
1086 			printf("/* %4d */  ",i);
1087 			for (j=i; j<i+10; j++) {
1088 				x = data_table[j] & 0377;
1089 				printf(" %3d, ",x);
1090 			}
1091 			putchar('\n');
1092 		}
1093 		printf("};\n");
1094 	}
1095 
1096 	/* check message to make sure it's legal */
1097 	j = 0;
1098 	for (i=0; i<nchars; i++)
1099 		if (asc_ptr[message[i]] == 0) {
1100 			printf("The character '%c' is not in my character set.\n",message[i]);
1101 			j++;
1102 		}
1103 	if (j) exit(1);
1104 
1105 	if (trace)
1106 		printf("Message '%s' is OK\n",message);
1107 	/* Now have message. Print it one character at a time.  */
1108 
1109 	for (i=0; i<nchars; i++) {
1110 		if (trace)
1111 			printf("Char #%d: %c\n", i, message[i]);
1112 		for (j=0; j<DWIDTH; j++) line[j] = ' ';
1113 		pc = asc_ptr[message[i]];
1114 		term = 0;
1115 		max = 0;
1116 		linen = 0;
1117 		while ( !term ) {
1118 			if (pc<0 || pc > NBYTES) {
1119 				printf("bad pc: %d\n",pc);
1120 				exit(1);
1121 			}
1122 			x = data_table[pc] & 0377;
1123 			if (trace)
1124 				printf("pc=%d, term=%d, max=%d, linen=%d, x=%d\n",pc,term,max,linen,x);
1125 			if (x >= 128) {
1126 				if (x>192) term++;
1127 				x = x & 63;
1128 				while (x--) {
1129 					if (print[linen++]) {
1130 						for (j=0; j<=max; j++)
1131 							if (print[j])
1132 								putchar(line[j]);
1133 						putchar('\n');
1134 					}
1135 				}
1136 				for (j=0; j<DWIDTH; j++) line[j] = ' ';
1137 				pc++;
1138 			}
1139 			else {
1140 				y = data_table[pc+1];
1141 				/* compensate for narrow teminals */
1142 #ifdef notdef
1143 				x = (x*width + (DWIDTH/2)) / DWIDTH;
1144 				y = (y*width + (DWIDTH/2)) / DWIDTH;
1145 #endif
1146 				max = x+y;
1147 				while (x < max) line[x++] = '#';
1148 				pc += 2;
1149 				if (trace)
1150 					printf("x=%d, y=%d, max=%d\n",x,y,max);
1151 			}
1152 		}
1153 	}
1154 
1155 	exit(0);
1156 }
1157