Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
/*	$NetBSD: banner.c,v 1.21 2012/10/13 19:44:36 dholland Exp $	*/

/*
 * Copyright (c) 1980, 1993, 1994
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#include <sys/cdefs.h>
#ifndef lint
__COPYRIGHT("@(#) Copyright (c) 1980, 1993, 1994\
 The Regents of the University of California.  All rights reserved.");
#endif /* not lint */

#ifndef lint
#if 0
static char sccsid[] = "@(#)banner.c	8.4 (Berkeley) 4/29/95";
#else
__RCSID("$NetBSD: banner.c,v 1.21 2012/10/13 19:44:36 dholland Exp $");
#endif
#endif /* not lint */

/*
 * banner - prints large signs
 * banner [-dt] [-w width] [message]
 */

#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define MAXMSG 1024
#define DWIDTH 132
#define NCHARS 128
#define NBYTES 9271

/* Pointers into data_table for each ASCII char */
static const int asc_ptr[NCHARS] = {
/* ^@ */   0,      0,      0,      0,      0,      0,      0,      0,
/* ^H */   0,      0,      0,      0,      0,      0,      0,      0,
/* ^P */   0,      0,      0,      0,      0,      0,      0,      0,
/* ^X */   0,      0,      0,      0,      0,      0,      0,      0,
/*    */   1,      3,     50,     81,    104,    281,    483,    590,
/*  ( */ 621,    685,    749,    851,    862,    893,    898,    921,
/*  0 */1019,   1150,   1200,   1419,   1599,   1744,   1934,   2111,
/*  8 */2235,   2445,   2622,   2659,      0,   2708,      0,   2715,
/*  @ */2857,   3072,   3273,   3403,   3560,   3662,   3730,   3785,
/*  H */3965,   4000,   4015,   4115,   4281,   4314,   4432,   4548,
/*  P */4709,   4790,   4999,   5188,   5397,   5448,   5576,   5710,
/*  X */5892,   6106,   6257,      0,      0,      0,      0,      0,
/*  ` */  50,   6503,   6642,   6733,   6837,   6930,   7073,   7157,
/*  h */7380,   7452,   7499,   7584,   7689,   7702,   7797,   7869,
/*  p */7978,   8069,   8160,   8222,   8381,   8442,   8508,   8605,
/*  x */8732,   8888,   9016,      0,      0,      0,      0,      0
};

/*
 * Table of stuff to print. Format:
 * 128+n -> print current line n times.
 * 64+n  -> this is last byte of char.
 * else, put m chars at position n (where m
 * is the next elt in array) and goto second
 * next element in array.
 */
