comparison zotnet/tws/dtimep.c-lexed @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children 441a2190cfae
comparison
equal deleted inserted replaced
-1:000000000000 0:bce86c4163a3
1 # include <stdio.h>
2 static int start_cond = 0;
3 #define BEGIN start_cond =
4 struct yysvf {
5 struct yywork *yystoff;
6 struct yysvf *yyother;
7 int *yystops;};
8 # define Z 2
9 #ifndef lint
10 static char ident[] = "@(#)$Id$";
11 #endif
12 #include "tws.h"
13 #include "../h/strings.h"
14 #include <ctype.h>
15 #include <sys/types.h>
16 #if !defined(SYS5) && !defined(ZONEINFO)
17 #include <sys/timeb.h>
18 #endif /* !defined(SYS5) && !defined(ZONEINFO) */
19
20 #ifdef SYS5
21 extern int daylight;
22 extern long timezone;
23 extern char *tzname[];
24 #endif /* SYS5 */
25
26 /*
27 * Patchable flag that says how to interpret NN/NN/NN dates. When
28 * true, we do it European style: DD/MM/YY. When false, we do it
29 * American style: MM/DD/YY. Of course, these are all non-RFC822
30 * compliant.
31 */
32 int europeandate = 0;
33
34 /*
35 * Table to convert month names to numeric month. We use the
36 * fact that the low order 5 bits of the sum of the 2nd & 3rd
37 * characters of the name is a hash with no collisions for the 12
38 * valid month names. (The mask to 5 bits maps any combination of
39 * upper and lower case into the same hash value).
40 */
41 static int month_map[] = {
42 0,
43 6, /* 1 - Jul */
44 3, /* 2 - Apr */
45 5, /* 3 - Jun */
46 0,
47 10, /* 5 - Nov */
48 0,
49 1, /* 7 - Feb */
50 11, /* 8 - Dec */
51 0,
52 0,
53 0,
54 0,
55 0,
56 0,
57 0, /*15 - Jan */
58 0,
59 0,
60 0,
61 2, /*19 - Mar */
62 0,
63 8, /*21 - Sep */
64 0,
65 9, /*23 - Oct */
66 0,
67 0,
68 4, /*26 - May */
69 0,
70 7 /*28 - Aug */
71 };
72 /*
73 * Same trick for day-of-week using the hash function
74 * (c1 & 7) + (c2 & 4)
75 */
76 static int day_map[] = {
77 0,
78 0,
79 0,
80 6, /* 3 - Sat */
81 4, /* 4 - Thu */
82 0,
83 5, /* 6 - Fri */
84 0, /* 7 - Sun */
85 2, /* 8 - Tue */
86 1 /* 9 - Mon */,
87 0,
88 3 /*11 - Wed */
89 };
90 #define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
91 tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
92 cp += 2; }
93 #define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
94 cp += 2;\
95 SKIPD;}
96 #define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i)
97 #define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0'))
98 #define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \
99 (cp[2] - '0'))*10 + (cp[3] - '0'))
100 #define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
101 #define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
102 #define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
103 #define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
104 #define LC(c) (isupper (c) ? tolower (c) : (c))
105
106 #ifdef DSTXXX
107 #ifdef _AIX
108 #include <sys/time.h>
109 #include <time.h>
110 #else
111 #ifndef BSD42
112 #include <time.h>
113 #else /* BSD42 */
114 #include <sys/time.h>
115 #endif /* BSD42 */
116 #endif
117
118 static zonehack (tw)
119 register struct tws *tw;
120 {
121 register struct tm *tm;
122
123 if (twclock (tw) == -1L)
124 return;
125
126 tm = localtime (&tw -> tw_clock);
127 if (tm -> tm_isdst) {
128 tw -> tw_flags |= TW_DST;
129 tw -> tw_zone -= 60;
130 }
131 }
132 #endif /* DSTXXX */
133 struct tws *dparsetime (str)
134 char *str;
135 {
136 register int i;
137 static struct tws tw;
138 register char *cp;
139 register int gotdate = 0;
140 #ifdef ZONEINFO
141 struct tm *tm;
142 time_t clock;
143 #else
144 #ifndef SYS5
145 struct timeb tb;
146 #endif /* not SYS5 */
147 #endif /* ZONEINFO */
148 time_t tclock;
149
150 start_cond = 0;
151
152 /* Zero out the struct. */
153 bzero( (char *) &tw, sizeof tw);
154 tw.tw_year = -1;
155
156 /* Set default time zone. */
157 #ifdef ZONEINFO
158 time (&clock);
159 tm = localtime(&clock);
160 tw.tw_zone = tm->tm_gmtoff / 60;
161 if (tm -> tm_isdst) /* if DST is in effect */
162 tw.tw_zone -= 60; /* reset to normal offset */
163 #else
164 #ifdef SYS5
165 tzset( );
166 tw.tw_zone = -(timezone / 60);
167 #else
168 ftime( &tb );
169 tw.tw_zone = -tb.timezone;
170 #endif /* SYS5 */
171 #endif /* ZONEINFO */
172
173 while (isspace(*str))
174 str++;
175 while ( 1 )
176 switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
177
178 case -1:
179 if (!gotdate || tw.tw_year == -1)
180 return (struct tws *)0;
181 /* fall through */
182 case 0:
183 if ( tw.tw_year == -1 ) {
184 /* Set default year. */
185 time (&tclock);
186 tw.tw_year = localtime(&tclock)->tm_year + 1900;
187 }
188 else if (tw.tw_year < 69) {
189 tw.tw_year += 2000;
190 }
191 else if (tw.tw_year < 100) {
192 tw.tw_year += 1900;
193 }
194 return &tw;
195
196 case 1:
197 SETDAY;
198 break;
199 case 2:
200 {
201 cp++;
202 SETDAY;
203 }
204 break;
205 case 3:
206 {
207 if (europeandate) {
208 /* European: DD/MM/YY */
209 tw.tw_mday = CVT1OR2;
210 cp++;
211 tw.tw_mon = CVT1OR2 - 1;
212 } else {
213 /* American: MM/DD/YY */
214 tw.tw_mon = CVT1OR2 - 1;
215 cp++;
216 tw.tw_mday = CVT1OR2;
217 }
218 cp++;
219 for (i = 0; isdigit(*cp); )
220 i = i*10 + (*cp++ - '0');
221 tw.tw_year = i;
222 gotdate++; /* XXX */
223 }
224 break;
225 case 4:
226 {
227 if (europeandate) {
228 tw.tw_mday = CVT1OR2; cp++;
229 tw.tw_mon = CVT1OR2 - 1;
230 } else {
231 tw.tw_mon = CVT1OR2 - 1; cp++;
232 tw.tw_mday = CVT1OR2;
233 }
234 gotdate++;
235 }
236 break;
237 case 5:
238 {
239 tw.tw_mday = CVT1OR2;
240 while ( !isalpha(*cp++) )
241 ;
242 SETMONTH;
243 for (i = 0; isdigit(*cp); )
244 i = i*10 + (*cp++ - '0');
245 tw.tw_year = i;
246 }
247 break;
248 case 6:
249 {
250 tw.tw_mday = CVT1OR2;
251 while ( ! isalpha( *cp++ ) )
252 ;
253 SETMONTH;
254 }
255 break;
256 case 7:
257 {
258 cp++;
259 SETMONTH;
260 tw.tw_mday = CVT1OR2;
261 SKIPD;
262 for (i = 0; isdigit(*cp); )
263 i = i*10 + (*cp++ - '0');
264 tw.tw_year = i;
265 }
266 break;
267 case 8:
268 {
269 cp++;
270 SETMONTH;
271 tw.tw_mday = CVT1OR2;
272 }
273 break;
274 case 9:
275 { /* hack: ctime w/o TZ */
276 tw.tw_hour = CVT1OR2; cp++;
277 tw.tw_min = CVT1OR2; cp++;
278 tw.tw_sec = CVT1OR2;
279 SKIPD;
280 tw.tw_year = CVT4; cp+=4;
281 }
282 break;
283 case 10:
284 {
285 tw.tw_hour = CVT1OR2; cp++;
286 tw.tw_min = CVT1OR2; cp++;
287 tw.tw_sec = CVT1OR2;
288 BEGIN Z;
289 }
290 break;
291 case 11:
292 {
293 tw.tw_hour = CVT1OR2; cp++;
294 tw.tw_min = CVT1OR2;
295 BEGIN Z;
296 }
297 break;
298 case 12:
299 {
300 tw.tw_hour = CVT1OR2; cp++;
301 if (tw.tw_hour == 12)
302 tw.tw_hour = 0;
303 tw.tw_min = CVT1OR2;
304 BEGIN Z;
305 }
306 break;
307 case 13:
308 {
309 tw.tw_hour = CVT1OR2; cp++;
310 if (tw.tw_hour == 12)
311 tw.tw_hour = 0;
312 tw.tw_min = CVT1OR2; cp++;
313 tw.tw_sec = CVT1OR2;
314 BEGIN Z;
315 }
316 break;
317 case 14:
318 {
319 tw.tw_hour = CVT1OR2; cp++;
320 if (tw.tw_hour != 12)
321 tw.tw_hour += 12;
322 tw.tw_min = CVT1OR2;
323 BEGIN Z;
324 }
325 break;
326 case 15:
327 {
328 tw.tw_hour = CVT1OR2; cp++;
329 if (tw.tw_hour != 12)
330 tw.tw_hour += 12;
331 tw.tw_min = CVT1OR2; cp++;
332 tw.tw_sec = CVT1OR2;
333 BEGIN Z;
334 }
335 break;
336 case 16:
337 {
338 tw.tw_hour = CVT2; cp+=2;
339 tw.tw_min = CVT2; cp+=2;
340 tw.tw_sec = CVT2; cp+=2;
341 BEGIN Z;
342 }
343 break;
344 case 17:
345 {
346 /*
347 * Luckly, 4 digit times in the range
348 * 1960-1999 aren't legal as hour
349 * and minutes.
350 */
351 tw.tw_year = CVT4; cp+=4;
352 }
353 break;
354 case 18:
355 {
356 if (tw.tw_hour || tw.tw_min
357 || tw.tw_sec) {
358 tw.tw_year = CVT4; cp+=4;
359 tw.tw_zone = 0;
360 } else {
361 tw.tw_hour = CVT2; cp+=2;
362 tw.tw_min = CVT2; cp+=2;
363 BEGIN Z;
364 }
365 }
366 break;
367 case 19:
368 ZONE(0 * 60);
369 break;
370 case 20:
371 ZONE(0 * 60);
372 break;
373 case 21:
374 #ifdef JAPAN
375 ZONE(9 * 60);
376 #else /* JAPAN */
377 ZONE(2 * 60);
378 #endif /* JAPAN */
379 break;
380 case 22:
381 ZONED(2 * 60);
382 break;
383 case 23:
384 ZONE(-5 * 60);
385 break;
386 case 24:
387 ZONED(-5 * 60);
388 break;
389 case 25:
390 ZONE(-6 * 60);
391 break;
392 case 26:
393 ZONED(-6 * 60);
394 break;
395 case 27:
396 ZONE(-7 * 60);
397 break;
398 case 28:
399 ZONED(-7 * 60);
400 break;
401 case 29:
402 ZONE(-8 * 60);
403 break;
404 case 30:
405 ZONED(-8 * 60);
406 break;
407 case 31:
408 ZONE(-(3 * 60 + 30));
409 break;
410 case 32:
411 ZONE(-4 * 60);
412 break;
413 case 33:
414 ZONED(-4 * 60);
415 break;
416 case 34:
417 ZONE(-9 * 60);
418 break;
419 case 35:
420 ZONED(-9 * 60);
421 break;
422 case 36:
423 ZONE(-10 * 60);
424 break;
425 case 37:
426 ZONED(-10 * 60);
427 break;
428 case 38:
429 ZONED(-1 * 60);
430 break;
431 case 39:
432 {
433 tw.tw_zone = 60 * (('a'-1) - LC(*cp));
434 EXPZONE;
435 }
436 break;
437 case 40:
438 {
439 tw.tw_zone = 60 * ('a' - LC(*cp));
440 EXPZONE;
441 }
442 break;
443 case 41:
444 {
445 tw.tw_zone = 60 * (LC(*cp) - 'm');
446 EXPZONE;
447 }
448 break;
449 case 42:
450 {
451 cp++;
452 tw.tw_zone = ((cp[0] * 10 + cp[1])
453 -('0' * 10 + '0'))*60
454 +((cp[2] * 10 + cp[3])
455 -('0' * 10 + '0'));
456 EXPZONE;
457 #ifdef DSTXXX
458 zonehack (&tw);
459 #endif /* DSTXXX */
460 cp += 4;
461 }
462 break;
463 case 43:
464 {
465 cp++;
466 tw.tw_zone = (('0' * 10 + '0')
467 -(cp[0] * 10 + cp[1]))*60
468 +(('0' * 10 + '0')
469 -(cp[2] * 10 + cp[3]));
470 EXPZONE;
471 #ifdef DSTXXX
472 zonehack (&tw);
473 #endif /* DSTXXX */
474 cp += 4;
475 }
476 break;
477 case 44:
478 {
479 SKIPD;
480 tw.tw_year = CVT4; cp+=4;
481 }
482 break;
483 case 45:
484 case 46:
485 ;
486 break;
487 default: return(0);
488 } }
489 /* end of yylex */
490 int yyvstop[] = {
491 0,
492
493 46,
494 0,
495
496 45,
497 0,
498
499 46,
500 0,
501
502 39,
503 0,
504
505 39,
506 0,
507
508 39,
509 0,
510
511 39,
512 0,
513
514 39,
515 0,
516
517 39,
518 0,
519
520 39,
521 0,
522
523 39,
524 0,
525
526 39,
527 0,
528
529 40,
530 0,
531
532 40,
533 0,
534
535 41,
536 0,
537
538 41,
539 0,
540
541 41,
542 0,
543
544 41,
545 0,
546
547 41,
548 0,
549
550 41,
551 0,
552
553 41,
554 0,
555
556 41,
557 0,
558
559 41,
560 0,
561
562 19,
563 0,
564
565 4,
566 0,
567
568 4,
569 0,
570
571 11,
572 0,
573
574 1,
575 0,
576
577 1,
578 0,
579
580 1,
581 0,
582
583 1,
584 0,
585
586 1,
587 0,
588
589 1,
590 0,
591
592 1,
593 0,
594
595 33,
596 0,
597
598 32,
599 0,
600
601 38,
602 0,
603
604 26,
605 0,
606
607 25,
608 0,
609
610 24,
611 0,
612
613 23,
614 0,
615
616 20,
617 0,
618
619 37,
620 0,
621
622 36,
623 0,
624
625 22,
626 0,
627
628 21,
629 0,
630
631 28,
632 0,
633
634 27,
635 0,
636
637 31,
638 0,
639
640 30,
641 0,
642
643 29,
644 0,
645
646 35,
647 0,
648
649 34,
650 0,
651
652 4,
653 0,
654
655 4,
656 0,
657
658 4,
659 0,
660
661 18,
662 0,
663
664 11,
665 0,
666
667 11,
668 0,
669
670 6,
671 0,
672
673 6,
674 0,
675
676 6,
677 0,
678
679 6,
680 0,
681
682 6,
683 0,
684
685 6,
686 0,
687
688 6,
689 0,
690
691 6,
692 0,
693
694 6,
695 0,
696
697 6,
698 0,
699
700 6,
701 0,
702
703 6,
704 0,
705
706 17,
707 18,
708 0,
709
710 1,
711 0,
712
713 2,
714 0,
715
716 18,
717 0,
718
719 10,
720 0,
721
722 12,
723 0,
724
725 14,
726 0,
727
728 6,
729 0,
730
731 17,
732 18,
733 0,
734
735 8,
736 0,
737
738 44,
739 0,
740
741 42,
742 0,
743
744 43,
745 0,
746
747 2,
748 0,
749
750 3,
751 0,
752
753 16,
754 0,
755
756 10,
757 0,
758
759 10,
760 0,
761
762 5,
763 0,
764
765 8,
766 0,
767
768 8,
769 0,
770
771 1,
772 0,
773
774 3,
775 0,
776
777 3,
778 0,
779
780 13,
781 0,
782
783 15,
784 0,
785
786 6,
787 0,
788
789 5,
790 0,
791
792 5,
793 0,
794
795 5,
796 0,
797
798 5,
799 0,
800
801 7,
802 0,
803
804 9,
805 0,
806
807 7,
808 0,
809
810 7,
811 0,
812 0};
813 # define YYTYPE int
814 struct yywork { YYTYPE verify, advance; } yycrank[] = {
815 0,0, 0,0, 0,0, 0,0,
816 0,0, 0,0, 0,0, 0,0,
817 0,0, 0,0, 1,5, 1,6,
818 0,0, 0,0, 0,0, 0,0,
819 0,0, 0,0, 0,0, 0,0,
820 0,0, 0,0, 0,0, 0,0,
821 0,0, 0,0, 0,0, 0,0,
822 0,0, 0,0, 0,0, 0,0,
823 0,0, 1,5, 0,0, 0,0,
824 3,21, 3,6, 5,5, 0,0,
825 0,0, 1,7, 0,0, 0,0,
826 0,0, 0,0, 0,0, 0,0,
827 0,0, 1,8, 1,9, 1,8,
828 1,10, 1,10, 1,10, 1,10,
829 1,10, 1,10, 1,10, 3,21,
830 0,0, 5,5, 0,0, 0,0,
831 0,0, 0,0, 0,0, 3,7,
832 0,0, 0,0, 3,22, 0,0,
833 3,23, 0,0, 0,0, 3,8,
834 3,9, 3,8, 3,10, 3,10,
835 3,10, 3,10, 3,10, 3,10,
836 3,10, 9,63, 10,64, 10,64,
837 10,64, 10,64, 10,64, 10,64,
838 10,64, 10,64, 10,64, 10,64,
839 22,83, 22,83, 1,11, 0,0,
840 0,0, 1,12, 0,0, 1,13,
841 0,0, 0,0, 0,0, 1,14,
842 0,0, 0,0, 1,15, 1,16,
843 1,17, 0,0, 0,0, 0,0,
844 1,18, 1,19, 0,0, 0,0,
845 1,20, 0,0, 0,0, 0,0,
846 3,24, 3,25, 3,26, 3,27,
847 3,28, 3,29, 3,30, 3,31,
848 3,32, 3,33, 3,34, 3,34,
849 3,35, 3,36, 3,37, 3,38,
850 3,39, 3,39, 3,40, 3,41,
851 3,42, 3,39, 3,43, 3,39,
852 3,44, 7,45, 8,50, 12,67,
853 11,65, 16,74, 13,68, 14,70,
854 7,46, 11,66, 15,72, 17,75,
855 18,76, 19,79, 7,47, 7,48,
856 18,77, 20,81, 7,49, 13,69,
857 25,99, 30,104, 42,114, 45,117,
858 15,73, 8,50, 19,80, 14,71,
859 46,118, 21,21, 36,74, 49,123,
860 18,78, 47,119, 36,111, 56,139,
861 23,84, 23,84, 8,51, 26,100,
862 8,52, 8,53, 8,53, 8,53,
863 8,53, 8,53, 8,53, 8,53,
864 8,53, 8,53, 8,53, 8,54,
865 21,21, 47,120, 26,101, 55,137,
866 57,140, 59,143, 60,144, 61,145,
867 55,138, 62,146, 65,148, 66,149,
868 28,102, 31,105, 24,97, 38,112,
869 21,82, 21,82, 21,82, 21,82,
870 21,82, 21,82, 21,82, 21,82,
871 21,82, 21,82, 24,65, 28,103,
872 31,106, 24,98, 38,113, 24,66,
873 67,150, 23,85, 23,86, 23,87,
874 48,121, 23,88, 8,55, 23,89,
875 23,90, 8,56, 23,91, 8,57,
876 44,115, 23,92, 23,93, 8,58,
877 23,94, 48,122, 8,59, 8,60,
878 8,61, 23,95, 50,50, 33,70,
879 8,62, 23,96, 33,107, 44,116,
880 35,72, 68,151, 69,152, 35,109,
881 70,153, 71,154, 73,158, 71,155,
882 74,159, 58,141, 51,124, 75,160,
883 76,161, 33,108, 35,73, 33,71,
884 77,162, 50,50, 35,110, 52,134,
885 52,134, 52,134, 52,134, 52,134,
886 52,134, 52,134, 52,134, 52,134,
887 52,134, 58,142, 50,124, 78,163,
888 79,164, 51,124, 53,135, 53,135,
889 53,135, 53,135, 53,135, 53,135,
890 53,135, 53,135, 53,135, 53,135,
891 80,165, 81,166, 93,111, 97,170,
892 98,171, 51,133, 51,133, 51,133,
893 51,133, 51,133, 51,133, 51,133,
894 51,133, 51,133, 51,133, 54,136,
895 54,136, 54,136, 54,136, 54,136,
896 54,136, 54,136, 54,136, 54,136,
897 54,136, 63,135, 63,135, 63,135,
898 63,135, 63,135, 63,135, 63,147,
899 63,147, 63,147, 63,147, 64,50,
900 99,172, 72,156, 50,125, 100,173,
901 85,97, 50,126, 101,174, 50,127,
902 72,157, 91,107, 92,109, 50,128,
903 102,175, 103,176, 50,129, 50,130,
904 50,131, 104,177, 51,55, 85,98,
905 50,132, 51,56, 64,50, 51,57,
906 91,108, 92,110, 105,178, 51,58,
907 106,179, 107,180, 51,59, 51,60,
908 51,61, 108,181, 109,182, 64,51,
909 51,62, 64,52, 82,167, 82,167,
910 82,167, 82,167, 82,167, 82,167,
911 82,167, 82,167, 82,167, 82,167,
912 64,54, 83,168, 83,168, 83,168,
913 83,168, 83,168, 83,168, 83,168,
914 83,168, 83,168, 83,168, 84,169,
915 84,169, 84,169, 84,169, 84,169,
916 84,169, 84,169, 84,169, 84,169,
917 84,169, 110,183, 111,184, 112,185,
918 113,186, 115,187, 116,188, 117,189,
919 118,190, 119,191, 120,192, 121,193,
920 122,194, 123,195, 126,198, 124,124,
921 125,196, 127,199, 129,202, 64,55,
922 128,200, 125,197, 64,56, 130,203,
923 64,57, 131,204, 132,205, 133,206,
924 64,58, 137,216, 138,217, 64,59,
925 64,60, 64,61, 139,218, 140,219,
926 141,220, 64,62, 124,124, 134,206,
927 128,201, 142,221, 143,223, 142,222,
928 144,225, 145,226, 146,227, 153,236,
929 155,157, 143,224, 133,206, 135,210,
930 135,210, 135,210, 135,210, 135,210,
931 135,210, 135,210, 135,210, 135,210,
932 135,210, 158,238, 134,206, 133,207,
933 159,239, 160,240, 133,208, 133,208,
934 133,208, 133,208, 133,208, 133,208,
935 133,208, 133,208, 133,208, 133,208,
936 148,229, 134,207, 134,209, 134,209,
937 134,209, 134,209, 134,209, 134,209,
938 134,209, 134,209, 134,209, 134,209,
939 136,211, 147,228, 147,228, 147,228,
940 147,228, 147,228, 147,228, 147,228,
941 147,228, 147,228, 147,228, 148,229,
942 149,229, 150,229, 151,229, 124,125,
943 162,242, 163,243, 124,126, 189,250,
944 124,127, 190,252, 192,254, 136,211,
945 124,128, 196,258, 191,250, 124,129,
946 124,130, 124,131, 152,234, 154,229,
947 156,229, 124,132, 157,229, 149,229,
948 150,229, 151,229, 161,234, 136,212,
949 136,212, 136,212, 136,212, 136,212,
950 136,212, 136,212, 136,212, 136,212,
951 136,212, 136,213, 197,259, 164,234,
952 165,234, 152,234, 154,229, 156,229,
953 166,234, 157,229, 198,260, 199,261,
954 193,250, 161,234, 194,250, 200,262,
955 202,265, 152,234, 195,250, 201,263,
956 203,267, 201,264, 204,268, 202,266,
957 205,269, 161,234, 164,234, 165,234,
958 208,207, 209,207, 189,251, 166,234,
959 212,213, 206,206, 214,274, 215,275,
960 148,230, 220,283, 164,234, 165,234,
961 136,214, 222,224, 225,285, 166,234,
962 167,247, 167,247, 167,247, 167,247,
963 167,247, 167,247, 167,247, 167,247,
964 167,247, 167,247, 191,253, 136,215,
965 206,206, 150,232, 168,248, 168,248,
966 168,248, 168,248, 168,248, 168,248,
967 168,248, 168,248, 168,248, 168,248,
968 211,211, 226,286, 227,287, 151,233,
969 149,231, 152,235, 156,237, 169,249,
970 169,249, 169,249, 169,249, 169,249,
971 169,249, 169,249, 169,249, 169,249,
972 169,249, 193,255, 230,157, 195,257,
973 194,256, 231,290, 232,291, 211,211,
974 233,292, 235,293, 236,294, 154,157,
975 237,157, 238,295, 161,241, 210,271,
976 239,296, 240,297, 241,298, 242,299,
977 243,300, 244,301, 245,302, 246,303,
978 164,244, 166,246, 165,245, 207,270,
979 207,270, 207,270, 207,270, 207,270,
980 207,270, 207,270, 207,270, 207,270,
981 207,270, 250,307, 210,271, 213,273,
982 213,273, 213,273, 213,273, 213,273,
983 213,273, 213,273, 213,273, 213,273,
984 213,273, 251,308, 216,276, 228,288,
985 234,234, 252,309, 210,272, 210,272,
986 210,272, 210,272, 210,272, 210,272,
987 210,272, 210,272, 210,272, 210,272,
988 253,310, 217,276, 254,311, 255,312,
989 256,313, 257,314, 276,330, 279,224,
990 211,214, 216,276, 228,288, 234,234,
991 258,266, 260,266, 280,332, 218,276,
992 265,266, 281,333, 282,334, 283,335,
993 284,224, 285,336, 216,277, 211,215,
994 217,276, 216,278, 216,278, 216,278,
995 216,278, 216,278, 216,278, 216,278,
996 216,278, 216,278, 216,278, 258,266,
997 260,266, 217,277, 218,276, 265,266,
998 217,278, 217,278, 217,278, 217,278,
999 217,278, 217,278, 217,278, 217,278,
1000 217,278, 217,278, 219,276, 218,277,
1001 259,266, 286,337, 218,278, 218,278,
1002 218,278, 218,278, 218,278, 218,278,
1003 218,278, 218,278, 218,278, 218,278,
1004 264,266, 263,266, 287,338, 290,157,
1005 291,342, 292,343, 293,344, 294,345,
1006 296,346, 219,276, 297,347, 259,266,
1007 221,276, 266,266, 271,271, 298,348,
1008 274,274, 262,266, 216,279, 299,349,
1009 301,350, 302,351, 219,277, 264,266,
1010 263,266, 219,278, 219,278, 219,278,
1011 219,278, 219,278, 219,278, 219,278,
1012 219,278, 219,278, 219,278, 221,276,
1013 266,266, 271,271, 223,276, 274,274,
1014 262,266, 260,317, 265,320, 218,281,
1015 258,315, 217,280, 275,275, 303,352,
1016 221,277, 288,288, 308,353, 221,278,
1017 221,278, 221,278, 221,278, 221,278,
1018 221,278, 221,278, 221,278, 221,278,
1019 221,278, 223,276, 310,354, 312,355,
1020 224,276, 261,266, 268,266, 267,266,
1021 313,356, 275,275, 269,266, 314,357,
1022 288,288, 315,266, 223,277, 229,229,
1023 316,358, 223,278, 223,278, 223,278,
1024 223,278, 223,278, 223,278, 223,278,
1025 223,278, 223,278, 223,278, 224,276,
1026 261,266, 268,266, 267,266, 219,282,
1027 264,266, 269,266, 317,359, 318,360,
1028 259,316, 319,361, 229,229, 320,266,
1029 224,277, 321,362, 322,363, 224,278,
1030 224,278, 224,278, 224,278, 224,278,
1031 224,278, 224,278, 224,278, 224,278,
1032 224,278, 263,266, 229,289, 229,289,
1033 229,289, 229,289, 229,289, 229,289,
1034 229,289, 229,289, 229,289, 229,289,
1035 221,224, 262,319, 323,364, 328,368,
1036 223,284, 247,304, 247,304, 247,304,
1037 247,304, 247,304, 247,304, 247,304,
1038 247,304, 247,304, 247,304, 248,305,
1039 248,305, 248,305, 248,305, 248,305,
1040 248,305, 248,305, 248,305, 248,305,
1041 248,305, 249,306, 249,306, 249,306,
1042 249,306, 249,306, 249,306, 249,306,
1043 249,306, 249,306, 249,306, 267,321,
1044 329,369, 330,370, 332,224, 333,373,
1045 334,374, 335,375, 336,376, 337,377,
1046 268,322, 338,378, 261,318, 341,340,
1047 342,380, 343,381, 344,234, 273,326,
1048 325,325, 269,323, 270,324, 270,324,
1049 270,324, 270,324, 270,324, 270,324,
1050 270,324, 270,324, 270,324, 270,324,
1051 272,325, 272,325, 272,325, 272,325,
1052 272,325, 272,325, 272,325, 272,325,
1053 272,325, 272,325, 273,326, 325,325,
1054 345,157, 277,277, 278,331, 278,331,
1055 278,331, 278,331, 278,331, 278,331,
1056 278,331, 278,331, 278,331, 278,331,
1057 324,365, 339,339, 273,327, 273,327,
1058 273,327, 273,327, 273,327, 273,327,
1059 273,327, 273,327, 273,327, 273,327,
1060 277,277, 346,382, 347,157, 289,339,
1061 348,383, 349,384, 350,385, 352,386,
1062 353,250, 354,387, 355,388, 324,365,
1063 339,339, 357,389, 358,266, 359,390,
1064 277,278, 277,278, 277,278, 277,278,
1065 277,278, 277,278, 277,278, 277,278,
1066 277,278, 277,278, 289,339, 324,366,
1067 324,366, 324,366, 324,366, 324,366,
1068 324,366, 324,366, 324,366, 324,366,
1069 324,366, 326,326, 289,340, 273,328,
1070 327,326, 331,371, 289,341, 289,341,
1071 289,341, 289,341, 289,341, 289,341,
1072 289,341, 289,341, 289,341, 289,341,
1073 340,379, 360,391, 273,329, 361,392,
1074 362,393, 363,394, 364,395, 367,396,
1075 326,326, 373,399, 374,400, 327,326,
1076 331,371, 375,224, 376,401, 365,365,
1077 377,224, 378,402, 384,404, 386,405,
1078 389,406, 390,407, 391,408, 340,379,
1079 392,266, 326,367, 368,368, 369,369,
1080 331,372, 331,372, 331,372, 331,372,
1081 331,372, 331,372, 331,372, 331,372,
1082 331,372, 331,372, 365,365, 366,365,
1083 366,365, 366,365, 366,365, 366,365,
1084 366,365, 366,365, 366,365, 366,365,
1085 366,365, 368,368, 369,369, 370,370,
1086 371,371, 372,398, 372,398, 372,398,
1087 372,398, 372,398, 372,398, 372,398,
1088 372,398, 372,398, 372,398, 379,379,
1089 393,409, 394,266, 395,410, 396,411,
1090 396,411, 396,411, 396,411, 397,412,
1091 398,371, 326,328, 370,370, 371,371,
1092 327,328, 402,413, 410,415, 0,0,
1093 0,0, 0,0, 0,0, 0,0,
1094 0,0, 0,0, 379,379, 0,0,
1095 326,329, 0,0, 0,0, 327,329,
1096 0,0, 0,0, 0,0, 398,371,
1097 0,0, 0,0, 0,0, 0,0,
1098 0,0, 0,0, 379,403, 379,403,
1099 379,403, 379,403, 379,403, 379,403,
1100 379,403, 379,403, 379,403, 379,403,
1101 403,414, 403,414, 403,414, 403,414,
1102 403,414, 403,414, 403,414, 403,414,
1103 403,414, 403,414, 411,416, 411,416,
1104 411,416, 411,416, 411,416, 411,416,
1105 411,416, 411,416, 411,416, 411,416,
1106 412,412, 414,417, 417,417, 0,0,
1107 0,0, 0,0, 0,0, 0,0,
1108 371,397, 418,417, 418,417, 418,417,
1109 418,417, 418,417, 418,417, 418,417,
1110 418,417, 418,417, 418,417, 0,0,
1111 0,0, 0,0, 0,0, 412,412,
1112 414,417, 417,417, 0,0, 0,0,
1113 0,0, 0,0, 0,0, 0,0,
1114 0,0, 0,0, 0,0, 0,0,
1115 0,0, 0,0, 0,0, 0,0,
1116 414,418, 414,418, 414,418, 414,418,
1117 414,418, 414,418, 414,418, 414,418,
1118 414,418, 414,418, 0,0, 0,0,
1119 0,0};
1120 struct yysvf yysvec[] = {
1121 0, 0, 0,
1122 yycrank+1, 0, 0,
1123 yycrank+0, yysvec+1, 0,
1124 yycrank+27, 0, 0,
1125 yycrank+0, yysvec+3, 0,
1126 yycrank+29, 0, yyvstop+1,
1127 yycrank+0, 0, yyvstop+3,
1128 yycrank+47, 0, 0,
1129 yycrank+141, 0, 0,
1130 yycrank+28, yysvec+8, 0,
1131 yycrank+38, yysvec+8, 0,
1132 yycrank+40, 0, 0,
1133 yycrank+50, 0, 0,
1134 yycrank+53, 0, 0,
1135 yycrank+58, 0, 0,
1136 yycrank+61, 0, 0,
1137 yycrank+42, 0, 0,
1138 yycrank+60, 0, 0,
1139 yycrank+63, 0, 0,
1140 yycrank+57, 0, 0,
1141 yycrank+64, 0, 0,
1142 yycrank+168, 0, yyvstop+5,
1143 yycrank+48, 0, 0,
1144 yycrank+136, 0, 0,
1145 yycrank+114, 0, yyvstop+7,
1146 yycrank+53, 0, yyvstop+9,
1147 yycrank+87, 0, yyvstop+11,
1148 yycrank+0, yysvec+12, yyvstop+13,
1149 yycrank+112, 0, yyvstop+15,
1150 yycrank+0, yysvec+13, yyvstop+17,
1151 yycrank+60, 0, yyvstop+19,
1152 yycrank+113, 0, yyvstop+21,
1153 yycrank+0, 0, yyvstop+23,
1154 yycrank+158, 0, 0,
1155 yycrank+0, 0, yyvstop+25,
1156 yycrank+163, 0, yyvstop+27,
1157 yycrank+67, 0, yyvstop+29,
1158 yycrank+0, yysvec+17, yyvstop+31,
1159 yycrank+115, 0, yyvstop+33,
1160 yycrank+0, 0, yyvstop+35,
1161 yycrank+0, yysvec+18, yyvstop+37,
1162 yycrank+0, yysvec+19, yyvstop+39,
1163 yycrank+54, 0, yyvstop+41,
1164 yycrank+0, yysvec+20, yyvstop+43,
1165 yycrank+144, 0, yyvstop+45,
1166 yycrank+57, 0, 0,
1167 yycrank+65, 0, 0,
1168 yycrank+84, 0, 0,
1169 yycrank+132, 0, 0,
1170 yycrank+78, 0, 0,
1171 yycrank+245, 0, 0,
1172 yycrank+261, 0, 0,
1173 yycrank+231, 0, 0,
1174 yycrank+246, yysvec+8, 0,
1175 yycrank+271, 0, 0,
1176 yycrank+91, 0, 0,
1177 yycrank+82, 0, 0,
1178 yycrank+103, 0, 0,
1179 yycrank+172, 0, 0,
1180 yycrank+108, 0, 0,
1181 yycrank+95, 0, 0,
1182 yycrank+108, 0, 0,
1183 yycrank+108, 0, 0,
1184 yycrank+281, yysvec+8, 0,
1185 yycrank+330, 0, 0,
1186 yycrank+96, 0, 0,
1187 yycrank+108, 0, 0,
1188 yycrank+133, 0, 0,
1189 yycrank+163, 0, 0,
1190 yycrank+157, 0, 0,
1191 yycrank+154, 0, 0,
1192 yycrank+157, 0, 0,
1193 yycrank+227, 0, 0,
1194 yycrank+156, 0, 0,
1195 yycrank+150, 0, 0,
1196 yycrank+155, 0, 0,
1197 yycrank+156, 0, 0,
1198 yycrank+164, 0, 0,
1199 yycrank+181, 0, 0,
1200 yycrank+175, 0, 0,
1201 yycrank+203, 0, 0,
1202 yycrank+205, 0, 0,
1203 yycrank+330, 0, 0,
1204 yycrank+341, 0, 0,
1205 yycrank+351, 0, 0,
1206 yycrank+244, 0, 0,
1207 yycrank+0, yysvec+25, 0,
1208 yycrank+0, yysvec+26, 0,
1209 yycrank+0, yysvec+28, 0,
1210 yycrank+0, yysvec+30, 0,
1211 yycrank+0, yysvec+31, 0,
1212 yycrank+249, 0, 0,
1213 yycrank+250, 0, 0,
1214 yycrank+191, 0, 0,
1215 yycrank+0, yysvec+38, 0,
1216 yycrank+0, yysvec+42, 0,
1217 yycrank+0, yysvec+44, 0,
1218 yycrank+191, 0, 0,
1219 yycrank+192, 0, 0,
1220 yycrank+224, 0, 0,
1221 yycrank+227, 0, 0,
1222 yycrank+230, 0, 0,
1223 yycrank+236, 0, 0,
1224 yycrank+237, 0, 0,
1225 yycrank+241, 0, 0,
1226 yycrank+250, 0, 0,
1227 yycrank+252, 0, 0,
1228 yycrank+253, 0, 0,
1229 yycrank+257, 0, 0,
1230 yycrank+258, 0, 0,
1231 yycrank+293, 0, 0,
1232 yycrank+294, 0, 0,
1233 yycrank+295, 0, 0,
1234 yycrank+296, 0, 0,
1235 yycrank+0, 0, yyvstop+47,
1236 yycrank+297, 0, 0,
1237 yycrank+298, 0, 0,
1238 yycrank+310, 0, 0,
1239 yycrank+306, 0, 0,
1240 yycrank+301, 0, 0,
1241 yycrank+308, 0, 0,
1242 yycrank+302, 0, 0,
1243 yycrank+319, 0, 0,
1244 yycrank+321, 0, 0,
1245 yycrank+414, 0, 0,
1246 yycrank+312, 0, 0,
1247 yycrank+321, 0, 0,
1248 yycrank+324, 0, 0,
1249 yycrank+331, 0, 0,
1250 yycrank+329, 0, 0,
1251 yycrank+320, 0, 0,
1252 yycrank+334, 0, 0,
1253 yycrank+333, 0, 0,
1254 yycrank+426, 0, yyvstop+49,
1255 yycrank+438, 0, yyvstop+51,
1256 yycrank+411, 0, 0,
1257 yycrank+487, 0, yyvstop+53,
1258 yycrank+323, 0, 0,
1259 yycrank+335, 0, 0,
1260 yycrank+343, 0, 0,
1261 yycrank+345, 0, 0,
1262 yycrank+334, 0, 0,
1263 yycrank+341, 0, 0,
1264 yycrank+336, 0, 0,
1265 yycrank+334, 0, 0,
1266 yycrank+337, 0, 0,
1267 yycrank+342, 0, 0,
1268 yycrank+449, 0, 0,
1269 yycrank+475, 0, 0,
1270 yycrank+499, 0, 0,
1271 yycrank+500, 0, 0,
1272 yycrank+501, 0, 0,
1273 yycrank+517, 0, yyvstop+55,
1274 yycrank+338, yysvec+149, 0,
1275 yycrank+518, 0, 0,
1276 yycrank+355, yysvec+150, 0,
1277 yycrank+519, 0, 0,
1278 yycrank+521, 0, 0,
1279 yycrank+369, yysvec+152, yyvstop+57,
1280 yycrank+371, yysvec+150, 0,
1281 yycrank+362, yysvec+157, 0,
1282 yycrank+525, 0, yyvstop+59,
1283 yycrank+396, yysvec+157, 0,
1284 yycrank+413, yysvec+152, yyvstop+61,
1285 yycrank+538, 0, yyvstop+63,
1286 yycrank+539, 0, yyvstop+65,
1287 yycrank+543, 0, yyvstop+67,
1288 yycrank+540, 0, 0,
1289 yycrank+554, 0, 0,
1290 yycrank+571, 0, 0,
1291 yycrank+0, 0, yyvstop+69,
1292 yycrank+0, 0, yyvstop+71,
1293 yycrank+0, 0, yyvstop+73,
1294 yycrank+0, 0, yyvstop+75,
1295 yycrank+0, 0, yyvstop+77,
1296 yycrank+0, 0, yyvstop+79,
1297 yycrank+0, 0, yyvstop+81,
1298 yycrank+0, 0, yyvstop+83,
1299 yycrank+0, 0, yyvstop+85,
1300 yycrank+0, 0, yyvstop+87,
1301 yycrank+0, 0, yyvstop+89,
1302 yycrank+0, 0, yyvstop+91,
1303 yycrank+0, 0, yyvstop+93,
1304 yycrank+0, 0, yyvstop+95,
1305 yycrank+0, 0, yyvstop+97,
1306 yycrank+0, 0, yyvstop+99,
1307 yycrank+0, 0, yyvstop+101,
1308 yycrank+0, 0, yyvstop+103,
1309 yycrank+0, 0, yyvstop+105,
1310 yycrank+474, 0, 0,
1311 yycrank+417, yysvec+189, 0,
1312 yycrank+481, 0, 0,
1313 yycrank+418, yysvec+189, 0,
1314 yycrank+515, 0, 0,
1315 yycrank+517, 0, 0,
1316 yycrank+521, 0, 0,
1317 yycrank+407, 0, 0,
1318 yycrank+443, 0, 0,
1319 yycrank+455, 0, 0,
1320 yycrank+457, 0, 0,
1321 yycrank+449, 0, 0,
1322 yycrank+455, 0, 0,
1323 yycrank+446, 0, 0,
1324 yycrank+446, 0, 0,
1325 yycrank+450, 0, 0,
1326 yycrank+456, 0, 0,
1327 yycrank+568, 0, yyvstop+107,
1328 yycrank+607, 0, 0,
1329 yycrank+527, yysvec+206, yyvstop+109,
1330 yycrank+526, yysvec+206, yyvstop+111,
1331 yycrank+634, 0, yyvstop+113,
1332 yycrank+603, 0, yyvstop+115,
1333 yycrank+518, yysvec+211, yyvstop+117,
1334 yycrank+619, 0, 0,
1335 yycrank+469, 0, 0,
1336 yycrank+470, 0, 0,
1337 yycrank+669, 0, yyvstop+119,
1338 yycrank+684, 0, yyvstop+121,
1339 yycrank+698, 0, yyvstop+123,
1340 yycrank+733, 0, yyvstop+125,
1341 yycrank+464, yysvec+217, yyvstop+127,
1342 yycrank+759, 0, yyvstop+129,
1343 yycrank+484, yysvec+218, yyvstop+131,
1344 yycrank+785, 0, yyvstop+133,
1345 yycrank+811, 0, yyvstop+135,
1346 yycrank+485, yysvec+218, yyvstop+137,
1347 yycrank+502, yysvec+224, yyvstop+139,
1348 yycrank+498, yysvec+224, yyvstop+141,
1349 yycrank+670, yysvec+210, yyvstop+143,
1350 yycrank+822, 0, 0,
1351 yycrank+522, 0, 0,
1352 yycrank+518, 0, 0,
1353 yycrank+525, 0, 0,
1354 yycrank+519, 0, 0,
1355 yycrank+671, 0, yyvstop+146,
1356 yycrank+540, 0, 0,
1357 yycrank+541, 0, 0,
1358 yycrank+536, 0, 0,
1359 yycrank+544, 0, 0,
1360 yycrank+535, 0, 0,
1361 yycrank+547, 0, 0,
1362 yycrank+532, 0, 0,
1363 yycrank+546, 0, 0,
1364 yycrank+551, 0, 0,
1365 yycrank+534, 0, 0,
1366 yycrank+550, 0, 0,
1367 yycrank+550, 0, 0,
1368 yycrank+837, 0, 0,
1369 yycrank+847, 0, 0,
1370 yycrank+857, 0, 0,
1371 yycrank+621, 0, yyvstop+148,
1372 yycrank+580, 0, 0,
1373 yycrank+584, 0, 0,
1374 yycrank+578, 0, 0,
1375 yycrank+597, 0, 0,
1376 yycrank+580, 0, 0,
1377 yycrank+596, 0, 0,
1378 yycrank+596, 0, 0,
1379 yycrank+695, yysvec+216, 0,
1380 yycrank+735, yysvec+217, 0,
1381 yycrank+696, yysvec+218, 0,
1382 yycrank+812, yysvec+219, 0,
1383 yycrank+764, yysvec+217, 0,
1384 yycrank+748, yysvec+221, 0,
1385 yycrank+747, yysvec+218, 0,
1386 yycrank+699, yysvec+223, 0,
1387 yycrank+760, yysvec+224, 0,
1388 yycrank+814, yysvec+218, 0,
1389 yycrank+813, yysvec+224, 0,
1390 yycrank+817, yysvec+224, 0,
1391 yycrank+886, 0, 0,
1392 yycrank+761, 0, yyvstop+150,
1393 yycrank+896, 0, 0,
1394 yycrank+922, 0, yyvstop+152,
1395 yycrank+763, 0, yyvstop+154,
1396 yycrank+793, 0, yyvstop+156,
1397 yycrank+601, yysvec+224, yyvstop+158,
1398 yycrank+948, 0, 0,
1399 yycrank+910, 0, 0,
1400 yycrank+591, 0, 0,
1401 yycrank+591, 0, 0,
1402 yycrank+600, 0, 0,
1403 yycrank+593, 0, 0,
1404 yycrank+614, 0, 0,
1405 yycrank+608, 0, 0,
1406 yycrank+604, 0, 0,
1407 yycrank+647, 0, 0,
1408 yycrank+657, 0, 0,
1409 yycrank+796, 0, yyvstop+160,
1410 yycrank+974, 0, yyvstop+163,
1411 yycrank+643, 0, 0,
1412 yycrank+662, 0, 0,
1413 yycrank+664, 0, 0,
1414 yycrank+641, 0, 0,
1415 yycrank+649, 0, 0,
1416 yycrank+0, yysvec+293, 0,
1417 yycrank+666, 0, 0,
1418 yycrank+665, 0, 0,
1419 yycrank+671, 0, 0,
1420 yycrank+666, 0, 0,
1421 yycrank+0, yysvec+293, 0,
1422 yycrank+676, 0, 0,
1423 yycrank+680, 0, 0,
1424 yycrank+688, 0, 0,
1425 yycrank+0, 0, yyvstop+165,
1426 yycrank+0, 0, yyvstop+167,
1427 yycrank+0, 0, yyvstop+169,
1428 yycrank+0, 0, yyvstop+171,
1429 yycrank+685, 0, 0,
1430 yycrank+0, yysvec+308, 0,
1431 yycrank+718, 0, 0,
1432 yycrank+0, yysvec+308, 0,
1433 yycrank+719, 0, 0,
1434 yycrank+727, 0, 0,
1435 yycrank+712, 0, 0,
1436 yycrank+721, 0, 0,
1437 yycrank+717, 0, 0,
1438 yycrank+741, 0, 0,
1439 yycrank+734, 0, 0,
1440 yycrank+756, 0, 0,
1441 yycrank+751, 0, 0,
1442 yycrank+748, 0, 0,
1443 yycrank+760, 0, 0,
1444 yycrank+781, 0, 0,
1445 yycrank+959, 0, yyvstop+173,
1446 yycrank+923, 0, yyvstop+175,
1447 yycrank+1008, 0, yyvstop+177,
1448 yycrank+1011, 0, yyvstop+179,
1449 yycrank+774, 0, 0,
1450 yycrank+807, 0, 0,
1451 yycrank+801, 0, 0,
1452 yycrank+1012, 0, yyvstop+181,
1453 yycrank+802, 0, 0,
1454 yycrank+821, 0, 0,
1455 yycrank+823, 0, 0,
1456 yycrank+807, 0, 0,
1457 yycrank+824, 0, 0,
1458 yycrank+822, 0, 0,
1459 yycrank+816, 0, 0,
1460 yycrank+960, 0, yyvstop+183,
1461 yycrank+1023, 0, 0,
1462 yycrank+883, yysvec+339, yyvstop+185,
1463 yycrank+827, 0, 0,
1464 yycrank+815, 0, 0,
1465 yycrank+886, yysvec+234, yyvstop+187,
1466 yycrank+835, 0, 0,
1467 yycrank+880, 0, 0,
1468 yycrank+868, 0, 0,
1469 yycrank+887, 0, 0,
1470 yycrank+887, 0, 0,
1471 yycrank+889, 0, 0,
1472 yycrank+0, yysvec+293, 0,
1473 yycrank+887, 0, 0,
1474 yycrank+947, 0, 0,
1475 yycrank+892, 0, 0,
1476 yycrank+893, 0, 0,
1477 yycrank+0, yysvec+308, 0,
1478 yycrank+893, 0, 0,
1479 yycrank+878, 0, 0,
1480 yycrank+897, 0, 0,
1481 yycrank+936, 0, 0,
1482 yycrank+921, 0, 0,
1483 yycrank+938, 0, 0,
1484 yycrank+936, 0, 0,
1485 yycrank+929, 0, 0,
1486 yycrank+1038, 0, yyvstop+189,
1487 yycrank+1023, yysvec+324, yyvstop+191,
1488 yycrank+982, 0, 0,
1489 yycrank+1049, 0, yyvstop+193,
1490 yycrank+1050, 0, yyvstop+195,
1491 yycrank+1074, 0, yyvstop+197,
1492 yycrank+1075, 0, yyvstop+199,
1493 yycrank+1037, yysvec+331, yyvstop+201,
1494 yycrank+940, 0, 0,
1495 yycrank+928, 0, 0,
1496 yycrank+924, 0, 0,
1497 yycrank+945, 0, 0,
1498 yycrank+934, 0, 0,
1499 yycrank+951, 0, 0,
1500 yycrank+1086, 0, 0,
1501 yycrank+0, yysvec+347, 0,
1502 yycrank+0, yysvec+345, 0,
1503 yycrank+0, yysvec+347, 0,
1504 yycrank+0, yysvec+293, 0,
1505 yycrank+949, 0, 0,
1506 yycrank+0, yysvec+293, 0,
1507 yycrank+954, 0, 0,
1508 yycrank+0, yysvec+308, 0,
1509 yycrank+0, yysvec+308, 0,
1510 yycrank+955, 0, 0,
1511 yycrank+952, 0, 0,
1512 yycrank+940, 0, 0,
1513 yycrank+935, 0, 0,
1514 yycrank+995, 0, 0,
1515 yycrank+983, 0, 0,
1516 yycrank+1000, 0, 0,
1517 yycrank+1045, 0, 0,
1518 yycrank+987, 0, 0,
1519 yycrank+1095, 0, yyvstop+203,
1520 yycrank+0, yysvec+377, 0,
1521 yycrank+0, yysvec+375, 0,
1522 yycrank+0, yysvec+377, 0,
1523 yycrank+1008, 0, 0,
1524 yycrank+1096, 0, 0,
1525 yycrank+0, yysvec+347, 0,
1526 yycrank+0, yysvec+293, 0,
1527 yycrank+0, yysvec+308, 0,
1528 yycrank+0, yysvec+394, 0,
1529 yycrank+0, yysvec+392, 0,
1530 yycrank+0, yysvec+394, 0,
1531 yycrank+1009, 0, 0,
1532 yycrank+1106, 0, 0,
1533 yycrank+1155, 0, yyvstop+205,
1534 yycrank+0, yysvec+377, 0,
1535 yycrank+1156, 0, yyvstop+207,
1536 yycrank+0, yysvec+394, 0,
1537 yycrank+0, 0, yyvstop+209,
1538 yycrank+1157, 0, yyvstop+211,
1539 yycrank+1125, yysvec+414, yyvstop+213,
1540 0, 0, 0};
1541 struct yywork *yytop = yycrank+1213;
1542 struct yysvf *yybgin = yysvec+1;
1543 char yymatch[] = {
1544 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1545 01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 ,
1546 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1547 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1548 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1549 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1550 '0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
1551 '6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 ,
1552 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1553 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1554 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1555 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1556 01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
1557 'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' ,
1558 'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
1559 'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 ,
1560 0};
1561 char yyextra[] = {
1562 0,0,0,0,0,0,0,0,
1563 0,0,0,0,0,0,0,0,
1564 0,0,0,0,0,0,0,0,
1565 0,0,0,0,0,0,0,0,
1566 0,0,0,0,0,0,0,0,
1567 0,0,0,0,0,0,0,0,
1568 0};
1569 #ifndef lint
1570 static char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */
1571 #endif
1572