banner.c 73 KB

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