static const unsigned char data_table[NBYTES] = {
/*             0     1     2     3     4     5     6     7     8     9 */
/*    0 */   129,  227,  130,   34,    6,   90,   19,  129,   32,   10, 
/*   10 */    74,   40,  129,   31,   12,   64,   53,  129,   30,   14, 
/*   20 */    54,   65,  129,   30,   14,   53,   67,  129,   30,   14, 
/*   30 */    54,   65,  129,   31,   12,   64,   53,  129,   32,   10, 
/*   40 */    74,   40,  129,   34,    6,   90,   19,  129,  194,  130, 
/*   50 */    99,    9,  129,   97,   14,  129,   96,   18,  129,   95, 
/*   60 */    22,  129,   95,   16,  117,    2,  129,   95,   14,  129, 
/*   70 */    96,   11,  129,   97,    9,  129,   99,    6,  129,  194, 
/*   80 */   129,   87,    4,  101,    4,  131,   82,   28,  131,   87, 
/*   90 */     4,  101,    4,  133,   82,   28,  131,   87,    4,  101, 
/*  100 */     4,  131,  193,  129,   39,    1,   84,   27,  129,   38, 
/*  110 */     3,   81,   32,  129,   37,    5,   79,   35,  129,   36, 
/*  120 */     5,   77,   38,  129,   35,    5,   76,   40,  129,   34, 
/*  130 */     5,   75,   21,  103,   14,  129,   33,    5,   74,   19, 
/*  140 */   107,   11,  129,   32,    5,   73,   17,  110,    9,  129, 
/*  150 */    32,    4,   73,   16,  112,    7,  129,   31,    4,   72, 
/*  160 */    15,  114,    6,  129,   31,    4,   72,   14,  115,    5, 
/*  170 */   129,   30,    4,   71,   15,  116,    5,  129,   27,   97, 
/*  180 */   131,   30,    4,   69,   14,  117,    4,  129,   30,    4, 
/*  190 */    68,   15,  117,    4,  132,   30,    4,   68,   14,  117, 
/*  200 */     4,  129,   27,   97,  131,   30,    5,   65,   15,  116, 
/*  210 */     5,  129,   31,    4,   65,   14,  116,    4,  129,   31, 
/*  220 */     6,   64,   15,  116,    4,  129,   32,    7,   62,   16, 
/*  230 */   115,    4,  129,   32,    9,   61,   17,  114,    5,  129, 
/*  240 */    33,   11,   58,   19,  113,    5,  129,   34,   14,   55, 
/*  250 */    21,  112,    5,  129,   35,   40,  111,    5,  129,   36, 
/*  260 */    38,  110,    5,  129,   37,   35,  109,    5,  129,   38, 
/*  270 */    32,  110,    3,  129,   40,   27,  111,    1,  129,  193, 
/*  280 */   129,   30,    4,  103,    9,  129,   30,    7,  100,   15, 
/*  290 */   129,   30,   10,   99,   17,  129,   33,   10,   97,    6, 
/*  300 */   112,    6,  129,   36,   10,   96,    5,  114,    5,  129, 
/*  310 */    39,   10,   96,    4,  115,    4,  129,   42,   10,   95, 
/*  320 */     4,  116,    4,  129,   45,   10,   95,    3,  117,    3, 
/*  330 */   129,   48,   10,   95,    3,  117,    3,  129,   51,   10, 
/*  340 */    95,    4,  116,    4,  129,   54,   10,   96,    4,  115, 
/*  350 */     4,  129,   57,   10,   96,    5,  114,    5,  129,   60, 
/*  360 */    10,   97,    6,  112,    6,  129,   63,   10,   99,   17, 
/*  370 */   129,   66,   10,  100,   15,  129,   69,   10,  103,    9, 
/*  380 */   129,   39,    9,   72,   10,  129,   36,   15,   75,   10, 
/*  390 */   129,   35,   17,   78,   10,  129,   33,    6,   48,    6, 
/*  400 */    81,   10,  129,   32,    5,   50,    5,   84,   10,  129, 
/*  410 */    32,    4,   51,    4,   87,   10,  129,   31,    4,   52, 
/*  420 */     4,   90,   10,  129,   31,    3,   53,    3,   93,   10, 
/*  430 */   129,   31,    3,   53,    3,   96,   10,  129,   31,    4, 
/*  440 */    52,    4,   99,   10,  129,   32,    4,   51,    4,  102, 
/*  450 */    10,  129,   32,    5,   50,    5,  105,   10,  129,   33, 
/*  460 */     6,   48,    6,  108,   10,  129,   35,   17,  111,   10, 
/*  470 */   129,   36,   15,  114,    7,  129,   40,    9,  118,    4, 
/*  480 */   129,  193,  129,   48,   18,  129,   43,   28,  129,   41, 
/*  490 */    32,  129,   39,   36,  129,   37,   40,  129,   35,   44, 
/*  500 */   129,   34,   46,  129,   33,   13,   68,   13,  129,   32, 
/*  510 */     9,   73,    9,  129,   32,    7,   75,    7,  129,   31, 
/*  520 */     6,   77,    6,  129,   31,    5,   78,    5,  129,   30, 
/*  530 */     5,   79,    5,  129,   20,   74,  132,   30,    4,   80, 
/*  540 */     4,  129,   31,    3,   79,    4,  129,   31,    4,   79, 
/*  550 */     4,  129,   32,    3,   78,    4,  129,   32,    4,   76, 
/*  560 */     6,  129,   33,    4,   74,    7,  129,   34,    4,   72, 
/*  570 */     8,  129,   35,    5,   72,    7,  129,   37,    5,   73, 
/*  580 */     4,  129,   39,    4,   74,    1,  129,  129,  193,  130, 
/*  590 */   111,    6,  129,  109,   10,  129,  108,   12,  129,  107, 
/*  600 */    14,  129,   97,    2,  105,   16,  129,   99,   22,  129, 
/*  610 */   102,   18,  129,  105,   14,  129,  108,    9,  129,  194, 
/*  620 */   130,   63,   25,  129,   57,   37,  129,   52,   47,  129, 
/*  630 */    48,   55,  129,   44,   63,  129,   41,   69,  129,   38, 
/*  640 */    75,  129,   36,   79,  129,   34,   83,  129,   33,   28, 
/*  650 */    90,   28,  129,   32,   23,   96,   23,  129,   32,   17, 
/*  660 */   102,   17,  129,   31,   13,  107,   13,  129,   30,    9, 
/*  670 */   112,    9,  129,   30,    5,  116,    5,  129,   30,    1, 
/*  680 */   120,    1,  129,  194,  130,   30,    1,  120,    1,  129, 
/*  690 */    30,    5,  116,    5,  129,   30,    9,  112,    9,  129, 
/*  700 */    31,   13,  107,   13,  129,   32,   17,  102,   17,  129, 
/*  710 */    32,   23,   96,   23,  129,   33,   28,   90,   28,  129, 
/*  720 */    34,   83,  129,   36,   79,  129,   38,   75,  129,   41, 
/*  730 */    69,  129,   44,   63,  129,   48,   55,  129,   52,   47, 
/*  740 */   129,   57,   37,  129,   63,   25,  129,  194,  129,   80, 
/*  750 */     4,  130,   80,    4,  129,   68,    2,   80,    4,   94, 
/*  760 */     2,  129,   66,    6,   80,    4,   92,    6,  129,   67, 
/*  770 */     7,   80,    4,   90,    7,  129,   69,    7,   80,    4, 
/*  780 */    88,    7,  129,   71,    6,   80,    4,   87,    6,  129, 
/*  790 */    72,   20,  129,   74,   16,  129,   76,   12,  129,   62, 
/*  800 */    40,  131,   76,   12,  129,   74,   16,  129,   72,   20, 
/*  810 */   129,   71,    6,   80,    4,   87,    6,  129,   69,    7, 
/*  820 */    80,    4,   88,    7,  129,   67,    7,   80,    4,   90, 
/*  830 */     7,  129,   66,    6,   80,    4,   92,    6,  129,   68, 
/*  840 */     2,   80,    4,   94,    2,  129,   80,    4,  130,  193, 
/*  850 */   129,   60,    4,  139,   41,   42,  131,   60,    4,  139, 
/*  860 */   193,  130,   34,    6,  129,   32,   10,  129,   31,   12, 
/*  870 */   129,   30,   14,  129,   20,    2,   28,   16,  129,   22, 
/*  880 */    22,  129,   24,   19,  129,   27,   15,  129,   31,    9, 
/*  890 */   129,  194,  129,   60,    4,  152,  193,  130,   34,    6, 
/*  900 */   129,   32,   10,  129,   31,   12,  129,   30,   14,  131, 
/*  910 */    31,   12,  129,   32,   10,  129,   34,    6,  129,  194, 
/*  920 */   129,   30,    4,  129,   30,    7,  129,   30,   10,  129, 
/*  930 */    33,   10,  129,   36,   10,  129,   39,   10,  129,   42, 
/*  940 */    10,  129,   45,   10,  129,   48,   10,  129,   51,   10, 
/*  950 */   129,   54,   10,  129,   57,   10,  129,   60,   10,  129, 
/*  960 */    63,   10,  129,   66,   10,  129,   69,   10,  129,   72, 
/*  970 */    10,  129,   75,   10,  129,   78,   10,  129,   81,   10, 
/*  980 */   129,   84,   10,  129,   87,   10,  129,   90,   10,  129, 
/*  990 */    93,   10,  129,   96,   10,  129,   99,   10,  129,  102, 
/* 1000 */    10,  129,  105,   10,  129,  108,   10,  129,  111,   10, 
/* 1010 */   129,  114,    7,  129,  117,    4,  129,  193,  129,   60, 
/* 1020 */    31,  129,   53,   45,  129,   49,   53,  129,   46,   59, 
/* 1030 */   129,   43,   65,  129,   41,   69,  129,   39,   73,  129, 
/* 1040 */    37,   77,  129,   36,   79,  129,   35,   15,  101,   15, 
/* 1050 */   129,   34,   11,  106,   11,  129,   33,    9,  109,    9, 
/* 1060 */   129,   32,    7,  112,    7,  129,   31,    6,  114,    6, 
/* 1070 */   129,   31,    5,  115,    5,  129,   30,    5,  116,    5, 
/* 1080 */   129,   30,    4,  117,    4,  132,   30,    5,  116,    5, 
/* 1090 */   129,   31,    5,  115,    5,  129,   31,    6,  114,    6, 
/* 1100 */   129,   32,    7,  112,    7,  129,   33,    9,  109,    9, 
/* 1110 */   129,   34,   11,  106,   11,  129,   35,   15,  101,   15, 
/* 1120 */   129,   36,   79,  129,   37,   77,  129,   39,   73,  129, 
/* 1130 */    41,   69,  129,   43,   65,  129,   46,   59,  129,   49, 
/* 1140 */    53,  129,   53,   45,  129,   60,   31,  129,  193,  129, 
/* 1150 */    30,    4,  129,   30,    4,  100,    1,  129,   30,    4, 
/* 1160 */   100,    3,  129,   30,    4,  100,    5,  129,   30,   76, 
/* 1170 */   129,   30,   78,  129,   30,   80,  129,   30,   82,  129, 
/* 1180 */    30,   83,  129,   30,   85,  129,   30,   87,  129,   30, 
/* 1190 */    89,  129,   30,   91,  129,   30,    4,  132,  193,  129, 
/* 1200 */    30,    3,  129,   30,    7,  129,   30,   10,  112,    1, 
/* 1210 */   129,   30,   13,  112,    2,  129,   30,   16,  112,    3, 
/* 1220 */   129,   30,   18,  111,    5,  129,   30,   21,  111,    6, 
/* 1230 */   129,   30,   23,  112,    6,  129,   30,   14,   47,    8, 
/* 1240 */   113,    6,  129,   30,   14,   49,    8,  114,    5,  129, 
/* 1250 */    30,   14,   51,    8,  115,    5,  129,   30,   14,   53, 
/* 1260 */     8,  116,    4,  129,   30,   14,   55,    8,  116,    5, 
/* 1270 */   129,   30,   14,   56,    9,  117,    4,  129,   30,   14, 
/* 1280 */    57,    9,  117,    4,  129,   30,   14,   58,   10,  117, 
/* 1290 */     4,  129,   30,   14,   59,   10,  117,    4,  129,   30, 
/* 1300 */    14,   60,   11,  117,    4,  129,   30,   14,   61,   11, 
/* 1310 */   116,    5,  129,   30,   14,   62,   11,  116,    5,  129, 
/* 1320 */    30,   14,   63,   12,  115,    6,  129,   30,   14,   64, 
/* 1330 */    13,  114,    7,  129,   30,   14,   65,   13,  113,    8, 
/* 1340 */   129,   30,   14,   65,   15,  111,    9,  129,   30,   14, 
/* 1350 */    66,   16,  109,   11,  129,   30,   14,   67,   17,  107, 
/* 1360 */    12,  129,   30,   14,   68,   20,  103,   16,  129,   30, 
/* 1370 */    14,   69,   49,  129,   30,   14,   70,   47,  129,   30, 
/* 1380 */    14,   71,   45,  129,   30,   14,   73,   42,  129,   30, 
/* 1390 */    15,   75,   38,  129,   33,   12,   77,   34,  129,   36, 
/* 1400 */    10,   79,   30,  129,   40,    6,   82,   23,  129,   44, 
/* 1410 */     3,   86,   15,  129,   47,    1,  129,  193,  129,  129, 
/* 1420 */    38,    3,  129,   37,    5,  111,    1,  129,   36,    7, 
/* 1430 */   111,    2,  129,   35,    9,  110,    5,  129,   34,    8, 
/* 1440 */   110,    6,  129,   33,    7,  109,    8,  129,   32,    7, 
/* 1450 */   110,    8,  129,   32,    6,  112,    7,  129,   31,    6, 
/* 1460 */   113,    6,  129,   31,    5,  114,    6,  129,   30,    5, 
/* 1470 */   115,    5,  129,   30,    5,  116,    4,  129,   30,    4, 
/* 1480 */   117,    4,  131,   30,    4,  117,    4,  129,   30,    4, 
/* 1490 */    79,    2,  117,    4,  129,   30,    5,   78,    4,  117, 
/* 1500 */     4,  129,   30,    5,   77,    6,  116,    5,  129,   30, 
/* 1510 */     6,   76,    8,  115,    6,  129,   30,    7,   75,   11, 
/* 1520 */   114,    6,  129,   30,    8,   73,   15,  112,    8,  129, 
/* 1530 */    31,    9,   71,   19,  110,    9,  129,   31,   11,   68, 
/* 1540 */    26,  107,   12,  129,   32,   13,   65,   14,   82,   36, 
/* 1550 */   129,   32,   16,   61,   17,   83,   34,  129,   33,   44, 
/* 1560 */    84,   32,  129,   34,   42,   85,   30,  129,   35,   40, 
/* 1570 */    87,   27,  129,   36,   38,   89,   23,  129,   38,   34, 
/* 1580 */    92,   17,  129,   40,   30,   95,   11,  129,   42,   26, 
/* 1590 */   129,   45,   20,  129,   49,   11,  129,  193,  129,   49, 
/* 1600 */     1,  129,   49,    4,  129,   49,    6,  129,   49,    8, 
/* 1610 */   129,   49,   10,  129,   49,   12,  129,   49,   14,  129, 
/* 1620 */    49,   17,  129,   49,   19,  129,   49,   21,  129,   49, 
/* 1630 */    23,  129,   49,   14,   65,    9,  129,   49,   14,   67, 
/* 1640 */     9,  129,   49,   14,   69,    9,  129,   49,   14,   71, 
/* 1650 */    10,  129,   49,   14,   74,    9,  129,   49,   14,   76, 
/* 1660 */     9,  129,   49,   14,   78,    9,  129,   49,   14,   80, 
/* 1670 */     9,  129,   49,   14,   82,    9,  129,   49,   14,   84, 
/* 1680 */     9,  129,   30,    4,   49,   14,   86,   10,  129,   30, 
/* 1690 */     4,   49,   14,   89,    9,  129,   30,    4,   49,   14, 
/* 1700 */    91,    9,  129,   30,    4,   49,   14,   93,    9,  129, 
/* 1710 */    30,   74,  129,   30,   76,  129,   30,   78,  129,   30, 
/* 1720 */    81,  129,   30,   83,  129,   30,   85,  129,   30,   87, 
/* 1730 */   129,   30,   89,  129,   30,   91,  129,   30,    4,   49, 
/* 1740 */    14,  132,  193,  129,   37,    1,  129,   36,    3,   77, 
/* 1750 */     3,  129,   35,    5,   78,   11,  129,   34,    7,   78, 
/* 1760 */    21,  129,   33,    7,   79,   29,  129,   32,    7,   79, 
/* 1770 */    38,  129,   32,    6,   80,    4,   92,   29,  129,   31, 
/* 1780 */     6,   80,    5,  102,   19,  129,   31,    5,   80,    6, 
/* 1790 */   107,   14,  129,   31,    4,   81,    5,  107,   14,  129, 
/* 1800 */    30,    5,   81,    6,  107,   14,  129,   30,    4,   81, 
/* 1810 */     6,  107,   14,  130,   30,    4,   81,    7,  107,   14, 
/* 1820 */   129,   30,    4,   80,    8,  107,   14,  130,   30,    5, 
/* 1830 */    80,    8,  107,   14,  129,   30,    5,   79,    9,  107, 
/* 1840 */    14,  129,   31,    5,   79,    9,  107,   14,  129,   31, 
/* 1850 */     6,   78,   10,  107,   14,  129,   32,    6,   76,   11, 
/* 1860 */   107,   14,  129,   32,    8,   74,   13,  107,   14,  129, 
/* 1870 */    33,   10,   71,   16,  107,   14,  129,   33,   15,   67, 
/* 1880 */    19,  107,   14,  129,   34,   51,  107,   14,  129,   35, 
/* 1890 */    49,  107,   14,  129,   36,   47,  107,   14,  129,   37, 
/* 1900 */    45,  107,   14,  129,   39,   41,  107,   14,  129,   41, 
/* 1910 */    37,  107,   14,  129,   44,   32,  107,   14,  129,   47, 
/* 1920 */    25,  111,   10,  129,   51,   16,  115,    6,  129,  119, 
/* 1930 */     2,  129,  193,  129,   56,   39,  129,   51,   49,  129, 
/* 1940 */    47,   57,  129,   44,   63,  129,   42,   67,  129,   40, 
/* 1950 */    71,  129,   38,   75,  129,   37,   77,  129,   35,   81, 
/* 1960 */   129,   34,   16,   74,    5,  101,   16,  129,   33,   11, 
/* 1970 */    76,    5,  107,   11,  129,   32,    9,   77,    5,  110, 
/* 1980 */     9,  129,   32,    7,   79,    4,  112,    7,  129,   31, 
/* 1990 */     6,   80,    4,  114,    6,  129,   31,    5,   81,    4, 
/* 2000 */   115,    5,  129,   30,    5,   82,    4,  116,    5,  129, 
/* 2010 */    30,    4,   82,    4,  116,    5,  129,   30,    4,   82, 
/* 2020 */     5,  117,    4,  131,   30,    5,   82,    5,  117,    4, 
/* 2030 */   129,   31,    5,   81,    6,  117,    4,  129,   31,    6, 
/* 2040 */    80,    7,  117,    4,  129,   32,    7,   79,    8,  117, 
/* 2050 */     4,  129,   32,    9,   77,    9,  116,    5,  129,   33, 
/* 2060 */    11,   75,   11,  116,    4,  129,   34,   16,   69,   16, 
/* 2070 */   115,    5,  129,   35,   49,  114,    5,  129,   37,   46, 
/* 2080 */   113,    5,  129,   38,   44,  112,    6,  129,   40,   41, 
/* 2090 */   112,    5,  129,   42,   37,  113,    3,  129,   44,   33, 
/* 2100 */   114,    1,  129,   47,   27,  129,   51,   17,  129,  193, 
/* 2110 */   129,  103,    2,  129,  103,    6,  129,  104,    9,  129, 
/* 2120 */   105,   12,  129,  106,   15,  129,  107,   14,  135,   30, 
/* 2130 */    10,  107,   14,  129,   30,   17,  107,   14,  129,   30, 
/* 2140 */    25,  107,   14,  129,   30,   31,  107,   14,  129,   30, 
/* 2150 */    37,  107,   14,  129,   30,   42,  107,   14,  129,   30, 
/* 2160 */    46,  107,   14,  129,   30,   50,  107,   14,  129,   30, 
/* 2170 */    54,  107,   14,  129,   30,   58,  107,   14,  129,   59, 
/* 2180 */    32,  107,   14,  129,   64,   30,  107,   14,  129,   74, 
/* 2190 */    23,  107,   14,  129,   81,   18,  107,   14,  129,   86, 
/* 2200 */    16,  107,   14,  129,   91,   14,  107,   14,  129,   96, 
/* 2210 */    25,  129,  100,   21,  129,  104,   17,  129,  107,   14, 
/* 2220 */   129,  111,   10,  129,  114,    7,  129,  117,    4,  129, 
/* 2230 */   120,    1,  129,  193,  129,   48,   13,  129,   44,   21, 
/* 2240 */   129,   42,   26,  129,   40,   30,   92,   12,  129,   38, 
/* 2250 */    34,   88,   20,  129,   36,   37,   86,   25,  129,   35, 
/* 2260 */    39,   84,   29,  129,   34,   13,   63,   12,   82,   33, 
/* 2270 */   129,   33,   11,   67,    9,   80,   36,  129,   32,    9, 
/* 2280 */    70,    7,   79,   38,  129,   31,    8,   72,   46,  129, 
/* 2290 */    30,    7,   74,   22,  108,   11,  129,   30,    6,   75, 
/* 2300 */    19,  111,    9,  129,   30,    5,   75,   17,  113,    7, 
/* 2310 */   129,   30,    5,   74,   16,  114,    6,  129,   30,    4, 
/* 2320 */    73,   16,  115,    6,  129,   30,    4,   72,   16,  116, 
/* 2330 */     5,  129,   30,    4,   72,   15,  117,    4,  129,   30, 
/* 2340 */     4,   71,   16,  117,    4,  129,   30,    5,   70,   16, 
/* 2350 */   117,    4,  129,   30,    5,   70,   15,  117,    4,  129, 
/* 2360 */    30,    6,   69,   15,  116,    5,  129,   30,    7,   68, 
/* 2370 */    17,  115,    5,  129,   30,    9,   67,   19,  114,    6, 
/* 2380 */   129,   30,   10,   65,   22,  113,    6,  129,   31,   12, 
/* 2390 */    63,   27,  110,    9,  129,   32,   14,   60,   21,   84, 
/* 2400 */     9,  106,   12,  129,   33,   47,   85,   32,  129,   34, 
/* 2410 */    45,   86,   30,  129,   35,   43,   88,   26,  129,   36, 
/* 2420 */    40,   90,   22,  129,   38,   36,   93,   17,  129,   40, 
/* 2430 */    32,   96,   10,  129,   42,   28,  129,   44,   23,  129, 
/* 2440 */    48,   15,  129,  193,  129,   83,   17,  129,   77,   27, 
/* 2450 */   129,   36,    1,   74,   33,  129,   35,    3,   72,   37, 
/* 2460 */   129,   34,    5,   70,   41,  129,   33,    6,   69,   44, 
/* 2470 */   129,   33,    5,   68,   46,  129,   32,    5,   67,   49, 
/* 2480 */   129,   31,    5,   66,   17,  101,   16,  129,   31,    5, 
/* 2490 */    66,   11,  108,   10,  129,   30,    4,   65,    9,  110, 
/* 2500 */     9,  129,   30,    4,   64,    8,  112,    7,  129,   30, 
/* 2510 */     4,   64,    7,  114,    6,  129,   30,    4,   64,    6, 
/* 2520 */   115,    5,  129,   30,    4,   64,    5,  116,    5,  129, 
/* 2530 */    30,    4,   64,    5,  117,    4,  131,   30,    4,   65, 
/* 2540 */     4,  117,    4,  129,   30,    5,   65,    4,  116,    5, 
/* 2550 */   129,   31,    5,   66,    4,  115,    5,  129,   31,    6, 
/* 2560 */    67,    4,  114,    6,  129,   32,    7,   68,    4,  112, 
/* 2570 */     7,  129,   32,    9,   69,    5,  110,    9,  129,   33, 
/* 2580 */    11,   70,    5,  107,   11,  129,   34,   16,   72,    5, 
/* 2590 */   101,   16,  129,   35,   81,  129,   37,   77,  129,   38, 
/* 2600 */    75,  129,   40,   71,  129,   42,   67,  129,   44,   63, 
/* 2610 */   129,   47,   57,  129,   51,   49,  129,   56,   39,  129, 
/* 2620 */   193,  130,   34,    6,   74,    6,  129,   32,   10,   72, 
/* 2630 */    10,  129,   31,   12,   71,   12,  129,   30,   14,   70, 
/* 2640 */    14,  131,   31,   12,   71,   12,  129,   32,   10,   72, 
/* 2650 */    10,  129,   34,    6,   74,    6,  129,  194,  130,   34, 
/* 2660 */     6,   74,    6,  129,   32,   10,   72,   10,  129,   31, 
/* 2670 */    12,   71,   12,  129,   30,   14,   70,   14,  129,   20, 
/* 2680 */     2,   28,   16,   70,   14,  129,   22,   22,   70,   14, 
/* 2690 */   129,   24,   19,   71,   12,  129,   27,   15,   72,   10, 
/* 2700 */   129,   31,    9,   74,    6,  129,  194,  129,   53,    4, 
/* 2710 */    63,    4,  152,  193,  130,   99,    7,  129,   97,   13, 
/* 2720 */   129,   96,   16,  129,   96,   18,  129,   96,   19,  129, 
/* 2730 */    97,   19,  129,   99,    6,  110,    7,  129,  112,    6, 
/* 2740 */   129,  114,    5,  129,   34,    6,   57,    5,  115,    4, 
/* 2750 */   129,   32,   10,   54,   12,  116,    4,  129,   31,   12, 
/* 2760 */    53,   16,  117,    3,  129,   30,   14,   52,   20,  117, 
/* 2770 */     4,  129,   30,   14,   52,   23,  117,    4,  129,   30, 
/* 2780 */    14,   52,   25,  117,    4,  129,   31,   12,   52,   27, 
/* 2790 */   117,    4,  129,   32,   10,   53,   10,   70,   11,  116, 
/* 2800 */     5,  129,   34,    6,   55,    5,   73,   10,  115,    6, 
/* 2810 */   129,   74,   11,  114,    7,  129,   75,   12,  112,    9, 
/* 2820 */   129,   76,   13,  110,   10,  129,   77,   16,  106,   14, 
/* 2830 */   129,   78,   41,  129,   80,   38,  129,   81,   36,  129, 
/* 2840 */    82,   34,  129,   84,   30,  129,   86,   26,  129,   88, 
/* 2850 */    22,  129,   92,   14,  129,  194,  129,   55,   15,  129, 
/* 2860 */    50,   25,  129,   47,   32,  129,   45,   13,   70,   12, 
/* 2870 */   129,   43,    9,   76,   10,  129,   42,    6,   79,    8, 
/* 2880 */   129,   41,    5,   81,    7,  129,   40,    4,   84,    6, 
/* 2890 */   129,   39,    4,   59,   12,   85,    6,  129,   38,    4, 
/* 2900 */    55,   19,   87,    5,  129,   37,    4,   53,   23,   88, 
/* 2910 */     4,  129,   36,    4,   51,    8,   71,    6,   89,    4, 
/* 2920 */   129,   36,    4,   51,    6,   73,    4,   89,    4,  129, 
/* 2930 */    36,    4,   50,    6,   74,    4,   90,    3,  129,   35, 
/* 2940 */     4,   50,    5,   75,    3,   90,    4,  129,   35,    4, 
/* 2950 */    50,    4,   75,    4,   90,    4,  131,   35,    4,   50, 
/* 2960 */     5,   75,    4,   90,    4,  129,   36,    4,   51,    5, 
/* 2970 */    75,    4,   90,    4,  129,   36,    4,   51,    6,   75, 
/* 2980 */     4,   90,    4,  129,   36,    4,   53,   26,   90,    4, 
/* 2990 */   129,   37,    4,   54,   25,   90,    4,  129,   37,    4, 
/* 3000 */    52,   27,   90,    3,  129,   38,    4,   52,    4,   89, 
/* 3010 */     4,  129,   39,    4,   51,    4,   88,    4,  129,   40, 
/* 3020 */     4,   50,    4,   87,    5,  129,   41,    4,   50,    4, 
/* 3030 */    86,    5,  129,   42,    4,   50,    4,   85,    5,  129, 
/* 3040 */    43,    3,   50,    4,   83,    6,  129,   44,    2,   51, 
/* 3050 */     5,   80,    7,  129,   46,    1,   52,    6,   76,    9, 
/* 3060 */   129,   54,   28,  129,   56,   23,  129,   60,   16,  129, 
/* 3070 */   193,  129,   30,    4,  132,   30,    5,  129,   30,    8, 
/* 3080 */   129,   30,   12,  129,   30,   16,  129,   30,    4,   37, 
/* 3090 */    12,  129,   30,    4,   41,   12,  129,   30,    4,   44, 
/* 3100 */    13,  129,   30,    4,   48,   13,  129,   52,   13,  129, 
/* 3110 */    56,   12,  129,   58,   14,  129,   58,    4,   64,   12, 
/* 3120 */   129,   58,    4,   68,   12,  129,   58,    4,   72,   12, 
/* 3130 */   129,   58,    4,   75,   13,  129,   58,    4,   79,   13, 
/* 3140 */   129,   58,    4,   83,   13,  129,   58,    4,   87,   13, 
/* 3150 */   129,   58,    4,   91,   12,  129,   58,    4,   95,   12, 
/* 3160 */   129,   58,    4,   96,   15,  129,   58,    4,   93,   22, 
/* 3170 */   129,   58,    4,   89,   30,  129,   58,    4,   85,   36, 
/* 3180 */   129,   58,    4,   81,   38,  129,   58,    4,   77,   38, 
/* 3190 */   129,   58,    4,   73,   38,  129,   58,    4,   70,   37, 
/* 3200 */   129,   58,    4,   66,   37,  129,   58,   41,  129,   58, 
/* 3210 */    37,  129,   54,   38,  129,   30,    4,   50,   38,  129, 
/* 3220 */    30,    4,   46,   38,  129,   30,    4,   42,   38,  129, 
/* 3230 */    30,    4,   38,   39,  129,   30,   43,  129,   30,   39, 
/* 3240 */   129,   30,   35,  129,   30,   31,  129,   30,   27,  129, 
/* 3250 */    30,   24,  129,   30,   20,  129,   30,   16,  129,   30, 
/* 3260 */    12,  129,   30,    8,  129,   30,    5,  129,   30,    4, 
/* 3270 */   132,  193,  129,   30,    4,  117,    4,  132,   30,   91, 
/* 3280 */   137,   30,    4,   80,    4,  117,    4,  138,   30,    4, 
/* 3290 */    80,    5,  116,    5,  129,   30,    5,   79,    6,  116, 
/* 3300 */     5,  130,   30,    6,   78,    8,  115,    6,  129,   31, 
/* 3310 */     6,   77,    9,  115,    6,  129,   31,    7,   76,   11, 
/* 3320 */   114,    6,  129,   31,    8,   75,   14,  112,    8,  129, 
/* 3330 */    32,    8,   74,   16,  111,    9,  129,   32,    9,   73, 
/* 3340 */    19,  109,   10,  129,   33,   10,   71,   24,  106,   13, 
/* 3350 */   129,   33,   13,   68,   12,   83,   35,  129,   34,   16, 
/* 3360 */    64,   15,   84,   33,  129,   35,   43,   85,   31,  129, 
/* 3370 */    36,   41,   86,   29,  129,   37,   39,   88,   25,  129, 
/* 3380 */    38,   37,   90,   21,  129,   40,   33,   93,   15,  129, 
/* 3390 */    42,   29,   96,    9,  129,   45,   24,  129,   49,   16, 
/* 3400 */   129,  193,  129,   63,   25,  129,   57,   37,  129,   53, 
/* 3410 */    45,  129,   50,   51,  129,   47,   57,  129,   45,   61, 
/* 3420 */   129,   43,   65,  129,   41,   69,  129,   39,   73,  129, 
/* 3430 */    38,   25,   92,   21,  129,   36,   21,   97,   18,  129, 
/* 3440 */    35,   18,  102,   14,  129,   34,   16,  106,   11,  129, 
/* 3450 */    33,   14,  108,   10,  129,   32,   12,  111,    8,  129, 
/* 3460 */    32,   10,  113,    6,  129,   31,   10,  114,    6,  129, 
/* 3470 */    31,    8,  115,    5,  129,   30,    8,  116,    5,  129, 
/* 3480 */    30,    7,  116,    5,  129,   30,    6,  117,    4,  130, 
/* 3490 */    30,    5,  117,    4,  131,   31,    4,  116,    5,  129, 
/* 3500 */    32,    4,  116,    4,  129,   32,    5,  115,    5,  129, 
/* 3510 */    33,    4,  114,    5,  129,   34,    4,  112,    6,  129, 
/* 3520 */    35,    4,  110,    7,  129,   37,    4,  107,    9,  129, 
/* 3530 */    39,    4,  103,   12,  129,   41,    4,  103,   18,  129, 
/* 3540 */    43,    4,  103,   18,  129,   45,    5,  103,   18,  129, 
/* 3550 */    48,    5,  103,   18,  129,   51,    1,  129,  193,  129, 
/* 3560 */    30,    4,  117,    4,  132,   30,   91,  137,   30,    4, 
/* 3570 */   117,    4,  135,   30,    5,  116,    5,  130,   30,    6, 
/* 3580 */   115,    6,  130,   31,    6,  114,    6,  129,   31,    7, 
/* 3590 */   113,    7,  129,   32,    7,  112,    7,  129,   32,    8, 
/* 3600 */   111,    8,  129,   33,    9,  109,    9,  129,   33,   12, 
/* 3610 */   106,   12,  129,   34,   13,  104,   13,  129,   35,   15, 
/* 3620 */   101,   15,  129,   36,   19,   96,   19,  129,   37,   24, 
/* 3630 */    90,   24,  129,   39,   73,  129,   40,   71,  129,   42, 
/* 3640 */    67,  129,   44,   63,  129,   46,   59,  129,   49,   53, 
/* 3650 */   129,   52,   47,  129,   56,   39,  129,   61,   29,  129, 
/* 3660 */   193,  129,   30,    4,  117,    4,  132,   30,   91,  137, 
/* 3670 */    30,    4,   80,    4,  117,    4,  140,   30,    4,   79, 
/* 3680 */     6,  117,    4,  129,   30,    4,   77,   10,  117,    4, 
/* 3690 */   129,   30,    4,   73,   18,  117,    4,  132,   30,    4, 
/* 3700 */   117,    4,  130,   30,    5,  116,    5,  130,   30,    7, 
/* 3710 */   114,    7,  129,   30,    8,  113,    8,  129,   30,   11, 
/* 3720 */   110,   11,  129,   30,   18,  103,   18,  132,  193,  129, 
/* 3730 */    30,    4,  117,    4,  132,   30,   91,  137,   30,    4, 
/* 3740 */    80,    4,  117,    4,  132,   80,    4,  117,    4,  136, 
/* 3750 */    79,    6,  117,    4,  129,   77,   10,  117,    4,  129, 
/* 3760 */    73,   18,  117,    4,  132,  117,    4,  130,  116,    5, 
/* 3770 */   130,  114,    7,  129,  113,    8,  129,  110,   11,  129, 
/* 3780 */   103,   18,  132,  193,  129,   63,   25,  129,   57,   37, 
/* 3790 */   129,   53,   45,  129,   50,   51,  129,   47,   57,  129, 
/* 3800 */    45,   61,  129,   43,   65,  129,   41,   69,  129,   39, 
/* 3810 */    73,  129,   38,   25,   92,   21,  129,   36,   21,   97, 
/* 3820 */    18,  129,   35,   18,  102,   14,  129,   34,   16,  106, 
/* 3830 */    11,  129,   33,   14,  108,   10,  129,   32,   12,  111, 
/* 3840 */     8,  129,   32,   10,  113,    6,  129,   31,   10,  114, 
/* 3850 */     6,  129,   31,    8,  115,    5,  129,   30,    8,  116, 
/* 3860 */     5,  129,   30,    7,  116,    5,  129,   30,    6,  117, 
/* 3870 */     4,  130,   30,    5,  117,    4,  131,   30,    5,   75, 
/* 3880 */     4,  116,    5,  129,   31,    5,   75,    4,  116,    4, 
/* 3890 */   129,   31,    6,   75,    4,  115,    5,  129,   32,    7, 
/* 3900 */    75,    4,  114,    5,  129,   32,    9,   75,    4,  112, 
/* 3910 */     6,  129,   33,   11,   75,    4,  110,    7,  129,   34, 
/* 3920 */    15,   75,    4,  107,    9,  129,   35,   44,  103,   12, 
/* 3930 */   129,   36,   43,  103,   18,  129,   38,   41,  103,   18, 
/* 3940 */   129,   39,   40,  103,   18,  129,   41,   38,  103,   18, 
/* 3950 */   129,   44,   35,  129,   48,   31,  129,   52,   27,  129, 
/* 3960 */    61,   18,  129,  193,  129,   30,    4,  117,    4,  132, 
/* 3970 */    30,   91,  137,   30,    4,   80,    4,  117,    4,  132, 
/* 3980 */    80,    4,  140,   30,    4,   80,    4,  117,    4,  132, 
/* 3990 */    30,   91,  137,   30,    4,  117,    4,  132,  193,  129, 
/* 4000 */    30,    4,  117,    4,  132,   30,   91,  137,   30,    4, 
/* 4010 */   117,    4,  132,  193,  129,   44,    7,  129,   40,   13, 
/* 4020 */   129,   37,   17,  129,   35,   20,  129,   34,   22,  129, 
/* 4030 */    33,   23,  129,   32,   24,  129,   32,   23,  129,   31, 
/* 4040 */     6,   41,   13,  129,   31,    5,   42,   11,  129,   30, 
/* 4050 */     5,   44,    7,  129,   30,    4,  132,   30,    5,  130, 
/* 4060 */    31,    5,  129,   31,    6,  117,    4,  129,   31,    8, 
/* 4070 */   117,    4,  129,   32,    9,  117,    4,  129,   33,   11, 
/* 4080 */   117,    4,  129,   34,   87,  129,   35,   86,  129,   36, 
/* 4090 */    85,  129,   37,   84,  129,   38,   83,  129,   40,   81, 
/* 4100 */   129,   42,   79,  129,   45,   76,  129,   50,   71,  129, 
/* 4110 */   117,    4,  132,  193,  129,   30,    4,  117,    4,  132, 
/* 4120 */    30,   91,  137,   30,    4,   76,    8,  117,    4,  129, 
/* 4130 */    30,    4,   73,   13,  117,    4,  129,   30,    4,   70, 
/* 4140 */    18,  117,    4,  129,   30,    4,   67,   23,  117,    4, 
/* 4150 */   129,   65,   26,  129,   62,   31,  129,   59,   35,  129, 
/* 4160 */    56,   29,   89,    7,  129,   53,   29,   91,    7,  129, 
/* 4170 */    50,   29,   93,    7,  129,   47,   29,   95,    6,  129, 
/* 4180 */    30,    4,   45,   29,   96,    7,  129,   30,    4,   42, 
/* 4190 */    29,   98,    7,  129,   30,    4,   39,   30,  100,    6, 
/* 4200 */   129,   30,    4,   36,   30,  101,    7,  129,   30,   33, 
/* 4210 */   103,    7,  117,    4,  129,   30,   30,  105,    6,  117, 
/* 4220 */     4,  129,   30,   27,  106,    7,  117,    4,  129,   30, 
/* 4230 */    25,  108,    7,  117,    4,  129,   30,   22,  110,   11, 
/* 4240 */   129,   30,   19,  111,   10,  129,   30,   16,  113,    8, 
/* 4250 */   129,   30,   13,  115,    6,  129,   30,   11,  116,    5, 
/* 4260 */   129,   30,    8,  117,    4,  129,   30,    5,  117,    4, 
/* 4270 */   129,   30,    4,  117,    4,  130,   30,    4,  130,  193, 
/* 4280 */   129,   30,    4,  117,    4,  132,   30,   91,  137,   30, 
/* 4290 */     4,  117,    4,  132,   30,    4,  144,   30,    5,  130, 
/* 4300 */    30,    7,  129,   30,    8,  129,   30,   11,  129,   30, 
/* 4310 */    18,  132,  193,  129,   30,    4,  117,    4,  132,   30, 
/* 4320 */    91,  132,   30,    4,  103,   18,  129,   30,    4,   97, 
/* 4330 */    24,  129,   30,    4,   92,   29,  129,   30,    4,   87, 
/* 4340 */    34,  129,   81,   40,  129,   76,   45,  129,   70,   49, 
/* 4350 */   129,   65,   49,  129,   60,   49,  129,   55,   49,  129, 
/* 4360 */    50,   48,  129,   44,   49,  129,   39,   48,  129,   33, 
/* 4370 */    49,  129,   30,   47,  129,   34,   37,  129,   40,   26, 
/* 4380 */   129,   46,   19,  129,   52,   19,  129,   58,   19,  129, 
/* 4390 */    64,   19,  129,   70,   19,  129,   76,   19,  129,   82, 
/* 4400 */    19,  129,   30,    4,   88,   18,  129,   30,    4,   94, 
/* 4410 */    18,  129,   30,    4,  100,   18,  129,   30,    4,  106, 
/* 4420 */    15,  129,   30,   91,  137,   30,    4,  117,    4,  132, 
/* 4430 */   193,  129,   30,    4,  117,    4,  132,   30,   91,  132, 
/* 4440 */    30,    4,  107,   14,  129,   30,    4,  104,   17,  129, 
/* 4450 */    30,    4,  101,   20,  129,   30,    4,   99,   22,  129, 
/* 4460 */    96,   25,  129,   93,   28,  129,   91,   28,  129,   88, 
/* 4470 */    29,  129,   85,   29,  129,   82,   29,  129,   79,   29, 
/* 4480 */   129,   76,   29,  129,   74,   29,  129,   71,   29,  129, 
/* 4490 */    68,   29,  129,   65,   29,  129,   62,   29,  129,   60, 
/* 4500 */    29,  129,   57,   29,  129,   54,   29,  129,   51,   29, 
/* 4510 */   129,   49,   28,  129,   46,   29,  129,   43,   29,  129, 
/* 4520 */    40,   29,  117,    4,  129,   37,   29,  117,    4,  129, 
/* 4530 */    35,   29,  117,    4,  129,   32,   29,  117,    4,  129, 
/* 4540 */    30,   91,  132,  117,    4,  132,  193,  129,   63,   25, 
/* 4550 */   129,   57,   37,  129,   53,   45,  129,   50,   51,  129, 
/* 4560 */    47,   57,  129,   45,   61,  129,   43,   65,  129,   41, 
/* 4570 */    69,  129,   39,   73,  129,   38,   21,   92,   21,  129, 
/* 4580 */    36,   18,   97,   18,  129,   35,   14,  102,   14,  129, 
/* 4590 */    34,   11,  106,   11,  129,   33,   10,  108,   10,  129, 
/* 4600 */    32,    8,  111,    8,  129,   32,    6,  113,    6,  129, 
/* 4610 */    31,    6,  114,    6,  129,   31,    5,  115,    5,  129, 
/* 4620 */    30,    5,  116,    5,  130,   30,    4,  117,    4,  132, 
/* 4630 */    30,    5,  116,    5,  130,   31,    5,  115,    5,  129, 
/* 4640 */    31,    6,  114,    6,  129,   32,    6,  113,    6,  129, 
/* 4650 */    32,    8,  111,    8,  129,   33,   10,  108,   10,  129, 
/* 4660 */    34,   11,  106,   11,  129,   35,   14,  102,   14,  129, 
/* 4670 */    36,   18,   97,   18,  129,   38,   21,   92,   21,  129, 
/* 4680 */    39,   73,  129,   41,   69,  129,   43,   65,  129,   45, 
/* 4690 */    61,  129,   47,   57,  129,   50,   51,  129,   53,   45, 
/* 4700 */   129,   57,   37,  129,   63,   25,  129,  193,  129,   30, 
/* 4710 */     4,  117,    4,  132,   30,   91,  137,   30,    4,   80, 
/* 4720 */     4,  117,    4,  132,   80,    4,  117,    4,  134,   80, 
/* 4730 */     5,  116,    5,  131,   80,    6,  115,    6,  130,   81, 
/* 4740 */     6,  114,    6,  129,   81,    8,  112,    8,  129,   81, 
/* 4750 */     9,  111,    9,  129,   82,   10,  109,   10,  129,   82, 
/* 4760 */    13,  106,   13,  129,   83,   35,  129,   84,   33,  129, 
/* 4770 */    85,   31,  129,   86,   29,  129,   88,   25,  129,   90, 
/* 4780 */    21,  129,   93,   15,  129,   96,    9,  129,  193,  129, 
/* 4790 */    63,   25,  129,   57,   37,  129,   53,   45,  129,   50, 
/* 4800 */    51,  129,   47,   57,  129,   45,   61,  129,   43,   65, 
/* 4810 */   129,   41,   69,  129,   39,   73,  129,   38,   21,   92, 
/* 4820 */    21,  129,   36,   18,   97,   18,  129,   35,   14,  102, 
/* 4830 */    14,  129,   34,   11,  106,   11,  129,   33,   10,  108, 
/* 4840 */    10,  129,   32,    8,  111,    8,  129,   32,    6,  113, 
/* 4850 */     6,  129,   31,    6,  114,    6,  129,   31,    5,  115, 
/* 4860 */     5,  129,   30,    5,  116,    5,  130,   30,    4,   39, 
/* 4870 */     2,  117,    4,  129,   30,    4,   40,    4,  117,    4, 
/* 4880 */   129,   30,    4,   41,    5,  117,    4,  129,   30,    4, 
/* 4890 */    41,    6,  117,    4,  129,   30,    5,   40,    8,  116, 
/* 4900 */     5,  129,   30,    5,   39,   10,  116,    5,  129,   31, 
/* 4910 */     5,   38,   11,  115,    5,  129,   31,   18,  114,    6, 
/* 4920 */   129,   32,   17,  113,    6,  129,   32,   16,  111,    8, 
/* 4930 */   129,   33,   15,  108,   10,  129,   33,   14,  106,   11, 
/* 4940 */   129,   32,   17,  102,   14,  129,   31,   23,   97,   18, 
/* 4950 */   129,   31,   28,   92,   21,  129,   30,   82,  129,   30, 
/* 4960 */    80,  129,   30,   11,   43,   65,  129,   30,   10,   45, 
/* 4970 */    61,  129,   31,    8,   47,   57,  129,   32,    6,   50, 
/* 4980 */    51,  129,   33,    5,   53,   45,  129,   35,    4,   57, 
/* 4990 */    37,  129,   38,    2,   63,   25,  129,  193,  129,   30, 
/* 5000 */     4,  117,    4,  132,   30,   91,  137,   30,    4,   76, 
/* 5010 */     8,  117,    4,  129,   30,    4,   73,   11,  117,    4, 
/* 5020 */   129,   30,    4,   70,   14,  117,    4,  129,   30,    4, 
/* 5030 */    67,   17,  117,    4,  129,   65,   19,  117,    4,  129, 
/* 5040 */    62,   22,  117,    4,  129,   59,   25,  117,    4,  129, 
/* 5050 */    56,   28,  117,    4,  129,   53,   31,  117,    4,  129, 
/* 5060 */    50,   34,  117,    4,  129,   47,   29,   80,    5,  116, 
/* 5070 */     5,  129,   30,    4,   45,   29,   80,    5,  116,    5, 
/* 5080 */   129,   30,    4,   42,   29,   80,    5,  116,    5,  129, 
/* 5090 */    30,    4,   39,   30,   80,    6,  115,    6,  129,   30, 
/* 5100 */     4,   36,   30,   80,    6,  115,    6,  129,   30,   33, 
/* 5110 */    81,    6,  114,    6,  129,   30,   30,   81,    8,  112, 
/* 5120 */     8,  129,   30,   27,   81,    9,  111,    9,  129,   30, 
/* 5130 */    25,   82,   10,  109,   10,  129,   30,   22,   82,   13, 
/* 5140 */   106,   13,  129,   30,   19,   83,   35,  129,   30,   16, 
/* 5150 */    84,   33,  129,   30,   13,   85,   31,  129,   30,   11, 
/* 5160 */    86,   29,  129,   30,    8,   88,   25,  129,   30,    5, 
/* 5170 */    90,   21,  129,   30,    4,   93,   15,  129,   30,    4, 
/* 5180 */    96,    9,  129,   30,    4,  130,  193,  129,   30,   18, 
/* 5190 */   130,   30,   18,   89,   15,  129,   30,   18,   85,   23, 
/* 5200 */   129,   34,   11,   83,   27,  129,   34,    9,   81,   31, 
/* 5210 */   129,   33,    8,   79,   35,  129,   33,    6,   78,   16, 
/* 5220 */   106,    9,  129,   32,    6,   77,   15,  109,    7,  129, 
/* 5230 */    32,    5,   76,   14,  111,    6,  129,   31,    5,   75, 
/* 5240 */    14,  113,    5,  129,   31,    4,   74,   15,  114,    5, 
/* 5250 */   129,   31,    4,   74,   14,  115,    4,  129,   30,    4, 
/* 5260 */    73,   15,  116,    4,  129,   30,    4,   73,   14,  116, 
/* 5270 */     4,  129,   30,    4,   73,   14,  117,    4,  129,   30, 
/* 5280 */     4,   72,   15,  117,    4,  130,   30,    4,   71,   15, 
/* 5290 */   117,    4,  130,   30,    4,   70,   15,  117,    4,  129, 
/* 5300 */    30,    5,   70,   15,  117,    4,  129,   30,    5,   69, 
/* 5310 */    15,  116,    5,  129,   30,    6,   68,   16,  115,    5, 
/* 5320 */   129,   31,    6,   67,   16,  114,    6,  129,   31,    7, 
/* 5330 */    66,   17,  113,    6,  129,   32,    7,   64,   18,  111, 
/* 5340 */     8,  129,   32,    8,   62,   19,  109,    9,  129,   33, 
/* 5350 */     9,   60,   20,  107,   10,  129,   34,   11,   57,   22, 
/* 5360 */   103,   13,  129,   35,   43,  103,   18,  129,   36,   41, 
/* 5370 */   103,   18,  129,   38,   38,  103,   18,  129,   39,   35, 
/* 5380 */   103,   18,  129,   41,   31,  129,   43,   27,  129,   46, 
/* 5390 */    22,  129,   49,   14,  129,  193,  129,  103,   18,  132, 
/* 5400 */   110,   11,  129,  113,    8,  129,  114,    7,  129,  116, 
/* 5410 */     5,  130,  117,    4,  132,   30,    4,  117,    4,  132, 
/* 5420 */    30,   91,  137,   30,    4,  117,    4,  132,  117,    4, 
/* 5430 */   132,  116,    5,  130,  114,    7,  129,  113,    8,  129, 
/* 5440 */   110,   11,  129,  103,   18,  132,  193,  129,  117,    4, 
/* 5450 */   132,   56,   65,  129,   50,   71,  129,   46,   75,  129, 
/* 5460 */    44,   77,  129,   42,   79,  129,   40,   81,  129,   38, 
/* 5470 */    83,  129,   36,   85,  129,   35,   86,  129,   34,   20, 
/* 5480 */   117,    4,  129,   33,   17,  117,    4,  129,   32,   15, 
/* 5490 */   117,    4,  129,   32,   13,  117,    4,  129,   31,   12, 
/* 5500 */   129,   31,   10,  129,   31,    9,  129,   30,    9,  129, 
/* 5510 */    30,    8,  130,   30,    7,  132,   31,    6,  130,   31, 
/* 5520 */     7,  129,   32,    6,  129,   32,    7,  129,   33,    7, 
/* 5530 */   129,   34,    7,  129,   35,    8,  129,   36,    9,  117, 
/* 5540 */     4,  129,   38,    9,  117,    4,  129,   40,   10,  117, 
/* 5550 */     4,  129,   42,   12,  117,    4,  129,   44,   77,  129, 
/* 5560 */    46,   75,  129,   50,   71,  129,   56,   43,  100,   21, 
/* 5570 */   129,  117,    4,  132,  193,  129,  117,    4,  132,  115, 
/* 5580 */     6,  129,  110,   11,  129,  105,   16,  129,  101,   20, 
/* 5590 */   129,   96,   25,  129,   92,   29,  129,   87,   34,  129, 
/* 5600 */    83,   38,  129,   78,   43,  129,   74,   47,  129,   70, 
/* 5610 */    42,  117,    4,  129,   65,   42,  117,    4,  129,   60, 
/* 5620 */    43,  117,    4,  129,   56,   42,  129,   51,   42,  129, 
/* 5630 */    46,   43,  129,   42,   43,  129,   37,   44,  129,   33, 
/* 5640 */    43,  129,   30,   42,  129,   33,   34,  129,   38,   25, 
/* 5650 */   129,   42,   16,  129,   47,   15,  129,   52,   15,  129, 
/* 5660 */    57,   15,  129,   61,   16,  129,   66,   16,  129,   71, 
/* 5670 */    16,  129,   76,   16,  129,   80,   16,  129,   85,   16, 
/* 5680 */   117,    4,  129,   90,   16,  117,    4,  129,   95,   16, 
/* 5690 */   117,    4,  129,  100,   21,  129,  105,   16,  129,  110, 
/* 5700 */    11,  129,  114,    7,  129,  117,    4,  132,  193,  129, 
/* 5710 */   117,    4,  132,  115,    6,  129,  110,   11,  129,  105, 
/* 5720 */    16,  129,  101,   20,  129,   96,   25,  129,   92,   29, 
/* 5730 */   129,   87,   34,  129,   83,   38,  129,   78,   43,  129, 
/* 5740 */    74,   47,  129,   70,   42,  117,    4,  129,   65,   42, 
/* 5750 */   117,    4,  129,   60,   43,  117,    4,  129,   56,   42, 
/* 5760 */   129,   51,   42,  129,   46,   43,  129,   42,   43,  129, 
/* 5770 */    37,   44,  129,   33,   43,  129,   30,   42,  129,   33, 
/* 5780 */    34,  129,   38,   25,  129,   42,   16,  129,   47,   15, 
/* 5790 */   129,   52,   15,  129,   57,   15,  129,   61,   16,  129, 
/* 5800 */    65,   17,  129,   60,   27,  129,   56,   36,  129,   51, 
/* 5810 */    42,  129,   46,   43,  129,   42,   43,  129,   37,   44, 
/* 5820 */   129,   33,   43,  129,   30,   42,  129,   33,   34,  129, 
/* 5830 */    38,   25,  129,   42,   16,  129,   47,   15,  129,   52, 
/* 5840 */    15,  129,   57,   15,  129,   61,   16,  129,   66,   16, 
/* 5850 */   129,   71,   16,  129,   76,   16,  129,   80,   16,  129, 
/* 5860 */    85,   16,  117,    4,  129,   90,   16,  117,    4,  129, 
/* 5870 */    95,   16,  117,    4,  129,  100,   21,  129,  105,   16, 
/* 5880 */   129,  110,   11,  129,  114,    7,  129,  117,    4,  132, 
/* 5890 */   193,  129,   30,    4,  117,    4,  132,   30,    4,  115, 
/* 5900 */     6,  129,   30,    4,  112,    9,  129,   30,    6,  109, 
/* 5910 */    12,  129,   30,    9,  106,   15,  129,   30,   11,  103, 
/* 5920 */    18,  129,   30,   14,  100,   21,  129,   30,    4,   38, 
/* 5930 */     9,   98,   23,  129,   30,    4,   40,   10,   95,   26, 
/* 5940 */   129,   30,    4,   43,    9,   92,   29,  129,   46,    9, 
/* 5950 */    89,   32,  129,   49,    8,   86,   28,  117,    4,  129, 
/* 5960 */    51,    9,   83,   28,  117,    4,  129,   54,    9,   80, 
/* 5970 */    28,  117,    4,  129,   57,    8,   77,   28,  117,    4, 
/* 5980 */   129,   59,    9,   74,   28,  129,   62,   37,  129,   64, 
/* 5990 */    33,  129,   66,   28,  129,   63,   28,  129,   60,   28, 
/* 6000 */   129,   57,   28,  129,   54,   33,  129,   51,   39,  129, 
/* 6010 */    48,   29,   83,    9,  129,   30,    4,   45,   29,   86, 
/* 6020 */     9,  129,   30,    4,   42,   29,   89,    9,  129,   30, 
/* 6030 */     4,   39,   29,   92,    8,  129,   30,    4,   36,   29, 
/* 6040 */    94,    9,  129,   30,   32,   97,    9,  129,   30,   29, 
/* 6050 */   100,    8,  117,    4,  129,   30,   26,  103,    8,  117, 
/* 6060 */     4,  129,   30,   23,  105,    9,  117,    4,  129,   30, 
/* 6070 */    20,  108,   13,  129,   30,   18,  111,   10,  129,   30, 
/* 6080 */    15,  113,    8,  129,   30,   12,  116,    5,  129,   30, 
/* 6090 */     9,  117,    4,  129,   30,    6,  117,    4,  129,   30, 
/* 6100 */     4,  117,    4,  132,  193,  129,  117,    4,  132,  114, 
/* 6110 */     7,  129,  111,   10,  129,  108,   13,  129,  105,   16, 
/* 6120 */   129,  102,   19,  129,  100,   21,  129,   96,   25,  129, 
/* 6130 */    93,   28,  129,   90,   31,  129,   87,   34,  129,   84, 
/* 6140 */    30,  117,    4,  129,   30,    4,   81,   30,  117,    4, 
/* 6150 */   129,   30,    4,   78,   30,  117,    4,  129,   30,    4, 
/* 6160 */    75,   30,  117,    4,  129,   30,    4,   72,   30,  129, 
/* 6170 */    30,   69,  129,   30,   66,  129,   30,   63,  129,   30, 
/* 6180 */    60,  129,   30,   57,  129,   30,   54,  129,   30,   51, 
/* 6190 */   129,   30,   48,  129,   30,   51,  129,   30,    4,   73, 
/* 6200 */    12,  129,   30,    4,   76,   12,  129,   30,    4,   80, 
/* 6210 */    12,  129,   30,    4,   83,   12,  129,   87,   12,  129, 
/* 6220 */    90,   12,  117,    4,  129,   94,   11,  117,    4,  129, 
/* 6230 */    97,   12,  117,    4,  129,  101,   12,  117,    4,  129, 
/* 6240 */   104,   17,  129,  108,   13,  129,  111,   10,  129,  115, 
/* 6250 */     6,  129,  117,    4,  134,  193,  129,   30,    1,  103, 
/* 6260 */    18,  129,   30,    4,  103,   18,  129,   30,    7,  103, 
/* 6270 */    18,  129,   30,    9,  103,   18,  129,   30,   12,  110, 
/* 6280 */    11,  129,   30,   15,  113,    8,  129,   30,   18,  114, 
/* 6290 */     7,  129,   30,   21,  116,    5,  129,   30,   24,  116, 
/* 6300 */     5,  129,   30,   27,  117,    4,  129,   30,   30,  117, 
/* 6310 */     4,  129,   30,   33,  117,    4,  129,   30,    4,   37, 
/* 6320 */    28,  117,    4,  129,   30,    4,   40,   28,  117,    4, 
/* 6330 */   129,   30,    4,   42,   29,  117,    4,  129,   30,    4, 
/* 6340 */    45,   29,  117,    4,  129,   30,    4,   48,   29,  117, 
/* 6350 */     4,  129,   30,    4,   51,   29,  117,    4,  129,   30, 
/* 6360 */     4,   54,   29,  117,    4,  129,   30,    4,   57,   29, 
/* 6370 */   117,    4,  129,   30,    4,   59,   30,  117,    4,  129, 
/* 6380 */    30,    4,   62,   30,  117,    4,  129,   30,    4,   65, 
/* 6390 */    30,  117,    4,  129,   30,    4,   68,   30,  117,    4, 
/* 6400 */   129,   30,    4,   71,   30,  117,    4,  129,   30,    4, 
/* 6410 */    74,   30,  117,    4,  129,   30,    4,   77,   30,  117, 
/* 6420 */     4,  129,   30,    4,   80,   30,  117,    4,  129,   30, 
/* 6430 */     4,   83,   30,  117,    4,  129,   30,    4,   86,   35, 
/* 6440 */   129,   30,    4,   89,   32,  129,   30,    4,   91,   30, 
/* 6450 */   129,   30,    4,   94,   27,  129,   30,    5,   97,   24, 
/* 6460 */   129,   30,    5,  100,   21,  129,   30,    7,  103,   18, 
/* 6470 */   129,   30,    8,  106,   15,  129,   30,   11,  109,   12, 
/* 6480 */   129,   30,   18,  112,    9,  129,   30,   18,  115,    6, 
/* 6490 */   129,   30,   18,  117,    4,  129,   30,   18,  120,    1, 
/* 6500 */   129,  193,  129,   42,    8,  129,   38,   16,  129,   36, 
/* 6510 */    20,  129,   34,   24,   71,    5,  129,   33,   26,   69, 
/* 6520 */    10,  129,   32,   28,   68,   13,  129,   31,   30,   68, 
/* 6530 */    14,  129,   31,    9,   52,    9,   68,   15,  129,   30, 
/* 6540 */     8,   54,    8,   69,   14,  129,   30,    7,   55,    7, 
/* 6550 */    71,    4,   78,    6,  129,   30,    6,   56,    6,   79, 
/* 6560 */     5,  129,   30,    6,   56,    6,   80,    4,  130,   31, 
/* 6570 */     5,   56,    5,   80,    4,  129,   31,    5,   56,    5, 
/* 6580 */    79,    5,  129,   32,    5,   55,    5,   78,    6,  129, 
/* 6590 */    33,    5,   54,    5,   77,    7,  129,   34,    6,   52, 
/* 6600 */     6,   74,    9,  129,   35,   48,  129,   33,   49,  129, 
/* 6610 */    32,   49,  129,   31,   49,  129,   30,   49,  129,   30, 
/* 6620 */    47,  129,   30,   45,  129,   30,   41,  129,   30,    6, 
/* 6630 */   129,   30,    4,  129,   30,    3,  129,   30,    2,  129, 
/* 6640 */   193,  129,   30,    4,  117,    4,  130,   31,   90,  136, 
/* 6650 */    37,    5,   72,    5,  129,   35,    5,   74,    5,  129, 
/* 6660 */    33,    5,   76,    5,  129,   32,    5,   77,    5,  129, 
/* 6670 */    31,    5,   78,    5,  129,   31,    4,   79,    4,  129, 
/* 6680 */    30,    5,   79,    5,  131,   30,    6,   78,    6,  129, 
/* 6690 */    30,    7,   77,    7,  129,   31,    8,   75,    8,  129, 
/* 6700 */    31,   11,   72,   11,  129,   32,   15,   67,   15,  129, 
/* 6710 */    33,   48,  129,   34,   46,  129,   35,   44,  129,   37, 
/* 6720 */    40,  129,   39,   36,  129,   42,   30,  129,   46,   22, 
/* 6730 */   129,  193,  129,   48,   18,  129,   43,   28,  129,   41, 
/* 6740 */    32,  129,   39,   36,  129,   37,   40,  129,   35,   44, 
/* 6750 */   129,   34,   46,  129,   33,   13,   68,   13,  129,   32, 
/* 6760 */     9,   73,    9,  129,   32,    7,   75,    7,  129,   31, 
/* 6770 */     6,   77,    6,  129,   31,    5,   78,    5,  129,   30, 
/* 6780 */     5,   79,    5,  129,   30,    4,   80,    4,  133,   31, 
/* 6790 */     3,   79,    4,  129,   31,    4,   79,    4,  129,   32, 
/* 6800 */     3,   78,    4,  129,   32,    4,   76,    6,  129,   33, 
/* 6810 */     4,   74,    7,  129,   34,    4,   72,    8,  129,   35, 
/* 6820 */     5,   72,    7,  129,   37,    5,   73,    4,  129,   39, 
/* 6830 */     4,   74,    1,  129,  129,  193,  129,   46,   22,  129, 
/* 6840 */    42,   30,  129,   39,   36,  129,   37,   40,  129,   35, 
/* 6850 */    44,  129,   34,   46,  129,   33,   48,  129,   32,   15, 
/* 6860 */    67,   15,  129,   31,   11,   72,   11,  129,   31,    8, 
/* 6870 */    75,    8,  129,   30,    7,   77,    7,  129,   30,    6, 
/* 6880 */    78,    6,  129,   30,    5,   79,    5,  131,   31,    4, 
/* 6890 */    79,    4,  129,   31,    5,   78,    5,  129,   32,    5, 
/* 6900 */    77,    5,  129,   33,    5,   76,    5,  129,   35,    5, 
/* 6910 */    74,    5,  117,    4,  129,   37,    5,   72,    5,  117, 
/* 6920 */     4,  129,   30,   91,  136,   30,    4,  130,  193,  129, 
/* 6930 */    48,   18,  129,   43,   28,  129,   41,   32,  129,   39, 
/* 6940 */    36,  129,   37,   40,  129,   35,   44,  129,   34,   46, 
/* 6950 */   129,   33,   13,   55,    4,   68,   13,  129,   32,    9, 
/* 6960 */    55,    4,   73,    9,  129,   32,    7,   55,    4,   75, 
/* 6970 */     7,  129,   31,    6,   55,    4,   77,    6,  129,   31, 
/* 6980 */     5,   55,    4,   78,    5,  129,   30,    5,   55,    4, 
/* 6990 */    79,    5,  129,   30,    4,   55,    4,   80,    4,  132, 
/* 7000 */    30,    4,   55,    4,   79,    5,  129,   31,    3,   55, 
/* 7010 */     4,   78,    5,  129,   31,    4,   55,    4,   77,    6, 
/* 7020 */   129,   32,    3,   55,    4,   75,    7,  129,   32,    4, 
/* 7030 */    55,    4,   73,    9,  129,   33,    4,   55,    4,   68, 
/* 7040 */    13,  129,   34,    4,   55,   25,  129,   35,    5,   55, 
/* 7050 */    24,  129,   37,    5,   55,   22,  129,   39,    4,   55, 
/* 7060 */    20,  129,   55,   18,  129,   55,   16,  129,   55,   11, 
/* 7070 */   129,  193,  129,   80,    4,  129,   30,    4,   80,    4, 
/* 7080 */   130,   30,   78,  129,   30,   82,  129,   30,   85,  129, 
/* 7090 */    30,   87,  129,   30,   88,  129,   30,   89,  129,   30, 
/* 7100 */    90,  130,   30,    4,   80,    4,  115,    6,  129,   30, 
/* 7110 */     4,   80,    4,  117,    4,  129,   80,    4,  105,    6, 
/* 7120 */   117,    4,  129,   80,    4,  103,   10,  116,    5,  129, 
/* 7130 */    80,    4,  102,   19,  129,   80,    4,  101,   19,  129, 
/* 7140 */   101,   19,  129,  101,   18,  129,  102,   16,  129,  103, 
/* 7150 */    12,  129,  105,    6,  129,  193,  129,   12,   10,   59, 
/* 7160 */    11,  129,    9,   16,   55,   19,  129,    7,   20,   53, 
/* 7170 */    23,  129,    6,    7,   23,    5,   32,    6,   51,   27, 
/* 7180 */   129,    4,    7,   25,   16,   50,   29,  129,    3,    6, 
/* 7190 */    27,   16,   49,   31,  129,    2,    6,   28,   16,   48, 
/* 7200 */    33,  129,    1,    6,   27,   18,   47,   35,  129,    1, 
/* 7210 */     6,   27,   31,   71,   12,  129,    1,    5,   26,   15, 
/* 7220 */    44,   10,   75,    8,  129,    1,    5,   25,   14,   45, 
/* 7230 */     7,   77,    7,  129,    1,    5,   25,   13,   45,    5, 
/* 7240 */    79,    5,  129,    1,    5,   24,   14,   45,    4,   80, 
/* 7250 */     4,  129,    1,    5,   24,   13,   45,    4,   80,    4, 
/* 7260 */   129,    1,    5,   23,   14,   45,    4,   80,    4,  129, 
/* 7270 */     1,    5,   23,   13,   45,    4,   80,    4,  129,    1, 
/* 7280 */     6,   22,   13,   45,    5,   79,    5,  129,    1,    6, 
/* 7290 */    21,   14,   45,    7,   77,    7,  129,    1,    7,   21, 
/* 7300 */    13,   46,    8,   75,    8,  129,    1,    8,   20,   13, 
/* 7310 */    46,   12,   71,   12,  129,    1,   10,   18,   15,   47, 
/* 7320 */    35,  129,    2,   30,   48,   33,  129,    3,   29,   49, 
/* 7330 */    32,  129,    4,   27,   50,   31,  129,    5,   25,   51, 
/* 7340 */    27,   80,    2,   86,    4,  129,    7,   21,   53,   23, 
/* 7350 */    80,    3,   85,    6,  129,    9,   17,   55,   19,   80, 
/* 7360 */    12,  129,   12,   12,   59,   11,   81,   11,  129,   82, 
/* 7370 */    10,  129,   84,    7,  129,   86,    4,  129,  193,  129, 
/* 7380 */    30,    4,  117,    4,  130,   30,   91,  136,   30,    4, 
/* 7390 */    72,    5,  129,   30,    4,   74,    5,  129,   75,    5, 
/* 7400 */   129,   76,    5,  129,   76,    6,  129,   77,    6,  130, 
/* 7410 */    77,    7,  130,   76,    8,  129,   30,    4,   75,    9, 
/* 7420 */   129,   30,    4,   72,   12,  129,   30,   54,  129,   30, 
/* 7430 */    53,  130,   30,   52,  129,   30,   51,  129,   30,   49, 
/* 7440 */   129,   30,   46,  129,   30,   42,  129,   30,    4,  130, 
/* 7450 */   193,  129,   30,    4,   80,    4,  129,   30,    4,   80, 
/* 7460 */     4,  100,    6,  129,   30,   54,   98,   10,  129,   30, 
/* 7470 */    54,   97,   12,  129,   30,   54,   96,   14,  131,   30, 
/* 7480 */    54,   97,   12,  129,   30,   54,   98,   10,  129,   30, 
/* 7490 */    54,  100,    6,  129,   30,    4,  130,  193,  129,    7, 
/* 7500 */     6,  129,    4,   11,  129,    3,   13,  129,    2,   14, 
/* 7510 */   129,    1,   15,  130,    1,    3,    6,    9,  129,    1, 
/* 7520 */     3,    7,    6,  129,    1,    3,  130,    1,    4,  129, 
/* 7530 */     1,    5,   80,    4,  129,    1,    7,   80,    4,  100, 
/* 7540 */     6,  129,    2,   82,   98,   10,  129,    3,   81,   97, 
/* 7550 */    12,  129,    4,   80,   96,   14,  129,    5,   79,   96, 
/* 7560 */    14,  129,    7,   77,   96,   14,  129,   10,   74,   97, 
/* 7570 */    12,  129,   14,   70,   98,   10,  129,   19,   65,  100, 
/* 7580 */     6,  129,  193,  129,   30,    4,  117,    4,  130,   30, 
/* 7590 */    91,  136,   30,    4,   57,    9,  129,   30,    4,   55, 
/* 7600 */    12,  129,   52,   17,  129,   50,   20,  129,   48,   24, 
/* 7610 */   129,   46,   27,  129,   44,   21,   69,    6,  129,   41, 
/* 7620 */    22,   70,    6,   80,    4,  129,   30,    4,   39,   21, 
/* 7630 */    72,    6,   80,    4,  129,   30,    4,   36,   22,   73, 
/* 7640 */    11,  129,   30,   26,   75,    9,  129,   30,   23,   76, 
/* 7650 */     8,  129,   30,   21,   78,    6,  129,   30,   19,   79, 
/* 7660 */     5,  129,   30,   16,   80,    4,  129,   30,   14,   80, 
/* 7670 */     4,  129,   30,   12,  129,   30,   10,  129,   30,    7, 
/* 7680 */   129,   30,    5,  129,   30,    4,  130,  193,  129,   30, 
/* 7690 */     4,  117,    4,  130,   30,   91,  136,   30,    4,  130, 
/* 7700 */   193,  129,   30,    4,   80,    4,  130,   30,   54,  136, 
/* 7710 */    30,    4,   72,    5,  129,   30,    4,   74,    5,  129, 
/* 7720 */    75,    5,  129,   76,    5,  129,   30,    4,   75,    7, 
/* 7730 */   129,   30,    4,   74,    9,  129,   30,   54,  132,   30, 
/* 7740 */    53,  129,   30,   52,  129,   30,   51,  129,   30,   48, 
/* 7750 */   129,   30,    4,   72,    5,  129,   30,    4,   74,    5, 
/* 7760 */   129,   75,    5,  129,   76,    5,  129,   30,    4,   75, 
/* 7770 */     7,  129,   30,    4,   74,    9,  129,   30,   54,  132, 
/* 7780 */    30,   53,  129,   30,   52,  129,   30,   51,  129,   30, 
/* 7790 */    48,  129,   30,    4,  130,  193,  129,   30,    4,   80, 
/* 7800 */     4,  130,   30,   54,  136,   30,    4,   72,    5,  129, 
/* 7810 */    30,    4,   74,    5,  129,   75,    5,  129,   76,    5, 
/* 7820 */   129,   76,    6,  129,   77,    6,  130,   77,    7,  130, 
/* 7830 */    76,    8,  129,   30,    4,   75,    9,  129,   30,    4, 
/* 7840 */    72,   12,  129,   30,   54,  129,   30,   53,  130,   30, 
/* 7850 */    52,  129,   30,   51,  129,   30,   49,  129,   30,   46, 
/* 7860 */   129,   30,   42,  129,   30,    4,  130,  193,  129,   48, 
/* 7870 */    18,  129,   43,   28,  129,   41,   32,  129,   39,   36, 
/* 7880 */   129,   37,   40,  129,   35,   44,  129,   34,   46,  129, 
/* 7890 */    33,   13,   68,   13,  129,   32,    9,   73,    9,  129, 
/* 7900 */    32,    7,   75,    7,  129,   31,    6,   77,    6,  129, 
/* 7910 */    31,    5,   78,    5,  129,   30,    5,   79,    5,  129, 
/* 7920 */    30,    4,   80,    4,  132,   30,    5,   79,    5,  130, 
/* 7930 */    31,    5,   78,    5,  129,   31,    6,   77,    6,  129, 
/* 7940 */    32,    7,   75,    7,  129,   32,    9,   73,    9,  129, 
/* 7950 */    33,   13,   68,   13,  129,   34,   46,  129,   35,   44, 
/* 7960 */   129,   37,   40,  129,   39,   36,  129,   41,   32,  129, 
/* 7970 */    43,   28,  129,   48,   18,  129,  193,  129,    1,    3, 
/* 7980 */    80,    4,  130,    1,   83,  137,   37,    5,   72,    5, 
/* 7990 */   129,   35,    5,   74,    5,  129,   33,    5,   76,    5, 
/* 8000 */   129,   32,    5,   77,    5,  129,   31,    5,   78,    5, 
/* 8010 */   129,   31,    4,   79,    4,  129,   30,    5,   79,    5, 
/* 8020 */   131,   30,    6,   78,    6,  129,   30,    7,   77,    7, 
/* 8030 */   129,   31,    8,   75,    8,  129,   31,   11,   72,   11, 
/* 8040 */   129,   32,   15,   67,   15,  129,   33,   48,  129,   34, 
/* 8050 */    46,  129,   35,   44,  129,   37,   40,  129,   39,   36, 
/* 8060 */   129,   42,   30,  129,   46,   22,  129,  193,  129,   46, 
/* 8070 */    22,  129,   42,   30,  129,   39,   36,  129,   37,   40, 
/* 8080 */   129,   35,   44,  129,   34,   46,  129,   33,   48,  129, 
/* 8090 */    32,   15,   67,   15,  129,   31,   11,   72,   11,  129, 
/* 8100 */    31,    8,   75,    8,  129,   30,    7,   77,    7,  129, 
/* 8110 */    30,    6,   78,    6,  129,   30,    5,   79,    5,  131, 
/* 8120 */    31,    4,   79,    4,  129,   31,    5,   78,    5,  129, 
/* 8130 */    32,    5,   77,    5,  129,   33,    5,   76,    5,  129, 
/* 8140 */    35,    5,   74,    5,  129,   37,    5,   72,    5,  129, 
/* 8150 */     1,   83,  136,    1,    3,   80,    4,  130,  193,  129, 
/* 8160 */    30,    4,   80,    4,  130,   30,   54,  136,   30,    4, 
/* 8170 */    68,    6,  129,   30,    4,   70,    6,  129,   71,    7, 
/* 8180 */   129,   72,    7,  129,   73,    7,  129,   74,    7,  129, 
/* 8190 */    74,    8,  129,   75,    8,  130,   69,   15,  129,   67, 
/* 8200 */    17,  129,   66,   18,  129,   65,   19,  130,   65,   18, 
/* 8210 */   130,   66,   16,  129,   67,   13,  129,   69,    8,  129, 
/* 8220 */   193,  129,   30,   13,   64,    8,  129,   30,   13,   61, 
/* 8230 */    14,  129,   30,   13,   59,   18,  129,   30,   13,   57, 
/* 8240 */    22,  129,   33,    8,   56,   24,  129,   32,    7,   55, 
/* 8250 */    26,  129,   32,    6,   54,   28,  129,   31,    6,   53, 
/* 8260 */    16,   77,    6,  129,   31,    5,   53,   14,   79,    4, 
/* 8270 */   129,   30,    5,   52,   14,   80,    4,  129,   30,    5, 
/* 8280 */    52,   13,   80,    4,  129,   30,    4,   52,   13,   80, 
/* 8290 */     4,  129,   30,    4,   52,   12,   80,    4,  129,   30, 
/* 8300 */     4,   51,   13,   80,    4,  130,   30,    4,   50,   13, 
/* 8310 */    79,    5,  129,   30,    4,   50,   13,   78,    5,  129, 
/* 8320 */    30,    5,   49,   14,   77,    6,  129,   31,    4,   49, 
/* 8330 */    13,   76,    6,  129,   31,    5,   48,   14,   75,    7, 
/* 8340 */   129,   32,    5,   47,   14,   73,    8,  129,   32,    6, 
/* 8350 */    45,   16,   71,   13,  129,   33,   27,   71,   13,  129, 
/* 8360 */    34,   26,   71,   13,  129,   35,   24,   71,   13,  129, 
/* 8370 */    37,   20,  129,   39,   16,  129,   43,    9,  129,  193, 
/* 8380 */   129,   80,    4,  131,   41,   56,  129,   37,   60,  129, 
/* 8390 */    35,   62,  129,   33,   64,  129,   32,   65,  129,   31, 
/* 8400 */    66,  129,   30,   67,  130,   30,   11,   80,    4,  129, 
/* 8410 */    30,    9,   80,    4,  129,   30,    8,   80,    4,  129, 
/* 8420 */    31,    7,   80,    4,  129,   31,    6,  129,   32,    5, 
/* 8430 */   129,   33,    5,  129,   35,    4,  129,   38,    3,  129, 
/* 8440 */   193,  129,   80,    4,  130,   42,   42,  129,   38,   46, 
/* 8450 */   129,   35,   49,  129,   33,   51,  129,   32,   52,  129, 
/* 8460 */    31,   53,  130,   30,   54,  129,   30,   12,  129,   30, 
/* 8470 */     9,  129,   30,    8,  129,   30,    7,  130,   31,    6, 
/* 8480 */   130,   32,    6,  129,   33,    5,  129,   34,    5,  129, 
/* 8490 */    35,    5,   80,    4,  129,   37,    5,   80,    4,  129, 
/* 8500 */    30,   54,  136,   30,    4,  130,  193,  129,   80,    4, 
/* 8510 */   130,   77,    7,  129,   74,   10,  129,   70,   14,  129, 
/* 8520 */    66,   18,  129,   62,   22,  129,   59,   25,  129,   55, 
/* 8530 */    29,  129,   51,   33,  129,   47,   37,  129,   44,   32, 
/* 8540 */    80,    4,  129,   40,   32,   80,    4,  129,   36,   32, 
/* 8550 */   129,   32,   33,  129,   30,   31,  129,   33,   24,  129, 
/* 8560 */    36,   17,  129,   40,   12,  129,   44,   12,  129,   48, 
/* 8570 */    12,  129,   51,   13,  129,   55,   13,  129,   59,   13, 
/* 8580 */    80,    4,  129,   63,   13,   80,    4,  129,   67,   17, 
/* 8590 */   129,   71,   13,  129,   74,   10,  129,   78,    6,  129, 
/* 8600 */    80,    4,  131,  193,  129,   80,    4,  130,   77,    7, 
/* 8610 */   129,   74,   10,  129,   70,   14,  129,   66,   18,  129, 
/* 8620 */    62,   22,  129,   59,   25,  129,   55,   29,  129,   51, 
/* 8630 */    33,  129,   47,   37,  129,   44,   32,   80,    4,  129, 
/* 8640 */    40,   32,   80,    4,  129,   36,   32,  129,   32,   33, 
/* 8650 */   129,   30,   31,  129,   33,   24,  129,   36,   17,  129, 
/* 8660 */    40,   12,  129,   44,   12,  129,   47,   13,  129,   44, 
/* 8670 */    20,  129,   40,   28,  129,   36,   31,  129,   32,   32, 
/* 8680 */   129,   30,   30,  129,   33,   24,  129,   36,   17,  129, 
/* 8690 */    40,   12,  129,   44,   12,  129,   48,   12,  129,   51, 
/* 8700 */    13,  129,   55,   13,  129,   59,   13,   80,    4,  129, 
/* 8710 */    63,   13,   80,    4,  129,   67,   17,  129,   71,   13, 
/* 8720 */   129,   74,   10,  129,   78,    6,  129,   80,    4,  131, 
/* 8730 */   193,  129,   30,    4,   80,    4,  130,   30,    4,   79, 
/* 8740 */     5,  129,   30,    5,   77,    7,  129,   30,    6,   74, 
/* 8750 */    10,  129,   30,    8,   72,   12,  129,   30,   11,   69, 
/* 8760 */    15,  129,   30,   13,   67,   17,  129,   30,    4,   37, 
/* 8770 */     8,   64,   20,  129,   30,    4,   39,    8,   62,   22, 
/* 8780 */   129,   41,    8,   59,   25,  129,   43,    8,   57,   27, 
/* 8790 */   129,   45,    8,   55,   22,   80,    4,  129,   47,   27, 
/* 8800 */    80,    4,  129,   49,   23,  129,   47,   22,  129,   44, 
/* 8810 */    23,  129,   42,   22,  129,   30,    4,   39,   27,  129, 
/* 8820 */    30,    4,   37,   31,  129,   30,   27,   62,    8,  129, 
/* 8830 */    30,   25,   64,    8,  129,   30,   22,   66,    8,   80, 
/* 8840 */     4,  129,   30,   20,   68,    8,   80,    4,  129,   30, 
/* 8850 */    17,   70,    8,   80,    4,  129,   30,   15,   73,   11, 
/* 8860 */   129,   30,   12,   75,    9,  129,   30,   10,   77,    7, 
/* 8870 */   129,   30,    7,   79,    5,  129,   30,    5,   80,    4, 
/* 8880 */   129,   30,    4,   80,    4,  130,  193,  129,    4,    5, 
/* 8890 */    80,    4,  129,    2,    9,   80,    4,  129,    1,   11, 
/* 8900 */    77,    7,  129,    1,   12,   74,   10,  129,    1,   12, 
/* 8910 */    70,   14,  129,    1,   12,   66,   18,  129,    1,   11, 
/* 8920 */    62,   22,  129,    2,    9,   59,   25,  129,    4,   11, 
/* 8930 */    55,   29,  129,    7,   12,   51,   33,  129,   10,   12, 
/* 8940 */    47,   37,  129,   14,   12,   44,   32,   80,    4,  129, 
/* 8950 */    17,   13,   40,   32,   80,    4,  129,   21,   13,   36, 
/* 8960 */    32,  129,   25,   40,  129,   29,   32,  129,   33,   24, 
/* 8970 */   129,   36,   17,  129,   40,   12,  129,   44,   12,  129, 
/* 8980 */    48,   12,  129,   51,   13,  129,   55,   13,  129,   59, 
/* 8990 */    13,   80,    4,  129,   63,   13,   80,    4,  129,   67, 
/* 9000 */    17,  129,   71,   13,  129,   74,   10,  129,   78,    6, 
/* 9010 */   129,   80,    4,  131,  193,  129,   30,    1,   71,   13, 
/* 9020 */   129,   30,    3,   71,   13,  129,   30,    6,   71,   13, 
/* 9030 */   129,   30,    9,   75,    9,  129,   30,   11,   77,    7, 
/* 9040 */   129,   30,   14,   79,    5,  129,   30,   17,   79,    5, 
/* 9050 */   129,   30,   19,   80,    4,  129,   30,   22,   80,    4, 
/* 9060 */   129,   30,   25,   80,    4,  129,   30,   27,   80,    4, 
/* 9070 */   129,   30,    4,   36,   24,   80,    4,  129,   30,    4, 
/* 9080 */    38,   25,   80,    4,  129,   30,    4,   41,   24,   80, 
/* 9090 */     4,  129,   30,    4,   44,   24,   80,    4,  129,   30, 
/* 9100 */     4,   46,   25,   80,    4,  129,   30,    4,   49,   25, 
/* 9110 */    80,    4,  129,   30,    4,   52,   24,   80,    4,  129, 
/* 9120 */    30,    4,   54,   30,  129,   30,    4,   57,   27,  129, 
/* 9130 */    30,    4,   59,   25,  129,   30,    4,   62,   22,  129, 
/* 9140 */    30,    4,   65,   19,  129,   30,    5,   67,   17,  129, 
/* 9150 */    30,    5,   70,   14,  129,   30,    7,   73,   11,  129, 
/* 9160 */    30,    9,   76,    8,  129,   30,   13,   78,    6,  129, 
/* 9170 */    30,   13,   81,    3,  129,   30,   13,  129,  193,    2, 
/* 9180 */     9,   59,   25,  129,    4,   11,   55,   29,  129,    7, 
/* 9190 */    12,   51,   33,  129,   10,   12,   47,   37,  129,   14, 
/* 9200 */    12,   44,   32,   80,    4,  129,   17,   13,   40,   32, 
/* 9210 */    80,    4,  129,   21,   13,   36,   32,  129,   25,   40, 
/* 9220 */   129,   29,   32,  129,   33,   24,  129,   36,   17,  129, 
/* 9230 */    40,   12,  129,   44,   12,  129,   48,   12,  129,   51, 
/* 9240 */    13,  129,   55,   13,  129,   59,   13,   80,    4,  129, 
/* 9250 */    63,   13,   80,    4,  129,   67,   17,  129,   71,   13, 
/* 9260 */   129,   74,   10,  129,   78,    6,  129,   80,    4,  131, 
/* 9270 */   193
};

