Annotation of cci/usr/src/usr.bin/diction/wdslex.c, revision 1.1.1.1

1.1       root        1: # include "stdio.h"
                      2: # define U(x) x
                      3: # define NLSTATE yyprevious=YYNEWLINE
                      4: # define BEGIN yybgin = yysvec + 1 +
                      5: # define INITIAL 0
                      6: # define YYLERR yysvec
                      7: # define YYSTATE (yyestate-yysvec-1)
                      8: # define YYOPTIM 1
                      9: # define YYLMAX 200
                     10: # define output(c) putc(c,yyout)
                     11: # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
                     12: # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
                     13: # define yymore() (yymorfg=1)
                     14: # define ECHO fprintf(yyout, "%s",yytext)
                     15: # define REJECT { nstr = yyreject(); goto yyfussy;}
                     16: int yyleng; extern char yytext[];
                     17: int yymorfg;
                     18: extern char *yysptr, yysbuf[];
                     19: int yytchar;
                     20: FILE *yyin ={stdin}, *yyout ={stdout};
                     21: extern int yylineno;
                     22: struct yysvf { 
                     23:        struct yywork *yystoff;
                     24:        struct yysvf *yyother;
                     25:        int *yystops;};
                     26: struct yysvf *yyestate;
                     27: extern struct yysvf yysvec[], *yybgin;
                     28: /* break out words, output cap + word(inverted) */
                     29: 
                     30: #ifndef lint
                     31: static char sccsid[] = "@(#)nwords.l   4.2     (Berkeley)      82/11/06";
                     32: #endif not lint
                     33: 
                     34: #include <stdio.h>
                     35: #include <ctype.h>
                     36: #define OUT()  for(i=yyleng-1;i>=0; i--)putchar(yytext[i]); putchar('\n')
                     37: #define OUT1(nam)      printf("%c:%s\n",nam,yytext)
                     38: #define OUTN(string)   printf("%s\n",string)
                     39: #include "names.h"
                     40: #include "nhash.c"
                     41: #include "dict.c"
                     42: #include "ydict.c"
                     43: #include "abbrev.c"
                     44: char nt[]  = "D:n't";
                     45: char qs[]  = "c:'s";
                     46: char fin[]  = "E:.";
                     47: int NOCAPS = 0;                /* if set all caps are turned to lower case */
                     48: int i,j;
                     49: int dot = 0;
                     50: int first  = 1;
                     51: int qflg,nflg;
                     52: int cap  = 0;
                     53: # define YYNEWLINE 10
                     54: yylex(){
                     55: int nstr; extern int yyprevious;
                     56: while((nstr = yylook()) >= 0)
                     57: yyfussy: switch(nstr){
                     58: case 0:
                     59: if(yywrap()) return(0); break;
                     60: case 1:
                     61: {
                     62:        if(dot){
                     63:                OUTN(fin);
                     64:                dot = 0;
                     65:                first = 1;
                     66:        }
                     67:        printf(":%s",yytext);
                     68:        }
                     69: break;
                     70: case 2:
                     71: {
                     72:                if(first == 0){
                     73:                        OUT1(NOUN);
                     74:                }
                     75:                else {
                     76:                        first = 0;
                     77:                        yytext[0] = tolower(yytext[0]);
                     78:                        cap = 1;
                     79:                        goto wd;
                     80:                }
                     81:        }
                     82: break;
                     83: case 3:
                     84:        {
                     85:                OUT1(NOUN);
                     86:                }
                     87: break;
                     88: case 4:
                     89: {
                     90:                pos(1);
                     91:                if(first==1)first=0;
                     92:                }
                     93: break;
                     94: case 5:
                     95: {
                     96:                if(NOCAPS)
                     97:                        for(i=0;i<yyleng;i++)
                     98:                                if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
                     99:                OUT1(POS);
                    100:                }
                    101: break;
                    102: case 6:
                    103: {
                    104:                if(NOCAPS)
                    105:                        for(i=0;i<yyleng;i++)
                    106:                                if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
                    107:                OUT1(NOUN_ADJ);
                    108:                }
                    109: break;
                    110: case 7:
                    111: {
                    112:                if(NOCAPS)
                    113:                        for(i=0;i<yyleng;i++)
                    114:                                yytext[i] = tolower(yytext[i]);
                    115:                if((i=input()) == 's'){
                    116:                        yytext[yyleng++] = 's';
                    117:                        yytext[yyleng] = '\0';
                    118:                        OUT1(PNOUN);
                    119:                }
                    120:                else {
                    121:                        unput(i);
                    122:                        if(!NOCAPS)
                    123:                                for(i=0;i<yyleng;i++)yytext[i] = tolower(yytext[i]);
                    124:                                goto wd;
                    125:                }
                    126:                }
                    127: break;
                    128: case 8:
                    129: {
                    130:                if(NOCAPS){
                    131:                        yytext[0] = tolower(yytext[0]);
                    132:                        yytext[2] = tolower(yytext[2]);
                    133:                }
                    134:                OUT1(NOUN_ADJ);
                    135:                }
                    136: break;
                    137: case 9:
                    138: {
                    139:                if(first==1)
                    140:                        first=0;
                    141:                else cap = 1;
                    142:                if(yyleng==1 && yytext[0] == 'I'){
                    143:                        cap = 0;
                    144:                        goto wd;
                    145:                }
                    146:                yytext[0] = tolower(yytext[0]);
                    147:                goto wd;
                    148:        }
                    149: break;
                    150: case 10:
                    151: {
                    152:                OUT1(NOUN_ADJ);
                    153:                }
                    154: break;
                    155: case 11:
                    156: {
                    157:                for(i=yyleng-1;i>0;i--)
                    158:                        if(yytext[i] == '.')break;
                    159:                unput(yytext[yyleng-1]);
                    160:                yytext[i] = '\0';
                    161:                OUT1(NOUN_ADJ);
                    162:                OUTN(fin);
                    163:                first = 1;
                    164:        }
                    165: break;
                    166: case 12:
                    167:        {
                    168:        if(NOCAPS)
                    169:                if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
                    170:        OUT1(PRONS);
                    171:        }
                    172: break;
                    173: case 13:
                    174: {
                    175:        if(NOCAPS)
                    176:                if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
                    177:        OUT1(POS);
                    178:        }
                    179: break;
                    180: case 14:
                    181: {
                    182:                if(yytext[yyleng-1] == '.'){
                    183:                        if(ahead() == 0)dot=1;
                    184:                }
                    185:                if(NOCAPS)
                    186:                        for(i=0;i<yyleng;i++)
                    187:                                if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
                    188:                OUT1(NOUN_ADJ);
                    189:                }
                    190: break;
                    191: case 15:
                    192: {
                    193:        OUT1(NOUN_ADJ);
                    194:        }
                    195: break;
                    196: case 16:
                    197: {
                    198:        OUT1(NOUN_ADJ);
                    199:        }
                    200: break;
                    201: case 17:
                    202: {
                    203:        if(yytext[yyleng-1] == '.')dot=1;
                    204:        OUT1(NOUN_ADJ);
                    205:        }
                    206: break;
                    207: case 18:
                    208: {
                    209:        if(input() == '.')
                    210:                ahead();
                    211:        if(NOCAPS)
                    212:                for(i=0;i<yyleng;i++)
                    213:                        if(isupper(yytext[i]))yytext[i]=tolower(yytext[i]);
                    214:        OUT1(NOUN_ADJ);
                    215:        }
                    216: break;
                    217: case 19:
                    218:        {
                    219:                OUT1(NOUN_ADJ);
                    220:                }
                    221: break;
                    222: case 20:
                    223: {
                    224:                if(yytext[yyleng-1] == '.')dot=1;
                    225:                OUT1(NOUN);
                    226:                }
                    227: break;
                    228: case 21:
                    229: {
                    230:                OUT1(ADJ_ADV);
                    231:                }
                    232: break;
                    233: case 22:
                    234: {
                    235:                OUT1(ADJ_ADV);
                    236:                }
                    237: break;
                    238: case 23:
                    239: {
                    240:                OUT1(ADJ_ADV);
                    241:                }
                    242: break;
                    243: case 24:
                    244: {
                    245:                OUT1(ADJ_ADV);
                    246:                }
                    247: break;
                    248: case 25:
                    249: {
                    250:                OUT1(PREP);
                    251:                }
                    252: break;
                    253: case 26:
                    254: {
                    255:                OUT1(PREP);
                    256:                }
                    257: break;
                    258: case 27:
                    259: {
                    260:                i = yytext[4];
                    261:                yytext[4] = '\0';
                    262:                OUT1(NOUN);
                    263:                yytext[4] = i;
                    264:                yytext[0] = yytext[yyleng-1];
                    265:                yytext[1] = '\0';
                    266:                if(yytext[0] == ',' || yytext[0] == ')')
                    267:                        OUT1(',');
                    268:                else {
                    269:                        OUTN(fin);
                    270:                        first = 1;
                    271:                }
                    272:        }
                    273: break;
                    274: case 28:
                    275: {
                    276:                OUT1(NOUN);
                    277:                }
                    278: break;
                    279: case 29:
                    280: {
                    281:                unput(yytext[yyleng-1]);
                    282:                yytext[2] = '\0';
                    283:                OUT1(PREP);
                    284:                OUTN(fin);
                    285:                first = 1;
                    286:                }
                    287: break;
                    288: case 30:
                    289: {
                    290:                OUT1(ADJ);
                    291:                }
                    292: break;
                    293: case 31:
                    294: {
                    295:                dot=1;
                    296:                OUT1(NOUN);
                    297:                }
                    298: break;
                    299: case 32:
                    300:        {
                    301:                yytext[3]='\0';
                    302:                yyleng -= 2;
                    303:                nflg=1;
                    304:                goto wd;
                    305:                }
                    306: break;
                    307: case 33:
                    308:        {
                    309:                OUT1('X');
                    310:                }
                    311: break;
                    312: case 34:
                    313:        {
                    314:                OUT1('g');
                    315:                }
                    316: break;
                    317: case 35:
                    318:        {
                    319:                nflg=1;
                    320:                yytext[yyleng-3]='\0';
                    321:                yyleng -= 3;
                    322:                goto wd;
                    323:                }
                    324: break;
                    325: case 36:
                    326: {
                    327:                yytext[0] = tolower(yytext[0]);
                    328:                nflg=1;
                    329:                yytext[yyleng-3]='\0';
                    330:                yyleng -= 3;
                    331:                goto wd;
                    332:                }
                    333: break;
                    334: case 37:
                    335:        {
                    336:                OUT1(ADV);
                    337:        }
                    338: break;
                    339: case 38:
                    340: {
                    341:                pos(0);
                    342:                }
                    343: break;
                    344: case 39:
                    345: {
                    346:                OUT1(lookup("will",1,0));
                    347:        }
                    348: break;
                    349: case 40:
                    350: {
                    351:                OUT1(lookup("have",1,0));
                    352:        }
                    353: break;
                    354: case 41:
                    355: {
                    356:                OUT1(lookup("are",1,0));
                    357:        }
                    358: break;
                    359: case 42:
                    360: {
                    361:                OUT1(lookup("had",1,0));
                    362:        }
                    363: break;
                    364: case 43:
                    365: {
                    366:                OUT1(lookup("am",1,0));
                    367:        }
                    368: break;
                    369: case 44:
                    370: {
                    371:                OUT1(lookup("would",1,0));
                    372:        }
                    373: break;
                    374: case 45:
                    375: {
                    376: wd:
                    377:        if((j = lookup(yytext,1,0)) != 0){
                    378:                first=0;
                    379:                if(cap){
                    380:                        if(!NOCAPS)
                    381:                                yytext[0] = toupper(yytext[0]);
                    382:                        cap = 0;
                    383:                        if(dot)OUTN(fin);
                    384:                }
                    385:                dot=0;
                    386:                OUT1(j);
                    387:                if(nflg==1){
                    388:                        nflg=0;
                    389:                        OUTN(nt);
                    390:                }
                    391:        }
                    392:        else{
                    393:                first = dot=0;
                    394:                if(yytext[yyleng-1] == 'y' && cap == 0){
                    395:                        switch(yytext[yyleng-2]){
                    396:                        case 'c': look(cy,yyleng-2,NOUN);
                    397:                                        break;
                    398:                        case 'f': look(fy,yyleng-2,VERB);
                    399:                                        break;
                    400:                        case 'l': look(ly,yyleng-2,ADV);
                    401:                                        break;
                    402:                        case 'g': if(yytext[yyleng-3] == 'o'){
                    403:                                        OUT1(NOUN);
                    404:                                        break;
                    405:                                }
                    406:                                look(gy,yyleng-2,ADJ);
                    407:                                break;
                    408:                        case 'r':       switch(yytext[yyleng-3]){
                    409:                                case 'a': look(ary,yyleng-3,ADJ);
                    410:                                                break;
                    411:                                case 'o': look(ory,yyleng-3,ADJ);
                    412:                                                break;
                    413:                                case 'e': look(ery,yyleng-3,NOUN);
                    414:                                                break;
                    415:                                default: look(ry,yyleng-2,NOUN);
                    416:                                }
                    417:                                break;
                    418:                        case 't': if(yytext[yyleng-3] == 'i')look(ity,yyleng-3,NOUN);
                    419:                                else look(ty,yyleng-2,ADJ);
                    420:                                break;
                    421:                        default: OUT();
                    422:                        }
                    423:        }
                    424:                else {
                    425:                        if(cap){
                    426:                                if(!NOCAPS)yytext[0] = toupper(yytext[0]);
                    427:                                cap = 0;
                    428:                                OUT1(NOUN_ADJ);
                    429:                        }
                    430:                        else {
                    431:                                OUT();
                    432:                        }
                    433:                }
                    434:        }
                    435:        }
                    436: break;
                    437: case 46:
                    438: ;
                    439: break;
                    440: case 47:
                    441: ;
                    442: break;
                    443: case 48:
                    444: ;
                    445: break;
                    446: case 49:
                    447: {
                    448:        OUT1(';');
                    449:        first=1;
                    450:        }
                    451: break;
                    452: case 50:
                    453: {
                    454:        if(dot){
                    455:                OUTN(fin);
                    456:                dot=0;
                    457:        }
                    458:        if(qflg==1){
                    459:                qflg=0;
                    460:                OUT1('"');
                    461:        }
                    462:        else {
                    463:                qflg=1;
                    464:                first=1;
                    465:                OUT1('"');
                    466:        }
                    467:        }
                    468: break;
                    469: case 51:
                    470: {
                    471:        qflg=0;
                    472:        first=1;
                    473:        OUT1(END);
                    474:        }
                    475: break;
                    476: case 52:
                    477: {
                    478:        OUT1(',');
                    479:        }
                    480: break;
                    481: case 53:
                    482: {
                    483:        first = 1;
                    484:        OUT1(END);
                    485:        }
                    486: break;
                    487: case 54:
                    488: {
                    489:                yytext[yyleng-1] = '\0';
                    490:                if((j=abbrev(yytext,1,0)) != 0){
                    491:                        if(isupper(yytext[0])){
                    492:                                if(NOCAPS)yytext[0] = tolower(yytext[0]);
                    493:                                if(first == 1)first=0;
                    494:                        }
                    495:                        yytext[yyleng-1] = '.';
                    496:                        OUT1(j);
                    497:                }
                    498:                else {
                    499:                        j = ahead();
                    500:                        if(j == 0)
                    501:                                yyleng--;
                    502:                        for(i=0;i<yyleng;i++)
                    503:                                if(isupper(yytext[i])){
                    504:                                        yytext[i] = tolower(yytext[i]);
                    505:                                        if(i == 0)cap = 1;
                    506:                                        else cap = 0;
                    507:                                }
                    508:                        if(j == 0)goto wd;
                    509:                        OUT1(NOUN_ADJ);
                    510:                }
                    511:        }
                    512: break;
                    513: case 55:
                    514: {
                    515:        first=1;
                    516:        OUT1(END);
                    517:        }
                    518: break;
                    519: case 56:
                    520: {
                    521:        qflg=0;
                    522:        first=1;
                    523:        OUT1(END);
                    524:        }
                    525: break;
                    526: case 57:
                    527: {
                    528:        first=1;
                    529:        OUT1(END);
                    530:        }
                    531: break;
                    532: case 58:
                    533: {
                    534:        qflg=0;
                    535:        first=1;
                    536:        OUT1(END);
                    537:        }
                    538: break;
                    539: case 59:
                    540: {
                    541:        first=1;
                    542:        OUT1(END);
                    543:        }
                    544: break;
                    545: case 60:
                    546: {
                    547:        OUT1(',');
                    548:        first=1;
                    549:        }
                    550: break;
                    551: case 61:
                    552: {
                    553:        OUT1(',');
                    554:        first=1;
                    555:        }
                    556: break;
                    557: case 62:
                    558: {
                    559:        OUT1(',');
                    560:        }
                    561: break;
                    562: case 63:
                    563: {
                    564:        OUT1(',');
                    565:        }
                    566: break;
                    567: case 64:
                    568: {
                    569: /*     fprintf(stderr,"nwords funny char: %c\n",yytext[0])*/ ;
                    570:        }
                    571: break;
                    572: case -1:
                    573: break;
                    574: default:
                    575: fprintf(yyout,"bad switch yylook %d",nstr);
                    576: } return(0); }
                    577: /* end of yylex */
                    578: look(f,n,cc)
                    579: char (*f)();
                    580: int n;
                    581: char cc;
                    582: {
                    583:        int nn;
                    584:        char  save;
                    585:        save=yytext[n];
                    586:        yytext[n] = '\0';
                    587:        nn=(*f)(yytext,1,0);
                    588:        yytext[n] = save;
                    589:        if(nn != 0){
                    590:                OUT1(nn);
                    591:        }
                    592:        else {
                    593:                OUT1(cc);
                    594:        }
                    595: }
                    596: pos(flg){
                    597:        int ii,j;
                    598:        if(flg == 1)yytext[0] = tolower(yytext[0]);
                    599:        for(ii=yyleng-1;yytext[ii] != '\''; ii--);
                    600:        yytext[ii] = '\0';
                    601:        if((j=lookup(yytext,1,0)) != 0){
                    602:                yyleng = ii;
                    603:                OUT1(j);
                    604:                OUTN(qs);
                    605:        }
                    606:        else{
                    607:                if(flg==1 && !NOCAPS)yytext[0] = toupper(yytext[0]);
                    608:                yytext[ii] = '\'';
                    609:                OUT1(POS);
                    610:        }
                    611: }
                    612: char   *filename="-";
                    613: 
                    614: main(argc,argv)
                    615: int    argc;
                    616: char   *argv[];
                    617: {
                    618:        register int rc=0;
                    619:        putchar(':'); putchar('\n');
                    620:        getd();
                    621:        getab();
                    622:        ygetd();
                    623:        if(argc<=1) {
                    624:                yylex();
                    625:                OUTN(fin);
                    626:        }else{
                    627:                while(argc>1) {
                    628:                        if(freopen(argv[1],"r",stdin)==NULL) {
                    629:                                fprintf(stderr,"%s: cannot open\n", argv[1]);
                    630:                                rc++;
                    631:                        }else{
                    632:                                filename=argv[1];
                    633:                                yylex();
                    634:                                OUTN(fin);
                    635:                        }
                    636:                        argc--; argv++;
                    637:                }
                    638:        }
                    639:        return(rc);
                    640: }
                    641: ahead(){
                    642:        register int c;
                    643:        if(isalnum((c=input()))){
                    644:                yytext[yyleng++] = '.';
                    645:                while(!isspace((c=input() )))
                    646:                        yytext[yyleng++] = c;
                    647:                yytext[yyleng] = '\0';
                    648:                unput(c);
                    649:                return(1);
                    650:        }
                    651:        unput(c);
                    652:        unput('.');
                    653:        return(0);
                    654: }
                    655: int yyvstop[] ={
                    656: 0,
                    657: 
                    658: 64,
                    659: 0,
                    660: 
                    661: 48,
                    662: 64,
                    663: 0,
                    664: 
                    665: 46,
                    666: 0,
                    667: 
                    668: 47,
                    669: 64,
                    670: 0,
                    671: 
                    672: 57,
                    673: 64,
                    674: 0,
                    675: 
                    676: 50,
                    677: 64,
                    678: 0,
                    679: 
                    680: 64,
                    681: 0,
                    682: 
                    683: 50,
                    684: 64,
                    685: 0,
                    686: 
                    687: 63,
                    688: 64,
                    689: 0,
                    690: 
                    691: 62,
                    692: 64,
                    693: 0,
                    694: 
                    695: 61,
                    696: 64,
                    697: 0,
                    698: 
                    699: 55,
                    700: 64,
                    701: 0,
                    702: 
                    703: 64,
                    704: 0,
                    705: 
                    706: 15,
                    707: 17,
                    708: 18,
                    709: 64,
                    710: 0,
                    711: 
                    712: 60,
                    713: 64,
                    714: 0,
                    715: 
                    716: 49,
                    717: 64,
                    718: 0,
                    719: 
                    720: 59,
                    721: 64,
                    722: 0,
                    723: 
                    724: 9,
                    725: 64,
                    726: 0,
                    727: 
                    728: 9,
                    729: 64,
                    730: 0,
                    731: 
                    732: 9,
                    733: 64,
                    734: 0,
                    735: 
                    736: 9,
                    737: 64,
                    738: 0,
                    739: 
                    740: 9,
                    741: 64,
                    742: 0,
                    743: 
                    744: 9,
                    745: 64,
                    746: 0,
                    747: 
                    748: 9,
                    749: 64,
                    750: 0,
                    751: 
                    752: 9,
                    753: 64,
                    754: 0,
                    755: 
                    756: 50,
                    757: 64,
                    758: 0,
                    759: 
                    760: 45,
                    761: 64,
                    762: 0,
                    763: 
                    764: 45,
                    765: 64,
                    766: 0,
                    767: 
                    768: 45,
                    769: 64,
                    770: 0,
                    771: 
                    772: 45,
                    773: 64,
                    774: 0,
                    775: 
                    776: 45,
                    777: 64,
                    778: 0,
                    779: 
                    780: 45,
                    781: 64,
                    782: 0,
                    783: 
                    784: 45,
                    785: 64,
                    786: 0,
                    787: 
                    788: 45,
                    789: 64,
                    790: 0,
                    791: 
                    792: 45,
                    793: 64,
                    794: 0,
                    795: 
                    796: 45,
                    797: 64,
                    798: 0,
                    799: 
                    800: 45,
                    801: 64,
                    802: 0,
                    803: 
                    804: 57,
                    805: 64,
                    806: 0,
                    807: 
                    808: 55,
                    809: 64,
                    810: 0,
                    811: 
                    812: 48,
                    813: 0,
                    814: 
                    815: 47,
                    816: 0,
                    817: 
                    818: 56,
                    819: 0,
                    820: 
                    821: 50,
                    822: 0,
                    823: 
                    824: 20,
                    825: 0,
                    826: 
                    827: 42,
                    828: 0,
                    829: 
                    830: 43,
                    831: 0,
                    832: 
                    833: 61,
                    834: 0,
                    835: 
                    836: 51,
                    837: 0,
                    838: 
                    839: 16,
                    840: 0,
                    841: 
                    842: 14,
                    843: 53,
                    844: 0,
                    845: 
                    846: 14,
                    847: 0,
                    848: 
                    849: 19,
                    850: 0,
                    851: 
                    852: 15,
                    853: 17,
                    854: 0,
                    855: 
                    856: 17,
                    857: 0,
                    858: 
                    859: 15,
                    860: 17,
                    861: 18,
                    862: 0,
                    863: 
                    864: 18,
                    865: 0,
                    866: 
                    867: 15,
                    868: 17,
                    869: 18,
                    870: 0,
                    871: 
                    872: 58,
                    873: 0,
                    874: 
                    875: 31,
                    876: 0,
                    877: 
                    878: 7,
                    879: 0,
                    880: 
                    881: 9,
                    882: 0,
                    883: 
                    884: 31,
                    885: 0,
                    886: 
                    887: 9,
                    888: 0,
                    889: 
                    890: 9,
                    891: 0,
                    892: 
                    893: 9,
                    894: 0,
                    895: 
                    896: 31,
                    897: 0,
                    898: 
                    899: 9,
                    900: 0,
                    901: 
                    902: 9,
                    903: 0,
                    904: 
                    905: 31,
                    906: 0,
                    907: 
                    908: 50,
                    909: 0,
                    910: 
                    911: 45,
                    912: 0,
                    913: 
                    914: 45,
                    915: 0,
                    916: 
                    917: 45,
                    918: 0,
                    919: 
                    920: 45,
                    921: 0,
                    922: 
                    923: 45,
                    924: 0,
                    925: 
                    926: 45,
                    927: 0,
                    928: 
                    929: 45,
                    930: 0,
                    931: 
                    932: 45,
                    933: 0,
                    934: 
                    935: 45,
                    936: 0,
                    937: 
                    938: 45,
                    939: 0,
                    940: 
                    941: 56,
                    942: 0,
                    943: 
                    944: 51,
                    945: 0,
                    946: 
                    947: 16,
                    948: 0,
                    949: 
                    950: 20,
                    951: 0,
                    952: 
                    953: 44,
                    954: 0,
                    955: 
                    956: 39,
                    957: 0,
                    958: 
                    959: 41,
                    960: 0,
                    961: 
                    962: 40,
                    963: 0,
                    964: 
                    965: 52,
                    966: 0,
                    967: 
                    968: 16,
                    969: 0,
                    970: 
                    971: 16,
                    972: 0,
                    973: 
                    974: 14,
                    975: 0,
                    976: 
                    977: 15,
                    978: 17,
                    979: 0,
                    980: 
                    981: 15,
                    982: 17,
                    983: 0,
                    984: 
                    985: 6,
                    986: 0,
                    987: 
                    988: 17,
                    989: 0,
                    990: 
                    991: 17,
                    992: 0,
                    993: 
                    994: 15,
                    995: 16,
                    996: 17,
                    997: 0,
                    998: 
                    999: 17,
                   1000: 0,
                   1001: 
                   1002: 4,
                   1003: 5,
                   1004: 0,
                   1005: 
                   1006: 54,
                   1007: 0,
                   1008: 
                   1009: 9,
                   1010: 0,
                   1011: 
                   1012: 8,
                   1013: 0,
                   1014: 
                   1015: 9,
                   1016: 0,
                   1017: 
                   1018: 9,
                   1019: 0,
                   1020: 
                   1021: 2,
                   1022: 9,
                   1023: 0,
                   1024: 
                   1025: 54,
                   1026: 0,
                   1027: 
                   1028: 9,
                   1029: 0,
                   1030: 
                   1031: 38,
                   1032: 0,
                   1033: 
                   1034: 45,
                   1035: 0,
                   1036: 
                   1037: 45,
                   1038: 0,
                   1039: 
                   1040: 45,
                   1041: 0,
                   1042: 
                   1043: 45,
                   1044: 0,
                   1045: 
                   1046: 45,
                   1047: 0,
                   1048: 
                   1049: 54,
                   1050: 0,
                   1051: 
                   1052: 45,
                   1053: 0,
                   1054: 
                   1055: 45,
                   1056: 0,
                   1057: 
                   1058: 1,
                   1059: 0,
                   1060: 
                   1061: 52,
                   1062: 0,
                   1063: 
                   1064: 14,
                   1065: 0,
                   1066: 
                   1067: 16,
                   1068: 0,
                   1069: 
                   1070: 16,
                   1071: 0,
                   1072: 
                   1073: 20,
                   1074: 0,
                   1075: 
                   1076: 16,
                   1077: 0,
                   1078: 
                   1079: 16,
                   1080: 0,
                   1081: 
                   1082: 17,
                   1083: 0,
                   1084: 
                   1085: 11,
                   1086: 0,
                   1087: 
                   1088: 17,
                   1089: 0,
                   1090: 
                   1091: 15,
                   1092: 16,
                   1093: 17,
                   1094: 0,
                   1095: 
                   1096: 15,
                   1097: 16,
                   1098: 17,
                   1099: 0,
                   1100: 
                   1101: 10,
                   1102: 0,
                   1103: 
                   1104: 21,
                   1105: 0,
                   1106: 
                   1107: 5,
                   1108: 0,
                   1109: 
                   1110: 4,
                   1111: 0,
                   1112: 
                   1113: 14,
                   1114: 0,
                   1115: 
                   1116: 22,
                   1117: 0,
                   1118: 
                   1119: 3,
                   1120: 0,
                   1121: 
                   1122: 23,
                   1123: 0,
                   1124: 
                   1125: 35,
                   1126: 0,
                   1127: 
                   1128: 24,
                   1129: 0,
                   1130: 
                   1131: 26,
                   1132: 0,
                   1133: 
                   1134: 27,
                   1135: 54,
                   1136: 0,
                   1137: 
                   1138: 25,
                   1139: 0,
                   1140: 
                   1141: 29,
                   1142: 0,
                   1143: 
                   1144: 14,
                   1145: 0,
                   1146: 
                   1147: 16,
                   1148: 0,
                   1149: 
                   1150: 17,
                   1151: 0,
                   1152: 
                   1153: 15,
                   1154: 16,
                   1155: 17,
                   1156: 0,
                   1157: 
                   1158: 15,
                   1159: 16,
                   1160: 17,
                   1161: 0,
                   1162: 
                   1163: 21,
                   1164: 0,
                   1165: 
                   1166: 36,
                   1167: 0,
                   1168: 
                   1169: 14,
                   1170: 0,
                   1171: 
                   1172: 14,
                   1173: 0,
                   1174: 
                   1175: 14,
                   1176: 0,
                   1177: 
                   1178: 22,
                   1179: 0,
                   1180: 
                   1181: 30,
                   1182: 0,
                   1183: 
                   1184: 14,
                   1185: 0,
                   1186: 
                   1187: 23,
                   1188: 0,
                   1189: 
                   1190: 34,
                   1191: 35,
                   1192: 0,
                   1193: 
                   1194: 24,
                   1195: 0,
                   1196: 
                   1197: 32,
                   1198: 35,
                   1199: 0,
                   1200: 
                   1201: 26,
                   1202: 0,
                   1203: 
                   1204: 27,
                   1205: 0,
                   1206: 
                   1207: 27,
                   1208: 0,
                   1209: 
                   1210: 25,
                   1211: 0,
                   1212: 
                   1213: 29,
                   1214: 0,
                   1215: 
                   1216: 33,
                   1217: 35,
                   1218: 0,
                   1219: 
                   1220: 12,
                   1221: 14,
                   1222: 0,
                   1223: 
                   1224: 14,
                   1225: 0,
                   1226: 
                   1227: 14,
                   1228: 0,
                   1229: 
                   1230: 30,
                   1231: 0,
                   1232: 
                   1233: 28,
                   1234: 0,
                   1235: 
                   1236: 13,
                   1237: 14,
                   1238: 0,
                   1239: 
                   1240: 37,
                   1241: 0,
                   1242: 0};
                   1243: # define YYTYPE int
                   1244: struct yywork { YYTYPE verify, advance; } yycrank[] ={
                   1245: 0,0,   0,0,    1,3,    0,0,    
                   1246: 0,0,   0,0,    0,0,    0,0,    
                   1247: 0,0,   0,0,    1,4,    1,5,    
                   1248: 0,0,   6,43,   0,0,    0,0,    
                   1249: 0,0,   43,43,  0,0,    0,0,    
                   1250: 0,0,   46,43,  0,0,    0,0,    
                   1251: 0,0,   0,0,    0,0,    0,0,    
                   1252: 0,0,   0,0,    0,0,    0,0,    
                   1253: 0,0,   1,6,    1,7,    1,8,    
                   1254: 6,46,  1,9,    1,3,    7,47,   
                   1255: 1,10,  1,11,   1,11,   19,72,  
                   1256: 46,46, 1,12,   1,13,   1,14,   
                   1257: 1,15,  1,16,   13,57,  21,77,  
                   1258: 0,0,   0,0,    22,78,  27,85,  
                   1259: 45,62, 59,121, 0,0,    1,17,   
                   1260: 1,18,  22,77,  64,64,  8,48,   
                   1261: 1,19,  0,0,    1,20,   1,21,   
                   1262: 8,48,  1,22,   49,112, 0,0,    
                   1263: 49,113,        1,23,   23,77,  0,0,    
                   1264: 0,0,   1,22,   1,24,   25,82,  
                   1265: 24,77, 1,25,   61,125, 56,119, 
                   1266: 1,26,  56,120, 1,27,   125,125,        
                   1267: 62,125,        61,62,  61,45,  128,66, 
                   1268: 1,11,  137,189,        1,11,   62,62,  
                   1269: 62,45, 1,28,   1,29,   1,30,   
                   1270: 1,31,  1,32,   1,33,   1,32,   
                   1271: 1,32,  1,34,   1,35,   1,32,   
                   1272: 1,32,  1,32,   1,32,   1,32,   
                   1273: 1,36,  1,37,   1,32,   1,32,   
                   1274: 1,38,  1,32,   1,32,   1,32,   
                   1275: 1,39,  1,32,   1,32,   1,32,   
                   1276: 1,11,  8,48,   1,11,   2,40,   
                   1277: 2,8,   23,79,  2,9,    24,81,  
                   1278: 26,77, 23,80,  2,11,   53,116, 
                   1279: 54,117,        25,83,  64,126, 73,135, 
                   1280: 2,41,  2,15,   9,49,   9,49,   
                   1281: 9,49,  9,49,   9,49,   9,49,   
                   1282: 9,49,  9,49,   9,49,   9,49,   
                   1283: 2,17,  2,18,   12,55,  85,151, 
                   1284: 87,152,        2,19,   12,56,  12,56,  
                   1285: 12,56, 12,56,  12,56,  12,56,  
                   1286: 12,56, 12,56,  12,56,  12,56,  
                   1287: 51,114,        93,157, 101,169,        124,124,        
                   1288: 126,126,       133,133,        138,190,        140,191,        
                   1289: 51,115,        148,197,        151,201,        2,27,   
                   1290: 154,203,       156,152,        156,205,        4,42,   
                   1291: 158,207,       2,11,   101,152,        2,11,   
                   1292: 74,136,        82,147, 26,84,  122,122,        
                   1293: 130,130,       2,31,   161,210,        2,33,   
                   1294: 2,32,  2,32,   95,160, 2,35,   
                   1295: 2,32,  2,32,   2,32,   162,211,        
                   1296: 2,32,  2,36,   4,43,   2,32,   
                   1297: 2,32,  167,214,        2,32,   2,32,   
                   1298: 2,32,  2,39,   2,32,   2,32,   
                   1299: 2,32,  2,11,   169,217,        2,11,   
                   1300: 4,44,  4,45,   4,44,   4,44,   
                   1301: 4,44,  4,44,   4,44,   4,44,   
                   1302: 4,44,  4,44,   4,44,   4,44,   
                   1303: 99,166,        74,137, 82,148, 160,160,        
                   1304: 93,158,        153,153,        181,181,        4,44,   
                   1305: 4,44,  4,44,   4,44,   4,44,   
                   1306: 4,44,  4,44,   4,44,   4,44,   
                   1307: 4,44,  4,44,   4,44,   4,44,   
                   1308: 4,44,  4,44,   4,44,   4,44,   
                   1309: 4,44,  4,44,   4,44,   4,44,   
                   1310: 4,44,  4,44,   4,44,   4,44,   
                   1311: 4,44,  74,137, 82,148, 122,181,        
                   1312: 130,184,       95,161, 4,43,   4,44,   
                   1313: 4,44,  4,44,   4,44,   4,44,   
                   1314: 4,44,  4,44,   4,44,   4,44,   
                   1315: 4,44,  4,44,   4,44,   4,44,   
                   1316: 4,44,  4,44,   4,44,   4,44,   
                   1317: 4,44,  4,44,   4,44,   4,44,   
                   1318: 4,44,  4,44,   4,44,   4,44,   
                   1319: 4,44,  10,48,  143,62, 157,157,        
                   1320: 149,198,       99,167, 10,48,  102,147,        
                   1321: 166,166,       153,202,        160,209,        28,43,  
                   1322: 55,118,        55,118, 55,118, 55,118, 
                   1323: 55,118,        55,118, 55,118, 55,118, 
                   1324: 55,118,        55,118, 65,127, 65,127, 
                   1325: 65,127,        65,127, 65,127, 65,127, 
                   1326: 65,127,        65,127, 65,127, 65,127, 
                   1327: 178,112,       184,184,        178,113,        186,186,        
                   1328: 28,48, 188,225,        196,230,        143,193,        
                   1329: 149,199,       28,48,  69,134, 69,134, 
                   1330: 69,134,        69,134, 69,134, 69,134, 
                   1331: 69,134,        69,134, 69,134, 69,134, 
                   1332: 102,148,       112,178,        112,178,        112,178,        
                   1333: 112,178,       112,178,        112,178,        112,178,        
                   1334: 112,178,       112,178,        112,178,        10,48,  
                   1335: 192,191,       192,226,        199,232,        10,50,  
                   1336: 202,234,       204,235,        157,206,        143,193,        
                   1337: 149,199,       206,236,        14,58,  10,51,  
                   1338: 10,52, 166,213,        194,62, 208,237,        
                   1339: 209,238,       10,53,  211,239,        213,242,        
                   1340: 102,148,       10,54,  14,59,  14,45,  
                   1341: 14,60, 14,60,  14,60,  14,60,  
                   1342: 14,60, 14,60,  14,60,  14,60,  
                   1343: 14,60, 14,60,  28,86,  175,175,        
                   1344: 217,244,       218,245,        185,185,        219,219,        
                   1345: 194,228,       14,44,  14,44,  14,44,  
                   1346: 14,44, 14,44,  14,44,  14,44,  
                   1347: 14,44, 14,44,  14,44,  14,44,  
                   1348: 14,44, 14,44,  14,44,  14,44,  
                   1349: 14,44, 14,44,  14,44,  14,44,  
                   1350: 14,44, 14,44,  14,44,  14,44,  
                   1351: 14,44, 14,44,  14,44,  136,136,        
                   1352: 147,147,       220,220,        224,224,        231,249,        
                   1353: 194,228,       14,44,  14,44,  14,44,  
                   1354: 14,44, 14,44,  14,44,  14,44,  
                   1355: 14,44, 14,44,  14,44,  14,44,  
                   1356: 14,44, 14,44,  14,44,  14,44,  
                   1357: 14,44, 14,44,  14,44,  14,44,  
                   1358: 14,44, 14,44,  14,44,  14,44,  
                   1359: 14,44, 14,44,  14,44,  15,61,  
                   1360: 239,250,       15,62,  15,62,  15,62,  
                   1361: 15,62, 15,62,  15,62,  15,62,  
                   1362: 15,62, 15,62,  15,62,  175,220,        
                   1363: 136,188,       147,196,        185,224,        244,251,        
                   1364: 251,253,       0,0,    15,62,  15,62,  
                   1365: 15,62, 15,62,  15,62,  15,62,  
                   1366: 15,62, 15,62,  15,62,  15,62,  
                   1367: 15,62, 15,62,  15,62,  15,62,  
                   1368: 15,62, 15,62,  15,62,  15,62,  
                   1369: 15,62, 15,62,  15,62,  15,62,  
                   1370: 15,62, 15,62,  15,62,  15,62,  
                   1371: 136,188,       147,196,        241,241,        0,0,    
                   1372: 0,0,   241,241,        15,62,  15,62,  
                   1373: 15,62, 15,62,  15,62,  15,62,  
                   1374: 15,62, 15,62,  15,62,  15,62,  
                   1375: 15,62, 15,62,  15,62,  15,62,  
                   1376: 15,62, 15,62,  15,62,  15,62,  
                   1377: 15,62, 15,62,  15,62,  15,62,  
                   1378: 15,62, 15,62,  15,62,  15,62,  
                   1379: 16,63, 195,62, 16,64,  0,0,    
                   1380: 0,0,   0,0,    0,0,    16,65,  
                   1381: 16,66, 16,67,  16,45,  16,68,  
                   1382: 16,68, 16,68,  16,68,  16,68,  
                   1383: 16,68, 16,68,  16,68,  16,68,  
                   1384: 16,68, 16,69,  198,198,        0,0,    
                   1385: 0,0,   0,0,    0,0,    195,229,        
                   1386: 16,70, 16,70,  16,70,  16,70,  
                   1387: 16,70, 16,70,  16,70,  16,70,  
                   1388: 16,70, 16,70,  16,70,  16,70,  
                   1389: 16,70, 16,70,  16,70,  16,70,  
                   1390: 16,70, 16,70,  16,70,  16,70,  
                   1391: 16,70, 16,70,  16,70,  16,70,  
                   1392: 16,70, 16,70,  0,0,    0,0,    
                   1393: 0,0,   0,0,    198,231,        195,229,        
                   1394: 16,70, 16,70,  16,70,  16,70,  
                   1395: 16,70, 16,70,  16,70,  16,70,  
                   1396: 16,70, 16,70,  16,70,  16,70,  
                   1397: 16,70, 16,70,  16,70,  16,70,  
                   1398: 16,70, 16,70,  16,71,  16,70,  
                   1399: 16,70, 16,70,  16,70,  16,70,  
                   1400: 16,70, 16,70,  20,73,  0,0,    
                   1401: 0,0,   0,0,    198,231,        0,0,    
                   1402: 20,66, 20,74,  20,45,  20,70,  
                   1403: 20,70, 20,70,  20,70,  20,70,  
                   1404: 20,70, 20,70,  20,70,  20,70,  
                   1405: 20,70, 0,0,    0,0,    0,0,    
                   1406: 0,0,   0,0,    0,0,    0,0,    
                   1407: 20,75, 20,75,  20,75,  20,75,  
                   1408: 20,75, 20,75,  20,75,  20,75,  
                   1409: 20,75, 20,75,  20,75,  20,75,  
                   1410: 20,75, 20,75,  20,75,  20,75,  
                   1411: 20,75, 20,75,  20,75,  20,75,  
                   1412: 20,75, 20,75,  20,75,  20,75,  
                   1413: 20,75, 20,75,  0,0,    0,0,    
                   1414: 0,0,   0,0,    0,0,    0,0,    
                   1415: 20,76, 20,76,  20,76,  20,76,  
                   1416: 20,76, 20,76,  20,76,  20,76,  
                   1417: 20,76, 20,76,  20,76,  20,76,  
                   1418: 20,76, 20,76,  20,76,  20,76,  
                   1419: 20,76, 20,76,  20,76,  20,76,  
                   1420: 20,76, 20,76,  20,76,  20,76,  
                   1421: 20,76, 20,76,  29,87,  0,0,    
                   1422: 0,0,   0,0,    0,0,    0,0,    
                   1423: 113,113,       29,88,  113,113,        113,113,        
                   1424: 113,113,       113,113,        113,113,        113,113,        
                   1425: 113,113,       113,113,        113,113,        113,113,        
                   1426: 0,0,   0,0,    0,0,    0,0,    
                   1427: 0,0,   0,0,    0,0,    0,0,    
                   1428: 29,89, 29,89,  29,89,  29,89,  
                   1429: 29,89, 29,89,  29,89,  29,89,  
                   1430: 29,89, 29,89,  29,89,  29,89,  
                   1431: 29,89, 29,89,  29,89,  29,89,  
                   1432: 29,89, 29,89,  29,89,  29,89,  
                   1433: 29,89, 29,89,  29,89,  29,89,  
                   1434: 29,89, 29,89,  0,0,    0,0,    
                   1435: 0,0,   0,0,    0,0,    0,0,    
                   1436: 29,90, 29,90,  29,90,  29,90,  
                   1437: 29,90, 29,90,  29,90,  29,90,  
                   1438: 29,91, 29,90,  29,90,  29,90,  
                   1439: 29,90, 29,92,  29,90,  29,90,  
                   1440: 29,90, 29,90,  29,90,  29,90,  
                   1441: 29,90, 29,90,  29,90,  29,90,  
                   1442: 29,90, 29,90,  30,87,  0,0,    
                   1443: 0,0,   0,0,    118,55, 0,0,    
                   1444: 118,179,       30,93,  118,118,        118,118,        
                   1445: 118,118,       118,118,        118,118,        118,118,        
                   1446: 118,118,       118,118,        118,118,        118,118,        
                   1447: 0,0,   0,0,    0,0,    0,0,    
                   1448: 0,0,   0,0,    0,0,    0,0,    
                   1449: 30,89, 30,89,  30,89,  30,89,  
                   1450: 30,89, 30,89,  30,89,  30,89,  
                   1451: 30,89, 30,89,  30,89,  30,89,  
                   1452: 30,89, 30,89,  30,89,  30,89,  
                   1453: 30,89, 30,89,  30,89,  30,89,  
                   1454: 30,89, 30,89,  30,89,  30,89,  
                   1455: 30,89, 30,89,  0,0,    0,0,    
                   1456: 0,0,   0,0,    0,0,    0,0,    
                   1457: 30,90, 30,90,  30,90,  30,90,  
                   1458: 30,90, 30,90,  30,90,  30,90,  
                   1459: 30,90, 30,90,  30,90,  30,90,  
                   1460: 30,90, 30,92,  30,90,  30,90,  
                   1461: 30,90, 30,90,  30,90,  30,90,  
                   1462: 30,90, 30,90,  30,90,  30,90,  
                   1463: 30,90, 30,90,  31,87,  0,0,    
                   1464: 0,0,   0,0,    0,0,    0,0,    
                   1465: 0,0,   31,44,  123,60, 123,60, 
                   1466: 123,60,        123,60, 123,60, 123,60, 
                   1467: 123,60,        123,60, 123,60, 123,60, 
                   1468: 0,0,   0,0,    0,0,    0,0,    
                   1469: 0,0,   0,0,    0,0,    0,0,    
                   1470: 31,89, 31,89,  31,89,  31,89,  
                   1471: 31,89, 31,89,  31,89,  31,89,  
                   1472: 31,89, 31,89,  31,89,  31,89,  
                   1473: 31,89, 31,89,  31,89,  31,89,  
                   1474: 31,89, 31,89,  31,89,  31,89,  
                   1475: 31,89, 31,89,  31,89,  31,89,  
                   1476: 31,89, 31,89,  0,0,    0,0,    
                   1477: 0,0,   0,0,    0,0,    0,0,    
                   1478: 31,94, 31,90,  31,90,  31,90,  
                   1479: 31,90, 31,90,  31,90,  31,90,  
                   1480: 31,90, 31,90,  31,90,  31,90,  
                   1481: 31,90, 31,92,  31,90,  31,90,  
                   1482: 31,90, 31,90,  31,90,  31,90,  
                   1483: 31,90, 31,90,  31,90,  31,90,  
                   1484: 31,90, 31,90,  32,87,  0,0,    
                   1485: 0,0,   0,0,    0,0,    0,0,    
                   1486: 0,0,   32,44,  134,187,        134,187,        
                   1487: 134,187,       134,187,        134,187,        134,187,        
                   1488: 134,187,       134,187,        134,187,        134,187,        
                   1489: 0,0,   0,0,    0,0,    0,0,    
                   1490: 0,0,   0,0,    0,0,    0,0,    
                   1491: 32,89, 32,89,  32,89,  32,89,  
                   1492: 32,89, 32,89,  32,89,  32,89,  
                   1493: 32,89, 32,89,  32,89,  32,89,  
                   1494: 32,89, 32,89,  32,89,  32,89,  
                   1495: 32,89, 32,89,  32,89,  32,89,  
                   1496: 32,89, 32,89,  32,89,  32,89,  
                   1497: 32,89, 32,89,  0,0,    0,0,    
                   1498: 0,0,   0,0,    0,0,    0,0,    
                   1499: 32,90, 32,90,  32,90,  32,90,  
                   1500: 32,90, 32,90,  32,90,  32,90,  
                   1501: 32,90, 32,90,  32,90,  32,90,  
                   1502: 32,90, 32,92,  32,90,  32,90,  
                   1503: 32,90, 32,90,  32,90,  32,90,  
                   1504: 32,90, 32,90,  32,90,  32,90,  
                   1505: 32,90, 32,90,  33,87,  0,0,    
                   1506: 0,0,   0,0,    0,0,    0,0,    
                   1507: 0,0,   33,95,  179,221,        179,221,        
                   1508: 179,221,       179,221,        179,221,        179,221,        
                   1509: 179,221,       179,221,        179,221,        179,221,        
                   1510: 0,0,   0,0,    0,0,    0,0,    
                   1511: 0,0,   0,0,    0,0,    0,0,    
                   1512: 33,89, 33,89,  33,89,  33,89,  
                   1513: 33,89, 33,89,  33,89,  33,89,  
                   1514: 33,89, 33,89,  33,89,  33,89,  
                   1515: 33,89, 33,89,  33,89,  33,89,  
                   1516: 33,89, 33,89,  33,89,  33,89,  
                   1517: 33,89, 33,89,  33,89,  33,89,  
                   1518: 33,89, 33,89,  0,0,    0,0,    
                   1519: 0,0,   0,0,    0,0,    0,0,    
                   1520: 33,90, 33,90,  33,90,  33,90,  
                   1521: 33,90, 33,90,  33,90,  33,90,  
                   1522: 33,90, 33,90,  33,90,  33,90,  
                   1523: 33,90, 33,92,  33,90,  33,90,  
                   1524: 33,90, 33,90,  33,90,  33,96,  
                   1525: 33,90, 33,90,  33,90,  33,90,  
                   1526: 33,90, 33,90,  34,87,  0,0,    
                   1527: 0,0,   0,0,    0,0,    0,0,    
                   1528: 221,179,       34,44,  221,221,        221,221,        
                   1529: 221,221,       221,221,        221,221,        221,221,        
                   1530: 221,221,       221,221,        221,221,        221,221,        
                   1531: 0,0,   0,0,    0,0,    0,0,    
                   1532: 0,0,   0,0,    0,0,    0,0,    
                   1533: 34,89, 34,89,  34,89,  34,89,  
                   1534: 34,89, 34,89,  34,89,  34,89,  
                   1535: 34,89, 34,89,  34,89,  34,89,  
                   1536: 34,89, 34,89,  34,89,  34,89,  
                   1537: 34,89, 34,89,  34,89,  34,89,  
                   1538: 34,89, 34,89,  34,89,  34,89,  
                   1539: 34,89, 34,89,  0,0,    0,0,    
                   1540: 0,0,   0,0,    0,0,    0,0,    
                   1541: 34,90, 34,90,  34,90,  34,90,  
                   1542: 34,97, 34,90,  34,90,  34,90,  
                   1543: 34,98, 34,90,  34,90,  34,90,  
                   1544: 34,90, 34,92,  34,90,  34,90,  
                   1545: 34,90, 34,90,  34,90,  34,90,  
                   1546: 34,90, 34,90,  34,90,  34,90,  
                   1547: 34,90, 34,90,  35,87,  246,125,        
                   1548: 0,0,   0,0,    0,0,    0,0,    
                   1549: 252,125,       35,99,  246,62, 246,45, 
                   1550: 247,125,       0,0,    248,125,        252,62, 
                   1551: 252,45,        0,0,    0,0,    247,62, 
                   1552: 247,45,        248,62, 248,45, 0,0,    
                   1553: 0,0,   0,0,    0,0,    0,0,    
                   1554: 35,89, 35,89,  35,89,  35,89,  
                   1555: 35,89, 35,89,  35,89,  35,89,  
                   1556: 35,89, 35,89,  35,89,  35,89,  
                   1557: 35,89, 35,89,  35,89,  35,89,  
                   1558: 35,89, 35,89,  35,89,  35,89,  
                   1559: 35,89, 35,89,  35,89,  35,89,  
                   1560: 35,89, 35,89,  0,0,    0,0,    
                   1561: 0,0,   0,0,    0,0,    0,0,    
                   1562: 35,90, 35,90,  35,90,  35,90,  
                   1563: 35,90, 35,90,  35,90,  35,90,  
                   1564: 35,90, 35,90,  35,90,  35,90,  
                   1565: 35,90, 35,100, 35,90,  35,90,  
                   1566: 35,90, 35,90,  35,90,  35,90,  
                   1567: 35,90, 35,90,  35,90,  35,90,  
                   1568: 35,90, 35,90,  36,101, 0,0,    
                   1569: 247,252,       248,252,        0,0,    0,0,    
                   1570: 0,0,   36,44,  0,0,    0,0,    
                   1571: 0,0,   0,0,    0,0,    0,0,    
                   1572: 0,0,   0,0,    0,0,    0,0,    
                   1573: 0,0,   0,0,    0,0,    0,0,    
                   1574: 0,0,   0,0,    0,0,    0,0,    
                   1575: 36,89, 36,89,  36,89,  36,89,  
                   1576: 36,89, 36,89,  36,89,  36,89,  
                   1577: 36,89, 36,89,  36,89,  36,89,  
                   1578: 36,89, 36,89,  36,89,  36,89,  
                   1579: 36,89, 36,89,  36,89,  36,89,  
                   1580: 36,89, 36,89,  36,89,  36,89,  
                   1581: 36,89, 36,89,  0,0,    0,0,    
                   1582: 0,0,   0,0,    0,0,    0,0,    
                   1583: 36,90, 36,90,  36,90,  36,90,  
                   1584: 36,90, 36,90,  36,90,  36,90,  
                   1585: 36,90, 36,90,  36,90,  36,90,  
                   1586: 36,90, 36,92,  36,90,  36,90,  
                   1587: 36,90, 36,90,  36,90,  36,90,  
                   1588: 36,90, 36,90,  36,90,  36,90,  
                   1589: 36,90, 36,90,  37,87,  0,0,    
                   1590: 0,0,   0,0,    0,0,    0,0,    
                   1591: 0,0,   37,102, 0,0,    0,0,    
                   1592: 0,0,   0,0,    0,0,    0,0,    
                   1593: 0,0,   0,0,    0,0,    0,0,    
                   1594: 0,0,   0,0,    0,0,    0,0,    
                   1595: 0,0,   0,0,    0,0,    0,0,    
                   1596: 37,89, 37,89,  37,89,  37,89,  
                   1597: 37,89, 37,89,  37,89,  37,89,  
                   1598: 37,89, 37,89,  37,89,  37,89,  
                   1599: 37,89, 37,89,  37,89,  37,89,  
                   1600: 37,89, 37,89,  37,89,  37,89,  
                   1601: 37,89, 37,89,  37,89,  37,89,  
                   1602: 37,89, 37,89,  0,0,    0,0,    
                   1603: 0,0,   0,0,    0,0,    0,0,    
                   1604: 37,90, 37,90,  37,90,  37,90,  
                   1605: 37,90, 37,90,  37,90,  37,90,  
                   1606: 37,90, 37,90,  37,90,  37,90,  
                   1607: 37,90, 37,92,  37,90,  37,90,  
                   1608: 37,90, 37,90,  37,90,  37,90,  
                   1609: 37,90, 37,90,  37,90,  37,90,  
                   1610: 37,90, 37,90,  38,87,  0,0,    
                   1611: 0,0,   0,0,    0,0,    0,0,    
                   1612: 0,0,   38,44,  0,0,    0,0,    
                   1613: 0,0,   0,0,    0,0,    0,0,    
                   1614: 0,0,   0,0,    0,0,    0,0,    
                   1615: 0,0,   0,0,    0,0,    0,0,    
                   1616: 0,0,   0,0,    0,0,    0,0,    
                   1617: 38,89, 38,89,  38,89,  38,89,  
                   1618: 38,89, 38,89,  38,89,  38,89,  
                   1619: 38,89, 38,89,  38,89,  38,89,  
                   1620: 38,89, 38,89,  38,89,  38,89,  
                   1621: 38,89, 38,89,  38,89,  38,89,  
                   1622: 38,89, 38,89,  38,89,  38,89,  
                   1623: 38,89, 38,89,  0,0,    0,0,    
                   1624: 0,0,   0,0,    0,0,    0,0,    
                   1625: 38,90, 38,90,  38,90,  38,90,  
                   1626: 38,90, 38,90,  38,90,  38,103, 
                   1627: 38,90, 38,90,  38,90,  38,90,  
                   1628: 38,90, 38,92,  38,90,  38,90,  
                   1629: 38,90, 38,90,  38,90,  38,90,  
                   1630: 38,90, 38,90,  38,90,  38,90,  
                   1631: 38,90, 38,90,  39,87,  0,0,    
                   1632: 0,0,   0,0,    0,0,    0,0,    
                   1633: 0,0,   39,44,  0,0,    0,0,    
                   1634: 0,0,   0,0,    0,0,    0,0,    
                   1635: 0,0,   0,0,    0,0,    0,0,    
                   1636: 0,0,   0,0,    0,0,    0,0,    
                   1637: 0,0,   0,0,    0,0,    0,0,    
                   1638: 39,89, 39,89,  39,89,  39,89,  
                   1639: 39,89, 39,89,  39,89,  39,89,  
                   1640: 39,89, 39,89,  39,89,  39,89,  
                   1641: 39,89, 39,89,  39,89,  39,89,  
                   1642: 39,89, 39,89,  39,89,  39,89,  
                   1643: 39,89, 39,89,  39,89,  39,89,  
                   1644: 39,89, 39,89,  0,0,    0,0,    
                   1645: 0,0,   0,0,    0,0,    0,0,    
                   1646: 39,90, 39,90,  39,90,  39,90,  
                   1647: 39,90, 39,90,  39,90,  39,90,  
                   1648: 39,90, 39,90,  39,90,  39,90,  
                   1649: 39,90, 39,92,  39,104, 39,90,  
                   1650: 39,90, 39,90,  39,90,  39,90,  
                   1651: 39,90, 39,90,  39,90,  39,90,  
                   1652: 39,90, 39,90,  40,105, 200,62, 
                   1653: 0,0,   0,0,    60,122, 0,0,    
                   1654: 0,0,   0,0,    40,105, 40,0,   
                   1655: 0,0,   60,123, 0,0,    60,60,  
                   1656: 60,60, 60,60,  60,60,  60,60,  
                   1657: 60,60, 60,60,  60,60,  60,60,  
                   1658: 60,60, 0,0,    212,240,        88,153, 
                   1659: 86,43, 200,233,        0,0,    0,0,    
                   1660: 0,0,   40,105, 40,105, 40,106, 
                   1661: 0,0,   0,0,    40,105, 0,0,    
                   1662: 40,105,        0,0,    40,105, 193,125,        
                   1663: 0,0,   40,105, 40,105, 40,105, 
                   1664: 212,240,       40,105, 193,62, 193,45, 
                   1665: 0,0,   86,48,  0,0,    227,125,        
                   1666: 41,0,  212,241,        86,48,  0,0,    
                   1667: 212,241,       200,233,        227,62, 227,45, 
                   1668: 0,0,   0,0,    40,105, 40,105, 
                   1669: 228,125,       40,105, 0,0,    0,0,    
                   1670: 88,137,        40,105, 0,0,    228,62, 
                   1671: 228,45,        40,105, 40,105, 229,125,        
                   1672: 41,107,        40,105, 60,124, 233,125,        
                   1673: 40,105,        0,0,    229,62, 229,45, 
                   1674: 0,0,   0,0,    233,62, 233,45, 
                   1675: 41,108,        41,109, 41,110, 88,154, 
                   1676: 0,0,   40,105, 40,105, 40,105, 
                   1677: 0,0,   40,105, 240,240,        0,0,    
                   1678: 88,137,        40,105, 0,0,    0,0,    
                   1679: 193,227,       0,0,    40,105, 41,111, 
                   1680: 41,111,        40,105, 41,111, 86,86,  
                   1681: 40,105,        227,246,        41,111, 0,0,    
                   1682: 0,0,   0,0,    41,111, 41,111, 
                   1683: 240,240,       0,0,    41,111, 0,0,    
                   1684: 0,0,   41,111, 0,0,    0,0,    
                   1685: 0,0,   240,241,        228,247,        0,0,    
                   1686: 240,241,       0,0,    0,0,    0,0,    
                   1687: 0,0,   229,248,        0,0,    41,111, 
                   1688: 41,111,        233,246,        41,111, 0,0,    
                   1689: 0,0,   0,0,    41,111, 0,0,    
                   1690: 0,0,   0,0,    0,0,    41,111, 
                   1691: 0,0,   0,0,    41,111, 0,0,    
                   1692: 0,0,   41,111, 44,44,  44,45,  
                   1693: 44,44, 44,44,  44,44,  44,44,  
                   1694: 44,44, 44,44,  44,44,  44,44,  
                   1695: 44,44, 44,44,  0,0,    0,0,    
                   1696: 0,0,   0,0,    0,0,    0,0,    
                   1697: 0,0,   44,44,  44,44,  44,44,  
                   1698: 44,44, 44,44,  44,44,  44,44,  
                   1699: 44,44, 44,44,  44,44,  44,44,  
                   1700: 44,44, 44,44,  44,44,  44,44,  
                   1701: 44,44, 44,44,  44,44,  44,44,  
                   1702: 44,44, 44,44,  44,44,  44,44,  
                   1703: 44,44, 44,44,  44,44,  0,0,    
                   1704: 0,0,   0,0,    0,0,    0,0,    
                   1705: 0,0,   44,44,  44,44,  44,44,  
                   1706: 44,44, 44,44,  44,44,  44,44,  
                   1707: 44,44, 44,44,  44,44,  44,44,  
                   1708: 44,44, 44,44,  44,44,  44,44,  
                   1709: 44,44, 44,44,  44,44,  44,44,  
                   1710: 44,44, 44,44,  44,44,  44,44,  
                   1711: 44,44, 44,44,  44,44,  66,128, 
                   1712: 66,128,        66,128, 66,128, 66,128, 
                   1713: 66,128,        66,128, 66,128, 66,128, 
                   1714: 66,128,        0,0,    0,0,    0,0,    
                   1715: 0,0,   0,0,    0,0,    0,0,    
                   1716: 66,128,        66,128, 66,128, 66,128, 
                   1717: 66,128,        66,128, 66,128, 66,128, 
                   1718: 66,128,        66,128, 66,128, 66,128, 
                   1719: 66,128,        66,128, 66,128, 66,128, 
                   1720: 66,128,        66,128, 66,128, 66,128, 
                   1721: 66,128,        66,128, 66,128, 66,128, 
                   1722: 66,128,        66,128, 0,0,    0,0,    
                   1723: 0,0,   0,0,    0,0,    0,0,    
                   1724: 66,128,        66,128, 66,128, 66,128, 
                   1725: 66,128,        66,128, 66,128, 66,128, 
                   1726: 66,128,        66,128, 66,128, 66,128, 
                   1727: 66,128,        66,128, 66,128, 66,128, 
                   1728: 66,128,        66,128, 66,128, 66,128, 
                   1729: 66,128,        66,128, 66,128, 66,128, 
                   1730: 66,128,        66,128, 67,129, 67,129, 
                   1731: 0,0,   0,0,    0,0,    0,0,    
                   1732: 0,0,   0,0,    0,0,    0,0,    
                   1733: 0,0,   0,0,    0,0,    0,0,    
                   1734: 0,0,   0,0,    0,0,    0,0,    
                   1735: 0,0,   0,0,    0,0,    0,0,    
                   1736: 0,0,   67,129, 0,0,    0,0,    
                   1737: 0,0,   0,0,    0,0,    0,0,    
                   1738: 67,130,        0,0,    0,0,    0,0,    
                   1739: 0,0,   0,0,    0,0,    67,131, 
                   1740: 0,0,   67,132, 67,132, 67,132, 
                   1741: 67,132,        67,132, 67,132, 67,132, 
                   1742: 67,132,        67,132, 67,132, 68,63,  
                   1743: 0,0,   68,64,  0,0,    0,0,    
                   1744: 0,0,   0,0,    68,65,  68,66,  
                   1745: 68,67, 68,45,  68,68,  68,68,  
                   1746: 68,68, 68,68,  68,68,  68,68,  
                   1747: 68,68, 68,68,  68,68,  68,68,  
                   1748: 0,0,   0,0,    0,0,    0,0,    
                   1749: 0,0,   0,0,    0,0,    68,70,  
                   1750: 68,70, 68,70,  68,70,  68,70,  
                   1751: 68,70, 68,70,  68,70,  68,70,  
                   1752: 68,70, 68,70,  68,70,  68,70,  
                   1753: 68,70, 68,70,  68,70,  68,70,  
                   1754: 68,70, 68,70,  68,70,  68,70,  
                   1755: 68,70, 68,70,  68,70,  68,70,  
                   1756: 68,70, 0,0,    0,0,    0,0,    
                   1757: 67,133,        0,0,    0,0,    68,70,  
                   1758: 68,70, 68,70,  68,70,  68,70,  
                   1759: 68,70, 68,70,  68,70,  68,70,  
                   1760: 68,70, 68,70,  68,70,  68,70,  
                   1761: 68,70, 68,70,  68,70,  68,70,  
                   1762: 68,70, 68,71,  68,70,  68,70,  
                   1763: 68,70, 68,70,  68,70,  68,70,  
                   1764: 68,70, 70,66,  0,0,    0,0,    
                   1765: 70,70, 70,70,  70,70,  70,70,  
                   1766: 70,70, 70,70,  70,70,  70,70,  
                   1767: 70,70, 70,70,  0,0,    0,0,    
                   1768: 0,0,   0,0,    0,0,    0,0,    
                   1769: 0,0,   70,70,  70,70,  70,70,  
                   1770: 70,70, 70,70,  70,70,  70,70,  
                   1771: 70,70, 70,70,  70,70,  70,70,  
                   1772: 70,70, 70,70,  70,70,  70,70,  
                   1773: 70,70, 70,70,  70,70,  70,70,  
                   1774: 70,70, 70,70,  70,70,  70,70,  
                   1775: 70,70, 70,70,  70,70,  0,0,    
                   1776: 0,0,   0,0,    0,0,    0,0,    
                   1777: 0,0,   70,70,  70,70,  70,70,  
                   1778: 70,70, 70,70,  70,70,  70,70,  
                   1779: 70,70, 70,70,  70,70,  70,70,  
                   1780: 70,70, 70,70,  70,70,  70,70,  
                   1781: 70,70, 70,70,  70,70,  70,70,  
                   1782: 70,70, 70,70,  70,70,  70,70,  
                   1783: 70,70, 70,70,  70,70,  71,66,  
                   1784: 0,0,   0,0,    71,70,  71,70,  
                   1785: 71,70, 71,70,  71,70,  71,70,  
                   1786: 71,70, 71,70,  71,70,  71,70,  
                   1787: 0,0,   0,0,    0,0,    0,0,    
                   1788: 0,0,   0,0,    0,0,    71,70,  
                   1789: 71,70, 71,70,  71,70,  71,70,  
                   1790: 71,70, 71,70,  71,70,  71,70,  
                   1791: 71,70, 71,70,  71,70,  71,70,  
                   1792: 71,70, 71,70,  71,70,  71,70,  
                   1793: 71,70, 71,70,  71,70,  71,70,  
                   1794: 71,70, 71,70,  71,70,  71,70,  
                   1795: 71,70, 90,87,  0,0,    0,0,    
                   1796: 0,0,   0,0,    0,0,    71,70,  
                   1797: 71,70, 71,70,  71,70,  71,70,  
                   1798: 71,70, 71,70,  71,70,  71,70,  
                   1799: 71,70, 71,70,  71,70,  71,70,  
                   1800: 71,70, 71,70,  71,70,  71,70,  
                   1801: 71,70, 71,71,  71,70,  71,70,  
                   1802: 71,70, 71,70,  71,70,  71,70,  
                   1803: 71,70, 75,138, 0,0,    0,0,    
                   1804: 0,0,   0,0,    0,0,    0,0,    
                   1805: 75,139,        0,0,    0,0,    0,0,    
                   1806: 0,0,   0,0,    0,0,    0,0,    
                   1807: 0,0,   0,0,    0,0,    0,0,    
                   1808: 0,0,   0,0,    0,0,    0,0,    
                   1809: 0,0,   0,0,    0,0,    90,90,  
                   1810: 90,90, 90,90,  90,90,  90,90,  
                   1811: 90,90, 90,90,  90,90,  90,90,  
                   1812: 90,90, 90,90,  90,90,  90,90,  
                   1813: 90,92, 90,90,  90,90,  90,90,  
                   1814: 90,90, 90,90,  90,90,  90,90,  
                   1815: 90,90, 90,90,  90,90,  90,90,  
                   1816: 90,90, 0,0,    0,0,    0,0,    
                   1817: 0,0,   0,0,    0,0,    75,89,  
                   1818: 75,89, 75,89,  75,89,  75,89,  
                   1819: 75,89, 75,89,  75,89,  75,89,  
                   1820: 75,89, 75,89,  75,89,  75,89,  
                   1821: 75,89, 75,89,  75,89,  75,89,  
                   1822: 75,89, 75,89,  75,89,  75,89,  
                   1823: 75,89, 75,89,  75,89,  75,89,  
                   1824: 75,89, 76,140, 0,0,    0,0,    
                   1825: 0,0,   0,0,    0,0,    0,0,    
                   1826: 76,139,        0,0,    0,0,    0,0,    
                   1827: 0,0,   0,0,    0,0,    0,0,    
                   1828: 0,0,   0,0,    0,0,    0,0,    
                   1829: 0,0,   0,0,    0,0,    0,0,    
                   1830: 0,0,   0,0,    0,0,    76,89,  
                   1831: 76,89, 76,89,  76,89,  76,89,  
                   1832: 76,89, 76,89,  76,89,  76,89,  
                   1833: 76,89, 76,89,  76,89,  76,89,  
                   1834: 76,89, 76,89,  76,89,  76,89,  
                   1835: 76,89, 76,89,  76,89,  76,89,  
                   1836: 76,89, 76,89,  76,89,  76,89,  
                   1837: 76,89, 0,0,    0,0,    0,0,    
                   1838: 0,0,   0,0,    0,0,    0,0,    
                   1839: 0,0,   0,0,    0,0,    0,0,    
                   1840: 0,0,   0,0,    0,0,    0,0,    
                   1841: 0,0,   0,0,    0,0,    0,0,    
                   1842: 76,141,        78,142, 78,142, 78,142, 
                   1843: 78,142,        78,142, 78,142, 78,142, 
                   1844: 78,142,        78,142, 78,142, 78,142, 
                   1845: 78,142,        78,142, 78,142, 78,142, 
                   1846: 78,142,        78,142, 78,142, 78,142, 
                   1847: 78,142,        78,142, 78,142, 78,142, 
                   1848: 78,142,        78,142, 78,142, 79,140, 
                   1849: 0,0,   0,0,    0,0,    0,0,    
                   1850: 0,0,   0,0,    79,139, 79,143, 
                   1851: 0,0,   0,0,    0,0,    0,0,    
                   1852: 0,0,   0,0,    0,0,    0,0,    
                   1853: 0,0,   0,0,    0,0,    0,0,    
                   1854: 0,0,   0,0,    0,0,    78,135, 
                   1855: 0,0,   79,89,  79,89,  79,89,  
                   1856: 79,89, 79,89,  79,89,  79,89,  
                   1857: 79,89, 79,89,  79,89,  79,89,  
                   1858: 79,89, 79,89,  79,89,  79,89,  
                   1859: 79,89, 79,89,  79,89,  79,89,  
                   1860: 79,89, 79,89,  79,89,  79,89,  
                   1861: 79,89, 79,89,  79,89,  80,140, 
                   1862: 0,0,   0,0,    0,0,    0,0,    
                   1863: 0,0,   0,0,    80,139, 0,0,    
                   1864: 0,0,   0,0,    0,0,    0,0,    
                   1865: 0,0,   0,0,    0,0,    0,0,    
                   1866: 0,0,   0,0,    79,141, 0,0,    
                   1867: 0,0,   0,0,    79,144, 0,0,    
                   1868: 0,0,   80,89,  80,89,  80,89,  
                   1869: 80,89, 80,89,  80,89,  80,89,  
                   1870: 80,89, 80,89,  80,89,  80,89,  
                   1871: 80,89, 80,89,  80,89,  80,89,  
                   1872: 80,89, 80,89,  80,89,  80,89,  
                   1873: 80,89, 80,89,  80,89,  80,89,  
                   1874: 80,89, 80,89,  80,89,  81,140, 
                   1875: 0,0,   0,0,    0,0,    0,0,    
                   1876: 0,0,   0,0,    81,139, 0,0,    
                   1877: 0,0,   0,0,    0,0,    0,0,    
                   1878: 0,0,   0,0,    0,0,    0,0,    
                   1879: 0,0,   0,0,    80,141, 0,0,    
                   1880: 0,0,   0,0,    0,0,    80,145, 
                   1881: 0,0,   81,89,  81,89,  81,89,  
                   1882: 81,89, 81,89,  81,89,  81,89,  
                   1883: 81,89, 81,89,  81,89,  81,89,  
                   1884: 81,89, 81,89,  81,89,  81,89,  
                   1885: 81,89, 81,89,  81,89,  81,89,  
                   1886: 81,89, 81,89,  81,89,  81,89,  
                   1887: 81,89, 81,89,  81,89,  0,0,    
                   1888: 0,0,   0,0,    0,0,    0,0,    
                   1889: 83,140,        0,0,    0,0,    0,0,    
                   1890: 0,0,   0,0,    0,0,    83,149, 
                   1891: 0,0,   0,0,    0,0,    0,0,    
                   1892: 0,0,   0,0,    81,141, 0,0,    
                   1893: 0,0,   0,0,    0,0,    0,0,    
                   1894: 0,0,   0,0,    0,0,    0,0,    
                   1895: 0,0,   81,146, 83,89,  83,89,  
                   1896: 83,89, 83,89,  83,89,  83,89,  
                   1897: 83,89, 83,89,  83,89,  83,89,  
                   1898: 83,89, 83,89,  83,89,  83,89,  
                   1899: 83,89, 83,89,  83,89,  83,89,  
                   1900: 83,89, 83,89,  83,89,  83,89,  
                   1901: 83,89, 83,89,  83,89,  83,89,  
                   1902: 84,140,        0,0,    0,0,    0,0,    
                   1903: 0,0,   0,0,    0,0,    84,139, 
                   1904: 0,0,   0,0,    0,0,    0,0,    
                   1905: 0,0,   0,0,    0,0,    0,0,    
                   1906: 0,0,   0,0,    0,0,    83,141, 
                   1907: 0,0,   0,0,    0,0,    0,0,    
                   1908: 0,0,   0,0,    84,89,  84,89,  
                   1909: 84,89, 84,89,  84,89,  84,89,  
                   1910: 84,89, 84,89,  84,89,  84,89,  
                   1911: 84,89, 84,89,  84,89,  84,89,  
                   1912: 84,89, 84,89,  84,89,  84,89,  
                   1913: 84,89, 84,89,  84,89,  84,89,  
                   1914: 84,89, 84,89,  84,89,  84,89,  
                   1915: 0,0,   0,0,    0,0,    0,0,    
                   1916: 0,0,   0,0,    0,0,    0,0,    
                   1917: 0,0,   0,0,    84,150, 0,0,    
                   1918: 0,0,   0,0,    0,0,    0,0,    
                   1919: 0,0,   0,0,    0,0,    84,141, 
                   1920: 89,66, 89,139, 89,45,  89,70,  
                   1921: 89,70, 89,70,  89,70,  89,70,  
                   1922: 89,70, 89,70,  89,70,  89,70,  
                   1923: 89,70, 0,0,    0,0,    0,0,    
                   1924: 0,0,   0,0,    0,0,    0,0,    
                   1925: 89,89, 89,89,  89,89,  89,89,  
                   1926: 89,89, 89,89,  89,89,  89,89,  
                   1927: 89,89, 89,89,  89,89,  89,89,  
                   1928: 89,89, 89,89,  89,89,  89,89,  
                   1929: 89,89, 89,89,  89,89,  89,89,  
                   1930: 89,89, 89,89,  89,89,  89,89,  
                   1931: 89,89, 89,89,  91,87,  0,0,    
                   1932: 0,0,   0,0,    0,0,    0,0,    
                   1933: 89,89, 89,89,  89,89,  89,89,  
                   1934: 89,89, 89,89,  89,89,  89,89,  
                   1935: 89,89, 89,89,  89,89,  89,89,  
                   1936: 89,89, 89,89,  89,89,  89,89,  
                   1937: 89,89, 89,89,  89,89,  89,89,  
                   1938: 89,89, 89,89,  89,89,  89,89,  
                   1939: 89,89, 89,89,  92,156, 0,0,    
                   1940: 0,0,   0,0,    0,0,    0,0,    
                   1941: 0,0,   0,0,    0,0,    0,0,    
                   1942: 0,0,   0,0,    0,0,    0,0,    
                   1943: 0,0,   0,0,    0,0,    0,0,    
                   1944: 0,0,   0,0,    0,0,    0,0,    
                   1945: 0,0,   0,0,    0,0,    0,0,    
                   1946: 91,90, 91,90,  91,90,  91,90,  
                   1947: 91,90, 91,90,  91,90,  91,90,  
                   1948: 91,90, 91,90,  91,90,  91,90,  
                   1949: 91,90, 91,155, 91,90,  91,90,  
                   1950: 91,90, 91,90,  91,90,  91,90,  
                   1951: 91,90, 91,90,  91,90,  91,90,  
                   1952: 91,90, 91,90,  94,87,  0,0,    
                   1953: 0,0,   0,0,    0,0,    0,0,    
                   1954: 92,90, 92,90,  92,90,  92,90,  
                   1955: 92,90, 92,90,  92,90,  92,90,  
                   1956: 92,90, 92,90,  92,90,  92,90,  
                   1957: 92,90, 92,92,  92,90,  92,90,  
                   1958: 92,90, 92,90,  92,90,  92,90,  
                   1959: 92,90, 92,90,  92,90,  92,90,  
                   1960: 92,90, 92,90,  96,162, 0,0,    
                   1961: 0,0,   0,0,    0,0,    0,0,    
                   1962: 0,0,   96,87,  0,0,    0,0,    
                   1963: 0,0,   0,0,    0,0,    0,0,    
                   1964: 0,0,   0,0,    0,0,    0,0,    
                   1965: 0,0,   0,0,    0,0,    0,0,    
                   1966: 0,0,   0,0,    0,0,    0,0,    
                   1967: 94,90, 94,90,  94,90,  94,90,  
                   1968: 94,90, 94,90,  94,90,  94,90,  
                   1969: 94,90, 94,90,  94,90,  94,90,  
                   1970: 94,90, 94,159, 94,90,  94,90,  
                   1971: 94,90, 94,90,  94,90,  94,90,  
                   1972: 94,90, 94,90,  94,90,  94,90,  
                   1973: 94,90, 94,90,  97,87,  0,0,    
                   1974: 0,0,   0,0,    0,0,    0,0,    
                   1975: 0,0,   0,0,    97,143, 0,0,    
                   1976: 0,0,   0,0,    0,0,    96,90,  
                   1977: 96,90, 96,163, 96,90,  96,90,  
                   1978: 96,90, 96,90,  96,90,  96,90,  
                   1979: 96,90, 96,90,  96,90,  96,90,  
                   1980: 96,92, 96,90,  96,90,  96,90,  
                   1981: 96,90, 96,90,  96,90,  96,90,  
                   1982: 96,90, 96,90,  96,90,  96,90,  
                   1983: 96,90, 98,87,  0,0,    0,0,    
                   1984: 0,0,   0,0,    0,0,    0,0,    
                   1985: 0,0,   0,0,    0,0,    0,0,    
                   1986: 0,0,   0,0,    0,0,    0,0,    
                   1987: 0,0,   0,0,    0,0,    0,0,    
                   1988: 97,90, 97,90,  97,90,  97,90,  
                   1989: 97,90, 97,90,  97,90,  97,90,  
                   1990: 97,90, 97,90,  97,90,  97,90,  
                   1991: 97,90, 97,92,  97,90,  97,90,  
                   1992: 97,90, 97,164, 97,90,  97,90,  
                   1993: 97,90, 97,90,  97,90,  97,90,  
                   1994: 97,90, 97,90,  100,156,        0,0,    
                   1995: 0,0,   0,0,    0,0,    0,0,    
                   1996: 0,0,   100,168,        0,0,    0,0,    
                   1997: 0,0,   0,0,    0,0,    98,90,  
                   1998: 98,90, 98,90,  98,90,  98,90,  
                   1999: 98,90, 98,90,  98,90,  98,90,  
                   2000: 98,90, 98,90,  98,90,  98,90,  
                   2001: 98,92, 98,90,  98,90,  98,90,  
                   2002: 98,90, 98,165, 98,90,  98,90,  
                   2003: 98,90, 98,90,  98,90,  98,90,  
                   2004: 98,90, 103,87, 0,0,    0,0,    
                   2005: 0,0,   0,0,    0,0,    0,0,    
                   2006: 0,0,   0,0,    0,0,    0,0,    
                   2007: 0,0,   0,0,    0,0,    0,0,    
                   2008: 0,0,   0,0,    0,0,    0,0,    
                   2009: 100,90,        100,90, 100,90, 100,90, 
                   2010: 100,90,        100,90, 100,90, 100,90, 
                   2011: 100,90,        100,90, 100,90, 100,90, 
                   2012: 100,90,        100,92, 100,90, 100,90, 
                   2013: 100,90,        100,90, 100,90, 100,90, 
                   2014: 100,90,        100,90, 100,90, 100,90, 
                   2015: 100,90,        100,90, 104,87, 0,0,    
                   2016: 0,0,   0,0,    0,0,    0,0,    
                   2017: 0,0,   0,0,    0,0,    0,0,    
                   2018: 0,0,   0,0,    0,0,    103,90, 
                   2019: 103,90,        103,90, 103,90, 103,170,        
                   2020: 103,90,        103,90, 103,90, 103,90, 
                   2021: 103,90,        103,90, 103,90, 103,90, 
                   2022: 103,92,        103,90, 103,90, 103,90, 
                   2023: 103,90,        103,90, 103,90, 103,90, 
                   2024: 103,90,        103,90, 103,90, 103,90, 
                   2025: 103,90,        0,0,    0,0,    0,0,    
                   2026: 0,0,   0,0,    0,0,    0,0,    
                   2027: 0,0,   0,0,    0,0,    0,0,    
                   2028: 0,0,   0,0,    0,0,    0,0,    
                   2029: 0,0,   0,0,    0,0,    0,0,    
                   2030: 104,90,        104,90, 104,90, 104,90, 
                   2031: 104,90,        104,90, 104,90, 104,90, 
                   2032: 104,90,        104,90, 104,90, 104,90, 
                   2033: 104,90,        104,171,        104,90, 104,90, 
                   2034: 104,90,        104,90, 104,90, 104,90, 
                   2035: 104,90,        104,90, 104,90, 104,90, 
                   2036: 104,90,        104,90, 105,105,        0,0,    
                   2037: 0,0,   0,0,    0,0,    0,0,    
                   2038: 0,0,   127,64, 105,105,        105,172,        
                   2039: 120,129,       120,129,        127,65, 0,0,    
                   2040: 127,182,       0,0,    127,127,        127,127,        
                   2041: 127,127,       127,127,        127,127,        127,127,        
                   2042: 127,127,       127,127,        127,127,        127,127,        
                   2043: 0,0,   0,0,    0,0,    0,0,    
                   2044: 0,0,   105,105,        105,105,        120,129,        
                   2045: 0,0,   0,0,    105,105,        0,0,    
                   2046: 105,105,       0,0,    105,105,        0,0,    
                   2047: 0,0,   105,105,        105,105,        105,105,        
                   2048: 0,0,   105,105,        0,0,    120,180,        
                   2049: 120,180,       120,180,        120,180,        120,180,        
                   2050: 120,180,       120,180,        120,180,        120,180,        
                   2051: 120,180,       0,0,    0,0,    0,0,    
                   2052: 0,0,   0,0,    105,105,        105,105,        
                   2053: 0,0,   105,105,        0,0,    0,0,    
                   2054: 0,0,   105,105,        0,0,    0,0,    
                   2055: 0,0,   105,105,        105,105,        0,0,    
                   2056: 0,0,   105,105,        0,0,    0,0,    
                   2057: 105,105,       127,126,        0,0,    0,0,    
                   2058: 0,0,   108,173,        108,109,        108,111,        
                   2059: 0,0,   0,0,    0,0,    0,0,    
                   2060: 0,0,   105,105,        105,105,        105,105,        
                   2061: 0,0,   105,105,        109,174,        0,0,    
                   2062: 109,174,       105,105,        0,0,    0,0,    
                   2063: 108,111,       108,111,        105,105,        108,111,        
                   2064: 0,0,   105,105,        0,0,    108,111,        
                   2065: 105,105,       0,0,    0,0,    108,111,        
                   2066: 108,111,       109,174,        109,174,        108,111,        
                   2067: 109,174,       0,0,    108,111,        0,0,    
                   2068: 109,174,       0,0,    0,0,    0,0,    
                   2069: 109,174,       109,174,        0,0,    0,0,    
                   2070: 109,174,       110,175,        0,0,    109,174,        
                   2071: 108,111,       108,111,        0,0,    108,111,        
                   2072: 110,176,       110,109,        110,110,        108,111,        
                   2073: 0,0,   0,0,    0,0,    0,0,    
                   2074: 108,111,       109,174,        109,174,        108,111,        
                   2075: 109,174,       0,0,    108,111,        0,0,    
                   2076: 109,174,       0,0,    0,0,    110,111,        
                   2077: 110,111,       109,174,        110,111,        0,0,    
                   2078: 109,174,       0,0,    110,111,        109,174,        
                   2079: 0,0,   0,0,    110,111,        110,111,        
                   2080: 0,0,   0,0,    110,111,        0,0,    
                   2081: 0,0,   110,111,        0,0,    0,0,    
                   2082: 0,0,   0,0,    111,111,        111,109,        
                   2083: 111,111,       0,0,    0,0,    0,0,    
                   2084: 0,0,   0,0,    0,0,    110,111,        
                   2085: 110,111,       0,0,    110,111,        0,0,    
                   2086: 0,0,   0,0,    110,111,        129,129,        
                   2087: 129,129,       111,111,        111,111,        110,111,        
                   2088: 111,111,       0,0,    110,111,        0,0,    
                   2089: 111,111,       110,177,        0,0,    0,0,    
                   2090: 111,111,       111,111,        131,130,        0,0,    
                   2091: 111,111,       0,0,    0,0,    111,111,        
                   2092: 0,0,   131,131,        129,129,        131,131,        
                   2093: 131,131,       131,131,        131,131,        131,131,        
                   2094: 131,131,       131,131,        131,131,        131,131,        
                   2095: 131,131,       111,111,        111,111,        0,0,    
                   2096: 111,111,       0,0,    0,0,    0,0,    
                   2097: 111,111,       0,0,    0,0,    141,192,        
                   2098: 0,0,   111,111,        0,0,    0,0,    
                   2099: 111,111,       0,0,    0,0,    111,111,        
                   2100: 0,0,   0,0,    0,0,    129,183,        
                   2101: 129,183,       129,183,        129,183,        129,183,        
                   2102: 129,183,       129,183,        129,183,        129,183,        
                   2103: 129,183,       129,183,        129,183,        129,183,        
                   2104: 129,183,       129,183,        129,183,        129,183,        
                   2105: 129,183,       129,183,        129,183,        129,183,        
                   2106: 129,183,       129,183,        129,183,        129,183,        
                   2107: 129,183,       0,0,    132,185,        0,0,    
                   2108: 0,0,   0,0,    0,0,    0,0,    
                   2109: 0,0,   132,67, 131,133,        132,132,        
                   2110: 132,132,       132,132,        132,132,        132,132,        
                   2111: 132,132,       132,132,        132,132,        132,132,        
                   2112: 132,132,       141,76, 141,76, 141,76, 
                   2113: 141,76,        141,76, 141,76, 141,76, 
                   2114: 141,76,        141,76, 141,76, 141,76, 
                   2115: 141,76,        141,76, 141,141,        141,76, 
                   2116: 141,76,        141,76, 141,76, 141,76, 
                   2117: 141,76,        141,76, 141,76, 141,76, 
                   2118: 141,76,        141,76, 141,76, 142,142,        
                   2119: 142,142,       142,142,        142,142,        142,142,        
                   2120: 142,142,       142,142,        142,142,        142,142,        
                   2121: 142,142,       142,142,        142,142,        142,142,        
                   2122: 142,142,       142,142,        142,142,        142,142,        
                   2123: 142,142,       142,142,        142,142,        142,142,        
                   2124: 142,142,       142,142,        142,142,        142,142,        
                   2125: 142,142,       144,140,        0,0,    0,0,    
                   2126: 0,0,   0,0,    132,186,        0,0,    
                   2127: 0,0,   144,194,        0,0,    0,0,    
                   2128: 0,0,   0,0,    0,0,    0,0,    
                   2129: 0,0,   0,0,    0,0,    0,0,    
                   2130: 0,0,   0,0,    0,0,    0,0,    
                   2131: 0,0,   0,0,    0,0,    145,140,        
                   2132: 0,0,   0,0,    0,0,    0,0,    
                   2133: 0,0,   0,0,    0,0,    145,195,        
                   2134: 0,0,   0,0,    0,0,    0,0,    
                   2135: 0,0,   0,0,    0,0,    0,0,    
                   2136: 0,0,   0,0,    0,0,    0,0,    
                   2137: 0,0,   0,0,    0,0,    0,0,    
                   2138: 0,0,   146,140,        0,0,    0,0,    
                   2139: 0,0,   0,0,    0,0,    144,76, 
                   2140: 144,76,        144,76, 144,76, 144,76, 
                   2141: 144,76,        144,76, 144,76, 144,76, 
                   2142: 144,76,        144,76, 144,76, 144,76, 
                   2143: 144,141,       144,76, 144,76, 144,76, 
                   2144: 144,76,        144,76, 144,76, 144,76, 
                   2145: 144,76,        144,76, 144,76, 144,76, 
                   2146: 144,76,        145,76, 145,76, 145,76, 
                   2147: 145,76,        145,76, 145,76, 145,76, 
                   2148: 145,76,        145,76, 145,76, 145,76, 
                   2149: 145,76,        145,76, 145,141,        145,76, 
                   2150: 145,76,        145,76, 145,76, 145,76, 
                   2151: 145,76,        145,76, 145,76, 145,76, 
                   2152: 145,76,        145,76, 145,76, 146,76, 
                   2153: 146,76,        146,76, 146,76, 146,76, 
                   2154: 146,76,        146,76, 146,76, 146,76, 
                   2155: 146,76,        146,76, 146,76, 146,76, 
                   2156: 146,141,       146,76, 146,76, 146,76, 
                   2157: 146,76,        146,76, 146,76, 146,76, 
                   2158: 146,76,        146,76, 146,76, 146,76, 
                   2159: 146,76,        150,140,        0,0,    0,0,    
                   2160: 0,0,   0,0,    0,0,    0,0,    
                   2161: 0,0,   150,200,        0,0,    0,0,    
                   2162: 0,0,   0,0,    0,0,    0,0,    
                   2163: 0,0,   0,0,    0,0,    0,0,    
                   2164: 0,0,   0,0,    0,0,    0,0,    
                   2165: 0,0,   0,0,    0,0,    155,204,        
                   2166: 0,0,   0,0,    0,0,    0,0,    
                   2167: 0,0,   0,0,    0,0,    0,0,    
                   2168: 0,0,   0,0,    0,0,    0,0,    
                   2169: 0,0,   0,0,    0,0,    0,0,    
                   2170: 0,0,   0,0,    0,0,    0,0,    
                   2171: 0,0,   0,0,    0,0,    0,0,    
                   2172: 0,0,   159,208,        0,0,    0,0,    
                   2173: 0,0,   0,0,    0,0,    150,76, 
                   2174: 150,76,        150,76, 150,76, 150,76, 
                   2175: 150,76,        150,76, 150,76, 150,76, 
                   2176: 150,76,        150,76, 150,76, 150,76, 
                   2177: 150,141,       150,76, 150,76, 150,76, 
                   2178: 150,76,        150,76, 150,76, 150,76, 
                   2179: 150,76,        150,76, 150,76, 150,76, 
                   2180: 150,76,        155,90, 155,90, 155,90, 
                   2181: 155,90,        155,90, 155,90, 155,90, 
                   2182: 155,90,        155,90, 155,90, 155,90, 
                   2183: 155,90,        155,90, 155,92, 155,90, 
                   2184: 155,90,        155,90, 155,90, 155,90, 
                   2185: 155,90,        155,90, 155,90, 155,90, 
                   2186: 155,90,        155,90, 155,90, 159,90, 
                   2187: 159,90,        159,90, 159,90, 159,90, 
                   2188: 159,90,        159,90, 159,90, 159,90, 
                   2189: 159,90,        159,90, 159,90, 159,90, 
                   2190: 159,92,        159,90, 159,90, 159,90, 
                   2191: 159,90,        159,90, 159,90, 159,90, 
                   2192: 159,90,        159,90, 159,90, 159,90, 
                   2193: 159,90,        163,87, 0,0,    0,0,    
                   2194: 0,0,   0,0,    0,0,    0,0,    
                   2195: 163,212,       0,0,    0,0,    0,0,    
                   2196: 0,0,   0,0,    0,0,    0,0,    
                   2197: 0,0,   0,0,    0,0,    0,0,    
                   2198: 0,0,   0,0,    0,0,    0,0,    
                   2199: 0,0,   0,0,    0,0,    164,87, 
                   2200: 0,0,   0,0,    0,0,    0,0,    
                   2201: 0,0,   0,0,    0,0,    164,194,        
                   2202: 180,122,       0,0,    0,0,    0,0,    
                   2203: 0,0,   0,0,    0,0,    180,120,        
                   2204: 0,0,   180,180,        180,180,        180,180,        
                   2205: 180,180,       180,180,        180,180,        180,180,        
                   2206: 180,180,       180,180,        180,180,        0,0,    
                   2207: 0,0,   0,0,    0,0,    163,90, 
                   2208: 163,90,        163,90, 163,90, 163,90, 
                   2209: 163,90,        163,90, 163,90, 163,90, 
                   2210: 163,90,        163,90, 163,90, 163,90, 
                   2211: 163,92,        163,90, 163,90, 163,90, 
                   2212: 163,90,        163,90, 163,90, 163,90, 
                   2213: 163,90,        163,90, 163,90, 163,90, 
                   2214: 163,90,        164,90, 164,90, 164,90, 
                   2215: 164,90,        164,90, 164,90, 164,90, 
                   2216: 164,90,        164,90, 164,90, 164,90, 
                   2217: 164,90,        164,90, 164,92, 164,90, 
                   2218: 164,90,        164,90, 164,90, 164,90, 
                   2219: 164,90,        164,90, 164,90, 164,90, 
                   2220: 164,90,        164,90, 164,90, 165,87, 
                   2221: 180,181,       0,0,    0,0,    0,0,    
                   2222: 0,0,   0,0,    0,0,    165,195,        
                   2223: 0,0,   0,0,    0,0,    0,0,    
                   2224: 0,0,   0,0,    0,0,    0,0,    
                   2225: 0,0,   0,0,    0,0,    0,0,    
                   2226: 0,0,   0,0,    0,0,    0,0,    
                   2227: 0,0,   0,0,    0,0,    0,0,    
                   2228: 168,215,       0,0,    0,0,    0,0,    
                   2229: 0,0,   0,0,    0,0,    0,0,    
                   2230: 0,0,   0,0,    0,0,    0,0,    
                   2231: 0,0,   0,0,    0,0,    0,0,    
                   2232: 0,0,   0,0,    0,0,    0,0,    
                   2233: 0,0,   0,0,    168,215,        0,0,    
                   2234: 0,0,   0,0,    0,0,    0,0,    
                   2235: 0,0,   165,90, 165,90, 165,90, 
                   2236: 165,90,        165,90, 165,90, 165,90, 
                   2237: 165,90,        165,90, 165,90, 165,90, 
                   2238: 165,90,        165,90, 165,92, 165,90, 
                   2239: 165,90,        165,90, 165,90, 165,90, 
                   2240: 165,90,        165,90, 165,90, 165,90, 
                   2241: 165,90,        165,90, 165,90, 168,216,        
                   2242: 168,216,       168,216,        168,216,        168,216,        
                   2243: 168,216,       168,216,        168,216,        168,216,        
                   2244: 168,216,       168,216,        168,216,        168,216,        
                   2245: 168,216,       168,216,        168,216,        168,216,        
                   2246: 168,216,       168,216,        168,216,        168,216,        
                   2247: 168,216,       168,216,        168,216,        168,216,        
                   2248: 168,216,       170,87, 0,0,    0,0,    
                   2249: 0,0,   0,0,    0,0,    0,0,    
                   2250: 0,0,   170,200,        182,129,        182,129,        
                   2251: 0,0,   0,0,    0,0,    0,0,    
                   2252: 0,0,   0,0,    0,0,    0,0,    
                   2253: 0,0,   0,0,    0,0,    0,0,    
                   2254: 0,0,   0,0,    0,0,    171,218,        
                   2255: 0,0,   0,0,    0,0,    0,0,    
                   2256: 0,0,   182,129,        0,0,    0,0,    
                   2257: 0,0,   0,0,    0,0,    0,0,    
                   2258: 182,130,       0,0,    0,0,    0,0,    
                   2259: 0,0,   0,0,    0,0,    182,222,        
                   2260: 0,0,   182,223,        182,223,        182,223,        
                   2261: 182,223,       182,223,        182,223,        182,223,        
                   2262: 182,223,       182,223,        182,223,        170,90, 
                   2263: 170,90,        170,90, 170,90, 170,90, 
                   2264: 170,90,        170,90, 170,90, 170,90, 
                   2265: 170,90,        170,90, 170,90, 170,90, 
                   2266: 170,92,        170,90, 170,90, 170,90, 
                   2267: 170,90,        170,90, 170,90, 170,90, 
                   2268: 170,90,        170,90, 170,90, 170,90, 
                   2269: 170,90,        171,90, 171,90, 171,90, 
                   2270: 171,90,        171,90, 171,90, 171,90, 
                   2271: 171,90,        171,90, 171,90, 171,90, 
                   2272: 171,90,        171,90, 171,92, 171,90, 
                   2273: 171,90,        171,90, 171,90, 171,90, 
                   2274: 171,90,        171,90, 171,90, 171,90, 
                   2275: 171,90,        171,90, 171,90, 173,111,        
                   2276: 173,109,       173,111,        0,0,    0,0,    
                   2277: 182,184,       174,219,        0,0,    0,0,    
                   2278: 0,0,   0,0,    0,0,    0,0,    
                   2279: 174,174,       174,109,        174,174,        0,0,    
                   2280: 0,0,   0,0,    173,111,        173,111,        
                   2281: 0,0,   173,111,        0,0,    0,0,    
                   2282: 0,0,   173,111,        0,0,    0,0,    
                   2283: 0,0,   173,111,        173,111,        174,174,        
                   2284: 174,174,       173,111,        174,174,        0,0,    
                   2285: 173,111,       0,0,    174,174,        0,0,    
                   2286: 0,0,   0,0,    174,174,        174,174,        
                   2287: 0,0,   0,0,    174,174,        0,0,    
                   2288: 0,0,   174,174,        173,111,        173,111,        
                   2289: 0,0,   173,111,        176,111,        176,109,        
                   2290: 176,110,       173,111,        0,0,    0,0,    
                   2291: 0,0,   0,0,    173,111,        174,174,        
                   2292: 174,174,       173,111,        174,174,        0,0,    
                   2293: 173,111,       0,0,    174,174,        0,0,    
                   2294: 0,0,   176,111,        176,111,        174,174,        
                   2295: 176,111,       0,0,    174,174,        0,0,    
                   2296: 176,111,       174,174,        0,0,    0,0,    
                   2297: 176,111,       176,111,        0,0,    0,0,    
                   2298: 176,111,       0,0,    0,0,    176,111,        
                   2299: 0,0,   0,0,    0,0,    0,0,    
                   2300: 177,111,       177,109,        177,111,        0,0,    
                   2301: 0,0,   0,0,    0,0,    0,0,    
                   2302: 0,0,   176,111,        176,111,        0,0,    
                   2303: 176,111,       0,0,    0,0,    0,0,    
                   2304: 176,111,       215,215,        0,0,    177,111,        
                   2305: 177,111,       176,111,        177,111,        0,0,    
                   2306: 176,111,       0,0,    177,111,        176,111,        
                   2307: 0,0,   0,0,    177,111,        177,111,        
                   2308: 0,0,   0,0,    177,111,        0,0,    
                   2309: 0,0,   177,111,        0,0,    215,215,        
                   2310: 0,0,   0,0,    0,0,    0,0,    
                   2311: 0,0,   0,0,    0,0,    0,0,    
                   2312: 0,0,   0,0,    0,0,    177,111,        
                   2313: 177,111,       0,0,    177,111,        0,0,    
                   2314: 0,0,   0,0,    177,111,        0,0,    
                   2315: 0,0,   0,0,    0,0,    177,111,        
                   2316: 0,0,   0,0,    177,111,        0,0,    
                   2317: 0,0,   177,177,        0,0,    0,0,    
                   2318: 215,243,       215,243,        215,243,        215,243,        
                   2319: 215,243,       215,243,        215,243,        215,243,        
                   2320: 215,243,       215,243,        215,243,        215,243,        
                   2321: 215,243,       215,243,        215,243,        215,243,        
                   2322: 215,243,       215,243,        215,243,        215,243,        
                   2323: 215,243,       215,243,        215,243,        215,243,        
                   2324: 215,243,       215,243,        222,130,        0,0,    
                   2325: 0,0,   0,0,    0,0,    0,0,    
                   2326: 0,0,   222,222,        0,0,    222,222,        
                   2327: 222,222,       222,222,        222,222,        222,222,        
                   2328: 222,222,       222,222,        222,222,        222,222,        
                   2329: 222,222,       223,185,        0,0,    0,0,    
                   2330: 0,0,   0,0,    0,0,    0,0,    
                   2331: 223,182,       0,0,    223,223,        223,223,        
                   2332: 223,223,       223,223,        223,223,        223,223,        
                   2333: 223,223,       223,223,        223,223,        223,223,        
                   2334: 0,0,   0,0,    0,0,    0,0,    
                   2335: 0,0,   0,0,    0,0,    0,0,    
                   2336: 0,0,   0,0,    0,0,    0,0,    
                   2337: 0,0,   0,0,    0,0,    0,0,    
                   2338: 0,0,   0,0,    0,0,    0,0,    
                   2339: 0,0,   0,0,    0,0,    0,0,    
                   2340: 0,0,   0,0,    0,0,    0,0,    
                   2341: 0,0,   0,0,    0,0,    0,0,    
                   2342: 0,0,   0,0,    0,0,    0,0,    
                   2343: 0,0,   0,0,    222,184,        0,0,    
                   2344: 0,0,   0,0,    0,0,    0,0,    
                   2345: 0,0,   0,0,    0,0,    0,0,    
                   2346: 0,0,   0,0,    0,0,    0,0,    
                   2347: 0,0,   0,0,    0,0,    0,0,    
                   2348: 0,0,   223,224,        0,0,    0,0,    
                   2349: 0,0};
                   2350: struct yysvf yysvec[] ={
                   2351: 0,     0,      0,
                   2352: yycrank+-1,    0,              0,      
                   2353: yycrank+-94,   yysvec+1,       0,      
                   2354: yycrank+0,     0,              yyvstop+1,
                   2355: yycrank+174,   0,              yyvstop+3,
                   2356: yycrank+0,     0,              yyvstop+6,
                   2357: yycrank+4,     yysvec+4,       yyvstop+8,
                   2358: yycrank+5,     0,              yyvstop+11,
                   2359: yycrank+29,    0,              yyvstop+14,
                   2360: yycrank+94,    0,              yyvstop+17,
                   2361: yycrank+263,   0,              yyvstop+19,
                   2362: yycrank+0,     0,              yyvstop+22,
                   2363: yycrank+110,   0,              yyvstop+25,
                   2364: yycrank+5,     0,              yyvstop+28,
                   2365: yycrank+336,   0,              yyvstop+31,
                   2366: yycrank+413,   0,              yyvstop+34,
                   2367: yycrank+499,   0,              yyvstop+36,
                   2368: yycrank+0,     0,              yyvstop+41,
                   2369: yycrank+0,     0,              yyvstop+44,
                   2370: yycrank+9,     0,              yyvstop+47,
                   2371: yycrank+583,   0,              yyvstop+50,
                   2372: yycrank+5,     yysvec+20,      yyvstop+53,
                   2373: yycrank+15,    yysvec+20,      yyvstop+56,
                   2374: yycrank+28,    yysvec+20,      yyvstop+59,
                   2375: yycrank+34,    yysvec+20,      yyvstop+62,
                   2376: yycrank+33,    yysvec+20,      yyvstop+65,
                   2377: yycrank+86,    yysvec+20,      yyvstop+68,
                   2378: yycrank+9,     yysvec+20,      yyvstop+71,
                   2379: yycrank+298,   yysvec+4,       yyvstop+74,
                   2380: yycrank+667,   yysvec+20,      yyvstop+77,
                   2381: yycrank+751,   yysvec+20,      yyvstop+80,
                   2382: yycrank+835,   yysvec+20,      yyvstop+83,
                   2383: yycrank+919,   yysvec+20,      yyvstop+86,
                   2384: yycrank+1003,  yysvec+20,      yyvstop+89,
                   2385: yycrank+1087,  yysvec+20,      yyvstop+92,
                   2386: yycrank+1171,  yysvec+20,      yyvstop+95,
                   2387: yycrank+1255,  yysvec+20,      yyvstop+98,
                   2388: yycrank+1339,  yysvec+20,      yyvstop+101,
                   2389: yycrank+1423,  yysvec+20,      yyvstop+104,
                   2390: yycrank+1507,  yysvec+20,      yyvstop+107,
                   2391: yycrank+-1629, 0,              yyvstop+110,
                   2392: yycrank+-1674, yysvec+40,      yyvstop+113,
                   2393: yycrank+0,     yysvec+4,       yyvstop+116,
                   2394: yycrank+8,     yysvec+4,       0,      
                   2395: yycrank+1744,  0,              0,      
                   2396: yycrank+10,    yysvec+15,      0,      
                   2397: yycrank+12,    yysvec+4,       yyvstop+118,
                   2398: yycrank+0,     0,              yyvstop+120,
                   2399: yycrank+0,     yysvec+8,       yyvstop+122,
                   2400: yycrank+26,    yysvec+9,       yyvstop+124,
                   2401: yycrank+0,     0,              yyvstop+126,
                   2402: yycrank+68,    0,              0,      
                   2403: yycrank+0,     0,              yyvstop+128,
                   2404: yycrank+34,    0,              0,      
                   2405: yycrank+35,    0,              0,      
                   2406: yycrank+260,   yysvec+12,      0,      
                   2407: yycrank+39,    yysvec+12,      0,      
                   2408: yycrank+0,     yysvec+13,      yyvstop+130,
                   2409: yycrank+0,     0,              yyvstop+132,
                   2410: yycrank+11,    yysvec+44,      0,      
                   2411: yycrank+1595,  yysvec+44,      yyvstop+134,
                   2412: yycrank+43,    yysvec+15,      yyvstop+136,
                   2413: yycrank+49,    yysvec+15,      yyvstop+139,
                   2414: yycrank+0,     0,              yyvstop+141,
                   2415: yycrank+23,    0,              yyvstop+143,
                   2416: yycrank+270,   yysvec+12,      0,      
                   2417: yycrank+1819,  0,              0,      
                   2418: yycrank+1933,  yysvec+44,      yyvstop+146,
                   2419: yycrank+1954,  0,              yyvstop+148,
                   2420: yycrank+290,   0,              0,      
                   2421: yycrank+2032,  yysvec+44,      yyvstop+152,
                   2422: yycrank+2110,  yysvec+44,      yyvstop+154,
                   2423: yycrank+0,     0,              yyvstop+158,
                   2424: yycrank+24,    0,              0,      
                   2425: yycrank+156,   yysvec+44,      yyvstop+160,
                   2426: yycrank+2194,  yysvec+20,      yyvstop+162,
                   2427: yycrank+2278,  yysvec+20,      yyvstop+164,
                   2428: yycrank+0,     yysvec+44,      yyvstop+166,
                   2429: yycrank+2324,  0,              0,      
                   2430: yycrank+2376,  yysvec+20,      yyvstop+168,
                   2431: yycrank+2428,  yysvec+20,      yyvstop+170,
                   2432: yycrank+2480,  yysvec+20,      yyvstop+172,
                   2433: yycrank+157,   yysvec+44,      yyvstop+174,
                   2434: yycrank+2537,  yysvec+20,      yyvstop+176,
                   2435: yycrank+2589,  yysvec+20,      yyvstop+178,
                   2436: yycrank+72,    yysvec+44,      yyvstop+180,
                   2437: yycrank+1647,  yysvec+4,       yyvstop+182,
                   2438: yycrank+41,    0,              0,      
                   2439: yycrank+1623,  yysvec+44,      0,      
                   2440: yycrank+2655,  0,              0,      
                   2441: yycrank+2162,  yysvec+89,      yyvstop+184,
                   2442: yycrank+2707,  yysvec+89,      yyvstop+186,
                   2443: yycrank+2739,  yysvec+89,      yyvstop+188,
                   2444: yycrank+137,   yysvec+44,      0,      
                   2445: yycrank+2791,  yysvec+89,      yyvstop+190,
                   2446: yycrank+166,   yysvec+44,      0,      
                   2447: yycrank+2830,  yysvec+89,      yyvstop+192,
                   2448: yycrank+2875,  yysvec+89,      yyvstop+194,
                   2449: yycrank+2914,  yysvec+89,      yyvstop+196,
                   2450: yycrank+200,   yysvec+44,      0,      
                   2451: yycrank+2959,  yysvec+89,      yyvstop+198,
                   2452: yycrank+71,    0,              0,      
                   2453: yycrank+271,   yysvec+44,      0,      
                   2454: yycrank+2998,  yysvec+89,      yyvstop+200,
                   2455: yycrank+3043,  yysvec+89,      yyvstop+202,
                   2456: yycrank+-3165, 0,              0,      
                   2457: yycrank+0,     yysvec+105,     yyvstop+204,
                   2458: yycrank+0,     yysvec+105,     yyvstop+206,
                   2459: yycrank+-3207, yysvec+105,     0,      
                   2460: yycrank+-3220, yysvec+105,     0,      
                   2461: yycrank+-3262, yysvec+105,     yyvstop+208,
                   2462: yycrank+-3304, yysvec+105,     0,      
                   2463: yycrank+301,   0,              0,      
                   2464: yycrank+666,   0,              yyvstop+210,
                   2465: yycrank+0,     0,              yyvstop+212,
                   2466: yycrank+0,     0,              yyvstop+214,
                   2467: yycrank+0,     0,              yyvstop+216,
                   2468: yycrank+0,     0,              yyvstop+218,
                   2469: yycrank+750,   0,              0,      
                   2470: yycrank+0,     yysvec+12,      0,      
                   2471: yycrank+3167,  0,              0,      
                   2472: yycrank+0,     yysvec+44,      yyvstop+220,
                   2473: yycrank+152,   0,              yyvstop+222,
                   2474: yycrank+834,   yysvec+44,      0,      
                   2475: yycrank+56,    yysvec+44,      yyvstop+224,
                   2476: yycrank+48,    0,              yyvstop+226,
                   2477: yycrank+57,    0,              yyvstop+228,
                   2478: yycrank+3134,  0,              yyvstop+231,
                   2479: yycrank+46,    yysvec+66,      yyvstop+234,
                   2480: yycrank+3358,  0,              0,      
                   2481: yycrank+153,   0,              yyvstop+236,
                   2482: yycrank+3343,  yysvec+44,      yyvstop+238,
                   2483: yycrank+3411,  yysvec+44,      yyvstop+240,
                   2484: yycrank+58,    yysvec+44,      yyvstop+244,
                   2485: yycrank+918,   0,              0,      
                   2486: yycrank+0,     0,              yyvstop+246,
                   2487: yycrank+395,   0,              0,      
                   2488: yycrank+47,    yysvec+44,      0,      
                   2489: yycrank+59,    0,              0,      
                   2490: yycrank+0,     yysvec+44,      yyvstop+249,
                   2491: yycrank+60,    0,              0,      
                   2492: yycrank+3372,  yysvec+89,      yyvstop+251,
                   2493: yycrank+3398,  0,              yyvstop+253,
                   2494: yycrank+252,   yysvec+15,      0,      
                   2495: yycrank+3482,  yysvec+89,      yyvstop+255,
                   2496: yycrank+3508,  yysvec+89,      yyvstop+257,
                   2497: yycrank+3534,  yysvec+89,      yyvstop+259,
                   2498: yycrank+396,   0,              0,      
                   2499: yycrank+131,   yysvec+44,      0,      
                   2500: yycrank+268,   yysvec+44,      yyvstop+262,
                   2501: yycrank+3618,  yysvec+89,      yyvstop+264,
                   2502: yycrank+132,   yysvec+44,      0,      
                   2503: yycrank+0,     0,              yyvstop+266,
                   2504: yycrank+205,   yysvec+136,     0,      
                   2505: yycrank+134,   yysvec+44,      0,      
                   2506: yycrank+3644,  yysvec+89,      yyvstop+268,
                   2507: yycrank+66,    0,              0,      
                   2508: yycrank+267,   0,              0,      
                   2509: yycrank+138,   yysvec+44,      0,      
                   2510: yycrank+3670,  yysvec+89,      yyvstop+270,
                   2511: yycrank+203,   0,              0,      
                   2512: yycrank+148,   yysvec+44,      0,      
                   2513: yycrank+106,   0,              0,      
                   2514: yycrank+3754,  yysvec+89,      yyvstop+272,
                   2515: yycrank+3780,  yysvec+89,      yyvstop+274,
                   2516: yycrank+3864,  yysvec+89,      yyvstop+276,
                   2517: yycrank+272,   0,              0,      
                   2518: yycrank+163,   yysvec+44,      0,      
                   2519: yycrank+3922,  yysvec+44,      yyvstop+278,
                   2520: yycrank+110,   0,              0,      
                   2521: yycrank+3974,  yysvec+89,      yyvstop+280,
                   2522: yycrank+4000,  yysvec+89,      yyvstop+282,
                   2523: yycrank+0,     0,              yyvstop+284,
                   2524: yycrank+-4077, yysvec+105,     yyvstop+286,
                   2525: yycrank+-4090, yysvec+105,     yyvstop+288,
                   2526: yycrank+-356,  yysvec+105,     yyvstop+290,
                   2527: yycrank+-4132, yysvec+105,     0,      
                   2528: yycrank+-4174, yysvec+105,     yyvstop+292,
                   2529: yycrank+284,   yysvec+112,     yyvstop+294,
                   2530: yycrank+1002,  yysvec+120,     0,      
                   2531: yycrank+3789,  0,              yyvstop+296,
                   2532: yycrank+123,   0,              yyvstop+298,
                   2533: yycrank+4013,  0,              yyvstop+300,
                   2534: yycrank+0,     0,              yyvstop+302,
                   2535: yycrank+214,   0,              yyvstop+304,
                   2536: yycrank+359,   0,              yyvstop+306,
                   2537: yycrank+216,   yysvec+44,      yyvstop+310,
                   2538: yycrank+0,     0,              yyvstop+314,
                   2539: yycrank+287,   0,              0,      
                   2540: yycrank+0,     yysvec+44,      yyvstop+316,
                   2541: yycrank+0,     0,              yyvstop+318,
                   2542: yycrank+0,     0,              yyvstop+320,
                   2543: yycrank+245,   0,              0,      
                   2544: yycrank+1632,  yysvec+15,      yyvstop+322,
                   2545: yycrank+328,   yysvec+15,      0,      
                   2546: yycrank+491,   yysvec+15,      0,      
                   2547: yycrank+288,   0,              0,      
                   2548: yycrank+0,     yysvec+44,      yyvstop+324,
                   2549: yycrank+526,   0,              0,      
                   2550: yycrank+316,   yysvec+44,      0,      
                   2551: yycrank+1585,  yysvec+15,      0,      
                   2552: yycrank+0,     yysvec+44,      yyvstop+326,
                   2553: yycrank+318,   0,              0,      
                   2554: yycrank+0,     yysvec+44,      yyvstop+328,
                   2555: yycrank+249,   yysvec+156,     0,      
                   2556: yycrank+0,     0,              yyvstop+330,
                   2557: yycrank+323,   0,              0,      
                   2558: yycrank+0,     yysvec+44,      yyvstop+332,
                   2559: yycrank+259,   yysvec+156,     0,      
                   2560: yycrank+330,   0,              0,      
                   2561: yycrank+0,     yysvec+44,      yyvstop+334,
                   2562: yycrank+270,   0,              0,      
                   2563: yycrank+1644,  yysvec+44,      yyvstop+336,
                   2564: yycrank+333,   0,              0,      
                   2565: yycrank+0,     yysvec+44,      yyvstop+339,
                   2566: yycrank+4227,  0,              0,      
                   2567: yycrank+0,     yysvec+44,      yyvstop+341,
                   2568: yycrank+285,   0,              0,      
                   2569: yycrank+281,   yysvec+156,     0,      
                   2570: yycrank+-360,  yysvec+105,     yyvstop+343,
                   2571: yycrank+-314,  yysvec+105,     yyvstop+345,
                   2572: yycrank+1086,  0,              0,      
                   2573: yycrank+4279,  0,              yyvstop+347,
                   2574: yycrank+4298,  0,              yyvstop+349,
                   2575: yycrank+315,   0,              yyvstop+353,
                   2576: yycrank+0,     0,              yyvstop+357,
                   2577: yycrank+0,     0,              yyvstop+359,
                   2578: yycrank+1644,  yysvec+15,      yyvstop+361,
                   2579: yycrank+1657,  yysvec+15,      yyvstop+363,
                   2580: yycrank+1668,  yysvec+15,      yyvstop+365,
                   2581: yycrank+0,     0,              yyvstop+367,
                   2582: yycrank+385,   0,              0,      
                   2583: yycrank+0,     yysvec+44,      yyvstop+369,
                   2584: yycrank+1672,  yysvec+15,      yyvstop+371,
                   2585: yycrank+0,     0,              yyvstop+373,
                   2586: yycrank+0,     0,              yyvstop+375,
                   2587: yycrank+0,     0,              yyvstop+378,
                   2588: yycrank+0,     0,              yyvstop+380,
                   2589: yycrank+0,     0,              yyvstop+383,
                   2590: yycrank+414,   0,              0,      
                   2591: yycrank+1720,  0,              yyvstop+385,
                   2592: yycrank+465,   0,              yyvstop+387,
                   2593: yycrank+0,     0,              yyvstop+389,
                   2594: yycrank+0,     0,              yyvstop+391,
                   2595: yycrank+376,   0,              0,      
                   2596: yycrank+0,     0,              yyvstop+393,
                   2597: yycrank+1172,  yysvec+15,      yyvstop+396,
                   2598: yycrank+1181,  yysvec+15,      yyvstop+399,
                   2599: yycrank+1183,  yysvec+15,      yyvstop+401,
                   2600: yycrank+0,     0,              yyvstop+403,
                   2601: yycrank+0,     0,              yyvstop+405,
                   2602: yycrank+369,   0,              0,      
                   2603: yycrank+1177,  yysvec+15,      yyvstop+407,
                   2604: yycrank+0,     0,              yyvstop+410,
                   2605: 0,     0,      0};
                   2606: struct yywork *yytop = yycrank+4413;
                   2607: struct yysvf *yybgin = yysvec+1;
                   2608: char yymatch[] ={
                   2609: 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
                   2610: 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
                   2611: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
                   2612: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
                   2613: 040 ,'!' ,01  ,01  ,01  ,'%' ,01  ,047 ,
                   2614: 01  ,')' ,01  ,01  ,',' ,'-' ,'.' ,01  ,
                   2615: '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
                   2616: '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
                   2617: 01  ,'A' ,'B' ,'B' ,'D' ,'B' ,'B' ,'B' ,
                   2618: 'H' ,'B' ,'B' ,'B' ,'L' ,'M' ,'B' ,'B' ,
                   2619: 'P' ,'B' ,'B' ,'S' ,'B' ,'B' ,'B' ,'B' ,
                   2620: 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
                   2621: '`' ,'a' ,'b' ,'b' ,'d' ,'b' ,'b' ,'b' ,
                   2622: 'h' ,'b' ,'b' ,'b' ,'b' ,'m' ,'b' ,'b' ,
                   2623: 'p' ,'b' ,'b' ,'s' ,'b' ,'b' ,'b' ,'b' ,
                   2624: 'b' ,'b' ,'b' ,01  ,01  ,01  ,01  ,01  ,
                   2625: 0};
                   2626: char yyextra[] ={
                   2627: 0,0,0,0,0,0,0,0,
                   2628: 0,0,0,0,0,0,0,0,
                   2629: 0,0,0,0,0,0,0,0,
                   2630: 0,0,0,0,0,0,0,0,
                   2631: 0,0,0,0,0,0,0,0,
                   2632: 0,0,0,0,0,0,0,0,
                   2633: 0,0,0,0,0,0,0,0,
                   2634: 0,0,0,0,0,0,0,0,
                   2635: 0,0,0,0,0,0,0,0,
                   2636: 0};
                   2637: /*     ncform  4.1     83/08/11        */
                   2638: 
                   2639: int yylineno =1;
                   2640: # define YYU(x) x
                   2641: # define NLSTATE yyprevious=YYNEWLINE
                   2642: char yytext[YYLMAX];
                   2643: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
                   2644: char yysbuf[YYLMAX];
                   2645: char *yysptr = yysbuf;
                   2646: int *yyfnd;
                   2647: extern struct yysvf *yyestate;
                   2648: int yyprevious = YYNEWLINE;
                   2649: yylook(){
                   2650:        register struct yysvf *yystate, **lsp;
                   2651:        register struct yywork *yyt;
                   2652:        struct yysvf *yyz;
                   2653:        int yych;
                   2654:        struct yywork *yyr;
                   2655: # ifdef LEXDEBUG
                   2656:        int debug;
                   2657: # endif
                   2658:        char *yylastch;
                   2659:        /* start off machines */
                   2660: # ifdef LEXDEBUG
                   2661:        debug = 0;
                   2662: # endif
                   2663:        if (!yymorfg)
                   2664:                yylastch = yytext;
                   2665:        else {
                   2666:                yymorfg=0;
                   2667:                yylastch = yytext+yyleng;
                   2668:                }
                   2669:        for(;;){
                   2670:                lsp = yylstate;
                   2671:                yyestate = yystate = yybgin;
                   2672:                if (yyprevious==YYNEWLINE) yystate++;
                   2673:                for (;;){
                   2674: # ifdef LEXDEBUG
                   2675:                        if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
                   2676: # endif
                   2677:                        yyt = yystate->yystoff;
                   2678:                        if(yyt == yycrank){             /* may not be any transitions */
                   2679:                                yyz = yystate->yyother;
                   2680:                                if(yyz == 0)break;
                   2681:                                if(yyz->yystoff == yycrank)break;
                   2682:                                }
                   2683:                        *yylastch++ = yych = input();
                   2684:                tryagain:
                   2685: # ifdef LEXDEBUG
                   2686:                        if(debug){
                   2687:                                fprintf(yyout,"char ");
                   2688:                                allprint(yych);
                   2689:                                putchar('\n');
                   2690:                                }
                   2691: # endif
                   2692:                        yyr = yyt;
                   2693:                        if ( (int)yyt > (int)yycrank){
                   2694:                                yyt = yyr + yych;
                   2695:                                if (yyt <= yytop && yyt->verify+yysvec == yystate){
                   2696:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
                   2697:                                                {unput(*--yylastch);break;}
                   2698:                                        *lsp++ = yystate = yyt->advance+yysvec;
                   2699:                                        goto contin;
                   2700:                                        }
                   2701:                                }
                   2702: # ifdef YYOPTIM
                   2703:                        else if((int)yyt < (int)yycrank) {              /* r < yycrank */
                   2704:                                yyt = yyr = yycrank+(yycrank-yyt);
                   2705: # ifdef LEXDEBUG
                   2706:                                if(debug)fprintf(yyout,"compressed state\n");
                   2707: # endif
                   2708:                                yyt = yyt + yych;
                   2709:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
                   2710:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
                   2711:                                                {unput(*--yylastch);break;}
                   2712:                                        *lsp++ = yystate = yyt->advance+yysvec;
                   2713:                                        goto contin;
                   2714:                                        }
                   2715:                                yyt = yyr + YYU(yymatch[yych]);
                   2716: # ifdef LEXDEBUG
                   2717:                                if(debug){
                   2718:                                        fprintf(yyout,"try fall back character ");
                   2719:                                        allprint(YYU(yymatch[yych]));
                   2720:                                        putchar('\n');
                   2721:                                        }
                   2722: # endif
                   2723:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
                   2724:                                        if(yyt->advance+yysvec == YYLERR)       /* error transition */
                   2725:                                                {unput(*--yylastch);break;}
                   2726:                                        *lsp++ = yystate = yyt->advance+yysvec;
                   2727:                                        goto contin;
                   2728:                                        }
                   2729:                                }
                   2730:                        if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
                   2731: # ifdef LEXDEBUG
                   2732:                                if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
                   2733: # endif
                   2734:                                goto tryagain;
                   2735:                                }
                   2736: # endif
                   2737:                        else
                   2738:                                {unput(*--yylastch);break;}
                   2739:                contin:
                   2740: # ifdef LEXDEBUG
                   2741:                        if(debug){
                   2742:                                fprintf(yyout,"state %d char ",yystate-yysvec-1);
                   2743:                                allprint(yych);
                   2744:                                putchar('\n');
                   2745:                                }
                   2746: # endif
                   2747:                        ;
                   2748:                        }
                   2749: # ifdef LEXDEBUG
                   2750:                if(debug){
                   2751:                        fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
                   2752:                        allprint(yych);
                   2753:                        putchar('\n');
                   2754:                        }
                   2755: # endif
                   2756:                while (lsp-- > yylstate){
                   2757:                        *yylastch-- = 0;
                   2758:                        if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
                   2759:                                yyolsp = lsp;
                   2760:                                if(yyextra[*yyfnd]){            /* must backup */
                   2761:                                        while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
                   2762:                                                lsp--;
                   2763:                                                unput(*yylastch--);
                   2764:                                                }
                   2765:                                        }
                   2766:                                yyprevious = YYU(*yylastch);
                   2767:                                yylsp = lsp;
                   2768:                                yyleng = yylastch-yytext+1;
                   2769:                                yytext[yyleng] = 0;
                   2770: # ifdef LEXDEBUG
                   2771:                                if(debug){
                   2772:                                        fprintf(yyout,"\nmatch ");
                   2773:                                        sprint(yytext);
                   2774:                                        fprintf(yyout," action %d\n",*yyfnd);
                   2775:                                        }
                   2776: # endif
                   2777:                                return(*yyfnd++);
                   2778:                                }
                   2779:                        unput(*yylastch);
                   2780:                        }
                   2781:                if (yytext[0] == 0  /* && feof(yyin) */)
                   2782:                        {
                   2783:                        yysptr=yysbuf;
                   2784:                        return(0);
                   2785:                        }
                   2786:                yyprevious = yytext[0] = input();
                   2787:                if (yyprevious>0)
                   2788:                        output(yyprevious);
                   2789:                yylastch=yytext;
                   2790: # ifdef LEXDEBUG
                   2791:                if(debug)putchar('\n');
                   2792: # endif
                   2793:                }
                   2794:        }
                   2795: yyback(p, m)
                   2796:        int *p;
                   2797: {
                   2798: if (p==0) return(0);
                   2799: while (*p)
                   2800:        {
                   2801:        if (*p++ == m)
                   2802:                return(1);
                   2803:        }
                   2804: return(0);
                   2805: }
                   2806:        /* the following are only used in the lex library */
                   2807: yyinput(){
                   2808:        return(input());
                   2809:        }
                   2810: yyoutput(c)
                   2811:   int c; {
                   2812:        output(c);
                   2813:        }
                   2814: yyunput(c)
                   2815:    int c; {
                   2816:        unput(c);
                   2817:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.