static char line[DWIDTH];
static char message[MAXMSG];
static char print[DWIDTH];
static int debug, linen, max, nchars, pc, term, trace;
static int width = DWIDTH;	/* -w option: scrunch letters to 80 columns */

__dead static void
toolong(void)
{
	errx(EXIT_FAILURE, "message too long");
}

int
main(int argc, char *argv[])
{ 
	int ch;
	int i, j, x, y;

	x = y = 0;

	while ((ch = getopt(argc, argv, "w:td")) != -1)
		switch (ch) {
		case 'd':
			debug = 1;
			break;
		case 't':
			trace = 1;
			break;
		case 'w':
			width = atoi(optarg);
			if (width <= 0 || width > DWIDTH)
				errx(1, "illegal argument for -w option");
			break;
		case '?':
		default:
			(void)fprintf(stderr, "usage: banner [-w width] [message]\n");
			exit(1);
		}
	argc -= optind;
	argv += optind;

	for (i = 0; i < width; i++) {
		j = i * DWIDTH / width;
		print[j] = 1;
	}

	/* Have now read in the data. Next get the message to be printed. */
	if (*argv) {
		const size_t msize = sizeof(message);

		if (strlcpy(message, *argv, msize) >= msize)
			toolong();
		while (*++argv) {
			if (strlcat(message, " ", msize) >= msize)
				toolong();
			if (strlcat(message, *argv, msize) >= msize)
				toolong();
		}
		nchars = strlen(message);
	} else {
		if (isatty(fileno(stdin)))
			fprintf(stderr,"Message: ");
		(void)fgets(message, sizeof(message), stdin);
		nchars = strlen(message);
		message[nchars--] = '\0';	/* get rid of newline */
	}

	/* some debugging print statements */
	if (debug) {
		printf("int asc_ptr[128] = {\n");
		for (i = 0; i < 128; i++) {
			printf("%4d,   ",asc_ptr[i]);
			if ((i+1) % 8 == 0)
				printf("\n");
		}
		printf("};\nchar data_table[NBYTES] = {\n");
		printf("  /*   ");
		for (i = 0; i < 10; i++) printf(" %3d  ",i);
		printf("   */\n");
		for (i = 0; i < NBYTES; i += 10) {
			printf("/* %4d */  ",i);
			for (j = i; j < i+10; j++) { 
				x = data_table[j];
				printf(" %3d, ",x);
			}
			putchar('\n');
		}
		printf("};\n");
	}

	/* check message to make sure it's legal */
	j = 0;
	for (i = 0; i < nchars; i++)
		if ((u_char) message[i] >= NCHARS ||
		    asc_ptr[(u_char) message[i]] == 0) {
			warnx("The character '%c' is not in my character set",
				message[i]);
			j++;
		}
	if (j)
		exit(1);

	if (trace)
		printf("Message '%s' is OK\n",message);
	/* Now have message. Print it one character at a time.  */

	for (i = 0; i < nchars; i++) {
		if (trace)
			printf("Char #%d: %c\n", i, message[i]);
		for (j = 0; j < DWIDTH; j++) line[j] = ' ';
		pc = asc_ptr[(u_char) message[i]];
		term = 0;
		max = 0;
		linen = 0;
		while (!term) {
			if (pc < 0 || pc > NBYTES) {
				printf("bad pc: %d\n",pc);
				exit(1);
			}
			x = data_table[pc];
			if (trace) {
				printf("pc=%d, term=%d, max=%d, linen=%d, x=%d",
				    pc,term,max,linen,x);
				printf("\n");
			}
			if (x >= 128) {
				if (x>192) term++;
				x = x & 63;
				while (x--) {
					if (print[linen++]) {
						for (j=0; j <= max; j++)
							if (print[j])
								putchar(line[j]);
						putchar('\n');
					}
				}
				for (j = 0; j < DWIDTH; j++) line[j] = ' ';
				pc++;
			}
			else {
				y = data_table[pc+1];
				/* compensate for narrow teminals */
#if 0 /* notdef */
				x = (x*width + (DWIDTH/2)) / DWIDTH;
				y = (y*width + (DWIDTH/2)) / DWIDTH;
#endif
				max = x+y;
				while (x < max) line[x++] = '#';
				pc += 2;
				if (trace)
					printf("x=%d, y=%d, max=%d\n",x,y,max);
			}
		}
	}

	exit(0);
}