1 /* Generated by re2c 1.3 */
2 #include <stdlib.h>
3 #include "chunk.h"
4 #include "scanners.h"
5 
_scan_at(bufsize_t (* scanner)(const unsigned char *),cmark_chunk * c,bufsize_t offset)6 bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
7                    bufsize_t offset) {
8   bufsize_t res;
9   unsigned char *ptr = (unsigned char *)c->data;
10 
11   if (ptr == NULL || offset > c->len) {
12     return 0;
13   } else {
14     unsigned char lim = ptr[c->len];
15 
16     ptr[c->len] = '\0';
17     res = scanner(ptr + offset);
18     ptr[c->len] = lim;
19   }
20 
21   return res;
22 }
23 
24 // Try to match a scheme including colon.
_scan_scheme(const unsigned char * p)25 bufsize_t _scan_scheme(const unsigned char *p) {
26   const unsigned char *marker = NULL;
27   const unsigned char *start = p;
28 
29   {
30     unsigned char yych;
31     yych = *p;
32     if (yych <= '@')
33       goto yy2;
34     if (yych <= 'Z')
35       goto yy4;
36     if (yych <= '`')
37       goto yy2;
38     if (yych <= 'z')
39       goto yy4;
40   yy2:
41     ++p;
42   yy3 : { return 0; }
43   yy4:
44     yych = *(marker = ++p);
45     if (yych <= '/') {
46       if (yych <= '+') {
47         if (yych <= '*')
48           goto yy3;
49       } else {
50         if (yych <= ',')
51           goto yy3;
52         if (yych >= '/')
53           goto yy3;
54       }
55     } else {
56       if (yych <= 'Z') {
57         if (yych <= '9')
58           goto yy5;
59         if (yych <= '@')
60           goto yy3;
61       } else {
62         if (yych <= '`')
63           goto yy3;
64         if (yych >= '{')
65           goto yy3;
66       }
67     }
68   yy5:
69     yych = *++p;
70     if (yych <= '9') {
71       if (yych <= ',') {
72         if (yych == '+')
73           goto yy7;
74       } else {
75         if (yych != '/')
76           goto yy7;
77       }
78     } else {
79       if (yych <= 'Z') {
80         if (yych <= ':')
81           goto yy8;
82         if (yych >= 'A')
83           goto yy7;
84       } else {
85         if (yych <= '`')
86           goto yy6;
87         if (yych <= 'z')
88           goto yy7;
89       }
90     }
91   yy6:
92     p = marker;
93     goto yy3;
94   yy7:
95     yych = *++p;
96     if (yych <= '9') {
97       if (yych <= ',') {
98         if (yych == '+')
99           goto yy10;
100         goto yy6;
101       } else {
102         if (yych == '/')
103           goto yy6;
104         goto yy10;
105       }
106     } else {
107       if (yych <= 'Z') {
108         if (yych <= ':')
109           goto yy8;
110         if (yych <= '@')
111           goto yy6;
112         goto yy10;
113       } else {
114         if (yych <= '`')
115           goto yy6;
116         if (yych <= 'z')
117           goto yy10;
118         goto yy6;
119       }
120     }
121   yy8:
122     ++p;
123     { return (bufsize_t)(p - start); }
124   yy10:
125     yych = *++p;
126     if (yych <= '9') {
127       if (yych <= ',') {
128         if (yych != '+')
129           goto yy6;
130       } else {
131         if (yych == '/')
132           goto yy6;
133       }
134     } else {
135       if (yych <= 'Z') {
136         if (yych <= ':')
137           goto yy8;
138         if (yych <= '@')
139           goto yy6;
140       } else {
141         if (yych <= '`')
142           goto yy6;
143         if (yych >= '{')
144           goto yy6;
145       }
146     }
147     yych = *++p;
148     if (yych <= '9') {
149       if (yych <= ',') {
150         if (yych != '+')
151           goto yy6;
152       } else {
153         if (yych == '/')
154           goto yy6;
155       }
156     } else {
157       if (yych <= 'Z') {
158         if (yych <= ':')
159           goto yy8;
160         if (yych <= '@')
161           goto yy6;
162       } else {
163         if (yych <= '`')
164           goto yy6;
165         if (yych >= '{')
166           goto yy6;
167       }
168     }
169     yych = *++p;
170     if (yych <= '9') {
171       if (yych <= ',') {
172         if (yych != '+')
173           goto yy6;
174       } else {
175         if (yych == '/')
176           goto yy6;
177       }
178     } else {
179       if (yych <= 'Z') {
180         if (yych <= ':')
181           goto yy8;
182         if (yych <= '@')
183           goto yy6;
184       } else {
185         if (yych <= '`')
186           goto yy6;
187         if (yych >= '{')
188           goto yy6;
189       }
190     }
191     yych = *++p;
192     if (yych <= '9') {
193       if (yych <= ',') {
194         if (yych != '+')
195           goto yy6;
196       } else {
197         if (yych == '/')
198           goto yy6;
199       }
200     } else {
201       if (yych <= 'Z') {
202         if (yych <= ':')
203           goto yy8;
204         if (yych <= '@')
205           goto yy6;
206       } else {
207         if (yych <= '`')
208           goto yy6;
209         if (yych >= '{')
210           goto yy6;
211       }
212     }
213     yych = *++p;
214     if (yych <= '9') {
215       if (yych <= ',') {
216         if (yych != '+')
217           goto yy6;
218       } else {
219         if (yych == '/')
220           goto yy6;
221       }
222     } else {
223       if (yych <= 'Z') {
224         if (yych <= ':')
225           goto yy8;
226         if (yych <= '@')
227           goto yy6;
228       } else {
229         if (yych <= '`')
230           goto yy6;
231         if (yych >= '{')
232           goto yy6;
233       }
234     }
235     yych = *++p;
236     if (yych <= '9') {
237       if (yych <= ',') {
238         if (yych != '+')
239           goto yy6;
240       } else {
241         if (yych == '/')
242           goto yy6;
243       }
244     } else {
245       if (yych <= 'Z') {
246         if (yych <= ':')
247           goto yy8;
248         if (yych <= '@')
249           goto yy6;
250       } else {
251         if (yych <= '`')
252           goto yy6;
253         if (yych >= '{')
254           goto yy6;
255       }
256     }
257     yych = *++p;
258     if (yych <= '9') {
259       if (yych <= ',') {
260         if (yych != '+')
261           goto yy6;
262       } else {
263         if (yych == '/')
264           goto yy6;
265       }
266     } else {
267       if (yych <= 'Z') {
268         if (yych <= ':')
269           goto yy8;
270         if (yych <= '@')
271           goto yy6;
272       } else {
273         if (yych <= '`')
274           goto yy6;
275         if (yych >= '{')
276           goto yy6;
277       }
278     }
279     yych = *++p;
280     if (yych <= '9') {
281       if (yych <= ',') {
282         if (yych != '+')
283           goto yy6;
284       } else {
285         if (yych == '/')
286           goto yy6;
287       }
288     } else {
289       if (yych <= 'Z') {
290         if (yych <= ':')
291           goto yy8;
292         if (yych <= '@')
293           goto yy6;
294       } else {
295         if (yych <= '`')
296           goto yy6;
297         if (yych >= '{')
298           goto yy6;
299       }
300     }
301     yych = *++p;
302     if (yych <= '9') {
303       if (yych <= ',') {
304         if (yych != '+')
305           goto yy6;
306       } else {
307         if (yych == '/')
308           goto yy6;
309       }
310     } else {
311       if (yych <= 'Z') {
312         if (yych <= ':')
313           goto yy8;
314         if (yych <= '@')
315           goto yy6;
316       } else {
317         if (yych <= '`')
318           goto yy6;
319         if (yych >= '{')
320           goto yy6;
321       }
322     }
323     yych = *++p;
324     if (yych <= '9') {
325       if (yych <= ',') {
326         if (yych != '+')
327           goto yy6;
328       } else {
329         if (yych == '/')
330           goto yy6;
331       }
332     } else {
333       if (yych <= 'Z') {
334         if (yych <= ':')
335           goto yy8;
336         if (yych <= '@')
337           goto yy6;
338       } else {
339         if (yych <= '`')
340           goto yy6;
341         if (yych >= '{')
342           goto yy6;
343       }
344     }
345     yych = *++p;
346     if (yych <= '9') {
347       if (yych <= ',') {
348         if (yych != '+')
349           goto yy6;
350       } else {
351         if (yych == '/')
352           goto yy6;
353       }
354     } else {
355       if (yych <= 'Z') {
356         if (yych <= ':')
357           goto yy8;
358         if (yych <= '@')
359           goto yy6;
360       } else {
361         if (yych <= '`')
362           goto yy6;
363         if (yych >= '{')
364           goto yy6;
365       }
366     }
367     yych = *++p;
368     if (yych <= '9') {
369       if (yych <= ',') {
370         if (yych != '+')
371           goto yy6;
372       } else {
373         if (yych == '/')
374           goto yy6;
375       }
376     } else {
377       if (yych <= 'Z') {
378         if (yych <= ':')
379           goto yy8;
380         if (yych <= '@')
381           goto yy6;
382       } else {
383         if (yych <= '`')
384           goto yy6;
385         if (yych >= '{')
386           goto yy6;
387       }
388     }
389     yych = *++p;
390     if (yych <= '9') {
391       if (yych <= ',') {
392         if (yych != '+')
393           goto yy6;
394       } else {
395         if (yych == '/')
396           goto yy6;
397       }
398     } else {
399       if (yych <= 'Z') {
400         if (yych <= ':')
401           goto yy8;
402         if (yych <= '@')
403           goto yy6;
404       } else {
405         if (yych <= '`')
406           goto yy6;
407         if (yych >= '{')
408           goto yy6;
409       }
410     }
411     yych = *++p;
412     if (yych <= '9') {
413       if (yych <= ',') {
414         if (yych != '+')
415           goto yy6;
416       } else {
417         if (yych == '/')
418           goto yy6;
419       }
420     } else {
421       if (yych <= 'Z') {
422         if (yych <= ':')
423           goto yy8;
424         if (yych <= '@')
425           goto yy6;
426       } else {
427         if (yych <= '`')
428           goto yy6;
429         if (yych >= '{')
430           goto yy6;
431       }
432     }
433     yych = *++p;
434     if (yych <= '9') {
435       if (yych <= ',') {
436         if (yych != '+')
437           goto yy6;
438       } else {
439         if (yych == '/')
440           goto yy6;
441       }
442     } else {
443       if (yych <= 'Z') {
444         if (yych <= ':')
445           goto yy8;
446         if (yych <= '@')
447           goto yy6;
448       } else {
449         if (yych <= '`')
450           goto yy6;
451         if (yych >= '{')
452           goto yy6;
453       }
454     }
455     yych = *++p;
456     if (yych <= '9') {
457       if (yych <= ',') {
458         if (yych != '+')
459           goto yy6;
460       } else {
461         if (yych == '/')
462           goto yy6;
463       }
464     } else {
465       if (yych <= 'Z') {
466         if (yych <= ':')
467           goto yy8;
468         if (yych <= '@')
469           goto yy6;
470       } else {
471         if (yych <= '`')
472           goto yy6;
473         if (yych >= '{')
474           goto yy6;
475       }
476     }
477     yych = *++p;
478     if (yych <= '9') {
479       if (yych <= ',') {
480         if (yych != '+')
481           goto yy6;
482       } else {
483         if (yych == '/')
484           goto yy6;
485       }
486     } else {
487       if (yych <= 'Z') {
488         if (yych <= ':')
489           goto yy8;
490         if (yych <= '@')
491           goto yy6;
492       } else {
493         if (yych <= '`')
494           goto yy6;
495         if (yych >= '{')
496           goto yy6;
497       }
498     }
499     yych = *++p;
500     if (yych <= '9') {
501       if (yych <= ',') {
502         if (yych != '+')
503           goto yy6;
504       } else {
505         if (yych == '/')
506           goto yy6;
507       }
508     } else {
509       if (yych <= 'Z') {
510         if (yych <= ':')
511           goto yy8;
512         if (yych <= '@')
513           goto yy6;
514       } else {
515         if (yych <= '`')
516           goto yy6;
517         if (yych >= '{')
518           goto yy6;
519       }
520     }
521     yych = *++p;
522     if (yych <= '9') {
523       if (yych <= ',') {
524         if (yych != '+')
525           goto yy6;
526       } else {
527         if (yych == '/')
528           goto yy6;
529       }
530     } else {
531       if (yych <= 'Z') {
532         if (yych <= ':')
533           goto yy8;
534         if (yych <= '@')
535           goto yy6;
536       } else {
537         if (yych <= '`')
538           goto yy6;
539         if (yych >= '{')
540           goto yy6;
541       }
542     }
543     yych = *++p;
544     if (yych <= '9') {
545       if (yych <= ',') {
546         if (yych != '+')
547           goto yy6;
548       } else {
549         if (yych == '/')
550           goto yy6;
551       }
552     } else {
553       if (yych <= 'Z') {
554         if (yych <= ':')
555           goto yy8;
556         if (yych <= '@')
557           goto yy6;
558       } else {
559         if (yych <= '`')
560           goto yy6;
561         if (yych >= '{')
562           goto yy6;
563       }
564     }
565     yych = *++p;
566     if (yych <= '9') {
567       if (yych <= ',') {
568         if (yych != '+')
569           goto yy6;
570       } else {
571         if (yych == '/')
572           goto yy6;
573       }
574     } else {
575       if (yych <= 'Z') {
576         if (yych <= ':')
577           goto yy8;
578         if (yych <= '@')
579           goto yy6;
580       } else {
581         if (yych <= '`')
582           goto yy6;
583         if (yych >= '{')
584           goto yy6;
585       }
586     }
587     yych = *++p;
588     if (yych <= '9') {
589       if (yych <= ',') {
590         if (yych != '+')
591           goto yy6;
592       } else {
593         if (yych == '/')
594           goto yy6;
595       }
596     } else {
597       if (yych <= 'Z') {
598         if (yych <= ':')
599           goto yy8;
600         if (yych <= '@')
601           goto yy6;
602       } else {
603         if (yych <= '`')
604           goto yy6;
605         if (yych >= '{')
606           goto yy6;
607       }
608     }
609     yych = *++p;
610     if (yych <= '9') {
611       if (yych <= ',') {
612         if (yych != '+')
613           goto yy6;
614       } else {
615         if (yych == '/')
616           goto yy6;
617       }
618     } else {
619       if (yych <= 'Z') {
620         if (yych <= ':')
621           goto yy8;
622         if (yych <= '@')
623           goto yy6;
624       } else {
625         if (yych <= '`')
626           goto yy6;
627         if (yych >= '{')
628           goto yy6;
629       }
630     }
631     yych = *++p;
632     if (yych <= '9') {
633       if (yych <= ',') {
634         if (yych != '+')
635           goto yy6;
636       } else {
637         if (yych == '/')
638           goto yy6;
639       }
640     } else {
641       if (yych <= 'Z') {
642         if (yych <= ':')
643           goto yy8;
644         if (yych <= '@')
645           goto yy6;
646       } else {
647         if (yych <= '`')
648           goto yy6;
649         if (yych >= '{')
650           goto yy6;
651       }
652     }
653     yych = *++p;
654     if (yych <= '9') {
655       if (yych <= ',') {
656         if (yych != '+')
657           goto yy6;
658       } else {
659         if (yych == '/')
660           goto yy6;
661       }
662     } else {
663       if (yych <= 'Z') {
664         if (yych <= ':')
665           goto yy8;
666         if (yych <= '@')
667           goto yy6;
668       } else {
669         if (yych <= '`')
670           goto yy6;
671         if (yych >= '{')
672           goto yy6;
673       }
674     }
675     yych = *++p;
676     if (yych <= '9') {
677       if (yych <= ',') {
678         if (yych != '+')
679           goto yy6;
680       } else {
681         if (yych == '/')
682           goto yy6;
683       }
684     } else {
685       if (yych <= 'Z') {
686         if (yych <= ':')
687           goto yy8;
688         if (yych <= '@')
689           goto yy6;
690       } else {
691         if (yych <= '`')
692           goto yy6;
693         if (yych >= '{')
694           goto yy6;
695       }
696     }
697     yych = *++p;
698     if (yych <= '9') {
699       if (yych <= ',') {
700         if (yych != '+')
701           goto yy6;
702       } else {
703         if (yych == '/')
704           goto yy6;
705       }
706     } else {
707       if (yych <= 'Z') {
708         if (yych <= ':')
709           goto yy8;
710         if (yych <= '@')
711           goto yy6;
712       } else {
713         if (yych <= '`')
714           goto yy6;
715         if (yych >= '{')
716           goto yy6;
717       }
718     }
719     yych = *++p;
720     if (yych <= '9') {
721       if (yych <= ',') {
722         if (yych != '+')
723           goto yy6;
724       } else {
725         if (yych == '/')
726           goto yy6;
727       }
728     } else {
729       if (yych <= 'Z') {
730         if (yych <= ':')
731           goto yy8;
732         if (yych <= '@')
733           goto yy6;
734       } else {
735         if (yych <= '`')
736           goto yy6;
737         if (yych >= '{')
738           goto yy6;
739       }
740     }
741     yych = *++p;
742     if (yych == ':')
743       goto yy8;
744     goto yy6;
745   }
746 }
747 
748 // Try to match URI autolink after first <, returning number of chars matched.
_scan_autolink_uri(const unsigned char * p)749 bufsize_t _scan_autolink_uri(const unsigned char *p) {
750   const unsigned char *marker = NULL;
751   const unsigned char *start = p;
752 
753   {
754     unsigned char yych;
755     static const unsigned char yybm[] = {
756         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
757         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
758         0,   0,   0,   0,   0,   128, 128, 128, 128, 128, 128, 128, 128, 128,
759         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
760         128, 128, 128, 128, 0,   128, 0,   128, 128, 128, 128, 128, 128, 128,
761         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
762         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
763         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
764         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
765         128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
766         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
767         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
768         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
769         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
770         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
771         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
772         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
773         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
774         0,   0,   0,   0,
775     };
776     yych = *p;
777     if (yych <= '@')
778       goto yy41;
779     if (yych <= 'Z')
780       goto yy43;
781     if (yych <= '`')
782       goto yy41;
783     if (yych <= 'z')
784       goto yy43;
785   yy41:
786     ++p;
787   yy42 : { return 0; }
788   yy43:
789     yych = *(marker = ++p);
790     if (yych <= '/') {
791       if (yych <= '+') {
792         if (yych <= '*')
793           goto yy42;
794       } else {
795         if (yych <= ',')
796           goto yy42;
797         if (yych >= '/')
798           goto yy42;
799       }
800     } else {
801       if (yych <= 'Z') {
802         if (yych <= '9')
803           goto yy44;
804         if (yych <= '@')
805           goto yy42;
806       } else {
807         if (yych <= '`')
808           goto yy42;
809         if (yych >= '{')
810           goto yy42;
811       }
812     }
813   yy44:
814     yych = *++p;
815     if (yych <= '9') {
816       if (yych <= ',') {
817         if (yych == '+')
818           goto yy46;
819       } else {
820         if (yych != '/')
821           goto yy46;
822       }
823     } else {
824       if (yych <= 'Z') {
825         if (yych <= ':')
826           goto yy47;
827         if (yych >= 'A')
828           goto yy46;
829       } else {
830         if (yych <= '`')
831           goto yy45;
832         if (yych <= 'z')
833           goto yy46;
834       }
835     }
836   yy45:
837     p = marker;
838     goto yy42;
839   yy46:
840     yych = *++p;
841     if (yych <= '9') {
842       if (yych <= ',') {
843         if (yych == '+')
844           goto yy49;
845         goto yy45;
846       } else {
847         if (yych == '/')
848           goto yy45;
849         goto yy49;
850       }
851     } else {
852       if (yych <= 'Z') {
853         if (yych <= ':')
854           goto yy47;
855         if (yych <= '@')
856           goto yy45;
857         goto yy49;
858       } else {
859         if (yych <= '`')
860           goto yy45;
861         if (yych <= 'z')
862           goto yy49;
863         goto yy45;
864       }
865     }
866   yy47:
867     yych = *++p;
868     if (yybm[0 + yych] & 128) {
869       goto yy47;
870     }
871     if (yych <= 0xEC) {
872       if (yych <= 0xC1) {
873         if (yych <= '<')
874           goto yy45;
875         if (yych <= '>')
876           goto yy50;
877         goto yy45;
878       } else {
879         if (yych <= 0xDF)
880           goto yy52;
881         if (yych <= 0xE0)
882           goto yy53;
883         goto yy54;
884       }
885     } else {
886       if (yych <= 0xF0) {
887         if (yych <= 0xED)
888           goto yy55;
889         if (yych <= 0xEF)
890           goto yy54;
891         goto yy56;
892       } else {
893         if (yych <= 0xF3)
894           goto yy57;
895         if (yych <= 0xF4)
896           goto yy58;
897         goto yy45;
898       }
899     }
900   yy49:
901     yych = *++p;
902     if (yych <= '9') {
903       if (yych <= ',') {
904         if (yych == '+')
905           goto yy59;
906         goto yy45;
907       } else {
908         if (yych == '/')
909           goto yy45;
910         goto yy59;
911       }
912     } else {
913       if (yych <= 'Z') {
914         if (yych <= ':')
915           goto yy47;
916         if (yych <= '@')
917           goto yy45;
918         goto yy59;
919       } else {
920         if (yych <= '`')
921           goto yy45;
922         if (yych <= 'z')
923           goto yy59;
924         goto yy45;
925       }
926     }
927   yy50:
928     ++p;
929     { return (bufsize_t)(p - start); }
930   yy52:
931     yych = *++p;
932     if (yych <= 0x7F)
933       goto yy45;
934     if (yych <= 0xBF)
935       goto yy47;
936     goto yy45;
937   yy53:
938     yych = *++p;
939     if (yych <= 0x9F)
940       goto yy45;
941     if (yych <= 0xBF)
942       goto yy52;
943     goto yy45;
944   yy54:
945     yych = *++p;
946     if (yych <= 0x7F)
947       goto yy45;
948     if (yych <= 0xBF)
949       goto yy52;
950     goto yy45;
951   yy55:
952     yych = *++p;
953     if (yych <= 0x7F)
954       goto yy45;
955     if (yych <= 0x9F)
956       goto yy52;
957     goto yy45;
958   yy56:
959     yych = *++p;
960     if (yych <= 0x8F)
961       goto yy45;
962     if (yych <= 0xBF)
963       goto yy54;
964     goto yy45;
965   yy57:
966     yych = *++p;
967     if (yych <= 0x7F)
968       goto yy45;
969     if (yych <= 0xBF)
970       goto yy54;
971     goto yy45;
972   yy58:
973     yych = *++p;
974     if (yych <= 0x7F)
975       goto yy45;
976     if (yych <= 0x8F)
977       goto yy54;
978     goto yy45;
979   yy59:
980     yych = *++p;
981     if (yych <= '9') {
982       if (yych <= ',') {
983         if (yych != '+')
984           goto yy45;
985       } else {
986         if (yych == '/')
987           goto yy45;
988       }
989     } else {
990       if (yych <= 'Z') {
991         if (yych <= ':')
992           goto yy47;
993         if (yych <= '@')
994           goto yy45;
995       } else {
996         if (yych <= '`')
997           goto yy45;
998         if (yych >= '{')
999           goto yy45;
1000       }
1001     }
1002     yych = *++p;
1003     if (yych <= '9') {
1004       if (yych <= ',') {
1005         if (yych != '+')
1006           goto yy45;
1007       } else {
1008         if (yych == '/')
1009           goto yy45;
1010       }
1011     } else {
1012       if (yych <= 'Z') {
1013         if (yych <= ':')
1014           goto yy47;
1015         if (yych <= '@')
1016           goto yy45;
1017       } else {
1018         if (yych <= '`')
1019           goto yy45;
1020         if (yych >= '{')
1021           goto yy45;
1022       }
1023     }
1024     yych = *++p;
1025     if (yych <= '9') {
1026       if (yych <= ',') {
1027         if (yych != '+')
1028           goto yy45;
1029       } else {
1030         if (yych == '/')
1031           goto yy45;
1032       }
1033     } else {
1034       if (yych <= 'Z') {
1035         if (yych <= ':')
1036           goto yy47;
1037         if (yych <= '@')
1038           goto yy45;
1039       } else {
1040         if (yych <= '`')
1041           goto yy45;
1042         if (yych >= '{')
1043           goto yy45;
1044       }
1045     }
1046     yych = *++p;
1047     if (yych <= '9') {
1048       if (yych <= ',') {
1049         if (yych != '+')
1050           goto yy45;
1051       } else {
1052         if (yych == '/')
1053           goto yy45;
1054       }
1055     } else {
1056       if (yych <= 'Z') {
1057         if (yych <= ':')
1058           goto yy47;
1059         if (yych <= '@')
1060           goto yy45;
1061       } else {
1062         if (yych <= '`')
1063           goto yy45;
1064         if (yych >= '{')
1065           goto yy45;
1066       }
1067     }
1068     yych = *++p;
1069     if (yych <= '9') {
1070       if (yych <= ',') {
1071         if (yych != '+')
1072           goto yy45;
1073       } else {
1074         if (yych == '/')
1075           goto yy45;
1076       }
1077     } else {
1078       if (yych <= 'Z') {
1079         if (yych <= ':')
1080           goto yy47;
1081         if (yych <= '@')
1082           goto yy45;
1083       } else {
1084         if (yych <= '`')
1085           goto yy45;
1086         if (yych >= '{')
1087           goto yy45;
1088       }
1089     }
1090     yych = *++p;
1091     if (yych <= '9') {
1092       if (yych <= ',') {
1093         if (yych != '+')
1094           goto yy45;
1095       } else {
1096         if (yych == '/')
1097           goto yy45;
1098       }
1099     } else {
1100       if (yych <= 'Z') {
1101         if (yych <= ':')
1102           goto yy47;
1103         if (yych <= '@')
1104           goto yy45;
1105       } else {
1106         if (yych <= '`')
1107           goto yy45;
1108         if (yych >= '{')
1109           goto yy45;
1110       }
1111     }
1112     yych = *++p;
1113     if (yych <= '9') {
1114       if (yych <= ',') {
1115         if (yych != '+')
1116           goto yy45;
1117       } else {
1118         if (yych == '/')
1119           goto yy45;
1120       }
1121     } else {
1122       if (yych <= 'Z') {
1123         if (yych <= ':')
1124           goto yy47;
1125         if (yych <= '@')
1126           goto yy45;
1127       } else {
1128         if (yych <= '`')
1129           goto yy45;
1130         if (yych >= '{')
1131           goto yy45;
1132       }
1133     }
1134     yych = *++p;
1135     if (yych <= '9') {
1136       if (yych <= ',') {
1137         if (yych != '+')
1138           goto yy45;
1139       } else {
1140         if (yych == '/')
1141           goto yy45;
1142       }
1143     } else {
1144       if (yych <= 'Z') {
1145         if (yych <= ':')
1146           goto yy47;
1147         if (yych <= '@')
1148           goto yy45;
1149       } else {
1150         if (yych <= '`')
1151           goto yy45;
1152         if (yych >= '{')
1153           goto yy45;
1154       }
1155     }
1156     yych = *++p;
1157     if (yych <= '9') {
1158       if (yych <= ',') {
1159         if (yych != '+')
1160           goto yy45;
1161       } else {
1162         if (yych == '/')
1163           goto yy45;
1164       }
1165     } else {
1166       if (yych <= 'Z') {
1167         if (yych <= ':')
1168           goto yy47;
1169         if (yych <= '@')
1170           goto yy45;
1171       } else {
1172         if (yych <= '`')
1173           goto yy45;
1174         if (yych >= '{')
1175           goto yy45;
1176       }
1177     }
1178     yych = *++p;
1179     if (yych <= '9') {
1180       if (yych <= ',') {
1181         if (yych != '+')
1182           goto yy45;
1183       } else {
1184         if (yych == '/')
1185           goto yy45;
1186       }
1187     } else {
1188       if (yych <= 'Z') {
1189         if (yych <= ':')
1190           goto yy47;
1191         if (yych <= '@')
1192           goto yy45;
1193       } else {
1194         if (yych <= '`')
1195           goto yy45;
1196         if (yych >= '{')
1197           goto yy45;
1198       }
1199     }
1200     yych = *++p;
1201     if (yych <= '9') {
1202       if (yych <= ',') {
1203         if (yych != '+')
1204           goto yy45;
1205       } else {
1206         if (yych == '/')
1207           goto yy45;
1208       }
1209     } else {
1210       if (yych <= 'Z') {
1211         if (yych <= ':')
1212           goto yy47;
1213         if (yych <= '@')
1214           goto yy45;
1215       } else {
1216         if (yych <= '`')
1217           goto yy45;
1218         if (yych >= '{')
1219           goto yy45;
1220       }
1221     }
1222     yych = *++p;
1223     if (yych <= '9') {
1224       if (yych <= ',') {
1225         if (yych != '+')
1226           goto yy45;
1227       } else {
1228         if (yych == '/')
1229           goto yy45;
1230       }
1231     } else {
1232       if (yych <= 'Z') {
1233         if (yych <= ':')
1234           goto yy47;
1235         if (yych <= '@')
1236           goto yy45;
1237       } else {
1238         if (yych <= '`')
1239           goto yy45;
1240         if (yych >= '{')
1241           goto yy45;
1242       }
1243     }
1244     yych = *++p;
1245     if (yych <= '9') {
1246       if (yych <= ',') {
1247         if (yych != '+')
1248           goto yy45;
1249       } else {
1250         if (yych == '/')
1251           goto yy45;
1252       }
1253     } else {
1254       if (yych <= 'Z') {
1255         if (yych <= ':')
1256           goto yy47;
1257         if (yych <= '@')
1258           goto yy45;
1259       } else {
1260         if (yych <= '`')
1261           goto yy45;
1262         if (yych >= '{')
1263           goto yy45;
1264       }
1265     }
1266     yych = *++p;
1267     if (yych <= '9') {
1268       if (yych <= ',') {
1269         if (yych != '+')
1270           goto yy45;
1271       } else {
1272         if (yych == '/')
1273           goto yy45;
1274       }
1275     } else {
1276       if (yych <= 'Z') {
1277         if (yych <= ':')
1278           goto yy47;
1279         if (yych <= '@')
1280           goto yy45;
1281       } else {
1282         if (yych <= '`')
1283           goto yy45;
1284         if (yych >= '{')
1285           goto yy45;
1286       }
1287     }
1288     yych = *++p;
1289     if (yych <= '9') {
1290       if (yych <= ',') {
1291         if (yych != '+')
1292           goto yy45;
1293       } else {
1294         if (yych == '/')
1295           goto yy45;
1296       }
1297     } else {
1298       if (yych <= 'Z') {
1299         if (yych <= ':')
1300           goto yy47;
1301         if (yych <= '@')
1302           goto yy45;
1303       } else {
1304         if (yych <= '`')
1305           goto yy45;
1306         if (yych >= '{')
1307           goto yy45;
1308       }
1309     }
1310     yych = *++p;
1311     if (yych <= '9') {
1312       if (yych <= ',') {
1313         if (yych != '+')
1314           goto yy45;
1315       } else {
1316         if (yych == '/')
1317           goto yy45;
1318       }
1319     } else {
1320       if (yych <= 'Z') {
1321         if (yych <= ':')
1322           goto yy47;
1323         if (yych <= '@')
1324           goto yy45;
1325       } else {
1326         if (yych <= '`')
1327           goto yy45;
1328         if (yych >= '{')
1329           goto yy45;
1330       }
1331     }
1332     yych = *++p;
1333     if (yych <= '9') {
1334       if (yych <= ',') {
1335         if (yych != '+')
1336           goto yy45;
1337       } else {
1338         if (yych == '/')
1339           goto yy45;
1340       }
1341     } else {
1342       if (yych <= 'Z') {
1343         if (yych <= ':')
1344           goto yy47;
1345         if (yych <= '@')
1346           goto yy45;
1347       } else {
1348         if (yych <= '`')
1349           goto yy45;
1350         if (yych >= '{')
1351           goto yy45;
1352       }
1353     }
1354     yych = *++p;
1355     if (yych <= '9') {
1356       if (yych <= ',') {
1357         if (yych != '+')
1358           goto yy45;
1359       } else {
1360         if (yych == '/')
1361           goto yy45;
1362       }
1363     } else {
1364       if (yych <= 'Z') {
1365         if (yych <= ':')
1366           goto yy47;
1367         if (yych <= '@')
1368           goto yy45;
1369       } else {
1370         if (yych <= '`')
1371           goto yy45;
1372         if (yych >= '{')
1373           goto yy45;
1374       }
1375     }
1376     yych = *++p;
1377     if (yych <= '9') {
1378       if (yych <= ',') {
1379         if (yych != '+')
1380           goto yy45;
1381       } else {
1382         if (yych == '/')
1383           goto yy45;
1384       }
1385     } else {
1386       if (yych <= 'Z') {
1387         if (yych <= ':')
1388           goto yy47;
1389         if (yych <= '@')
1390           goto yy45;
1391       } else {
1392         if (yych <= '`')
1393           goto yy45;
1394         if (yych >= '{')
1395           goto yy45;
1396       }
1397     }
1398     yych = *++p;
1399     if (yych <= '9') {
1400       if (yych <= ',') {
1401         if (yych != '+')
1402           goto yy45;
1403       } else {
1404         if (yych == '/')
1405           goto yy45;
1406       }
1407     } else {
1408       if (yych <= 'Z') {
1409         if (yych <= ':')
1410           goto yy47;
1411         if (yych <= '@')
1412           goto yy45;
1413       } else {
1414         if (yych <= '`')
1415           goto yy45;
1416         if (yych >= '{')
1417           goto yy45;
1418       }
1419     }
1420     yych = *++p;
1421     if (yych <= '9') {
1422       if (yych <= ',') {
1423         if (yych != '+')
1424           goto yy45;
1425       } else {
1426         if (yych == '/')
1427           goto yy45;
1428       }
1429     } else {
1430       if (yych <= 'Z') {
1431         if (yych <= ':')
1432           goto yy47;
1433         if (yych <= '@')
1434           goto yy45;
1435       } else {
1436         if (yych <= '`')
1437           goto yy45;
1438         if (yych >= '{')
1439           goto yy45;
1440       }
1441     }
1442     yych = *++p;
1443     if (yych <= '9') {
1444       if (yych <= ',') {
1445         if (yych != '+')
1446           goto yy45;
1447       } else {
1448         if (yych == '/')
1449           goto yy45;
1450       }
1451     } else {
1452       if (yych <= 'Z') {
1453         if (yych <= ':')
1454           goto yy47;
1455         if (yych <= '@')
1456           goto yy45;
1457       } else {
1458         if (yych <= '`')
1459           goto yy45;
1460         if (yych >= '{')
1461           goto yy45;
1462       }
1463     }
1464     yych = *++p;
1465     if (yych <= '9') {
1466       if (yych <= ',') {
1467         if (yych != '+')
1468           goto yy45;
1469       } else {
1470         if (yych == '/')
1471           goto yy45;
1472       }
1473     } else {
1474       if (yych <= 'Z') {
1475         if (yych <= ':')
1476           goto yy47;
1477         if (yych <= '@')
1478           goto yy45;
1479       } else {
1480         if (yych <= '`')
1481           goto yy45;
1482         if (yych >= '{')
1483           goto yy45;
1484       }
1485     }
1486     yych = *++p;
1487     if (yych <= '9') {
1488       if (yych <= ',') {
1489         if (yych != '+')
1490           goto yy45;
1491       } else {
1492         if (yych == '/')
1493           goto yy45;
1494       }
1495     } else {
1496       if (yych <= 'Z') {
1497         if (yych <= ':')
1498           goto yy47;
1499         if (yych <= '@')
1500           goto yy45;
1501       } else {
1502         if (yych <= '`')
1503           goto yy45;
1504         if (yych >= '{')
1505           goto yy45;
1506       }
1507     }
1508     yych = *++p;
1509     if (yych <= '9') {
1510       if (yych <= ',') {
1511         if (yych != '+')
1512           goto yy45;
1513       } else {
1514         if (yych == '/')
1515           goto yy45;
1516       }
1517     } else {
1518       if (yych <= 'Z') {
1519         if (yych <= ':')
1520           goto yy47;
1521         if (yych <= '@')
1522           goto yy45;
1523       } else {
1524         if (yych <= '`')
1525           goto yy45;
1526         if (yych >= '{')
1527           goto yy45;
1528       }
1529     }
1530     yych = *++p;
1531     if (yych <= '9') {
1532       if (yych <= ',') {
1533         if (yych != '+')
1534           goto yy45;
1535       } else {
1536         if (yych == '/')
1537           goto yy45;
1538       }
1539     } else {
1540       if (yych <= 'Z') {
1541         if (yych <= ':')
1542           goto yy47;
1543         if (yych <= '@')
1544           goto yy45;
1545       } else {
1546         if (yych <= '`')
1547           goto yy45;
1548         if (yych >= '{')
1549           goto yy45;
1550       }
1551     }
1552     yych = *++p;
1553     if (yych <= '9') {
1554       if (yych <= ',') {
1555         if (yych != '+')
1556           goto yy45;
1557       } else {
1558         if (yych == '/')
1559           goto yy45;
1560       }
1561     } else {
1562       if (yych <= 'Z') {
1563         if (yych <= ':')
1564           goto yy47;
1565         if (yych <= '@')
1566           goto yy45;
1567       } else {
1568         if (yych <= '`')
1569           goto yy45;
1570         if (yych >= '{')
1571           goto yy45;
1572       }
1573     }
1574     yych = *++p;
1575     if (yych == ':')
1576       goto yy47;
1577     goto yy45;
1578   }
1579 }
1580 
1581 // Try to match email autolink after first <, returning num of chars matched.
_scan_autolink_email(const unsigned char * p)1582 bufsize_t _scan_autolink_email(const unsigned char *p) {
1583   const unsigned char *marker = NULL;
1584   const unsigned char *start = p;
1585 
1586   {
1587     unsigned char yych;
1588     static const unsigned char yybm[] = {
1589         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1590         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1591         0,   0,   0,   0,   0,   128, 0,   128, 128, 128, 128, 128, 0,   0,
1592         128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
1593         128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,
1594         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
1595         128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,
1596         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
1597         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
1598         128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1599         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1600         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1601         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1602         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1603         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1604         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1605         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1606         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
1607         0,   0,   0,   0,
1608     };
1609     yych = *p;
1610     if (yych <= '9') {
1611       if (yych <= '\'') {
1612         if (yych == '!')
1613           goto yy91;
1614         if (yych >= '#')
1615           goto yy91;
1616       } else {
1617         if (yych <= ')')
1618           goto yy89;
1619         if (yych != ',')
1620           goto yy91;
1621       }
1622     } else {
1623       if (yych <= '?') {
1624         if (yych == '=')
1625           goto yy91;
1626         if (yych >= '?')
1627           goto yy91;
1628       } else {
1629         if (yych <= 'Z') {
1630           if (yych >= 'A')
1631             goto yy91;
1632         } else {
1633           if (yych <= ']')
1634             goto yy89;
1635           if (yych <= '~')
1636             goto yy91;
1637         }
1638       }
1639     }
1640   yy89:
1641     ++p;
1642   yy90 : { return 0; }
1643   yy91:
1644     yych = *(marker = ++p);
1645     if (yych <= ',') {
1646       if (yych <= '"') {
1647         if (yych == '!')
1648           goto yy93;
1649         goto yy90;
1650       } else {
1651         if (yych <= '\'')
1652           goto yy93;
1653         if (yych <= ')')
1654           goto yy90;
1655         if (yych <= '+')
1656           goto yy93;
1657         goto yy90;
1658       }
1659     } else {
1660       if (yych <= '>') {
1661         if (yych <= '9')
1662           goto yy93;
1663         if (yych == '=')
1664           goto yy93;
1665         goto yy90;
1666       } else {
1667         if (yych <= 'Z')
1668           goto yy93;
1669         if (yych <= ']')
1670           goto yy90;
1671         if (yych <= '~')
1672           goto yy93;
1673         goto yy90;
1674       }
1675     }
1676   yy92:
1677     yych = *++p;
1678   yy93:
1679     if (yybm[0 + yych] & 128) {
1680       goto yy92;
1681     }
1682     if (yych <= '>')
1683       goto yy94;
1684     if (yych <= '@')
1685       goto yy95;
1686   yy94:
1687     p = marker;
1688     goto yy90;
1689   yy95:
1690     yych = *++p;
1691     if (yych <= '@') {
1692       if (yych <= '/')
1693         goto yy94;
1694       if (yych >= ':')
1695         goto yy94;
1696     } else {
1697       if (yych <= 'Z')
1698         goto yy96;
1699       if (yych <= '`')
1700         goto yy94;
1701       if (yych >= '{')
1702         goto yy94;
1703     }
1704   yy96:
1705     yych = *++p;
1706     if (yych <= '=') {
1707       if (yych <= '.') {
1708         if (yych <= ',')
1709           goto yy94;
1710         if (yych >= '.')
1711           goto yy95;
1712       } else {
1713         if (yych <= '/')
1714           goto yy94;
1715         if (yych <= '9')
1716           goto yy98;
1717         goto yy94;
1718       }
1719     } else {
1720       if (yych <= 'Z') {
1721         if (yych <= '>')
1722           goto yy99;
1723         if (yych <= '@')
1724           goto yy94;
1725         goto yy98;
1726       } else {
1727         if (yych <= '`')
1728           goto yy94;
1729         if (yych <= 'z')
1730           goto yy98;
1731         goto yy94;
1732       }
1733     }
1734     yych = *++p;
1735     if (yych <= '9') {
1736       if (yych == '-')
1737         goto yy101;
1738       if (yych <= '/')
1739         goto yy94;
1740       goto yy102;
1741     } else {
1742       if (yych <= 'Z') {
1743         if (yych <= '@')
1744           goto yy94;
1745         goto yy102;
1746       } else {
1747         if (yych <= '`')
1748           goto yy94;
1749         if (yych <= 'z')
1750           goto yy102;
1751         goto yy94;
1752       }
1753     }
1754   yy98:
1755     yych = *++p;
1756     if (yych <= '=') {
1757       if (yych <= '.') {
1758         if (yych <= ',')
1759           goto yy94;
1760         if (yych <= '-')
1761           goto yy101;
1762         goto yy95;
1763       } else {
1764         if (yych <= '/')
1765           goto yy94;
1766         if (yych <= '9')
1767           goto yy102;
1768         goto yy94;
1769       }
1770     } else {
1771       if (yych <= 'Z') {
1772         if (yych <= '>')
1773           goto yy99;
1774         if (yych <= '@')
1775           goto yy94;
1776         goto yy102;
1777       } else {
1778         if (yych <= '`')
1779           goto yy94;
1780         if (yych <= 'z')
1781           goto yy102;
1782         goto yy94;
1783       }
1784     }
1785   yy99:
1786     ++p;
1787     { return (bufsize_t)(p - start); }
1788   yy101:
1789     yych = *++p;
1790     if (yych <= '9') {
1791       if (yych == '-')
1792         goto yy103;
1793       if (yych <= '/')
1794         goto yy94;
1795       goto yy104;
1796     } else {
1797       if (yych <= 'Z') {
1798         if (yych <= '@')
1799           goto yy94;
1800         goto yy104;
1801       } else {
1802         if (yych <= '`')
1803           goto yy94;
1804         if (yych <= 'z')
1805           goto yy104;
1806         goto yy94;
1807       }
1808     }
1809   yy102:
1810     yych = *++p;
1811     if (yych <= '=') {
1812       if (yych <= '.') {
1813         if (yych <= ',')
1814           goto yy94;
1815         if (yych >= '.')
1816           goto yy95;
1817       } else {
1818         if (yych <= '/')
1819           goto yy94;
1820         if (yych <= '9')
1821           goto yy104;
1822         goto yy94;
1823       }
1824     } else {
1825       if (yych <= 'Z') {
1826         if (yych <= '>')
1827           goto yy99;
1828         if (yych <= '@')
1829           goto yy94;
1830         goto yy104;
1831       } else {
1832         if (yych <= '`')
1833           goto yy94;
1834         if (yych <= 'z')
1835           goto yy104;
1836         goto yy94;
1837       }
1838     }
1839   yy103:
1840     yych = *++p;
1841     if (yych <= '9') {
1842       if (yych == '-')
1843         goto yy105;
1844       if (yych <= '/')
1845         goto yy94;
1846       goto yy106;
1847     } else {
1848       if (yych <= 'Z') {
1849         if (yych <= '@')
1850           goto yy94;
1851         goto yy106;
1852       } else {
1853         if (yych <= '`')
1854           goto yy94;
1855         if (yych <= 'z')
1856           goto yy106;
1857         goto yy94;
1858       }
1859     }
1860   yy104:
1861     yych = *++p;
1862     if (yych <= '=') {
1863       if (yych <= '.') {
1864         if (yych <= ',')
1865           goto yy94;
1866         if (yych >= '.')
1867           goto yy95;
1868       } else {
1869         if (yych <= '/')
1870           goto yy94;
1871         if (yych <= '9')
1872           goto yy106;
1873         goto yy94;
1874       }
1875     } else {
1876       if (yych <= 'Z') {
1877         if (yych <= '>')
1878           goto yy99;
1879         if (yych <= '@')
1880           goto yy94;
1881         goto yy106;
1882       } else {
1883         if (yych <= '`')
1884           goto yy94;
1885         if (yych <= 'z')
1886           goto yy106;
1887         goto yy94;
1888       }
1889     }
1890   yy105:
1891     yych = *++p;
1892     if (yych <= '9') {
1893       if (yych == '-')
1894         goto yy107;
1895       if (yych <= '/')
1896         goto yy94;
1897       goto yy108;
1898     } else {
1899       if (yych <= 'Z') {
1900         if (yych <= '@')
1901           goto yy94;
1902         goto yy108;
1903       } else {
1904         if (yych <= '`')
1905           goto yy94;
1906         if (yych <= 'z')
1907           goto yy108;
1908         goto yy94;
1909       }
1910     }
1911   yy106:
1912     yych = *++p;
1913     if (yych <= '=') {
1914       if (yych <= '.') {
1915         if (yych <= ',')
1916           goto yy94;
1917         if (yych >= '.')
1918           goto yy95;
1919       } else {
1920         if (yych <= '/')
1921           goto yy94;
1922         if (yych <= '9')
1923           goto yy108;
1924         goto yy94;
1925       }
1926     } else {
1927       if (yych <= 'Z') {
1928         if (yych <= '>')
1929           goto yy99;
1930         if (yych <= '@')
1931           goto yy94;
1932         goto yy108;
1933       } else {
1934         if (yych <= '`')
1935           goto yy94;
1936         if (yych <= 'z')
1937           goto yy108;
1938         goto yy94;
1939       }
1940     }
1941   yy107:
1942     yych = *++p;
1943     if (yych <= '9') {
1944       if (yych == '-')
1945         goto yy109;
1946       if (yych <= '/')
1947         goto yy94;
1948       goto yy110;
1949     } else {
1950       if (yych <= 'Z') {
1951         if (yych <= '@')
1952           goto yy94;
1953         goto yy110;
1954       } else {
1955         if (yych <= '`')
1956           goto yy94;
1957         if (yych <= 'z')
1958           goto yy110;
1959         goto yy94;
1960       }
1961     }
1962   yy108:
1963     yych = *++p;
1964     if (yych <= '=') {
1965       if (yych <= '.') {
1966         if (yych <= ',')
1967           goto yy94;
1968         if (yych >= '.')
1969           goto yy95;
1970       } else {
1971         if (yych <= '/')
1972           goto yy94;
1973         if (yych <= '9')
1974           goto yy110;
1975         goto yy94;
1976       }
1977     } else {
1978       if (yych <= 'Z') {
1979         if (yych <= '>')
1980           goto yy99;
1981         if (yych <= '@')
1982           goto yy94;
1983         goto yy110;
1984       } else {
1985         if (yych <= '`')
1986           goto yy94;
1987         if (yych <= 'z')
1988           goto yy110;
1989         goto yy94;
1990       }
1991     }
1992   yy109:
1993     yych = *++p;
1994     if (yych <= '9') {
1995       if (yych == '-')
1996         goto yy111;
1997       if (yych <= '/')
1998         goto yy94;
1999       goto yy112;
2000     } else {
2001       if (yych <= 'Z') {
2002         if (yych <= '@')
2003           goto yy94;
2004         goto yy112;
2005       } else {
2006         if (yych <= '`')
2007           goto yy94;
2008         if (yych <= 'z')
2009           goto yy112;
2010         goto yy94;
2011       }
2012     }
2013   yy110:
2014     yych = *++p;
2015     if (yych <= '=') {
2016       if (yych <= '.') {
2017         if (yych <= ',')
2018           goto yy94;
2019         if (yych >= '.')
2020           goto yy95;
2021       } else {
2022         if (yych <= '/')
2023           goto yy94;
2024         if (yych <= '9')
2025           goto yy112;
2026         goto yy94;
2027       }
2028     } else {
2029       if (yych <= 'Z') {
2030         if (yych <= '>')
2031           goto yy99;
2032         if (yych <= '@')
2033           goto yy94;
2034         goto yy112;
2035       } else {
2036         if (yych <= '`')
2037           goto yy94;
2038         if (yych <= 'z')
2039           goto yy112;
2040         goto yy94;
2041       }
2042     }
2043   yy111:
2044     yych = *++p;
2045     if (yych <= '9') {
2046       if (yych == '-')
2047         goto yy113;
2048       if (yych <= '/')
2049         goto yy94;
2050       goto yy114;
2051     } else {
2052       if (yych <= 'Z') {
2053         if (yych <= '@')
2054           goto yy94;
2055         goto yy114;
2056       } else {
2057         if (yych <= '`')
2058           goto yy94;
2059         if (yych <= 'z')
2060           goto yy114;
2061         goto yy94;
2062       }
2063     }
2064   yy112:
2065     yych = *++p;
2066     if (yych <= '=') {
2067       if (yych <= '.') {
2068         if (yych <= ',')
2069           goto yy94;
2070         if (yych >= '.')
2071           goto yy95;
2072       } else {
2073         if (yych <= '/')
2074           goto yy94;
2075         if (yych <= '9')
2076           goto yy114;
2077         goto yy94;
2078       }
2079     } else {
2080       if (yych <= 'Z') {
2081         if (yych <= '>')
2082           goto yy99;
2083         if (yych <= '@')
2084           goto yy94;
2085         goto yy114;
2086       } else {
2087         if (yych <= '`')
2088           goto yy94;
2089         if (yych <= 'z')
2090           goto yy114;
2091         goto yy94;
2092       }
2093     }
2094   yy113:
2095     yych = *++p;
2096     if (yych <= '9') {
2097       if (yych == '-')
2098         goto yy115;
2099       if (yych <= '/')
2100         goto yy94;
2101       goto yy116;
2102     } else {
2103       if (yych <= 'Z') {
2104         if (yych <= '@')
2105           goto yy94;
2106         goto yy116;
2107       } else {
2108         if (yych <= '`')
2109           goto yy94;
2110         if (yych <= 'z')
2111           goto yy116;
2112         goto yy94;
2113       }
2114     }
2115   yy114:
2116     yych = *++p;
2117     if (yych <= '=') {
2118       if (yych <= '.') {
2119         if (yych <= ',')
2120           goto yy94;
2121         if (yych >= '.')
2122           goto yy95;
2123       } else {
2124         if (yych <= '/')
2125           goto yy94;
2126         if (yych <= '9')
2127           goto yy116;
2128         goto yy94;
2129       }
2130     } else {
2131       if (yych <= 'Z') {
2132         if (yych <= '>')
2133           goto yy99;
2134         if (yych <= '@')
2135           goto yy94;
2136         goto yy116;
2137       } else {
2138         if (yych <= '`')
2139           goto yy94;
2140         if (yych <= 'z')
2141           goto yy116;
2142         goto yy94;
2143       }
2144     }
2145   yy115:
2146     yych = *++p;
2147     if (yych <= '9') {
2148       if (yych == '-')
2149         goto yy117;
2150       if (yych <= '/')
2151         goto yy94;
2152       goto yy118;
2153     } else {
2154       if (yych <= 'Z') {
2155         if (yych <= '@')
2156           goto yy94;
2157         goto yy118;
2158       } else {
2159         if (yych <= '`')
2160           goto yy94;
2161         if (yych <= 'z')
2162           goto yy118;
2163         goto yy94;
2164       }
2165     }
2166   yy116:
2167     yych = *++p;
2168     if (yych <= '=') {
2169       if (yych <= '.') {
2170         if (yych <= ',')
2171           goto yy94;
2172         if (yych >= '.')
2173           goto yy95;
2174       } else {
2175         if (yych <= '/')
2176           goto yy94;
2177         if (yych <= '9')
2178           goto yy118;
2179         goto yy94;
2180       }
2181     } else {
2182       if (yych <= 'Z') {
2183         if (yych <= '>')
2184           goto yy99;
2185         if (yych <= '@')
2186           goto yy94;
2187         goto yy118;
2188       } else {
2189         if (yych <= '`')
2190           goto yy94;
2191         if (yych <= 'z')
2192           goto yy118;
2193         goto yy94;
2194       }
2195     }
2196   yy117:
2197     yych = *++p;
2198     if (yych <= '9') {
2199       if (yych == '-')
2200         goto yy119;
2201       if (yych <= '/')
2202         goto yy94;
2203       goto yy120;
2204     } else {
2205       if (yych <= 'Z') {
2206         if (yych <= '@')
2207           goto yy94;
2208         goto yy120;
2209       } else {
2210         if (yych <= '`')
2211           goto yy94;
2212         if (yych <= 'z')
2213           goto yy120;
2214         goto yy94;
2215       }
2216     }
2217   yy118:
2218     yych = *++p;
2219     if (yych <= '=') {
2220       if (yych <= '.') {
2221         if (yych <= ',')
2222           goto yy94;
2223         if (yych >= '.')
2224           goto yy95;
2225       } else {
2226         if (yych <= '/')
2227           goto yy94;
2228         if (yych <= '9')
2229           goto yy120;
2230         goto yy94;
2231       }
2232     } else {
2233       if (yych <= 'Z') {
2234         if (yych <= '>')
2235           goto yy99;
2236         if (yych <= '@')
2237           goto yy94;
2238         goto yy120;
2239       } else {
2240         if (yych <= '`')
2241           goto yy94;
2242         if (yych <= 'z')
2243           goto yy120;
2244         goto yy94;
2245       }
2246     }
2247   yy119:
2248     yych = *++p;
2249     if (yych <= '9') {
2250       if (yych == '-')
2251         goto yy121;
2252       if (yych <= '/')
2253         goto yy94;
2254       goto yy122;
2255     } else {
2256       if (yych <= 'Z') {
2257         if (yych <= '@')
2258           goto yy94;
2259         goto yy122;
2260       } else {
2261         if (yych <= '`')
2262           goto yy94;
2263         if (yych <= 'z')
2264           goto yy122;
2265         goto yy94;
2266       }
2267     }
2268   yy120:
2269     yych = *++p;
2270     if (yych <= '=') {
2271       if (yych <= '.') {
2272         if (yych <= ',')
2273           goto yy94;
2274         if (yych >= '.')
2275           goto yy95;
2276       } else {
2277         if (yych <= '/')
2278           goto yy94;
2279         if (yych <= '9')
2280           goto yy122;
2281         goto yy94;
2282       }
2283     } else {
2284       if (yych <= 'Z') {
2285         if (yych <= '>')
2286           goto yy99;
2287         if (yych <= '@')
2288           goto yy94;
2289         goto yy122;
2290       } else {
2291         if (yych <= '`')
2292           goto yy94;
2293         if (yych <= 'z')
2294           goto yy122;
2295         goto yy94;
2296       }
2297     }
2298   yy121:
2299     yych = *++p;
2300     if (yych <= '9') {
2301       if (yych == '-')
2302         goto yy123;
2303       if (yych <= '/')
2304         goto yy94;
2305       goto yy124;
2306     } else {
2307       if (yych <= 'Z') {
2308         if (yych <= '@')
2309           goto yy94;
2310         goto yy124;
2311       } else {
2312         if (yych <= '`')
2313           goto yy94;
2314         if (yych <= 'z')
2315           goto yy124;
2316         goto yy94;
2317       }
2318     }
2319   yy122:
2320     yych = *++p;
2321     if (yych <= '=') {
2322       if (yych <= '.') {
2323         if (yych <= ',')
2324           goto yy94;
2325         if (yych >= '.')
2326           goto yy95;
2327       } else {
2328         if (yych <= '/')
2329           goto yy94;
2330         if (yych <= '9')
2331           goto yy124;
2332         goto yy94;
2333       }
2334     } else {
2335       if (yych <= 'Z') {
2336         if (yych <= '>')
2337           goto yy99;
2338         if (yych <= '@')
2339           goto yy94;
2340         goto yy124;
2341       } else {
2342         if (yych <= '`')
2343           goto yy94;
2344         if (yych <= 'z')
2345           goto yy124;
2346         goto yy94;
2347       }
2348     }
2349   yy123:
2350     yych = *++p;
2351     if (yych <= '9') {
2352       if (yych == '-')
2353         goto yy125;
2354       if (yych <= '/')
2355         goto yy94;
2356       goto yy126;
2357     } else {
2358       if (yych <= 'Z') {
2359         if (yych <= '@')
2360           goto yy94;
2361         goto yy126;
2362       } else {
2363         if (yych <= '`')
2364           goto yy94;
2365         if (yych <= 'z')
2366           goto yy126;
2367         goto yy94;
2368       }
2369     }
2370   yy124:
2371     yych = *++p;
2372     if (yych <= '=') {
2373       if (yych <= '.') {
2374         if (yych <= ',')
2375           goto yy94;
2376         if (yych >= '.')
2377           goto yy95;
2378       } else {
2379         if (yych <= '/')
2380           goto yy94;
2381         if (yych <= '9')
2382           goto yy126;
2383         goto yy94;
2384       }
2385     } else {
2386       if (yych <= 'Z') {
2387         if (yych <= '>')
2388           goto yy99;
2389         if (yych <= '@')
2390           goto yy94;
2391         goto yy126;
2392       } else {
2393         if (yych <= '`')
2394           goto yy94;
2395         if (yych <= 'z')
2396           goto yy126;
2397         goto yy94;
2398       }
2399     }
2400   yy125:
2401     yych = *++p;
2402     if (yych <= '9') {
2403       if (yych == '-')
2404         goto yy127;
2405       if (yych <= '/')
2406         goto yy94;
2407       goto yy128;
2408     } else {
2409       if (yych <= 'Z') {
2410         if (yych <= '@')
2411           goto yy94;
2412         goto yy128;
2413       } else {
2414         if (yych <= '`')
2415           goto yy94;
2416         if (yych <= 'z')
2417           goto yy128;
2418         goto yy94;
2419       }
2420     }
2421   yy126:
2422     yych = *++p;
2423     if (yych <= '=') {
2424       if (yych <= '.') {
2425         if (yych <= ',')
2426           goto yy94;
2427         if (yych >= '.')
2428           goto yy95;
2429       } else {
2430         if (yych <= '/')
2431           goto yy94;
2432         if (yych <= '9')
2433           goto yy128;
2434         goto yy94;
2435       }
2436     } else {
2437       if (yych <= 'Z') {
2438         if (yych <= '>')
2439           goto yy99;
2440         if (yych <= '@')
2441           goto yy94;
2442         goto yy128;
2443       } else {
2444         if (yych <= '`')
2445           goto yy94;
2446         if (yych <= 'z')
2447           goto yy128;
2448         goto yy94;
2449       }
2450     }
2451   yy127:
2452     yych = *++p;
2453     if (yych <= '9') {
2454       if (yych == '-')
2455         goto yy129;
2456       if (yych <= '/')
2457         goto yy94;
2458       goto yy130;
2459     } else {
2460       if (yych <= 'Z') {
2461         if (yych <= '@')
2462           goto yy94;
2463         goto yy130;
2464       } else {
2465         if (yych <= '`')
2466           goto yy94;
2467         if (yych <= 'z')
2468           goto yy130;
2469         goto yy94;
2470       }
2471     }
2472   yy128:
2473     yych = *++p;
2474     if (yych <= '=') {
2475       if (yych <= '.') {
2476         if (yych <= ',')
2477           goto yy94;
2478         if (yych >= '.')
2479           goto yy95;
2480       } else {
2481         if (yych <= '/')
2482           goto yy94;
2483         if (yych <= '9')
2484           goto yy130;
2485         goto yy94;
2486       }
2487     } else {
2488       if (yych <= 'Z') {
2489         if (yych <= '>')
2490           goto yy99;
2491         if (yych <= '@')
2492           goto yy94;
2493         goto yy130;
2494       } else {
2495         if (yych <= '`')
2496           goto yy94;
2497         if (yych <= 'z')
2498           goto yy130;
2499         goto yy94;
2500       }
2501     }
2502   yy129:
2503     yych = *++p;
2504     if (yych <= '9') {
2505       if (yych == '-')
2506         goto yy131;
2507       if (yych <= '/')
2508         goto yy94;
2509       goto yy132;
2510     } else {
2511       if (yych <= 'Z') {
2512         if (yych <= '@')
2513           goto yy94;
2514         goto yy132;
2515       } else {
2516         if (yych <= '`')
2517           goto yy94;
2518         if (yych <= 'z')
2519           goto yy132;
2520         goto yy94;
2521       }
2522     }
2523   yy130:
2524     yych = *++p;
2525     if (yych <= '=') {
2526       if (yych <= '.') {
2527         if (yych <= ',')
2528           goto yy94;
2529         if (yych >= '.')
2530           goto yy95;
2531       } else {
2532         if (yych <= '/')
2533           goto yy94;
2534         if (yych <= '9')
2535           goto yy132;
2536         goto yy94;
2537       }
2538     } else {
2539       if (yych <= 'Z') {
2540         if (yych <= '>')
2541           goto yy99;
2542         if (yych <= '@')
2543           goto yy94;
2544         goto yy132;
2545       } else {
2546         if (yych <= '`')
2547           goto yy94;
2548         if (yych <= 'z')
2549           goto yy132;
2550         goto yy94;
2551       }
2552     }
2553   yy131:
2554     yych = *++p;
2555     if (yych <= '9') {
2556       if (yych == '-')
2557         goto yy133;
2558       if (yych <= '/')
2559         goto yy94;
2560       goto yy134;
2561     } else {
2562       if (yych <= 'Z') {
2563         if (yych <= '@')
2564           goto yy94;
2565         goto yy134;
2566       } else {
2567         if (yych <= '`')
2568           goto yy94;
2569         if (yych <= 'z')
2570           goto yy134;
2571         goto yy94;
2572       }
2573     }
2574   yy132:
2575     yych = *++p;
2576     if (yych <= '=') {
2577       if (yych <= '.') {
2578         if (yych <= ',')
2579           goto yy94;
2580         if (yych >= '.')
2581           goto yy95;
2582       } else {
2583         if (yych <= '/')
2584           goto yy94;
2585         if (yych <= '9')
2586           goto yy134;
2587         goto yy94;
2588       }
2589     } else {
2590       if (yych <= 'Z') {
2591         if (yych <= '>')
2592           goto yy99;
2593         if (yych <= '@')
2594           goto yy94;
2595         goto yy134;
2596       } else {
2597         if (yych <= '`')
2598           goto yy94;
2599         if (yych <= 'z')
2600           goto yy134;
2601         goto yy94;
2602       }
2603     }
2604   yy133:
2605     yych = *++p;
2606     if (yych <= '9') {
2607       if (yych == '-')
2608         goto yy135;
2609       if (yych <= '/')
2610         goto yy94;
2611       goto yy136;
2612     } else {
2613       if (yych <= 'Z') {
2614         if (yych <= '@')
2615           goto yy94;
2616         goto yy136;
2617       } else {
2618         if (yych <= '`')
2619           goto yy94;
2620         if (yych <= 'z')
2621           goto yy136;
2622         goto yy94;
2623       }
2624     }
2625   yy134:
2626     yych = *++p;
2627     if (yych <= '=') {
2628       if (yych <= '.') {
2629         if (yych <= ',')
2630           goto yy94;
2631         if (yych >= '.')
2632           goto yy95;
2633       } else {
2634         if (yych <= '/')
2635           goto yy94;
2636         if (yych <= '9')
2637           goto yy136;
2638         goto yy94;
2639       }
2640     } else {
2641       if (yych <= 'Z') {
2642         if (yych <= '>')
2643           goto yy99;
2644         if (yych <= '@')
2645           goto yy94;
2646         goto yy136;
2647       } else {
2648         if (yych <= '`')
2649           goto yy94;
2650         if (yych <= 'z')
2651           goto yy136;
2652         goto yy94;
2653       }
2654     }
2655   yy135:
2656     yych = *++p;
2657     if (yych <= '9') {
2658       if (yych == '-')
2659         goto yy137;
2660       if (yych <= '/')
2661         goto yy94;
2662       goto yy138;
2663     } else {
2664       if (yych <= 'Z') {
2665         if (yych <= '@')
2666           goto yy94;
2667         goto yy138;
2668       } else {
2669         if (yych <= '`')
2670           goto yy94;
2671         if (yych <= 'z')
2672           goto yy138;
2673         goto yy94;
2674       }
2675     }
2676   yy136:
2677     yych = *++p;
2678     if (yych <= '=') {
2679       if (yych <= '.') {
2680         if (yych <= ',')
2681           goto yy94;
2682         if (yych >= '.')
2683           goto yy95;
2684       } else {
2685         if (yych <= '/')
2686           goto yy94;
2687         if (yych <= '9')
2688           goto yy138;
2689         goto yy94;
2690       }
2691     } else {
2692       if (yych <= 'Z') {
2693         if (yych <= '>')
2694           goto yy99;
2695         if (yych <= '@')
2696           goto yy94;
2697         goto yy138;
2698       } else {
2699         if (yych <= '`')
2700           goto yy94;
2701         if (yych <= 'z')
2702           goto yy138;
2703         goto yy94;
2704       }
2705     }
2706   yy137:
2707     yych = *++p;
2708     if (yych <= '9') {
2709       if (yych == '-')
2710         goto yy139;
2711       if (yych <= '/')
2712         goto yy94;
2713       goto yy140;
2714     } else {
2715       if (yych <= 'Z') {
2716         if (yych <= '@')
2717           goto yy94;
2718         goto yy140;
2719       } else {
2720         if (yych <= '`')
2721           goto yy94;
2722         if (yych <= 'z')
2723           goto yy140;
2724         goto yy94;
2725       }
2726     }
2727   yy138:
2728     yych = *++p;
2729     if (yych <= '=') {
2730       if (yych <= '.') {
2731         if (yych <= ',')
2732           goto yy94;
2733         if (yych >= '.')
2734           goto yy95;
2735       } else {
2736         if (yych <= '/')
2737           goto yy94;
2738         if (yych <= '9')
2739           goto yy140;
2740         goto yy94;
2741       }
2742     } else {
2743       if (yych <= 'Z') {
2744         if (yych <= '>')
2745           goto yy99;
2746         if (yych <= '@')
2747           goto yy94;
2748         goto yy140;
2749       } else {
2750         if (yych <= '`')
2751           goto yy94;
2752         if (yych <= 'z')
2753           goto yy140;
2754         goto yy94;
2755       }
2756     }
2757   yy139:
2758     yych = *++p;
2759     if (yych <= '9') {
2760       if (yych == '-')
2761         goto yy141;
2762       if (yych <= '/')
2763         goto yy94;
2764       goto yy142;
2765     } else {
2766       if (yych <= 'Z') {
2767         if (yych <= '@')
2768           goto yy94;
2769         goto yy142;
2770       } else {
2771         if (yych <= '`')
2772           goto yy94;
2773         if (yych <= 'z')
2774           goto yy142;
2775         goto yy94;
2776       }
2777     }
2778   yy140:
2779     yych = *++p;
2780     if (yych <= '=') {
2781       if (yych <= '.') {
2782         if (yych <= ',')
2783           goto yy94;
2784         if (yych >= '.')
2785           goto yy95;
2786       } else {
2787         if (yych <= '/')
2788           goto yy94;
2789         if (yych <= '9')
2790           goto yy142;
2791         goto yy94;
2792       }
2793     } else {
2794       if (yych <= 'Z') {
2795         if (yych <= '>')
2796           goto yy99;
2797         if (yych <= '@')
2798           goto yy94;
2799         goto yy142;
2800       } else {
2801         if (yych <= '`')
2802           goto yy94;
2803         if (yych <= 'z')
2804           goto yy142;
2805         goto yy94;
2806       }
2807     }
2808   yy141:
2809     yych = *++p;
2810     if (yych <= '9') {
2811       if (yych == '-')
2812         goto yy143;
2813       if (yych <= '/')
2814         goto yy94;
2815       goto yy144;
2816     } else {
2817       if (yych <= 'Z') {
2818         if (yych <= '@')
2819           goto yy94;
2820         goto yy144;
2821       } else {
2822         if (yych <= '`')
2823           goto yy94;
2824         if (yych <= 'z')
2825           goto yy144;
2826         goto yy94;
2827       }
2828     }
2829   yy142:
2830     yych = *++p;
2831     if (yych <= '=') {
2832       if (yych <= '.') {
2833         if (yych <= ',')
2834           goto yy94;
2835         if (yych >= '.')
2836           goto yy95;
2837       } else {
2838         if (yych <= '/')
2839           goto yy94;
2840         if (yych <= '9')
2841           goto yy144;
2842         goto yy94;
2843       }
2844     } else {
2845       if (yych <= 'Z') {
2846         if (yych <= '>')
2847           goto yy99;
2848         if (yych <= '@')
2849           goto yy94;
2850         goto yy144;
2851       } else {
2852         if (yych <= '`')
2853           goto yy94;
2854         if (yych <= 'z')
2855           goto yy144;
2856         goto yy94;
2857       }
2858     }
2859   yy143:
2860     yych = *++p;
2861     if (yych <= '9') {
2862       if (yych == '-')
2863         goto yy145;
2864       if (yych <= '/')
2865         goto yy94;
2866       goto yy146;
2867     } else {
2868       if (yych <= 'Z') {
2869         if (yych <= '@')
2870           goto yy94;
2871         goto yy146;
2872       } else {
2873         if (yych <= '`')
2874           goto yy94;
2875         if (yych <= 'z')
2876           goto yy146;
2877         goto yy94;
2878       }
2879     }
2880   yy144:
2881     yych = *++p;
2882     if (yych <= '=') {
2883       if (yych <= '.') {
2884         if (yych <= ',')
2885           goto yy94;
2886         if (yych >= '.')
2887           goto yy95;
2888       } else {
2889         if (yych <= '/')
2890           goto yy94;
2891         if (yych <= '9')
2892           goto yy146;
2893         goto yy94;
2894       }
2895     } else {
2896       if (yych <= 'Z') {
2897         if (yych <= '>')
2898           goto yy99;
2899         if (yych <= '@')
2900           goto yy94;
2901         goto yy146;
2902       } else {
2903         if (yych <= '`')
2904           goto yy94;
2905         if (yych <= 'z')
2906           goto yy146;
2907         goto yy94;
2908       }
2909     }
2910   yy145:
2911     yych = *++p;
2912     if (yych <= '9') {
2913       if (yych == '-')
2914         goto yy147;
2915       if (yych <= '/')
2916         goto yy94;
2917       goto yy148;
2918     } else {
2919       if (yych <= 'Z') {
2920         if (yych <= '@')
2921           goto yy94;
2922         goto yy148;
2923       } else {
2924         if (yych <= '`')
2925           goto yy94;
2926         if (yych <= 'z')
2927           goto yy148;
2928         goto yy94;
2929       }
2930     }
2931   yy146:
2932     yych = *++p;
2933     if (yych <= '=') {
2934       if (yych <= '.') {
2935         if (yych <= ',')
2936           goto yy94;
2937         if (yych >= '.')
2938           goto yy95;
2939       } else {
2940         if (yych <= '/')
2941           goto yy94;
2942         if (yych <= '9')
2943           goto yy148;
2944         goto yy94;
2945       }
2946     } else {
2947       if (yych <= 'Z') {
2948         if (yych <= '>')
2949           goto yy99;
2950         if (yych <= '@')
2951           goto yy94;
2952         goto yy148;
2953       } else {
2954         if (yych <= '`')
2955           goto yy94;
2956         if (yych <= 'z')
2957           goto yy148;
2958         goto yy94;
2959       }
2960     }
2961   yy147:
2962     yych = *++p;
2963     if (yych <= '9') {
2964       if (yych == '-')
2965         goto yy149;
2966       if (yych <= '/')
2967         goto yy94;
2968       goto yy150;
2969     } else {
2970       if (yych <= 'Z') {
2971         if (yych <= '@')
2972           goto yy94;
2973         goto yy150;
2974       } else {
2975         if (yych <= '`')
2976           goto yy94;
2977         if (yych <= 'z')
2978           goto yy150;
2979         goto yy94;
2980       }
2981     }
2982   yy148:
2983     yych = *++p;
2984     if (yych <= '=') {
2985       if (yych <= '.') {
2986         if (yych <= ',')
2987           goto yy94;
2988         if (yych >= '.')
2989           goto yy95;
2990       } else {
2991         if (yych <= '/')
2992           goto yy94;
2993         if (yych <= '9')
2994           goto yy150;
2995         goto yy94;
2996       }
2997     } else {
2998       if (yych <= 'Z') {
2999         if (yych <= '>')
3000           goto yy99;
3001         if (yych <= '@')
3002           goto yy94;
3003         goto yy150;
3004       } else {
3005         if (yych <= '`')
3006           goto yy94;
3007         if (yych <= 'z')
3008           goto yy150;
3009         goto yy94;
3010       }
3011     }
3012   yy149:
3013     yych = *++p;
3014     if (yych <= '9') {
3015       if (yych == '-')
3016         goto yy151;
3017       if (yych <= '/')
3018         goto yy94;
3019       goto yy152;
3020     } else {
3021       if (yych <= 'Z') {
3022         if (yych <= '@')
3023           goto yy94;
3024         goto yy152;
3025       } else {
3026         if (yych <= '`')
3027           goto yy94;
3028         if (yych <= 'z')
3029           goto yy152;
3030         goto yy94;
3031       }
3032     }
3033   yy150:
3034     yych = *++p;
3035     if (yych <= '=') {
3036       if (yych <= '.') {
3037         if (yych <= ',')
3038           goto yy94;
3039         if (yych >= '.')
3040           goto yy95;
3041       } else {
3042         if (yych <= '/')
3043           goto yy94;
3044         if (yych <= '9')
3045           goto yy152;
3046         goto yy94;
3047       }
3048     } else {
3049       if (yych <= 'Z') {
3050         if (yych <= '>')
3051           goto yy99;
3052         if (yych <= '@')
3053           goto yy94;
3054         goto yy152;
3055       } else {
3056         if (yych <= '`')
3057           goto yy94;
3058         if (yych <= 'z')
3059           goto yy152;
3060         goto yy94;
3061       }
3062     }
3063   yy151:
3064     yych = *++p;
3065     if (yych <= '9') {
3066       if (yych == '-')
3067         goto yy153;
3068       if (yych <= '/')
3069         goto yy94;
3070       goto yy154;
3071     } else {
3072       if (yych <= 'Z') {
3073         if (yych <= '@')
3074           goto yy94;
3075         goto yy154;
3076       } else {
3077         if (yych <= '`')
3078           goto yy94;
3079         if (yych <= 'z')
3080           goto yy154;
3081         goto yy94;
3082       }
3083     }
3084   yy152:
3085     yych = *++p;
3086     if (yych <= '=') {
3087       if (yych <= '.') {
3088         if (yych <= ',')
3089           goto yy94;
3090         if (yych >= '.')
3091           goto yy95;
3092       } else {
3093         if (yych <= '/')
3094           goto yy94;
3095         if (yych <= '9')
3096           goto yy154;
3097         goto yy94;
3098       }
3099     } else {
3100       if (yych <= 'Z') {
3101         if (yych <= '>')
3102           goto yy99;
3103         if (yych <= '@')
3104           goto yy94;
3105         goto yy154;
3106       } else {
3107         if (yych <= '`')
3108           goto yy94;
3109         if (yych <= 'z')
3110           goto yy154;
3111         goto yy94;
3112       }
3113     }
3114   yy153:
3115     yych = *++p;
3116     if (yych <= '9') {
3117       if (yych == '-')
3118         goto yy155;
3119       if (yych <= '/')
3120         goto yy94;
3121       goto yy156;
3122     } else {
3123       if (yych <= 'Z') {
3124         if (yych <= '@')
3125           goto yy94;
3126         goto yy156;
3127       } else {
3128         if (yych <= '`')
3129           goto yy94;
3130         if (yych <= 'z')
3131           goto yy156;
3132         goto yy94;
3133       }
3134     }
3135   yy154:
3136     yych = *++p;
3137     if (yych <= '=') {
3138       if (yych <= '.') {
3139         if (yych <= ',')
3140           goto yy94;
3141         if (yych >= '.')
3142           goto yy95;
3143       } else {
3144         if (yych <= '/')
3145           goto yy94;
3146         if (yych <= '9')
3147           goto yy156;
3148         goto yy94;
3149       }
3150     } else {
3151       if (yych <= 'Z') {
3152         if (yych <= '>')
3153           goto yy99;
3154         if (yych <= '@')
3155           goto yy94;
3156         goto yy156;
3157       } else {
3158         if (yych <= '`')
3159           goto yy94;
3160         if (yych <= 'z')
3161           goto yy156;
3162         goto yy94;
3163       }
3164     }
3165   yy155:
3166     yych = *++p;
3167     if (yych <= '9') {
3168       if (yych == '-')
3169         goto yy157;
3170       if (yych <= '/')
3171         goto yy94;
3172       goto yy158;
3173     } else {
3174       if (yych <= 'Z') {
3175         if (yych <= '@')
3176           goto yy94;
3177         goto yy158;
3178       } else {
3179         if (yych <= '`')
3180           goto yy94;
3181         if (yych <= 'z')
3182           goto yy158;
3183         goto yy94;
3184       }
3185     }
3186   yy156:
3187     yych = *++p;
3188     if (yych <= '=') {
3189       if (yych <= '.') {
3190         if (yych <= ',')
3191           goto yy94;
3192         if (yych >= '.')
3193           goto yy95;
3194       } else {
3195         if (yych <= '/')
3196           goto yy94;
3197         if (yych <= '9')
3198           goto yy158;
3199         goto yy94;
3200       }
3201     } else {
3202       if (yych <= 'Z') {
3203         if (yych <= '>')
3204           goto yy99;
3205         if (yych <= '@')
3206           goto yy94;
3207         goto yy158;
3208       } else {
3209         if (yych <= '`')
3210           goto yy94;
3211         if (yych <= 'z')
3212           goto yy158;
3213         goto yy94;
3214       }
3215     }
3216   yy157:
3217     yych = *++p;
3218     if (yych <= '9') {
3219       if (yych == '-')
3220         goto yy159;
3221       if (yych <= '/')
3222         goto yy94;
3223       goto yy160;
3224     } else {
3225       if (yych <= 'Z') {
3226         if (yych <= '@')
3227           goto yy94;
3228         goto yy160;
3229       } else {
3230         if (yych <= '`')
3231           goto yy94;
3232         if (yych <= 'z')
3233           goto yy160;
3234         goto yy94;
3235       }
3236     }
3237   yy158:
3238     yych = *++p;
3239     if (yych <= '=') {
3240       if (yych <= '.') {
3241         if (yych <= ',')
3242           goto yy94;
3243         if (yych >= '.')
3244           goto yy95;
3245       } else {
3246         if (yych <= '/')
3247           goto yy94;
3248         if (yych <= '9')
3249           goto yy160;
3250         goto yy94;
3251       }
3252     } else {
3253       if (yych <= 'Z') {
3254         if (yych <= '>')
3255           goto yy99;
3256         if (yych <= '@')
3257           goto yy94;
3258         goto yy160;
3259       } else {
3260         if (yych <= '`')
3261           goto yy94;
3262         if (yych <= 'z')
3263           goto yy160;
3264         goto yy94;
3265       }
3266     }
3267   yy159:
3268     yych = *++p;
3269     if (yych <= '9') {
3270       if (yych == '-')
3271         goto yy161;
3272       if (yych <= '/')
3273         goto yy94;
3274       goto yy162;
3275     } else {
3276       if (yych <= 'Z') {
3277         if (yych <= '@')
3278           goto yy94;
3279         goto yy162;
3280       } else {
3281         if (yych <= '`')
3282           goto yy94;
3283         if (yych <= 'z')
3284           goto yy162;
3285         goto yy94;
3286       }
3287     }
3288   yy160:
3289     yych = *++p;
3290     if (yych <= '=') {
3291       if (yych <= '.') {
3292         if (yych <= ',')
3293           goto yy94;
3294         if (yych >= '.')
3295           goto yy95;
3296       } else {
3297         if (yych <= '/')
3298           goto yy94;
3299         if (yych <= '9')
3300           goto yy162;
3301         goto yy94;
3302       }
3303     } else {
3304       if (yych <= 'Z') {
3305         if (yych <= '>')
3306           goto yy99;
3307         if (yych <= '@')
3308           goto yy94;
3309         goto yy162;
3310       } else {
3311         if (yych <= '`')
3312           goto yy94;
3313         if (yych <= 'z')
3314           goto yy162;
3315         goto yy94;
3316       }
3317     }
3318   yy161:
3319     yych = *++p;
3320     if (yych <= '9') {
3321       if (yych == '-')
3322         goto yy163;
3323       if (yych <= '/')
3324         goto yy94;
3325       goto yy164;
3326     } else {
3327       if (yych <= 'Z') {
3328         if (yych <= '@')
3329           goto yy94;
3330         goto yy164;
3331       } else {
3332         if (yych <= '`')
3333           goto yy94;
3334         if (yych <= 'z')
3335           goto yy164;
3336         goto yy94;
3337       }
3338     }
3339   yy162:
3340     yych = *++p;
3341     if (yych <= '=') {
3342       if (yych <= '.') {
3343         if (yych <= ',')
3344           goto yy94;
3345         if (yych >= '.')
3346           goto yy95;
3347       } else {
3348         if (yych <= '/')
3349           goto yy94;
3350         if (yych <= '9')
3351           goto yy164;
3352         goto yy94;
3353       }
3354     } else {
3355       if (yych <= 'Z') {
3356         if (yych <= '>')
3357           goto yy99;
3358         if (yych <= '@')
3359           goto yy94;
3360         goto yy164;
3361       } else {
3362         if (yych <= '`')
3363           goto yy94;
3364         if (yych <= 'z')
3365           goto yy164;
3366         goto yy94;
3367       }
3368     }
3369   yy163:
3370     yych = *++p;
3371     if (yych <= '9') {
3372       if (yych == '-')
3373         goto yy165;
3374       if (yych <= '/')
3375         goto yy94;
3376       goto yy166;
3377     } else {
3378       if (yych <= 'Z') {
3379         if (yych <= '@')
3380           goto yy94;
3381         goto yy166;
3382       } else {
3383         if (yych <= '`')
3384           goto yy94;
3385         if (yych <= 'z')
3386           goto yy166;
3387         goto yy94;
3388       }
3389     }
3390   yy164:
3391     yych = *++p;
3392     if (yych <= '=') {
3393       if (yych <= '.') {
3394         if (yych <= ',')
3395           goto yy94;
3396         if (yych >= '.')
3397           goto yy95;
3398       } else {
3399         if (yych <= '/')
3400           goto yy94;
3401         if (yych <= '9')
3402           goto yy166;
3403         goto yy94;
3404       }
3405     } else {
3406       if (yych <= 'Z') {
3407         if (yych <= '>')
3408           goto yy99;
3409         if (yych <= '@')
3410           goto yy94;
3411         goto yy166;
3412       } else {
3413         if (yych <= '`')
3414           goto yy94;
3415         if (yych <= 'z')
3416           goto yy166;
3417         goto yy94;
3418       }
3419     }
3420   yy165:
3421     yych = *++p;
3422     if (yych <= '9') {
3423       if (yych == '-')
3424         goto yy167;
3425       if (yych <= '/')
3426         goto yy94;
3427       goto yy168;
3428     } else {
3429       if (yych <= 'Z') {
3430         if (yych <= '@')
3431           goto yy94;
3432         goto yy168;
3433       } else {
3434         if (yych <= '`')
3435           goto yy94;
3436         if (yych <= 'z')
3437           goto yy168;
3438         goto yy94;
3439       }
3440     }
3441   yy166:
3442     yych = *++p;
3443     if (yych <= '=') {
3444       if (yych <= '.') {
3445         if (yych <= ',')
3446           goto yy94;
3447         if (yych >= '.')
3448           goto yy95;
3449       } else {
3450         if (yych <= '/')
3451           goto yy94;
3452         if (yych <= '9')
3453           goto yy168;
3454         goto yy94;
3455       }
3456     } else {
3457       if (yych <= 'Z') {
3458         if (yych <= '>')
3459           goto yy99;
3460         if (yych <= '@')
3461           goto yy94;
3462         goto yy168;
3463       } else {
3464         if (yych <= '`')
3465           goto yy94;
3466         if (yych <= 'z')
3467           goto yy168;
3468         goto yy94;
3469       }
3470     }
3471   yy167:
3472     yych = *++p;
3473     if (yych <= '9') {
3474       if (yych == '-')
3475         goto yy169;
3476       if (yych <= '/')
3477         goto yy94;
3478       goto yy170;
3479     } else {
3480       if (yych <= 'Z') {
3481         if (yych <= '@')
3482           goto yy94;
3483         goto yy170;
3484       } else {
3485         if (yych <= '`')
3486           goto yy94;
3487         if (yych <= 'z')
3488           goto yy170;
3489         goto yy94;
3490       }
3491     }
3492   yy168:
3493     yych = *++p;
3494     if (yych <= '=') {
3495       if (yych <= '.') {
3496         if (yych <= ',')
3497           goto yy94;
3498         if (yych >= '.')
3499           goto yy95;
3500       } else {
3501         if (yych <= '/')
3502           goto yy94;
3503         if (yych <= '9')
3504           goto yy170;
3505         goto yy94;
3506       }
3507     } else {
3508       if (yych <= 'Z') {
3509         if (yych <= '>')
3510           goto yy99;
3511         if (yych <= '@')
3512           goto yy94;
3513         goto yy170;
3514       } else {
3515         if (yych <= '`')
3516           goto yy94;
3517         if (yych <= 'z')
3518           goto yy170;
3519         goto yy94;
3520       }
3521     }
3522   yy169:
3523     yych = *++p;
3524     if (yych <= '9') {
3525       if (yych == '-')
3526         goto yy171;
3527       if (yych <= '/')
3528         goto yy94;
3529       goto yy172;
3530     } else {
3531       if (yych <= 'Z') {
3532         if (yych <= '@')
3533           goto yy94;
3534         goto yy172;
3535       } else {
3536         if (yych <= '`')
3537           goto yy94;
3538         if (yych <= 'z')
3539           goto yy172;
3540         goto yy94;
3541       }
3542     }
3543   yy170:
3544     yych = *++p;
3545     if (yych <= '=') {
3546       if (yych <= '.') {
3547         if (yych <= ',')
3548           goto yy94;
3549         if (yych >= '.')
3550           goto yy95;
3551       } else {
3552         if (yych <= '/')
3553           goto yy94;
3554         if (yych <= '9')
3555           goto yy172;
3556         goto yy94;
3557       }
3558     } else {
3559       if (yych <= 'Z') {
3560         if (yych <= '>')
3561           goto yy99;
3562         if (yych <= '@')
3563           goto yy94;
3564         goto yy172;
3565       } else {
3566         if (yych <= '`')
3567           goto yy94;
3568         if (yych <= 'z')
3569           goto yy172;
3570         goto yy94;
3571       }
3572     }
3573   yy171:
3574     yych = *++p;
3575     if (yych <= '9') {
3576       if (yych == '-')
3577         goto yy173;
3578       if (yych <= '/')
3579         goto yy94;
3580       goto yy174;
3581     } else {
3582       if (yych <= 'Z') {
3583         if (yych <= '@')
3584           goto yy94;
3585         goto yy174;
3586       } else {
3587         if (yych <= '`')
3588           goto yy94;
3589         if (yych <= 'z')
3590           goto yy174;
3591         goto yy94;
3592       }
3593     }
3594   yy172:
3595     yych = *++p;
3596     if (yych <= '=') {
3597       if (yych <= '.') {
3598         if (yych <= ',')
3599           goto yy94;
3600         if (yych >= '.')
3601           goto yy95;
3602       } else {
3603         if (yych <= '/')
3604           goto yy94;
3605         if (yych <= '9')
3606           goto yy174;
3607         goto yy94;
3608       }
3609     } else {
3610       if (yych <= 'Z') {
3611         if (yych <= '>')
3612           goto yy99;
3613         if (yych <= '@')
3614           goto yy94;
3615         goto yy174;
3616       } else {
3617         if (yych <= '`')
3618           goto yy94;
3619         if (yych <= 'z')
3620           goto yy174;
3621         goto yy94;
3622       }
3623     }
3624   yy173:
3625     yych = *++p;
3626     if (yych <= '9') {
3627       if (yych == '-')
3628         goto yy175;
3629       if (yych <= '/')
3630         goto yy94;
3631       goto yy176;
3632     } else {
3633       if (yych <= 'Z') {
3634         if (yych <= '@')
3635           goto yy94;
3636         goto yy176;
3637       } else {
3638         if (yych <= '`')
3639           goto yy94;
3640         if (yych <= 'z')
3641           goto yy176;
3642         goto yy94;
3643       }
3644     }
3645   yy174:
3646     yych = *++p;
3647     if (yych <= '=') {
3648       if (yych <= '.') {
3649         if (yych <= ',')
3650           goto yy94;
3651         if (yych >= '.')
3652           goto yy95;
3653       } else {
3654         if (yych <= '/')
3655           goto yy94;
3656         if (yych <= '9')
3657           goto yy176;
3658         goto yy94;
3659       }
3660     } else {
3661       if (yych <= 'Z') {
3662         if (yych <= '>')
3663           goto yy99;
3664         if (yych <= '@')
3665           goto yy94;
3666         goto yy176;
3667       } else {
3668         if (yych <= '`')
3669           goto yy94;
3670         if (yych <= 'z')
3671           goto yy176;
3672         goto yy94;
3673       }
3674     }
3675   yy175:
3676     yych = *++p;
3677     if (yych <= '9') {
3678       if (yych == '-')
3679         goto yy177;
3680       if (yych <= '/')
3681         goto yy94;
3682       goto yy178;
3683     } else {
3684       if (yych <= 'Z') {
3685         if (yych <= '@')
3686           goto yy94;
3687         goto yy178;
3688       } else {
3689         if (yych <= '`')
3690           goto yy94;
3691         if (yych <= 'z')
3692           goto yy178;
3693         goto yy94;
3694       }
3695     }
3696   yy176:
3697     yych = *++p;
3698     if (yych <= '=') {
3699       if (yych <= '.') {
3700         if (yych <= ',')
3701           goto yy94;
3702         if (yych >= '.')
3703           goto yy95;
3704       } else {
3705         if (yych <= '/')
3706           goto yy94;
3707         if (yych <= '9')
3708           goto yy178;
3709         goto yy94;
3710       }
3711     } else {
3712       if (yych <= 'Z') {
3713         if (yych <= '>')
3714           goto yy99;
3715         if (yych <= '@')
3716           goto yy94;
3717         goto yy178;
3718       } else {
3719         if (yych <= '`')
3720           goto yy94;
3721         if (yych <= 'z')
3722           goto yy178;
3723         goto yy94;
3724       }
3725     }
3726   yy177:
3727     yych = *++p;
3728     if (yych <= '9') {
3729       if (yych == '-')
3730         goto yy179;
3731       if (yych <= '/')
3732         goto yy94;
3733       goto yy180;
3734     } else {
3735       if (yych <= 'Z') {
3736         if (yych <= '@')
3737           goto yy94;
3738         goto yy180;
3739       } else {
3740         if (yych <= '`')
3741           goto yy94;
3742         if (yych <= 'z')
3743           goto yy180;
3744         goto yy94;
3745       }
3746     }
3747   yy178:
3748     yych = *++p;
3749     if (yych <= '=') {
3750       if (yych <= '.') {
3751         if (yych <= ',')
3752           goto yy94;
3753         if (yych >= '.')
3754           goto yy95;
3755       } else {
3756         if (yych <= '/')
3757           goto yy94;
3758         if (yych <= '9')
3759           goto yy180;
3760         goto yy94;
3761       }
3762     } else {
3763       if (yych <= 'Z') {
3764         if (yych <= '>')
3765           goto yy99;
3766         if (yych <= '@')
3767           goto yy94;
3768         goto yy180;
3769       } else {
3770         if (yych <= '`')
3771           goto yy94;
3772         if (yych <= 'z')
3773           goto yy180;
3774         goto yy94;
3775       }
3776     }
3777   yy179:
3778     yych = *++p;
3779     if (yych <= '9') {
3780       if (yych == '-')
3781         goto yy181;
3782       if (yych <= '/')
3783         goto yy94;
3784       goto yy182;
3785     } else {
3786       if (yych <= 'Z') {
3787         if (yych <= '@')
3788           goto yy94;
3789         goto yy182;
3790       } else {
3791         if (yych <= '`')
3792           goto yy94;
3793         if (yych <= 'z')
3794           goto yy182;
3795         goto yy94;
3796       }
3797     }
3798   yy180:
3799     yych = *++p;
3800     if (yych <= '=') {
3801       if (yych <= '.') {
3802         if (yych <= ',')
3803           goto yy94;
3804         if (yych >= '.')
3805           goto yy95;
3806       } else {
3807         if (yych <= '/')
3808           goto yy94;
3809         if (yych <= '9')
3810           goto yy182;
3811         goto yy94;
3812       }
3813     } else {
3814       if (yych <= 'Z') {
3815         if (yych <= '>')
3816           goto yy99;
3817         if (yych <= '@')
3818           goto yy94;
3819         goto yy182;
3820       } else {
3821         if (yych <= '`')
3822           goto yy94;
3823         if (yych <= 'z')
3824           goto yy182;
3825         goto yy94;
3826       }
3827     }
3828   yy181:
3829     yych = *++p;
3830     if (yych <= '9') {
3831       if (yych == '-')
3832         goto yy183;
3833       if (yych <= '/')
3834         goto yy94;
3835       goto yy184;
3836     } else {
3837       if (yych <= 'Z') {
3838         if (yych <= '@')
3839           goto yy94;
3840         goto yy184;
3841       } else {
3842         if (yych <= '`')
3843           goto yy94;
3844         if (yych <= 'z')
3845           goto yy184;
3846         goto yy94;
3847       }
3848     }
3849   yy182:
3850     yych = *++p;
3851     if (yych <= '=') {
3852       if (yych <= '.') {
3853         if (yych <= ',')
3854           goto yy94;
3855         if (yych >= '.')
3856           goto yy95;
3857       } else {
3858         if (yych <= '/')
3859           goto yy94;
3860         if (yych <= '9')
3861           goto yy184;
3862         goto yy94;
3863       }
3864     } else {
3865       if (yych <= 'Z') {
3866         if (yych <= '>')
3867           goto yy99;
3868         if (yych <= '@')
3869           goto yy94;
3870         goto yy184;
3871       } else {
3872         if (yych <= '`')
3873           goto yy94;
3874         if (yych <= 'z')
3875           goto yy184;
3876         goto yy94;
3877       }
3878     }
3879   yy183:
3880     yych = *++p;
3881     if (yych <= '9') {
3882       if (yych == '-')
3883         goto yy185;
3884       if (yych <= '/')
3885         goto yy94;
3886       goto yy186;
3887     } else {
3888       if (yych <= 'Z') {
3889         if (yych <= '@')
3890           goto yy94;
3891         goto yy186;
3892       } else {
3893         if (yych <= '`')
3894           goto yy94;
3895         if (yych <= 'z')
3896           goto yy186;
3897         goto yy94;
3898       }
3899     }
3900   yy184:
3901     yych = *++p;
3902     if (yych <= '=') {
3903       if (yych <= '.') {
3904         if (yych <= ',')
3905           goto yy94;
3906         if (yych >= '.')
3907           goto yy95;
3908       } else {
3909         if (yych <= '/')
3910           goto yy94;
3911         if (yych <= '9')
3912           goto yy186;
3913         goto yy94;
3914       }
3915     } else {
3916       if (yych <= 'Z') {
3917         if (yych <= '>')
3918           goto yy99;
3919         if (yych <= '@')
3920           goto yy94;
3921         goto yy186;
3922       } else {
3923         if (yych <= '`')
3924           goto yy94;
3925         if (yych <= 'z')
3926           goto yy186;
3927         goto yy94;
3928       }
3929     }
3930   yy185:
3931     yych = *++p;
3932     if (yych <= '9') {
3933       if (yych == '-')
3934         goto yy187;
3935       if (yych <= '/')
3936         goto yy94;
3937       goto yy188;
3938     } else {
3939       if (yych <= 'Z') {
3940         if (yych <= '@')
3941           goto yy94;
3942         goto yy188;
3943       } else {
3944         if (yych <= '`')
3945           goto yy94;
3946         if (yych <= 'z')
3947           goto yy188;
3948         goto yy94;
3949       }
3950     }
3951   yy186:
3952     yych = *++p;
3953     if (yych <= '=') {
3954       if (yych <= '.') {
3955         if (yych <= ',')
3956           goto yy94;
3957         if (yych >= '.')
3958           goto yy95;
3959       } else {
3960         if (yych <= '/')
3961           goto yy94;
3962         if (yych <= '9')
3963           goto yy188;
3964         goto yy94;
3965       }
3966     } else {
3967       if (yych <= 'Z') {
3968         if (yych <= '>')
3969           goto yy99;
3970         if (yych <= '@')
3971           goto yy94;
3972         goto yy188;
3973       } else {
3974         if (yych <= '`')
3975           goto yy94;
3976         if (yych <= 'z')
3977           goto yy188;
3978         goto yy94;
3979       }
3980     }
3981   yy187:
3982     yych = *++p;
3983     if (yych <= '9') {
3984       if (yych == '-')
3985         goto yy189;
3986       if (yych <= '/')
3987         goto yy94;
3988       goto yy190;
3989     } else {
3990       if (yych <= 'Z') {
3991         if (yych <= '@')
3992           goto yy94;
3993         goto yy190;
3994       } else {
3995         if (yych <= '`')
3996           goto yy94;
3997         if (yych <= 'z')
3998           goto yy190;
3999         goto yy94;
4000       }
4001     }
4002   yy188:
4003     yych = *++p;
4004     if (yych <= '=') {
4005       if (yych <= '.') {
4006         if (yych <= ',')
4007           goto yy94;
4008         if (yych >= '.')
4009           goto yy95;
4010       } else {
4011         if (yych <= '/')
4012           goto yy94;
4013         if (yych <= '9')
4014           goto yy190;
4015         goto yy94;
4016       }
4017     } else {
4018       if (yych <= 'Z') {
4019         if (yych <= '>')
4020           goto yy99;
4021         if (yych <= '@')
4022           goto yy94;
4023         goto yy190;
4024       } else {
4025         if (yych <= '`')
4026           goto yy94;
4027         if (yych <= 'z')
4028           goto yy190;
4029         goto yy94;
4030       }
4031     }
4032   yy189:
4033     yych = *++p;
4034     if (yych <= '9') {
4035       if (yych == '-')
4036         goto yy191;
4037       if (yych <= '/')
4038         goto yy94;
4039       goto yy192;
4040     } else {
4041       if (yych <= 'Z') {
4042         if (yych <= '@')
4043           goto yy94;
4044         goto yy192;
4045       } else {
4046         if (yych <= '`')
4047           goto yy94;
4048         if (yych <= 'z')
4049           goto yy192;
4050         goto yy94;
4051       }
4052     }
4053   yy190:
4054     yych = *++p;
4055     if (yych <= '=') {
4056       if (yych <= '.') {
4057         if (yych <= ',')
4058           goto yy94;
4059         if (yych >= '.')
4060           goto yy95;
4061       } else {
4062         if (yych <= '/')
4063           goto yy94;
4064         if (yych <= '9')
4065           goto yy192;
4066         goto yy94;
4067       }
4068     } else {
4069       if (yych <= 'Z') {
4070         if (yych <= '>')
4071           goto yy99;
4072         if (yych <= '@')
4073           goto yy94;
4074         goto yy192;
4075       } else {
4076         if (yych <= '`')
4077           goto yy94;
4078         if (yych <= 'z')
4079           goto yy192;
4080         goto yy94;
4081       }
4082     }
4083   yy191:
4084     yych = *++p;
4085     if (yych <= '9') {
4086       if (yych == '-')
4087         goto yy193;
4088       if (yych <= '/')
4089         goto yy94;
4090       goto yy194;
4091     } else {
4092       if (yych <= 'Z') {
4093         if (yych <= '@')
4094           goto yy94;
4095         goto yy194;
4096       } else {
4097         if (yych <= '`')
4098           goto yy94;
4099         if (yych <= 'z')
4100           goto yy194;
4101         goto yy94;
4102       }
4103     }
4104   yy192:
4105     yych = *++p;
4106     if (yych <= '=') {
4107       if (yych <= '.') {
4108         if (yych <= ',')
4109           goto yy94;
4110         if (yych >= '.')
4111           goto yy95;
4112       } else {
4113         if (yych <= '/')
4114           goto yy94;
4115         if (yych <= '9')
4116           goto yy194;
4117         goto yy94;
4118       }
4119     } else {
4120       if (yych <= 'Z') {
4121         if (yych <= '>')
4122           goto yy99;
4123         if (yych <= '@')
4124           goto yy94;
4125         goto yy194;
4126       } else {
4127         if (yych <= '`')
4128           goto yy94;
4129         if (yych <= 'z')
4130           goto yy194;
4131         goto yy94;
4132       }
4133     }
4134   yy193:
4135     yych = *++p;
4136     if (yych <= '9') {
4137       if (yych == '-')
4138         goto yy195;
4139       if (yych <= '/')
4140         goto yy94;
4141       goto yy196;
4142     } else {
4143       if (yych <= 'Z') {
4144         if (yych <= '@')
4145           goto yy94;
4146         goto yy196;
4147       } else {
4148         if (yych <= '`')
4149           goto yy94;
4150         if (yych <= 'z')
4151           goto yy196;
4152         goto yy94;
4153       }
4154     }
4155   yy194:
4156     yych = *++p;
4157     if (yych <= '=') {
4158       if (yych <= '.') {
4159         if (yych <= ',')
4160           goto yy94;
4161         if (yych >= '.')
4162           goto yy95;
4163       } else {
4164         if (yych <= '/')
4165           goto yy94;
4166         if (yych <= '9')
4167           goto yy196;
4168         goto yy94;
4169       }
4170     } else {
4171       if (yych <= 'Z') {
4172         if (yych <= '>')
4173           goto yy99;
4174         if (yych <= '@')
4175           goto yy94;
4176         goto yy196;
4177       } else {
4178         if (yych <= '`')
4179           goto yy94;
4180         if (yych <= 'z')
4181           goto yy196;
4182         goto yy94;
4183       }
4184     }
4185   yy195:
4186     yych = *++p;
4187     if (yych <= '9') {
4188       if (yych == '-')
4189         goto yy197;
4190       if (yych <= '/')
4191         goto yy94;
4192       goto yy198;
4193     } else {
4194       if (yych <= 'Z') {
4195         if (yych <= '@')
4196           goto yy94;
4197         goto yy198;
4198       } else {
4199         if (yych <= '`')
4200           goto yy94;
4201         if (yych <= 'z')
4202           goto yy198;
4203         goto yy94;
4204       }
4205     }
4206   yy196:
4207     yych = *++p;
4208     if (yych <= '=') {
4209       if (yych <= '.') {
4210         if (yych <= ',')
4211           goto yy94;
4212         if (yych >= '.')
4213           goto yy95;
4214       } else {
4215         if (yych <= '/')
4216           goto yy94;
4217         if (yych <= '9')
4218           goto yy198;
4219         goto yy94;
4220       }
4221     } else {
4222       if (yych <= 'Z') {
4223         if (yych <= '>')
4224           goto yy99;
4225         if (yych <= '@')
4226           goto yy94;
4227         goto yy198;
4228       } else {
4229         if (yych <= '`')
4230           goto yy94;
4231         if (yych <= 'z')
4232           goto yy198;
4233         goto yy94;
4234       }
4235     }
4236   yy197:
4237     yych = *++p;
4238     if (yych <= '9') {
4239       if (yych == '-')
4240         goto yy199;
4241       if (yych <= '/')
4242         goto yy94;
4243       goto yy200;
4244     } else {
4245       if (yych <= 'Z') {
4246         if (yych <= '@')
4247           goto yy94;
4248         goto yy200;
4249       } else {
4250         if (yych <= '`')
4251           goto yy94;
4252         if (yych <= 'z')
4253           goto yy200;
4254         goto yy94;
4255       }
4256     }
4257   yy198:
4258     yych = *++p;
4259     if (yych <= '=') {
4260       if (yych <= '.') {
4261         if (yych <= ',')
4262           goto yy94;
4263         if (yych >= '.')
4264           goto yy95;
4265       } else {
4266         if (yych <= '/')
4267           goto yy94;
4268         if (yych <= '9')
4269           goto yy200;
4270         goto yy94;
4271       }
4272     } else {
4273       if (yych <= 'Z') {
4274         if (yych <= '>')
4275           goto yy99;
4276         if (yych <= '@')
4277           goto yy94;
4278         goto yy200;
4279       } else {
4280         if (yych <= '`')
4281           goto yy94;
4282         if (yych <= 'z')
4283           goto yy200;
4284         goto yy94;
4285       }
4286     }
4287   yy199:
4288     yych = *++p;
4289     if (yych <= '9') {
4290       if (yych == '-')
4291         goto yy201;
4292       if (yych <= '/')
4293         goto yy94;
4294       goto yy202;
4295     } else {
4296       if (yych <= 'Z') {
4297         if (yych <= '@')
4298           goto yy94;
4299         goto yy202;
4300       } else {
4301         if (yych <= '`')
4302           goto yy94;
4303         if (yych <= 'z')
4304           goto yy202;
4305         goto yy94;
4306       }
4307     }
4308   yy200:
4309     yych = *++p;
4310     if (yych <= '=') {
4311       if (yych <= '.') {
4312         if (yych <= ',')
4313           goto yy94;
4314         if (yych >= '.')
4315           goto yy95;
4316       } else {
4317         if (yych <= '/')
4318           goto yy94;
4319         if (yych <= '9')
4320           goto yy202;
4321         goto yy94;
4322       }
4323     } else {
4324       if (yych <= 'Z') {
4325         if (yych <= '>')
4326           goto yy99;
4327         if (yych <= '@')
4328           goto yy94;
4329         goto yy202;
4330       } else {
4331         if (yych <= '`')
4332           goto yy94;
4333         if (yych <= 'z')
4334           goto yy202;
4335         goto yy94;
4336       }
4337     }
4338   yy201:
4339     yych = *++p;
4340     if (yych <= '9') {
4341       if (yych == '-')
4342         goto yy203;
4343       if (yych <= '/')
4344         goto yy94;
4345       goto yy204;
4346     } else {
4347       if (yych <= 'Z') {
4348         if (yych <= '@')
4349           goto yy94;
4350         goto yy204;
4351       } else {
4352         if (yych <= '`')
4353           goto yy94;
4354         if (yych <= 'z')
4355           goto yy204;
4356         goto yy94;
4357       }
4358     }
4359   yy202:
4360     yych = *++p;
4361     if (yych <= '=') {
4362       if (yych <= '.') {
4363         if (yych <= ',')
4364           goto yy94;
4365         if (yych >= '.')
4366           goto yy95;
4367       } else {
4368         if (yych <= '/')
4369           goto yy94;
4370         if (yych <= '9')
4371           goto yy204;
4372         goto yy94;
4373       }
4374     } else {
4375       if (yych <= 'Z') {
4376         if (yych <= '>')
4377           goto yy99;
4378         if (yych <= '@')
4379           goto yy94;
4380         goto yy204;
4381       } else {
4382         if (yych <= '`')
4383           goto yy94;
4384         if (yych <= 'z')
4385           goto yy204;
4386         goto yy94;
4387       }
4388     }
4389   yy203:
4390     yych = *++p;
4391     if (yych <= '9') {
4392       if (yych == '-')
4393         goto yy205;
4394       if (yych <= '/')
4395         goto yy94;
4396       goto yy206;
4397     } else {
4398       if (yych <= 'Z') {
4399         if (yych <= '@')
4400           goto yy94;
4401         goto yy206;
4402       } else {
4403         if (yych <= '`')
4404           goto yy94;
4405         if (yych <= 'z')
4406           goto yy206;
4407         goto yy94;
4408       }
4409     }
4410   yy204:
4411     yych = *++p;
4412     if (yych <= '=') {
4413       if (yych <= '.') {
4414         if (yych <= ',')
4415           goto yy94;
4416         if (yych >= '.')
4417           goto yy95;
4418       } else {
4419         if (yych <= '/')
4420           goto yy94;
4421         if (yych <= '9')
4422           goto yy206;
4423         goto yy94;
4424       }
4425     } else {
4426       if (yych <= 'Z') {
4427         if (yych <= '>')
4428           goto yy99;
4429         if (yych <= '@')
4430           goto yy94;
4431         goto yy206;
4432       } else {
4433         if (yych <= '`')
4434           goto yy94;
4435         if (yych <= 'z')
4436           goto yy206;
4437         goto yy94;
4438       }
4439     }
4440   yy205:
4441     yych = *++p;
4442     if (yych <= '9') {
4443       if (yych == '-')
4444         goto yy207;
4445       if (yych <= '/')
4446         goto yy94;
4447       goto yy208;
4448     } else {
4449       if (yych <= 'Z') {
4450         if (yych <= '@')
4451           goto yy94;
4452         goto yy208;
4453       } else {
4454         if (yych <= '`')
4455           goto yy94;
4456         if (yych <= 'z')
4457           goto yy208;
4458         goto yy94;
4459       }
4460     }
4461   yy206:
4462     yych = *++p;
4463     if (yych <= '=') {
4464       if (yych <= '.') {
4465         if (yych <= ',')
4466           goto yy94;
4467         if (yych >= '.')
4468           goto yy95;
4469       } else {
4470         if (yych <= '/')
4471           goto yy94;
4472         if (yych <= '9')
4473           goto yy208;
4474         goto yy94;
4475       }
4476     } else {
4477       if (yych <= 'Z') {
4478         if (yych <= '>')
4479           goto yy99;
4480         if (yych <= '@')
4481           goto yy94;
4482         goto yy208;
4483       } else {
4484         if (yych <= '`')
4485           goto yy94;
4486         if (yych <= 'z')
4487           goto yy208;
4488         goto yy94;
4489       }
4490     }
4491   yy207:
4492     yych = *++p;
4493     if (yych <= '9') {
4494       if (yych == '-')
4495         goto yy209;
4496       if (yych <= '/')
4497         goto yy94;
4498       goto yy210;
4499     } else {
4500       if (yych <= 'Z') {
4501         if (yych <= '@')
4502           goto yy94;
4503         goto yy210;
4504       } else {
4505         if (yych <= '`')
4506           goto yy94;
4507         if (yych <= 'z')
4508           goto yy210;
4509         goto yy94;
4510       }
4511     }
4512   yy208:
4513     yych = *++p;
4514     if (yych <= '=') {
4515       if (yych <= '.') {
4516         if (yych <= ',')
4517           goto yy94;
4518         if (yych >= '.')
4519           goto yy95;
4520       } else {
4521         if (yych <= '/')
4522           goto yy94;
4523         if (yych <= '9')
4524           goto yy210;
4525         goto yy94;
4526       }
4527     } else {
4528       if (yych <= 'Z') {
4529         if (yych <= '>')
4530           goto yy99;
4531         if (yych <= '@')
4532           goto yy94;
4533         goto yy210;
4534       } else {
4535         if (yych <= '`')
4536           goto yy94;
4537         if (yych <= 'z')
4538           goto yy210;
4539         goto yy94;
4540       }
4541     }
4542   yy209:
4543     yych = *++p;
4544     if (yych <= '9') {
4545       if (yych == '-')
4546         goto yy211;
4547       if (yych <= '/')
4548         goto yy94;
4549       goto yy212;
4550     } else {
4551       if (yych <= 'Z') {
4552         if (yych <= '@')
4553           goto yy94;
4554         goto yy212;
4555       } else {
4556         if (yych <= '`')
4557           goto yy94;
4558         if (yych <= 'z')
4559           goto yy212;
4560         goto yy94;
4561       }
4562     }
4563   yy210:
4564     yych = *++p;
4565     if (yych <= '=') {
4566       if (yych <= '.') {
4567         if (yych <= ',')
4568           goto yy94;
4569         if (yych >= '.')
4570           goto yy95;
4571       } else {
4572         if (yych <= '/')
4573           goto yy94;
4574         if (yych <= '9')
4575           goto yy212;
4576         goto yy94;
4577       }
4578     } else {
4579       if (yych <= 'Z') {
4580         if (yych <= '>')
4581           goto yy99;
4582         if (yych <= '@')
4583           goto yy94;
4584         goto yy212;
4585       } else {
4586         if (yych <= '`')
4587           goto yy94;
4588         if (yych <= 'z')
4589           goto yy212;
4590         goto yy94;
4591       }
4592     }
4593   yy211:
4594     yych = *++p;
4595     if (yych <= '9') {
4596       if (yych == '-')
4597         goto yy213;
4598       if (yych <= '/')
4599         goto yy94;
4600       goto yy214;
4601     } else {
4602       if (yych <= 'Z') {
4603         if (yych <= '@')
4604           goto yy94;
4605         goto yy214;
4606       } else {
4607         if (yych <= '`')
4608           goto yy94;
4609         if (yych <= 'z')
4610           goto yy214;
4611         goto yy94;
4612       }
4613     }
4614   yy212:
4615     yych = *++p;
4616     if (yych <= '=') {
4617       if (yych <= '.') {
4618         if (yych <= ',')
4619           goto yy94;
4620         if (yych >= '.')
4621           goto yy95;
4622       } else {
4623         if (yych <= '/')
4624           goto yy94;
4625         if (yych <= '9')
4626           goto yy214;
4627         goto yy94;
4628       }
4629     } else {
4630       if (yych <= 'Z') {
4631         if (yych <= '>')
4632           goto yy99;
4633         if (yych <= '@')
4634           goto yy94;
4635         goto yy214;
4636       } else {
4637         if (yych <= '`')
4638           goto yy94;
4639         if (yych <= 'z')
4640           goto yy214;
4641         goto yy94;
4642       }
4643     }
4644   yy213:
4645     yych = *++p;
4646     if (yych <= '9') {
4647       if (yych == '-')
4648         goto yy215;
4649       if (yych <= '/')
4650         goto yy94;
4651       goto yy216;
4652     } else {
4653       if (yych <= 'Z') {
4654         if (yych <= '@')
4655           goto yy94;
4656         goto yy216;
4657       } else {
4658         if (yych <= '`')
4659           goto yy94;
4660         if (yych <= 'z')
4661           goto yy216;
4662         goto yy94;
4663       }
4664     }
4665   yy214:
4666     yych = *++p;
4667     if (yych <= '=') {
4668       if (yych <= '.') {
4669         if (yych <= ',')
4670           goto yy94;
4671         if (yych >= '.')
4672           goto yy95;
4673       } else {
4674         if (yych <= '/')
4675           goto yy94;
4676         if (yych <= '9')
4677           goto yy216;
4678         goto yy94;
4679       }
4680     } else {
4681       if (yych <= 'Z') {
4682         if (yych <= '>')
4683           goto yy99;
4684         if (yych <= '@')
4685           goto yy94;
4686         goto yy216;
4687       } else {
4688         if (yych <= '`')
4689           goto yy94;
4690         if (yych <= 'z')
4691           goto yy216;
4692         goto yy94;
4693       }
4694     }
4695   yy215:
4696     yych = *++p;
4697     if (yych <= '9') {
4698       if (yych == '-')
4699         goto yy217;
4700       if (yych <= '/')
4701         goto yy94;
4702       goto yy218;
4703     } else {
4704       if (yych <= 'Z') {
4705         if (yych <= '@')
4706           goto yy94;
4707         goto yy218;
4708       } else {
4709         if (yych <= '`')
4710           goto yy94;
4711         if (yych <= 'z')
4712           goto yy218;
4713         goto yy94;
4714       }
4715     }
4716   yy216:
4717     yych = *++p;
4718     if (yych <= '=') {
4719       if (yych <= '.') {
4720         if (yych <= ',')
4721           goto yy94;
4722         if (yych >= '.')
4723           goto yy95;
4724       } else {
4725         if (yych <= '/')
4726           goto yy94;
4727         if (yych <= '9')
4728           goto yy218;
4729         goto yy94;
4730       }
4731     } else {
4732       if (yych <= 'Z') {
4733         if (yych <= '>')
4734           goto yy99;
4735         if (yych <= '@')
4736           goto yy94;
4737         goto yy218;
4738       } else {
4739         if (yych <= '`')
4740           goto yy94;
4741         if (yych <= 'z')
4742           goto yy218;
4743         goto yy94;
4744       }
4745     }
4746   yy217:
4747     yych = *++p;
4748     if (yych <= '9') {
4749       if (yych == '-')
4750         goto yy219;
4751       if (yych <= '/')
4752         goto yy94;
4753       goto yy220;
4754     } else {
4755       if (yych <= 'Z') {
4756         if (yych <= '@')
4757           goto yy94;
4758         goto yy220;
4759       } else {
4760         if (yych <= '`')
4761           goto yy94;
4762         if (yych <= 'z')
4763           goto yy220;
4764         goto yy94;
4765       }
4766     }
4767   yy218:
4768     yych = *++p;
4769     if (yych <= '=') {
4770       if (yych <= '.') {
4771         if (yych <= ',')
4772           goto yy94;
4773         if (yych >= '.')
4774           goto yy95;
4775       } else {
4776         if (yych <= '/')
4777           goto yy94;
4778         if (yych <= '9')
4779           goto yy220;
4780         goto yy94;
4781       }
4782     } else {
4783       if (yych <= 'Z') {
4784         if (yych <= '>')
4785           goto yy99;
4786         if (yych <= '@')
4787           goto yy94;
4788         goto yy220;
4789       } else {
4790         if (yych <= '`')
4791           goto yy94;
4792         if (yych <= 'z')
4793           goto yy220;
4794         goto yy94;
4795       }
4796     }
4797   yy219:
4798     yych = *++p;
4799     if (yych <= '@') {
4800       if (yych <= '/')
4801         goto yy94;
4802       if (yych <= '9')
4803         goto yy221;
4804       goto yy94;
4805     } else {
4806       if (yych <= 'Z')
4807         goto yy221;
4808       if (yych <= '`')
4809         goto yy94;
4810       if (yych <= 'z')
4811         goto yy221;
4812       goto yy94;
4813     }
4814   yy220:
4815     yych = *++p;
4816     if (yych <= '=') {
4817       if (yych <= '.') {
4818         if (yych <= '-')
4819           goto yy94;
4820         goto yy95;
4821       } else {
4822         if (yych <= '/')
4823           goto yy94;
4824         if (yych >= ':')
4825           goto yy94;
4826       }
4827     } else {
4828       if (yych <= 'Z') {
4829         if (yych <= '>')
4830           goto yy99;
4831         if (yych <= '@')
4832           goto yy94;
4833       } else {
4834         if (yych <= '`')
4835           goto yy94;
4836         if (yych >= '{')
4837           goto yy94;
4838       }
4839     }
4840   yy221:
4841     yych = *++p;
4842     if (yych == '.')
4843       goto yy95;
4844     if (yych == '>')
4845       goto yy99;
4846     goto yy94;
4847   }
4848 }
4849 
4850 // Try to match an HTML tag after first <, returning num of chars matched.
_scan_html_tag(const unsigned char * p)4851 bufsize_t _scan_html_tag(const unsigned char *p) {
4852   const unsigned char *marker = NULL;
4853   const unsigned char *start = p;
4854 
4855   {
4856     unsigned char yych;
4857     static const unsigned char yybm[] = {
4858         0,   224, 224, 224, 224, 224, 224, 224, 224, 200, 200, 200, 200, 200,
4859         224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
4860         224, 224, 224, 224, 200, 224, 128, 224, 224, 224, 224, 64,  224, 224,
4861         224, 224, 224, 244, 240, 224, 244, 244, 244, 244, 244, 244, 244, 244,
4862         244, 244, 240, 224, 192, 192, 192, 224, 224, 244, 244, 244, 244, 244,
4863         244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
4864         244, 244, 244, 244, 244, 244, 244, 224, 224, 224, 224, 240, 192, 244,
4865         244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
4866         244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 224, 224, 224,
4867         224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4868         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4869         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4870         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4871         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4872         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4873         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4874         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4875         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
4876         0,   0,   0,   0,
4877     };
4878     yych = *p;
4879     if (yych <= '@') {
4880       if (yych == '/')
4881         goto yy226;
4882     } else {
4883       if (yych <= 'Z')
4884         goto yy227;
4885       if (yych <= '`')
4886         goto yy224;
4887       if (yych <= 'z')
4888         goto yy227;
4889     }
4890   yy224:
4891     ++p;
4892   yy225 : { return 0; }
4893   yy226:
4894     yych = *(marker = ++p);
4895     if (yych <= '@')
4896       goto yy225;
4897     if (yych <= 'Z')
4898       goto yy228;
4899     if (yych <= '`')
4900       goto yy225;
4901     if (yych <= 'z')
4902       goto yy228;
4903     goto yy225;
4904   yy227:
4905     yych = *(marker = ++p);
4906     if (yych <= '.') {
4907       if (yych <= 0x1F) {
4908         if (yych <= 0x08)
4909           goto yy225;
4910         if (yych <= '\r')
4911           goto yy234;
4912         goto yy225;
4913       } else {
4914         if (yych <= ' ')
4915           goto yy234;
4916         if (yych == '-')
4917           goto yy234;
4918         goto yy225;
4919       }
4920     } else {
4921       if (yych <= '@') {
4922         if (yych <= '9')
4923           goto yy234;
4924         if (yych == '>')
4925           goto yy234;
4926         goto yy225;
4927       } else {
4928         if (yych <= 'Z')
4929           goto yy234;
4930         if (yych <= '`')
4931           goto yy225;
4932         if (yych <= 'z')
4933           goto yy234;
4934         goto yy225;
4935       }
4936     }
4937   yy228:
4938     yych = *++p;
4939     if (yybm[0 + yych] & 4) {
4940       goto yy228;
4941     }
4942     if (yych <= 0x1F) {
4943       if (yych <= 0x08)
4944         goto yy230;
4945       if (yych <= '\r')
4946         goto yy238;
4947     } else {
4948       if (yych <= ' ')
4949         goto yy238;
4950       if (yych == '>')
4951         goto yy236;
4952     }
4953   yy230:
4954     p = marker;
4955     goto yy225;
4956   yy231:
4957     yych = *++p;
4958     if (yybm[0 + yych] & 8) {
4959       goto yy231;
4960     }
4961     if (yych <= '>') {
4962       if (yych <= '9') {
4963         if (yych == '/')
4964           goto yy235;
4965         goto yy230;
4966       } else {
4967         if (yych <= ':')
4968           goto yy240;
4969         if (yych <= '=')
4970           goto yy230;
4971         goto yy236;
4972       }
4973     } else {
4974       if (yych <= '^') {
4975         if (yych <= '@')
4976           goto yy230;
4977         if (yych <= 'Z')
4978           goto yy240;
4979         goto yy230;
4980       } else {
4981         if (yych == '`')
4982           goto yy230;
4983         if (yych <= 'z')
4984           goto yy240;
4985         goto yy230;
4986       }
4987     }
4988   yy233:
4989     yych = *++p;
4990   yy234:
4991     if (yybm[0 + yych] & 8) {
4992       goto yy231;
4993     }
4994     if (yych <= '=') {
4995       if (yych <= '.') {
4996         if (yych == '-')
4997           goto yy233;
4998         goto yy230;
4999       } else {
5000         if (yych <= '/')
5001           goto yy235;
5002         if (yych <= '9')
5003           goto yy233;
5004         goto yy230;
5005       }
5006     } else {
5007       if (yych <= 'Z') {
5008         if (yych <= '>')
5009           goto yy236;
5010         if (yych <= '@')
5011           goto yy230;
5012         goto yy233;
5013       } else {
5014         if (yych <= '`')
5015           goto yy230;
5016         if (yych <= 'z')
5017           goto yy233;
5018         goto yy230;
5019       }
5020     }
5021   yy235:
5022     yych = *++p;
5023     if (yych != '>')
5024       goto yy230;
5025   yy236:
5026     ++p;
5027     { return (bufsize_t)(p - start); }
5028   yy238:
5029     yych = *++p;
5030     if (yych <= 0x1F) {
5031       if (yych <= 0x08)
5032         goto yy230;
5033       if (yych <= '\r')
5034         goto yy238;
5035       goto yy230;
5036     } else {
5037       if (yych <= ' ')
5038         goto yy238;
5039       if (yych == '>')
5040         goto yy236;
5041       goto yy230;
5042     }
5043   yy240:
5044     yych = *++p;
5045     if (yybm[0 + yych] & 16) {
5046       goto yy240;
5047     }
5048     if (yych <= ',') {
5049       if (yych <= '\r') {
5050         if (yych <= 0x08)
5051           goto yy230;
5052       } else {
5053         if (yych != ' ')
5054           goto yy230;
5055       }
5056     } else {
5057       if (yych <= '<') {
5058         if (yych <= '/')
5059           goto yy235;
5060         goto yy230;
5061       } else {
5062         if (yych <= '=')
5063           goto yy244;
5064         if (yych <= '>')
5065           goto yy236;
5066         goto yy230;
5067       }
5068     }
5069   yy242:
5070     yych = *++p;
5071     if (yych <= '<') {
5072       if (yych <= ' ') {
5073         if (yych <= 0x08)
5074           goto yy230;
5075         if (yych <= '\r')
5076           goto yy242;
5077         if (yych <= 0x1F)
5078           goto yy230;
5079         goto yy242;
5080       } else {
5081         if (yych <= '/') {
5082           if (yych <= '.')
5083             goto yy230;
5084           goto yy235;
5085         } else {
5086           if (yych == ':')
5087             goto yy240;
5088           goto yy230;
5089         }
5090       }
5091     } else {
5092       if (yych <= 'Z') {
5093         if (yych <= '=')
5094           goto yy244;
5095         if (yych <= '>')
5096           goto yy236;
5097         if (yych <= '@')
5098           goto yy230;
5099         goto yy240;
5100       } else {
5101         if (yych <= '_') {
5102           if (yych <= '^')
5103             goto yy230;
5104           goto yy240;
5105         } else {
5106           if (yych <= '`')
5107             goto yy230;
5108           if (yych <= 'z')
5109             goto yy240;
5110           goto yy230;
5111         }
5112       }
5113     }
5114   yy244:
5115     yych = *++p;
5116     if (yybm[0 + yych] & 32) {
5117       goto yy246;
5118     }
5119     if (yych <= 0xE0) {
5120       if (yych <= '"') {
5121         if (yych <= 0x00)
5122           goto yy230;
5123         if (yych <= ' ')
5124           goto yy244;
5125         goto yy248;
5126       } else {
5127         if (yych <= '\'')
5128           goto yy250;
5129         if (yych <= 0xC1)
5130           goto yy230;
5131         if (yych <= 0xDF)
5132           goto yy252;
5133         goto yy253;
5134       }
5135     } else {
5136       if (yych <= 0xEF) {
5137         if (yych == 0xED)
5138           goto yy255;
5139         goto yy254;
5140       } else {
5141         if (yych <= 0xF0)
5142           goto yy256;
5143         if (yych <= 0xF3)
5144           goto yy257;
5145         if (yych <= 0xF4)
5146           goto yy258;
5147         goto yy230;
5148       }
5149     }
5150   yy246:
5151     yych = *++p;
5152     if (yybm[0 + yych] & 32) {
5153       goto yy246;
5154     }
5155     if (yych <= 0xE0) {
5156       if (yych <= '=') {
5157         if (yych <= 0x00)
5158           goto yy230;
5159         if (yych <= ' ')
5160           goto yy231;
5161         goto yy230;
5162       } else {
5163         if (yych <= '>')
5164           goto yy236;
5165         if (yych <= 0xC1)
5166           goto yy230;
5167         if (yych <= 0xDF)
5168           goto yy252;
5169         goto yy253;
5170       }
5171     } else {
5172       if (yych <= 0xEF) {
5173         if (yych == 0xED)
5174           goto yy255;
5175         goto yy254;
5176       } else {
5177         if (yych <= 0xF0)
5178           goto yy256;
5179         if (yych <= 0xF3)
5180           goto yy257;
5181         if (yych <= 0xF4)
5182           goto yy258;
5183         goto yy230;
5184       }
5185     }
5186   yy248:
5187     yych = *++p;
5188     if (yybm[0 + yych] & 64) {
5189       goto yy248;
5190     }
5191     if (yych <= 0xEC) {
5192       if (yych <= 0xC1) {
5193         if (yych <= 0x00)
5194           goto yy230;
5195         if (yych <= '"')
5196           goto yy259;
5197         goto yy230;
5198       } else {
5199         if (yych <= 0xDF)
5200           goto yy260;
5201         if (yych <= 0xE0)
5202           goto yy261;
5203         goto yy262;
5204       }
5205     } else {
5206       if (yych <= 0xF0) {
5207         if (yych <= 0xED)
5208           goto yy263;
5209         if (yych <= 0xEF)
5210           goto yy262;
5211         goto yy264;
5212       } else {
5213         if (yych <= 0xF3)
5214           goto yy265;
5215         if (yych <= 0xF4)
5216           goto yy266;
5217         goto yy230;
5218       }
5219     }
5220   yy250:
5221     yych = *++p;
5222     if (yybm[0 + yych] & 128) {
5223       goto yy250;
5224     }
5225     if (yych <= 0xEC) {
5226       if (yych <= 0xC1) {
5227         if (yych <= 0x00)
5228           goto yy230;
5229         if (yych <= '\'')
5230           goto yy259;
5231         goto yy230;
5232       } else {
5233         if (yych <= 0xDF)
5234           goto yy267;
5235         if (yych <= 0xE0)
5236           goto yy268;
5237         goto yy269;
5238       }
5239     } else {
5240       if (yych <= 0xF0) {
5241         if (yych <= 0xED)
5242           goto yy270;
5243         if (yych <= 0xEF)
5244           goto yy269;
5245         goto yy271;
5246       } else {
5247         if (yych <= 0xF3)
5248           goto yy272;
5249         if (yych <= 0xF4)
5250           goto yy273;
5251         goto yy230;
5252       }
5253     }
5254   yy252:
5255     yych = *++p;
5256     if (yych <= 0x7F)
5257       goto yy230;
5258     if (yych <= 0xBF)
5259       goto yy246;
5260     goto yy230;
5261   yy253:
5262     yych = *++p;
5263     if (yych <= 0x9F)
5264       goto yy230;
5265     if (yych <= 0xBF)
5266       goto yy252;
5267     goto yy230;
5268   yy254:
5269     yych = *++p;
5270     if (yych <= 0x7F)
5271       goto yy230;
5272     if (yych <= 0xBF)
5273       goto yy252;
5274     goto yy230;
5275   yy255:
5276     yych = *++p;
5277     if (yych <= 0x7F)
5278       goto yy230;
5279     if (yych <= 0x9F)
5280       goto yy252;
5281     goto yy230;
5282   yy256:
5283     yych = *++p;
5284     if (yych <= 0x8F)
5285       goto yy230;
5286     if (yych <= 0xBF)
5287       goto yy254;
5288     goto yy230;
5289   yy257:
5290     yych = *++p;
5291     if (yych <= 0x7F)
5292       goto yy230;
5293     if (yych <= 0xBF)
5294       goto yy254;
5295     goto yy230;
5296   yy258:
5297     yych = *++p;
5298     if (yych <= 0x7F)
5299       goto yy230;
5300     if (yych <= 0x8F)
5301       goto yy254;
5302     goto yy230;
5303   yy259:
5304     yych = *++p;
5305     if (yybm[0 + yych] & 8) {
5306       goto yy231;
5307     }
5308     if (yych == '/')
5309       goto yy235;
5310     if (yych == '>')
5311       goto yy236;
5312     goto yy230;
5313   yy260:
5314     yych = *++p;
5315     if (yych <= 0x7F)
5316       goto yy230;
5317     if (yych <= 0xBF)
5318       goto yy248;
5319     goto yy230;
5320   yy261:
5321     yych = *++p;
5322     if (yych <= 0x9F)
5323       goto yy230;
5324     if (yych <= 0xBF)
5325       goto yy260;
5326     goto yy230;
5327   yy262:
5328     yych = *++p;
5329     if (yych <= 0x7F)
5330       goto yy230;
5331     if (yych <= 0xBF)
5332       goto yy260;
5333     goto yy230;
5334   yy263:
5335     yych = *++p;
5336     if (yych <= 0x7F)
5337       goto yy230;
5338     if (yych <= 0x9F)
5339       goto yy260;
5340     goto yy230;
5341   yy264:
5342     yych = *++p;
5343     if (yych <= 0x8F)
5344       goto yy230;
5345     if (yych <= 0xBF)
5346       goto yy262;
5347     goto yy230;
5348   yy265:
5349     yych = *++p;
5350     if (yych <= 0x7F)
5351       goto yy230;
5352     if (yych <= 0xBF)
5353       goto yy262;
5354     goto yy230;
5355   yy266:
5356     yych = *++p;
5357     if (yych <= 0x7F)
5358       goto yy230;
5359     if (yych <= 0x8F)
5360       goto yy262;
5361     goto yy230;
5362   yy267:
5363     yych = *++p;
5364     if (yych <= 0x7F)
5365       goto yy230;
5366     if (yych <= 0xBF)
5367       goto yy250;
5368     goto yy230;
5369   yy268:
5370     yych = *++p;
5371     if (yych <= 0x9F)
5372       goto yy230;
5373     if (yych <= 0xBF)
5374       goto yy267;
5375     goto yy230;
5376   yy269:
5377     yych = *++p;
5378     if (yych <= 0x7F)
5379       goto yy230;
5380     if (yych <= 0xBF)
5381       goto yy267;
5382     goto yy230;
5383   yy270:
5384     yych = *++p;
5385     if (yych <= 0x7F)
5386       goto yy230;
5387     if (yych <= 0x9F)
5388       goto yy267;
5389     goto yy230;
5390   yy271:
5391     yych = *++p;
5392     if (yych <= 0x8F)
5393       goto yy230;
5394     if (yych <= 0xBF)
5395       goto yy269;
5396     goto yy230;
5397   yy272:
5398     yych = *++p;
5399     if (yych <= 0x7F)
5400       goto yy230;
5401     if (yych <= 0xBF)
5402       goto yy269;
5403     goto yy230;
5404   yy273:
5405     yych = *++p;
5406     if (yych <= 0x7F)
5407       goto yy230;
5408     if (yych <= 0x8F)
5409       goto yy269;
5410     goto yy230;
5411   }
5412 }
5413 
_scan_html_comment(const unsigned char * p)5414 bufsize_t _scan_html_comment(const unsigned char *p) {
5415   const unsigned char *marker = NULL;
5416   const unsigned char *start = p;
5417 
5418   {
5419     unsigned char yych;
5420     static const unsigned char yybm[] = {
5421         0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5422         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5423         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5424         128, 128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5425         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5426         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5427         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5428         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5429         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5430         128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5431         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5432         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5433         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5434         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5435         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5436         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5437         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5438         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5439         0,   0,   0,   0,
5440     };
5441     yych = *p;
5442     if (yych == '-')
5443       goto yy278;
5444     ++p;
5445   yy277 : { return 0; }
5446   yy278:
5447     yych = *(marker = ++p);
5448     if (yych <= '=') {
5449       if (yych <= 0x00)
5450         goto yy277;
5451       if (yych == '-')
5452         goto yy282;
5453       goto yy280;
5454     } else {
5455       if (yych <= 0x7F) {
5456         if (yych <= '>')
5457           goto yy277;
5458         goto yy280;
5459       } else {
5460         if (yych <= 0xC1)
5461           goto yy277;
5462         if (yych <= 0xF4)
5463           goto yy280;
5464         goto yy277;
5465       }
5466     }
5467   yy279:
5468     yych = *++p;
5469   yy280:
5470     if (yybm[0 + yych] & 128) {
5471       goto yy279;
5472     }
5473     if (yych <= 0xEC) {
5474       if (yych <= 0xC1) {
5475         if (yych <= 0x00)
5476           goto yy281;
5477         if (yych <= '-')
5478           goto yy290;
5479       } else {
5480         if (yych <= 0xDF)
5481           goto yy283;
5482         if (yych <= 0xE0)
5483           goto yy284;
5484         goto yy285;
5485       }
5486     } else {
5487       if (yych <= 0xF0) {
5488         if (yych <= 0xED)
5489           goto yy286;
5490         if (yych <= 0xEF)
5491           goto yy285;
5492         goto yy287;
5493       } else {
5494         if (yych <= 0xF3)
5495           goto yy288;
5496         if (yych <= 0xF4)
5497           goto yy289;
5498       }
5499     }
5500   yy281:
5501     p = marker;
5502     goto yy277;
5503   yy282:
5504     yych = *++p;
5505     if (yych == '-')
5506       goto yy291;
5507     if (yych == '>')
5508       goto yy281;
5509     goto yy280;
5510   yy283:
5511     yych = *++p;
5512     if (yych <= 0x7F)
5513       goto yy281;
5514     if (yych <= 0xBF)
5515       goto yy279;
5516     goto yy281;
5517   yy284:
5518     yych = *++p;
5519     if (yych <= 0x9F)
5520       goto yy281;
5521     if (yych <= 0xBF)
5522       goto yy283;
5523     goto yy281;
5524   yy285:
5525     yych = *++p;
5526     if (yych <= 0x7F)
5527       goto yy281;
5528     if (yych <= 0xBF)
5529       goto yy283;
5530     goto yy281;
5531   yy286:
5532     yych = *++p;
5533     if (yych <= 0x7F)
5534       goto yy281;
5535     if (yych <= 0x9F)
5536       goto yy283;
5537     goto yy281;
5538   yy287:
5539     yych = *++p;
5540     if (yych <= 0x8F)
5541       goto yy281;
5542     if (yych <= 0xBF)
5543       goto yy285;
5544     goto yy281;
5545   yy288:
5546     yych = *++p;
5547     if (yych <= 0x7F)
5548       goto yy281;
5549     if (yych <= 0xBF)
5550       goto yy285;
5551     goto yy281;
5552   yy289:
5553     yych = *++p;
5554     if (yych <= 0x7F)
5555       goto yy281;
5556     if (yych <= 0x8F)
5557       goto yy285;
5558     goto yy281;
5559   yy290:
5560     yych = *++p;
5561     if (yybm[0 + yych] & 128) {
5562       goto yy279;
5563     }
5564     if (yych <= 0xEC) {
5565       if (yych <= 0xC1) {
5566         if (yych <= 0x00)
5567           goto yy281;
5568         if (yych >= '.')
5569           goto yy281;
5570       } else {
5571         if (yych <= 0xDF)
5572           goto yy283;
5573         if (yych <= 0xE0)
5574           goto yy284;
5575         goto yy285;
5576       }
5577     } else {
5578       if (yych <= 0xF0) {
5579         if (yych <= 0xED)
5580           goto yy286;
5581         if (yych <= 0xEF)
5582           goto yy285;
5583         goto yy287;
5584       } else {
5585         if (yych <= 0xF3)
5586           goto yy288;
5587         if (yych <= 0xF4)
5588           goto yy289;
5589         goto yy281;
5590       }
5591     }
5592   yy291:
5593     yych = *++p;
5594     if (yych != '>')
5595       goto yy281;
5596     ++p;
5597     { return (bufsize_t)(p - start); }
5598   }
5599 }
5600 
_scan_html_pi(const unsigned char * p)5601 bufsize_t _scan_html_pi(const unsigned char *p) {
5602   const unsigned char *marker = NULL;
5603   const unsigned char *start = p;
5604 
5605   {
5606     unsigned char yych;
5607     unsigned int yyaccept = 0;
5608     static const unsigned char yybm[] = {
5609         0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5610         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5611         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5612         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5613         128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128, 128, 128, 128,
5614         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5615         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5616         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5617         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
5618         128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5619         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5620         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5621         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5622         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5623         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5624         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5625         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5626         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5627         0,   0,   0,   0,
5628     };
5629     yych = *p;
5630     if (yybm[0 + yych] & 128) {
5631       goto yy298;
5632     }
5633     if (yych <= 0xEC) {
5634       if (yych <= 0xC1) {
5635         if (yych <= 0x00)
5636           goto yy296;
5637         if (yych <= '?')
5638           goto yy301;
5639       } else {
5640         if (yych <= 0xDF)
5641           goto yy302;
5642         if (yych <= 0xE0)
5643           goto yy303;
5644         goto yy304;
5645       }
5646     } else {
5647       if (yych <= 0xF0) {
5648         if (yych <= 0xED)
5649           goto yy305;
5650         if (yych <= 0xEF)
5651           goto yy304;
5652         goto yy306;
5653       } else {
5654         if (yych <= 0xF3)
5655           goto yy307;
5656         if (yych <= 0xF4)
5657           goto yy308;
5658       }
5659     }
5660   yy296:
5661     ++p;
5662   yy297 : { return 0; }
5663   yy298:
5664     yyaccept = 0;
5665     yych = *(marker = ++p);
5666   yy299:
5667     if (yybm[0 + yych] & 128) {
5668       goto yy298;
5669     }
5670     if (yych <= 0xEC) {
5671       if (yych <= 0xC1) {
5672         if (yych <= 0x00)
5673           goto yy300;
5674         if (yych <= '?')
5675           goto yy309;
5676       } else {
5677         if (yych <= 0xDF)
5678           goto yy311;
5679         if (yych <= 0xE0)
5680           goto yy312;
5681         goto yy313;
5682       }
5683     } else {
5684       if (yych <= 0xF0) {
5685         if (yych <= 0xED)
5686           goto yy314;
5687         if (yych <= 0xEF)
5688           goto yy313;
5689         goto yy315;
5690       } else {
5691         if (yych <= 0xF3)
5692           goto yy316;
5693         if (yych <= 0xF4)
5694           goto yy317;
5695       }
5696     }
5697   yy300 : { return (bufsize_t)(p - start); }
5698   yy301:
5699     yyaccept = 1;
5700     yych = *(marker = ++p);
5701     if (yych <= '?') {
5702       if (yych <= 0x00)
5703         goto yy297;
5704       if (yych <= '=')
5705         goto yy299;
5706       if (yych <= '>')
5707         goto yy297;
5708       goto yy298;
5709     } else {
5710       if (yych <= 0x7F)
5711         goto yy299;
5712       if (yych <= 0xC1)
5713         goto yy297;
5714       if (yych <= 0xF4)
5715         goto yy299;
5716       goto yy297;
5717     }
5718   yy302:
5719     yych = *++p;
5720     if (yych <= 0x7F)
5721       goto yy297;
5722     if (yych <= 0xBF)
5723       goto yy298;
5724     goto yy297;
5725   yy303:
5726     yyaccept = 1;
5727     yych = *(marker = ++p);
5728     if (yych <= 0x9F)
5729       goto yy297;
5730     if (yych <= 0xBF)
5731       goto yy311;
5732     goto yy297;
5733   yy304:
5734     yyaccept = 1;
5735     yych = *(marker = ++p);
5736     if (yych <= 0x7F)
5737       goto yy297;
5738     if (yych <= 0xBF)
5739       goto yy311;
5740     goto yy297;
5741   yy305:
5742     yyaccept = 1;
5743     yych = *(marker = ++p);
5744     if (yych <= 0x7F)
5745       goto yy297;
5746     if (yych <= 0x9F)
5747       goto yy311;
5748     goto yy297;
5749   yy306:
5750     yyaccept = 1;
5751     yych = *(marker = ++p);
5752     if (yych <= 0x8F)
5753       goto yy297;
5754     if (yych <= 0xBF)
5755       goto yy313;
5756     goto yy297;
5757   yy307:
5758     yyaccept = 1;
5759     yych = *(marker = ++p);
5760     if (yych <= 0x7F)
5761       goto yy297;
5762     if (yych <= 0xBF)
5763       goto yy313;
5764     goto yy297;
5765   yy308:
5766     yyaccept = 1;
5767     yych = *(marker = ++p);
5768     if (yych <= 0x7F)
5769       goto yy297;
5770     if (yych <= 0x8F)
5771       goto yy313;
5772     goto yy297;
5773   yy309:
5774     yych = *++p;
5775     if (yych <= 0xE0) {
5776       if (yych <= '>') {
5777         if (yych <= 0x00)
5778           goto yy310;
5779         if (yych <= '=')
5780           goto yy298;
5781       } else {
5782         if (yych <= 0x7F)
5783           goto yy298;
5784         if (yych <= 0xC1)
5785           goto yy310;
5786         if (yych <= 0xDF)
5787           goto yy311;
5788         goto yy312;
5789       }
5790     } else {
5791       if (yych <= 0xEF) {
5792         if (yych == 0xED)
5793           goto yy314;
5794         goto yy313;
5795       } else {
5796         if (yych <= 0xF0)
5797           goto yy315;
5798         if (yych <= 0xF3)
5799           goto yy316;
5800         if (yych <= 0xF4)
5801           goto yy317;
5802       }
5803     }
5804   yy310:
5805     p = marker;
5806     if (yyaccept == 0) {
5807       goto yy300;
5808     } else {
5809       goto yy297;
5810     }
5811   yy311:
5812     yych = *++p;
5813     if (yych <= 0x7F)
5814       goto yy310;
5815     if (yych <= 0xBF)
5816       goto yy298;
5817     goto yy310;
5818   yy312:
5819     yych = *++p;
5820     if (yych <= 0x9F)
5821       goto yy310;
5822     if (yych <= 0xBF)
5823       goto yy311;
5824     goto yy310;
5825   yy313:
5826     yych = *++p;
5827     if (yych <= 0x7F)
5828       goto yy310;
5829     if (yych <= 0xBF)
5830       goto yy311;
5831     goto yy310;
5832   yy314:
5833     yych = *++p;
5834     if (yych <= 0x7F)
5835       goto yy310;
5836     if (yych <= 0x9F)
5837       goto yy311;
5838     goto yy310;
5839   yy315:
5840     yych = *++p;
5841     if (yych <= 0x8F)
5842       goto yy310;
5843     if (yych <= 0xBF)
5844       goto yy313;
5845     goto yy310;
5846   yy316:
5847     yych = *++p;
5848     if (yych <= 0x7F)
5849       goto yy310;
5850     if (yych <= 0xBF)
5851       goto yy313;
5852     goto yy310;
5853   yy317:
5854     yych = *++p;
5855     if (yych <= 0x7F)
5856       goto yy310;
5857     if (yych <= 0x8F)
5858       goto yy313;
5859     goto yy310;
5860   }
5861 }
5862 
_scan_html_declaration(const unsigned char * p)5863 bufsize_t _scan_html_declaration(const unsigned char *p) {
5864   const unsigned char *marker = NULL;
5865   const unsigned char *start = p;
5866 
5867   {
5868     unsigned char yych;
5869     unsigned int yyaccept = 0;
5870     static const unsigned char yybm[] = {
5871         0,   64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
5872         64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
5873         64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
5874         64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
5875         64,  64,  64,  64,  64,  64,  0,   64,  64,  192, 192, 192, 192, 192,
5876         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
5877         192, 192, 192, 192, 192, 192, 192, 64,  64,  64,  64,  64,  64,  64,
5878         64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
5879         64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
5880         64,  64,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5881         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5882         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5883         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5884         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5885         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5886         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5887         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5888         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
5889         0,   0,   0,   0,
5890     };
5891     yych = *p;
5892     if (yych <= '@')
5893       goto yy320;
5894     if (yych <= 'Z')
5895       goto yy322;
5896   yy320:
5897     ++p;
5898   yy321 : { return 0; }
5899   yy322:
5900     yyaccept = 0;
5901     yych = *(marker = ++p);
5902     if (yybm[0 + yych] & 128) {
5903       goto yy326;
5904     }
5905     if (yych <= 0x08)
5906       goto yy321;
5907     if (yych <= '\r')
5908       goto yy323;
5909     if (yych != ' ')
5910       goto yy321;
5911   yy323:
5912     yyaccept = 1;
5913     yych = *(marker = ++p);
5914     if (yybm[0 + yych] & 64) {
5915       goto yy323;
5916     }
5917     if (yych <= 0xED) {
5918       if (yych <= 0xDF) {
5919         if (yych >= 0xC2)
5920           goto yy329;
5921       } else {
5922         if (yych <= 0xE0)
5923           goto yy330;
5924         if (yych <= 0xEC)
5925           goto yy331;
5926         goto yy332;
5927       }
5928     } else {
5929       if (yych <= 0xF0) {
5930         if (yych <= 0xEF)
5931           goto yy331;
5932         goto yy333;
5933       } else {
5934         if (yych <= 0xF3)
5935           goto yy334;
5936         if (yych <= 0xF4)
5937           goto yy335;
5938       }
5939     }
5940   yy325 : { return (bufsize_t)(p - start); }
5941   yy326:
5942     yych = *++p;
5943     if (yybm[0 + yych] & 128) {
5944       goto yy326;
5945     }
5946     if (yych <= 0x08)
5947       goto yy328;
5948     if (yych <= '\r')
5949       goto yy323;
5950     if (yych == ' ')
5951       goto yy323;
5952   yy328:
5953     p = marker;
5954     if (yyaccept == 0) {
5955       goto yy321;
5956     } else {
5957       goto yy325;
5958     }
5959   yy329:
5960     yych = *++p;
5961     if (yych <= 0x7F)
5962       goto yy328;
5963     if (yych <= 0xBF)
5964       goto yy323;
5965     goto yy328;
5966   yy330:
5967     yych = *++p;
5968     if (yych <= 0x9F)
5969       goto yy328;
5970     if (yych <= 0xBF)
5971       goto yy329;
5972     goto yy328;
5973   yy331:
5974     yych = *++p;
5975     if (yych <= 0x7F)
5976       goto yy328;
5977     if (yych <= 0xBF)
5978       goto yy329;
5979     goto yy328;
5980   yy332:
5981     yych = *++p;
5982     if (yych <= 0x7F)
5983       goto yy328;
5984     if (yych <= 0x9F)
5985       goto yy329;
5986     goto yy328;
5987   yy333:
5988     yych = *++p;
5989     if (yych <= 0x8F)
5990       goto yy328;
5991     if (yych <= 0xBF)
5992       goto yy331;
5993     goto yy328;
5994   yy334:
5995     yych = *++p;
5996     if (yych <= 0x7F)
5997       goto yy328;
5998     if (yych <= 0xBF)
5999       goto yy331;
6000     goto yy328;
6001   yy335:
6002     yych = *++p;
6003     if (yych <= 0x7F)
6004       goto yy328;
6005     if (yych <= 0x8F)
6006       goto yy331;
6007     goto yy328;
6008   }
6009 }
6010 
_scan_html_cdata(const unsigned char * p)6011 bufsize_t _scan_html_cdata(const unsigned char *p) {
6012   const unsigned char *marker = NULL;
6013   const unsigned char *start = p;
6014 
6015   {
6016     unsigned char yych;
6017     unsigned int yyaccept = 0;
6018     static const unsigned char yybm[] = {
6019         0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6020         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6021         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6022         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6023         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6024         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6025         128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128, 128,
6026         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6027         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
6028         128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6029         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6030         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6031         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6032         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6033         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6034         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6035         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6036         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
6037         0,   0,   0,   0,
6038     };
6039     yych = *p;
6040     if (yych == 'C')
6041       goto yy340;
6042     if (yych == 'c')
6043       goto yy340;
6044     ++p;
6045   yy339 : { return 0; }
6046   yy340:
6047     yyaccept = 0;
6048     yych = *(marker = ++p);
6049     if (yych == 'D')
6050       goto yy341;
6051     if (yych != 'd')
6052       goto yy339;
6053   yy341:
6054     yych = *++p;
6055     if (yych == 'A')
6056       goto yy343;
6057     if (yych == 'a')
6058       goto yy343;
6059   yy342:
6060     p = marker;
6061     if (yyaccept == 0) {
6062       goto yy339;
6063     } else {
6064       goto yy348;
6065     }
6066   yy343:
6067     yych = *++p;
6068     if (yych == 'T')
6069       goto yy344;
6070     if (yych != 't')
6071       goto yy342;
6072   yy344:
6073     yych = *++p;
6074     if (yych == 'A')
6075       goto yy345;
6076     if (yych != 'a')
6077       goto yy342;
6078   yy345:
6079     yych = *++p;
6080     if (yych != '[')
6081       goto yy342;
6082   yy346:
6083     yyaccept = 1;
6084     yych = *(marker = ++p);
6085     if (yybm[0 + yych] & 128) {
6086       goto yy346;
6087     }
6088     if (yych <= 0xEC) {
6089       if (yych <= 0xC1) {
6090         if (yych <= 0x00)
6091           goto yy348;
6092         if (yych <= ']')
6093           goto yy349;
6094       } else {
6095         if (yych <= 0xDF)
6096           goto yy350;
6097         if (yych <= 0xE0)
6098           goto yy351;
6099         goto yy352;
6100       }
6101     } else {
6102       if (yych <= 0xF0) {
6103         if (yych <= 0xED)
6104           goto yy353;
6105         if (yych <= 0xEF)
6106           goto yy352;
6107         goto yy354;
6108       } else {
6109         if (yych <= 0xF3)
6110           goto yy355;
6111         if (yych <= 0xF4)
6112           goto yy356;
6113       }
6114     }
6115   yy348 : { return (bufsize_t)(p - start); }
6116   yy349:
6117     yych = *++p;
6118     if (yybm[0 + yych] & 128) {
6119       goto yy346;
6120     }
6121     if (yych <= 0xEC) {
6122       if (yych <= 0xC1) {
6123         if (yych <= 0x00)
6124           goto yy342;
6125         if (yych <= ']')
6126           goto yy357;
6127         goto yy342;
6128       } else {
6129         if (yych <= 0xDF)
6130           goto yy350;
6131         if (yych <= 0xE0)
6132           goto yy351;
6133         goto yy352;
6134       }
6135     } else {
6136       if (yych <= 0xF0) {
6137         if (yych <= 0xED)
6138           goto yy353;
6139         if (yych <= 0xEF)
6140           goto yy352;
6141         goto yy354;
6142       } else {
6143         if (yych <= 0xF3)
6144           goto yy355;
6145         if (yych <= 0xF4)
6146           goto yy356;
6147         goto yy342;
6148       }
6149     }
6150   yy350:
6151     yych = *++p;
6152     if (yych <= 0x7F)
6153       goto yy342;
6154     if (yych <= 0xBF)
6155       goto yy346;
6156     goto yy342;
6157   yy351:
6158     yych = *++p;
6159     if (yych <= 0x9F)
6160       goto yy342;
6161     if (yych <= 0xBF)
6162       goto yy350;
6163     goto yy342;
6164   yy352:
6165     yych = *++p;
6166     if (yych <= 0x7F)
6167       goto yy342;
6168     if (yych <= 0xBF)
6169       goto yy350;
6170     goto yy342;
6171   yy353:
6172     yych = *++p;
6173     if (yych <= 0x7F)
6174       goto yy342;
6175     if (yych <= 0x9F)
6176       goto yy350;
6177     goto yy342;
6178   yy354:
6179     yych = *++p;
6180     if (yych <= 0x8F)
6181       goto yy342;
6182     if (yych <= 0xBF)
6183       goto yy352;
6184     goto yy342;
6185   yy355:
6186     yych = *++p;
6187     if (yych <= 0x7F)
6188       goto yy342;
6189     if (yych <= 0xBF)
6190       goto yy352;
6191     goto yy342;
6192   yy356:
6193     yych = *++p;
6194     if (yych <= 0x7F)
6195       goto yy342;
6196     if (yych <= 0x8F)
6197       goto yy352;
6198     goto yy342;
6199   yy357:
6200     yych = *++p;
6201     if (yych <= 0xE0) {
6202       if (yych <= '>') {
6203         if (yych <= 0x00)
6204           goto yy342;
6205         if (yych <= '=')
6206           goto yy346;
6207         goto yy342;
6208       } else {
6209         if (yych <= 0x7F)
6210           goto yy346;
6211         if (yych <= 0xC1)
6212           goto yy342;
6213         if (yych <= 0xDF)
6214           goto yy350;
6215         goto yy351;
6216       }
6217     } else {
6218       if (yych <= 0xEF) {
6219         if (yych == 0xED)
6220           goto yy353;
6221         goto yy352;
6222       } else {
6223         if (yych <= 0xF0)
6224           goto yy354;
6225         if (yych <= 0xF3)
6226           goto yy355;
6227         if (yych <= 0xF4)
6228           goto yy356;
6229         goto yy342;
6230       }
6231     }
6232   }
6233 }
6234 
6235 // Try to match an HTML block tag start line, returning
6236 // an integer code for the type of block (1-6, matching the spec).
6237 // #7 is handled by a separate function, below.
_scan_html_block_start(const unsigned char * p)6238 bufsize_t _scan_html_block_start(const unsigned char *p) {
6239   const unsigned char *marker = NULL;
6240 
6241   {
6242     unsigned char yych;
6243     yych = *p;
6244     if (yych == '<')
6245       goto yy362;
6246     ++p;
6247   yy361 : { return 0; }
6248   yy362:
6249     yych = *(marker = ++p);
6250     switch (yych) {
6251     case '!':
6252       goto yy363;
6253     case '/':
6254       goto yy365;
6255     case '?':
6256       goto yy366;
6257     case 'A':
6258     case 'a':
6259       goto yy368;
6260     case 'B':
6261     case 'b':
6262       goto yy369;
6263     case 'C':
6264     case 'c':
6265       goto yy370;
6266     case 'D':
6267     case 'd':
6268       goto yy371;
6269     case 'F':
6270     case 'f':
6271       goto yy372;
6272     case 'H':
6273     case 'h':
6274       goto yy373;
6275     case 'I':
6276     case 'i':
6277       goto yy374;
6278     case 'L':
6279     case 'l':
6280       goto yy375;
6281     case 'M':
6282     case 'm':
6283       goto yy376;
6284     case 'N':
6285     case 'n':
6286       goto yy377;
6287     case 'O':
6288     case 'o':
6289       goto yy378;
6290     case 'P':
6291     case 'p':
6292       goto yy379;
6293     case 'S':
6294     case 's':
6295       goto yy380;
6296     case 'T':
6297     case 't':
6298       goto yy381;
6299     case 'U':
6300     case 'u':
6301       goto yy382;
6302     default:
6303       goto yy361;
6304     }
6305   yy363:
6306     yych = *++p;
6307     if (yych <= '@') {
6308       if (yych == '-')
6309         goto yy383;
6310     } else {
6311       if (yych <= 'Z')
6312         goto yy384;
6313       if (yych <= '[')
6314         goto yy386;
6315     }
6316   yy364:
6317     p = marker;
6318     goto yy361;
6319   yy365:
6320     yych = *++p;
6321     switch (yych) {
6322     case 'A':
6323     case 'a':
6324       goto yy368;
6325     case 'B':
6326     case 'b':
6327       goto yy369;
6328     case 'C':
6329     case 'c':
6330       goto yy370;
6331     case 'D':
6332     case 'd':
6333       goto yy371;
6334     case 'F':
6335     case 'f':
6336       goto yy372;
6337     case 'H':
6338     case 'h':
6339       goto yy373;
6340     case 'I':
6341     case 'i':
6342       goto yy374;
6343     case 'L':
6344     case 'l':
6345       goto yy375;
6346     case 'M':
6347     case 'm':
6348       goto yy376;
6349     case 'N':
6350     case 'n':
6351       goto yy377;
6352     case 'O':
6353     case 'o':
6354       goto yy378;
6355     case 'P':
6356     case 'p':
6357       goto yy387;
6358     case 'S':
6359     case 's':
6360       goto yy388;
6361     case 'T':
6362     case 't':
6363       goto yy389;
6364     case 'U':
6365     case 'u':
6366       goto yy382;
6367     default:
6368       goto yy364;
6369     }
6370   yy366:
6371     ++p;
6372     { return 3; }
6373   yy368:
6374     yych = *++p;
6375     if (yych <= 'S') {
6376       if (yych <= 'D') {
6377         if (yych <= 'C')
6378           goto yy364;
6379         goto yy390;
6380       } else {
6381         if (yych <= 'Q')
6382           goto yy364;
6383         if (yych <= 'R')
6384           goto yy391;
6385         goto yy392;
6386       }
6387     } else {
6388       if (yych <= 'q') {
6389         if (yych == 'd')
6390           goto yy390;
6391         goto yy364;
6392       } else {
6393         if (yych <= 'r')
6394           goto yy391;
6395         if (yych <= 's')
6396           goto yy392;
6397         goto yy364;
6398       }
6399     }
6400   yy369:
6401     yych = *++p;
6402     if (yych <= 'O') {
6403       if (yych <= 'K') {
6404         if (yych == 'A')
6405           goto yy393;
6406         goto yy364;
6407       } else {
6408         if (yych <= 'L')
6409           goto yy394;
6410         if (yych <= 'N')
6411           goto yy364;
6412         goto yy395;
6413       }
6414     } else {
6415       if (yych <= 'k') {
6416         if (yych == 'a')
6417           goto yy393;
6418         goto yy364;
6419       } else {
6420         if (yych <= 'l')
6421           goto yy394;
6422         if (yych == 'o')
6423           goto yy395;
6424         goto yy364;
6425       }
6426     }
6427   yy370:
6428     yych = *++p;
6429     if (yych <= 'O') {
6430       if (yych <= 'D') {
6431         if (yych == 'A')
6432           goto yy396;
6433         goto yy364;
6434       } else {
6435         if (yych <= 'E')
6436           goto yy397;
6437         if (yych <= 'N')
6438           goto yy364;
6439         goto yy398;
6440       }
6441     } else {
6442       if (yych <= 'd') {
6443         if (yych == 'a')
6444           goto yy396;
6445         goto yy364;
6446       } else {
6447         if (yych <= 'e')
6448           goto yy397;
6449         if (yych == 'o')
6450           goto yy398;
6451         goto yy364;
6452       }
6453     }
6454   yy371:
6455     yych = *++p;
6456     switch (yych) {
6457     case 'D':
6458     case 'L':
6459     case 'T':
6460     case 'd':
6461     case 'l':
6462     case 't':
6463       goto yy399;
6464     case 'E':
6465     case 'e':
6466       goto yy400;
6467     case 'I':
6468     case 'i':
6469       goto yy401;
6470     default:
6471       goto yy364;
6472     }
6473   yy372:
6474     yych = *++p;
6475     if (yych <= 'R') {
6476       if (yych <= 'N') {
6477         if (yych == 'I')
6478           goto yy402;
6479         goto yy364;
6480       } else {
6481         if (yych <= 'O')
6482           goto yy403;
6483         if (yych <= 'Q')
6484           goto yy364;
6485         goto yy404;
6486       }
6487     } else {
6488       if (yych <= 'n') {
6489         if (yych == 'i')
6490           goto yy402;
6491         goto yy364;
6492       } else {
6493         if (yych <= 'o')
6494           goto yy403;
6495         if (yych == 'r')
6496           goto yy404;
6497         goto yy364;
6498       }
6499     }
6500   yy373:
6501     yych = *++p;
6502     if (yych <= 'S') {
6503       if (yych <= 'D') {
6504         if (yych <= '0')
6505           goto yy364;
6506         if (yych <= '6')
6507           goto yy399;
6508         goto yy364;
6509       } else {
6510         if (yych <= 'E')
6511           goto yy405;
6512         if (yych == 'R')
6513           goto yy399;
6514         goto yy364;
6515       }
6516     } else {
6517       if (yych <= 'q') {
6518         if (yych <= 'T')
6519           goto yy406;
6520         if (yych == 'e')
6521           goto yy405;
6522         goto yy364;
6523       } else {
6524         if (yych <= 'r')
6525           goto yy399;
6526         if (yych == 't')
6527           goto yy406;
6528         goto yy364;
6529       }
6530     }
6531   yy374:
6532     yych = *++p;
6533     if (yych == 'F')
6534       goto yy407;
6535     if (yych == 'f')
6536       goto yy407;
6537     goto yy364;
6538   yy375:
6539     yych = *++p;
6540     if (yych <= 'I') {
6541       if (yych == 'E')
6542         goto yy408;
6543       if (yych <= 'H')
6544         goto yy364;
6545       goto yy409;
6546     } else {
6547       if (yych <= 'e') {
6548         if (yych <= 'd')
6549           goto yy364;
6550         goto yy408;
6551       } else {
6552         if (yych == 'i')
6553           goto yy409;
6554         goto yy364;
6555       }
6556     }
6557   yy376:
6558     yych = *++p;
6559     if (yych <= 'E') {
6560       if (yych == 'A')
6561         goto yy410;
6562       if (yych <= 'D')
6563         goto yy364;
6564       goto yy411;
6565     } else {
6566       if (yych <= 'a') {
6567         if (yych <= '`')
6568           goto yy364;
6569         goto yy410;
6570       } else {
6571         if (yych == 'e')
6572           goto yy411;
6573         goto yy364;
6574       }
6575     }
6576   yy377:
6577     yych = *++p;
6578     if (yych <= 'O') {
6579       if (yych == 'A')
6580         goto yy412;
6581       if (yych <= 'N')
6582         goto yy364;
6583       goto yy413;
6584     } else {
6585       if (yych <= 'a') {
6586         if (yych <= '`')
6587           goto yy364;
6588         goto yy412;
6589       } else {
6590         if (yych == 'o')
6591           goto yy413;
6592         goto yy364;
6593       }
6594     }
6595   yy378:
6596     yych = *++p;
6597     if (yych <= 'P') {
6598       if (yych == 'L')
6599         goto yy399;
6600       if (yych <= 'O')
6601         goto yy364;
6602       goto yy414;
6603     } else {
6604       if (yych <= 'l') {
6605         if (yych <= 'k')
6606           goto yy364;
6607         goto yy399;
6608       } else {
6609         if (yych == 'p')
6610           goto yy414;
6611         goto yy364;
6612       }
6613     }
6614   yy379:
6615     yych = *++p;
6616     if (yych <= '>') {
6617       if (yych <= ' ') {
6618         if (yych <= 0x08)
6619           goto yy364;
6620         if (yych <= '\r')
6621           goto yy415;
6622         if (yych <= 0x1F)
6623           goto yy364;
6624         goto yy415;
6625       } else {
6626         if (yych == '/')
6627           goto yy417;
6628         if (yych <= '=')
6629           goto yy364;
6630         goto yy415;
6631       }
6632     } else {
6633       if (yych <= 'R') {
6634         if (yych == 'A')
6635           goto yy418;
6636         if (yych <= 'Q')
6637           goto yy364;
6638         goto yy419;
6639       } else {
6640         if (yych <= 'a') {
6641           if (yych <= '`')
6642             goto yy364;
6643           goto yy418;
6644         } else {
6645           if (yych == 'r')
6646             goto yy419;
6647           goto yy364;
6648         }
6649       }
6650     }
6651   yy380:
6652     yych = *++p;
6653     switch (yych) {
6654     case 'C':
6655     case 'c':
6656       goto yy420;
6657     case 'E':
6658     case 'e':
6659       goto yy421;
6660     case 'O':
6661     case 'o':
6662       goto yy422;
6663     case 'T':
6664     case 't':
6665       goto yy423;
6666     case 'U':
6667     case 'u':
6668       goto yy424;
6669     default:
6670       goto yy364;
6671     }
6672   yy381:
6673     yych = *++p;
6674     switch (yych) {
6675     case 'A':
6676     case 'a':
6677       goto yy425;
6678     case 'B':
6679     case 'b':
6680       goto yy426;
6681     case 'D':
6682     case 'd':
6683       goto yy399;
6684     case 'E':
6685     case 'e':
6686       goto yy427;
6687     case 'F':
6688     case 'f':
6689       goto yy428;
6690     case 'H':
6691     case 'h':
6692       goto yy429;
6693     case 'I':
6694     case 'i':
6695       goto yy430;
6696     case 'R':
6697     case 'r':
6698       goto yy431;
6699     default:
6700       goto yy364;
6701     }
6702   yy382:
6703     yych = *++p;
6704     if (yych == 'L')
6705       goto yy399;
6706     if (yych == 'l')
6707       goto yy399;
6708     goto yy364;
6709   yy383:
6710     yych = *++p;
6711     if (yych == '-')
6712       goto yy432;
6713     goto yy364;
6714   yy384:
6715     ++p;
6716     { return 4; }
6717   yy386:
6718     yych = *++p;
6719     if (yych == 'C')
6720       goto yy434;
6721     if (yych == 'c')
6722       goto yy434;
6723     goto yy364;
6724   yy387:
6725     yych = *++p;
6726     if (yych <= '/') {
6727       if (yych <= 0x1F) {
6728         if (yych <= 0x08)
6729           goto yy364;
6730         if (yych <= '\r')
6731           goto yy415;
6732         goto yy364;
6733       } else {
6734         if (yych <= ' ')
6735           goto yy415;
6736         if (yych <= '.')
6737           goto yy364;
6738         goto yy417;
6739       }
6740     } else {
6741       if (yych <= '@') {
6742         if (yych == '>')
6743           goto yy415;
6744         goto yy364;
6745       } else {
6746         if (yych <= 'A')
6747           goto yy418;
6748         if (yych == 'a')
6749           goto yy418;
6750         goto yy364;
6751       }
6752     }
6753   yy388:
6754     yych = *++p;
6755     if (yych <= 'U') {
6756       if (yych <= 'N') {
6757         if (yych == 'E')
6758           goto yy421;
6759         goto yy364;
6760       } else {
6761         if (yych <= 'O')
6762           goto yy422;
6763         if (yych <= 'T')
6764           goto yy364;
6765         goto yy424;
6766       }
6767     } else {
6768       if (yych <= 'n') {
6769         if (yych == 'e')
6770           goto yy421;
6771         goto yy364;
6772       } else {
6773         if (yych <= 'o')
6774           goto yy422;
6775         if (yych == 'u')
6776           goto yy424;
6777         goto yy364;
6778       }
6779     }
6780   yy389:
6781     yych = *++p;
6782     switch (yych) {
6783     case 'A':
6784     case 'a':
6785       goto yy425;
6786     case 'B':
6787     case 'b':
6788       goto yy426;
6789     case 'D':
6790     case 'd':
6791       goto yy399;
6792     case 'F':
6793     case 'f':
6794       goto yy428;
6795     case 'H':
6796     case 'h':
6797       goto yy429;
6798     case 'I':
6799     case 'i':
6800       goto yy430;
6801     case 'R':
6802     case 'r':
6803       goto yy431;
6804     default:
6805       goto yy364;
6806     }
6807   yy390:
6808     yych = *++p;
6809     if (yych == 'D')
6810       goto yy435;
6811     if (yych == 'd')
6812       goto yy435;
6813     goto yy364;
6814   yy391:
6815     yych = *++p;
6816     if (yych == 'T')
6817       goto yy436;
6818     if (yych == 't')
6819       goto yy436;
6820     goto yy364;
6821   yy392:
6822     yych = *++p;
6823     if (yych == 'I')
6824       goto yy437;
6825     if (yych == 'i')
6826       goto yy437;
6827     goto yy364;
6828   yy393:
6829     yych = *++p;
6830     if (yych == 'S')
6831       goto yy438;
6832     if (yych == 's')
6833       goto yy438;
6834     goto yy364;
6835   yy394:
6836     yych = *++p;
6837     if (yych == 'O')
6838       goto yy439;
6839     if (yych == 'o')
6840       goto yy439;
6841     goto yy364;
6842   yy395:
6843     yych = *++p;
6844     if (yych == 'D')
6845       goto yy440;
6846     if (yych == 'd')
6847       goto yy440;
6848     goto yy364;
6849   yy396:
6850     yych = *++p;
6851     if (yych == 'P')
6852       goto yy441;
6853     if (yych == 'p')
6854       goto yy441;
6855     goto yy364;
6856   yy397:
6857     yych = *++p;
6858     if (yych == 'N')
6859       goto yy442;
6860     if (yych == 'n')
6861       goto yy442;
6862     goto yy364;
6863   yy398:
6864     yych = *++p;
6865     if (yych == 'L')
6866       goto yy443;
6867     if (yych == 'l')
6868       goto yy443;
6869     goto yy364;
6870   yy399:
6871     yych = *++p;
6872     if (yych <= ' ') {
6873       if (yych <= 0x08)
6874         goto yy364;
6875       if (yych <= '\r')
6876         goto yy415;
6877       if (yych <= 0x1F)
6878         goto yy364;
6879       goto yy415;
6880     } else {
6881       if (yych <= '/') {
6882         if (yych <= '.')
6883           goto yy364;
6884         goto yy417;
6885       } else {
6886         if (yych == '>')
6887           goto yy415;
6888         goto yy364;
6889       }
6890     }
6891   yy400:
6892     yych = *++p;
6893     if (yych == 'T')
6894       goto yy444;
6895     if (yych == 't')
6896       goto yy444;
6897     goto yy364;
6898   yy401:
6899     yych = *++p;
6900     if (yych <= 'V') {
6901       if (yych <= 'Q') {
6902         if (yych == 'A')
6903           goto yy445;
6904         goto yy364;
6905       } else {
6906         if (yych <= 'R')
6907           goto yy399;
6908         if (yych <= 'U')
6909           goto yy364;
6910         goto yy399;
6911       }
6912     } else {
6913       if (yych <= 'q') {
6914         if (yych == 'a')
6915           goto yy445;
6916         goto yy364;
6917       } else {
6918         if (yych <= 'r')
6919           goto yy399;
6920         if (yych == 'v')
6921           goto yy399;
6922         goto yy364;
6923       }
6924     }
6925   yy402:
6926     yych = *++p;
6927     if (yych <= 'G') {
6928       if (yych == 'E')
6929         goto yy446;
6930       if (yych <= 'F')
6931         goto yy364;
6932       goto yy447;
6933     } else {
6934       if (yych <= 'e') {
6935         if (yych <= 'd')
6936           goto yy364;
6937         goto yy446;
6938       } else {
6939         if (yych == 'g')
6940           goto yy447;
6941         goto yy364;
6942       }
6943     }
6944   yy403:
6945     yych = *++p;
6946     if (yych <= 'R') {
6947       if (yych == 'O')
6948         goto yy442;
6949       if (yych <= 'Q')
6950         goto yy364;
6951       goto yy448;
6952     } else {
6953       if (yych <= 'o') {
6954         if (yych <= 'n')
6955           goto yy364;
6956         goto yy442;
6957       } else {
6958         if (yych == 'r')
6959           goto yy448;
6960         goto yy364;
6961       }
6962     }
6963   yy404:
6964     yych = *++p;
6965     if (yych == 'A')
6966       goto yy449;
6967     if (yych == 'a')
6968       goto yy449;
6969     goto yy364;
6970   yy405:
6971     yych = *++p;
6972     if (yych == 'A')
6973       goto yy450;
6974     if (yych == 'a')
6975       goto yy450;
6976     goto yy364;
6977   yy406:
6978     yych = *++p;
6979     if (yych == 'M')
6980       goto yy382;
6981     if (yych == 'm')
6982       goto yy382;
6983     goto yy364;
6984   yy407:
6985     yych = *++p;
6986     if (yych == 'R')
6987       goto yy451;
6988     if (yych == 'r')
6989       goto yy451;
6990     goto yy364;
6991   yy408:
6992     yych = *++p;
6993     if (yych == 'G')
6994       goto yy452;
6995     if (yych == 'g')
6996       goto yy452;
6997     goto yy364;
6998   yy409:
6999     yych = *++p;
7000     if (yych <= '/') {
7001       if (yych <= 0x1F) {
7002         if (yych <= 0x08)
7003           goto yy364;
7004         if (yych <= '\r')
7005           goto yy415;
7006         goto yy364;
7007       } else {
7008         if (yych <= ' ')
7009           goto yy415;
7010         if (yych <= '.')
7011           goto yy364;
7012         goto yy417;
7013       }
7014     } else {
7015       if (yych <= 'M') {
7016         if (yych == '>')
7017           goto yy415;
7018         goto yy364;
7019       } else {
7020         if (yych <= 'N')
7021           goto yy453;
7022         if (yych == 'n')
7023           goto yy453;
7024         goto yy364;
7025       }
7026     }
7027   yy410:
7028     yych = *++p;
7029     if (yych == 'I')
7030       goto yy454;
7031     if (yych == 'i')
7032       goto yy454;
7033     goto yy364;
7034   yy411:
7035     yych = *++p;
7036     if (yych == 'N')
7037       goto yy455;
7038     if (yych == 'n')
7039       goto yy455;
7040     goto yy364;
7041   yy412:
7042     yych = *++p;
7043     if (yych == 'V')
7044       goto yy399;
7045     if (yych == 'v')
7046       goto yy399;
7047     goto yy364;
7048   yy413:
7049     yych = *++p;
7050     if (yych == 'F')
7051       goto yy456;
7052     if (yych == 'f')
7053       goto yy456;
7054     goto yy364;
7055   yy414:
7056     yych = *++p;
7057     if (yych == 'T')
7058       goto yy457;
7059     if (yych == 't')
7060       goto yy457;
7061     goto yy364;
7062   yy415:
7063     ++p;
7064     { return 6; }
7065   yy417:
7066     yych = *++p;
7067     if (yych == '>')
7068       goto yy415;
7069     goto yy364;
7070   yy418:
7071     yych = *++p;
7072     if (yych == 'R')
7073       goto yy458;
7074     if (yych == 'r')
7075       goto yy458;
7076     goto yy364;
7077   yy419:
7078     yych = *++p;
7079     if (yych == 'E')
7080       goto yy459;
7081     if (yych == 'e')
7082       goto yy459;
7083     goto yy364;
7084   yy420:
7085     yych = *++p;
7086     if (yych == 'R')
7087       goto yy460;
7088     if (yych == 'r')
7089       goto yy460;
7090     goto yy364;
7091   yy421:
7092     yych = *++p;
7093     if (yych == 'C')
7094       goto yy441;
7095     if (yych == 'c')
7096       goto yy441;
7097     goto yy364;
7098   yy422:
7099     yych = *++p;
7100     if (yych == 'U')
7101       goto yy461;
7102     if (yych == 'u')
7103       goto yy461;
7104     goto yy364;
7105   yy423:
7106     yych = *++p;
7107     if (yych == 'Y')
7108       goto yy462;
7109     if (yych == 'y')
7110       goto yy462;
7111     goto yy364;
7112   yy424:
7113     yych = *++p;
7114     if (yych == 'M')
7115       goto yy463;
7116     if (yych == 'm')
7117       goto yy463;
7118     goto yy364;
7119   yy425:
7120     yych = *++p;
7121     if (yych == 'B')
7122       goto yy464;
7123     if (yych == 'b')
7124       goto yy464;
7125     goto yy364;
7126   yy426:
7127     yych = *++p;
7128     if (yych == 'O')
7129       goto yy395;
7130     if (yych == 'o')
7131       goto yy395;
7132     goto yy364;
7133   yy427:
7134     yych = *++p;
7135     if (yych == 'X')
7136       goto yy465;
7137     if (yych == 'x')
7138       goto yy465;
7139     goto yy364;
7140   yy428:
7141     yych = *++p;
7142     if (yych == 'O')
7143       goto yy466;
7144     if (yych == 'o')
7145       goto yy466;
7146     goto yy364;
7147   yy429:
7148     yych = *++p;
7149     if (yych <= '/') {
7150       if (yych <= 0x1F) {
7151         if (yych <= 0x08)
7152           goto yy364;
7153         if (yych <= '\r')
7154           goto yy415;
7155         goto yy364;
7156       } else {
7157         if (yych <= ' ')
7158           goto yy415;
7159         if (yych <= '.')
7160           goto yy364;
7161         goto yy417;
7162       }
7163     } else {
7164       if (yych <= 'D') {
7165         if (yych == '>')
7166           goto yy415;
7167         goto yy364;
7168       } else {
7169         if (yych <= 'E')
7170           goto yy467;
7171         if (yych == 'e')
7172           goto yy467;
7173         goto yy364;
7174       }
7175     }
7176   yy430:
7177     yych = *++p;
7178     if (yych == 'T')
7179       goto yy464;
7180     if (yych == 't')
7181       goto yy464;
7182     goto yy364;
7183   yy431:
7184     yych = *++p;
7185     if (yych <= '/') {
7186       if (yych <= 0x1F) {
7187         if (yych <= 0x08)
7188           goto yy364;
7189         if (yych <= '\r')
7190           goto yy415;
7191         goto yy364;
7192       } else {
7193         if (yych <= ' ')
7194           goto yy415;
7195         if (yych <= '.')
7196           goto yy364;
7197         goto yy417;
7198       }
7199     } else {
7200       if (yych <= '@') {
7201         if (yych == '>')
7202           goto yy415;
7203         goto yy364;
7204       } else {
7205         if (yych <= 'A')
7206           goto yy468;
7207         if (yych == 'a')
7208           goto yy468;
7209         goto yy364;
7210       }
7211     }
7212   yy432:
7213     ++p;
7214     { return 2; }
7215   yy434:
7216     yych = *++p;
7217     if (yych == 'D')
7218       goto yy469;
7219     if (yych == 'd')
7220       goto yy469;
7221     goto yy364;
7222   yy435:
7223     yych = *++p;
7224     if (yych == 'R')
7225       goto yy470;
7226     if (yych == 'r')
7227       goto yy470;
7228     goto yy364;
7229   yy436:
7230     yych = *++p;
7231     if (yych == 'I')
7232       goto yy471;
7233     if (yych == 'i')
7234       goto yy471;
7235     goto yy364;
7236   yy437:
7237     yych = *++p;
7238     if (yych == 'D')
7239       goto yy472;
7240     if (yych == 'd')
7241       goto yy472;
7242     goto yy364;
7243   yy438:
7244     yych = *++p;
7245     if (yych == 'E')
7246       goto yy473;
7247     if (yych == 'e')
7248       goto yy473;
7249     goto yy364;
7250   yy439:
7251     yych = *++p;
7252     if (yych == 'C')
7253       goto yy474;
7254     if (yych == 'c')
7255       goto yy474;
7256     goto yy364;
7257   yy440:
7258     yych = *++p;
7259     if (yych == 'Y')
7260       goto yy399;
7261     if (yych == 'y')
7262       goto yy399;
7263     goto yy364;
7264   yy441:
7265     yych = *++p;
7266     if (yych == 'T')
7267       goto yy475;
7268     if (yych == 't')
7269       goto yy475;
7270     goto yy364;
7271   yy442:
7272     yych = *++p;
7273     if (yych == 'T')
7274       goto yy476;
7275     if (yych == 't')
7276       goto yy476;
7277     goto yy364;
7278   yy443:
7279     yych = *++p;
7280     if (yych <= '/') {
7281       if (yych <= 0x1F) {
7282         if (yych <= 0x08)
7283           goto yy364;
7284         if (yych <= '\r')
7285           goto yy415;
7286         goto yy364;
7287       } else {
7288         if (yych <= ' ')
7289           goto yy415;
7290         if (yych <= '.')
7291           goto yy364;
7292         goto yy417;
7293       }
7294     } else {
7295       if (yych <= 'F') {
7296         if (yych == '>')
7297           goto yy415;
7298         goto yy364;
7299       } else {
7300         if (yych <= 'G')
7301           goto yy477;
7302         if (yych == 'g')
7303           goto yy477;
7304         goto yy364;
7305       }
7306     }
7307   yy444:
7308     yych = *++p;
7309     if (yych == 'A')
7310       goto yy478;
7311     if (yych == 'a')
7312       goto yy478;
7313     goto yy364;
7314   yy445:
7315     yych = *++p;
7316     if (yych == 'L')
7317       goto yy479;
7318     if (yych == 'l')
7319       goto yy479;
7320     goto yy364;
7321   yy446:
7322     yych = *++p;
7323     if (yych == 'L')
7324       goto yy480;
7325     if (yych == 'l')
7326       goto yy480;
7327     goto yy364;
7328   yy447:
7329     yych = *++p;
7330     if (yych <= 'U') {
7331       if (yych == 'C')
7332         goto yy481;
7333       if (yych <= 'T')
7334         goto yy364;
7335       goto yy482;
7336     } else {
7337       if (yych <= 'c') {
7338         if (yych <= 'b')
7339           goto yy364;
7340         goto yy481;
7341       } else {
7342         if (yych == 'u')
7343           goto yy482;
7344         goto yy364;
7345       }
7346     }
7347   yy448:
7348     yych = *++p;
7349     if (yych == 'M')
7350       goto yy399;
7351     if (yych == 'm')
7352       goto yy399;
7353     goto yy364;
7354   yy449:
7355     yych = *++p;
7356     if (yych == 'M')
7357       goto yy483;
7358     if (yych == 'm')
7359       goto yy483;
7360     goto yy364;
7361   yy450:
7362     yych = *++p;
7363     if (yych == 'D')
7364       goto yy484;
7365     if (yych == 'd')
7366       goto yy484;
7367     goto yy364;
7368   yy451:
7369     yych = *++p;
7370     if (yych == 'A')
7371       goto yy485;
7372     if (yych == 'a')
7373       goto yy485;
7374     goto yy364;
7375   yy452:
7376     yych = *++p;
7377     if (yych == 'E')
7378       goto yy486;
7379     if (yych == 'e')
7380       goto yy486;
7381     goto yy364;
7382   yy453:
7383     yych = *++p;
7384     if (yych == 'K')
7385       goto yy399;
7386     if (yych == 'k')
7387       goto yy399;
7388     goto yy364;
7389   yy454:
7390     yych = *++p;
7391     if (yych == 'N')
7392       goto yy399;
7393     if (yych == 'n')
7394       goto yy399;
7395     goto yy364;
7396   yy455:
7397     yych = *++p;
7398     if (yych == 'U')
7399       goto yy487;
7400     if (yych == 'u')
7401       goto yy487;
7402     goto yy364;
7403   yy456:
7404     yych = *++p;
7405     if (yych == 'R')
7406       goto yy488;
7407     if (yych == 'r')
7408       goto yy488;
7409     goto yy364;
7410   yy457:
7411     yych = *++p;
7412     if (yych <= 'I') {
7413       if (yych == 'G')
7414         goto yy477;
7415       if (yych <= 'H')
7416         goto yy364;
7417       goto yy489;
7418     } else {
7419       if (yych <= 'g') {
7420         if (yych <= 'f')
7421           goto yy364;
7422         goto yy477;
7423       } else {
7424         if (yych == 'i')
7425           goto yy489;
7426         goto yy364;
7427       }
7428     }
7429   yy458:
7430     yych = *++p;
7431     if (yych == 'A')
7432       goto yy448;
7433     if (yych == 'a')
7434       goto yy448;
7435     goto yy364;
7436   yy459:
7437     yych = *++p;
7438     if (yych <= 0x1F) {
7439       if (yych <= 0x08)
7440         goto yy364;
7441       if (yych <= '\r')
7442         goto yy490;
7443       goto yy364;
7444     } else {
7445       if (yych <= ' ')
7446         goto yy490;
7447       if (yych == '>')
7448         goto yy490;
7449       goto yy364;
7450     }
7451   yy460:
7452     yych = *++p;
7453     if (yych == 'I')
7454       goto yy492;
7455     if (yych == 'i')
7456       goto yy492;
7457     goto yy364;
7458   yy461:
7459     yych = *++p;
7460     if (yych == 'R')
7461       goto yy493;
7462     if (yych == 'r')
7463       goto yy493;
7464     goto yy364;
7465   yy462:
7466     yych = *++p;
7467     if (yych == 'L')
7468       goto yy419;
7469     if (yych == 'l')
7470       goto yy419;
7471     goto yy364;
7472   yy463:
7473     yych = *++p;
7474     if (yych == 'M')
7475       goto yy494;
7476     if (yych == 'm')
7477       goto yy494;
7478     goto yy364;
7479   yy464:
7480     yych = *++p;
7481     if (yych == 'L')
7482       goto yy472;
7483     if (yych == 'l')
7484       goto yy472;
7485     goto yy364;
7486   yy465:
7487     yych = *++p;
7488     if (yych == 'T')
7489       goto yy495;
7490     if (yych == 't')
7491       goto yy495;
7492     goto yy364;
7493   yy466:
7494     yych = *++p;
7495     if (yych == 'O')
7496       goto yy496;
7497     if (yych == 'o')
7498       goto yy496;
7499     goto yy364;
7500   yy467:
7501     yych = *++p;
7502     if (yych == 'A')
7503       goto yy497;
7504     if (yych == 'a')
7505       goto yy497;
7506     goto yy364;
7507   yy468:
7508     yych = *++p;
7509     if (yych == 'C')
7510       goto yy453;
7511     if (yych == 'c')
7512       goto yy453;
7513     goto yy364;
7514   yy469:
7515     yych = *++p;
7516     if (yych == 'A')
7517       goto yy498;
7518     if (yych == 'a')
7519       goto yy498;
7520     goto yy364;
7521   yy470:
7522     yych = *++p;
7523     if (yych == 'E')
7524       goto yy499;
7525     if (yych == 'e')
7526       goto yy499;
7527     goto yy364;
7528   yy471:
7529     yych = *++p;
7530     if (yych == 'C')
7531       goto yy464;
7532     if (yych == 'c')
7533       goto yy464;
7534     goto yy364;
7535   yy472:
7536     yych = *++p;
7537     if (yych == 'E')
7538       goto yy399;
7539     if (yych == 'e')
7540       goto yy399;
7541     goto yy364;
7542   yy473:
7543     yych = *++p;
7544     if (yych <= '/') {
7545       if (yych <= 0x1F) {
7546         if (yych <= 0x08)
7547           goto yy364;
7548         if (yych <= '\r')
7549           goto yy415;
7550         goto yy364;
7551       } else {
7552         if (yych <= ' ')
7553           goto yy415;
7554         if (yych <= '.')
7555           goto yy364;
7556         goto yy417;
7557       }
7558     } else {
7559       if (yych <= 'E') {
7560         if (yych == '>')
7561           goto yy415;
7562         goto yy364;
7563       } else {
7564         if (yych <= 'F')
7565           goto yy500;
7566         if (yych == 'f')
7567           goto yy500;
7568         goto yy364;
7569       }
7570     }
7571   yy474:
7572     yych = *++p;
7573     if (yych == 'K')
7574       goto yy501;
7575     if (yych == 'k')
7576       goto yy501;
7577     goto yy364;
7578   yy475:
7579     yych = *++p;
7580     if (yych == 'I')
7581       goto yy489;
7582     if (yych == 'i')
7583       goto yy489;
7584     goto yy364;
7585   yy476:
7586     yych = *++p;
7587     if (yych == 'E')
7588       goto yy502;
7589     if (yych == 'e')
7590       goto yy502;
7591     goto yy364;
7592   yy477:
7593     yych = *++p;
7594     if (yych == 'R')
7595       goto yy503;
7596     if (yych == 'r')
7597       goto yy503;
7598     goto yy364;
7599   yy478:
7600     yych = *++p;
7601     if (yych == 'I')
7602       goto yy504;
7603     if (yych == 'i')
7604       goto yy504;
7605     goto yy364;
7606   yy479:
7607     yych = *++p;
7608     if (yych == 'O')
7609       goto yy505;
7610     if (yych == 'o')
7611       goto yy505;
7612     goto yy364;
7613   yy480:
7614     yych = *++p;
7615     if (yych == 'D')
7616       goto yy506;
7617     if (yych == 'd')
7618       goto yy506;
7619     goto yy364;
7620   yy481:
7621     yych = *++p;
7622     if (yych == 'A')
7623       goto yy396;
7624     if (yych == 'a')
7625       goto yy396;
7626     goto yy364;
7627   yy482:
7628     yych = *++p;
7629     if (yych == 'R')
7630       goto yy472;
7631     if (yych == 'r')
7632       goto yy472;
7633     goto yy364;
7634   yy483:
7635     yych = *++p;
7636     if (yych == 'E')
7637       goto yy507;
7638     if (yych == 'e')
7639       goto yy507;
7640     goto yy364;
7641   yy484:
7642     yych = *++p;
7643     if (yych <= '/') {
7644       if (yych <= 0x1F) {
7645         if (yych <= 0x08)
7646           goto yy364;
7647         if (yych <= '\r')
7648           goto yy415;
7649         goto yy364;
7650       } else {
7651         if (yych <= ' ')
7652           goto yy415;
7653         if (yych <= '.')
7654           goto yy364;
7655         goto yy417;
7656       }
7657     } else {
7658       if (yych <= 'D') {
7659         if (yych == '>')
7660           goto yy415;
7661         goto yy364;
7662       } else {
7663         if (yych <= 'E')
7664           goto yy502;
7665         if (yych == 'e')
7666           goto yy502;
7667         goto yy364;
7668       }
7669     }
7670   yy485:
7671     yych = *++p;
7672     if (yych == 'M')
7673       goto yy472;
7674     if (yych == 'm')
7675       goto yy472;
7676     goto yy364;
7677   yy486:
7678     yych = *++p;
7679     if (yych == 'N')
7680       goto yy497;
7681     if (yych == 'n')
7682       goto yy497;
7683     goto yy364;
7684   yy487:
7685     yych = *++p;
7686     if (yych <= '/') {
7687       if (yych <= 0x1F) {
7688         if (yych <= 0x08)
7689           goto yy364;
7690         if (yych <= '\r')
7691           goto yy415;
7692         goto yy364;
7693       } else {
7694         if (yych <= ' ')
7695           goto yy415;
7696         if (yych <= '.')
7697           goto yy364;
7698         goto yy417;
7699       }
7700     } else {
7701       if (yych <= 'H') {
7702         if (yych == '>')
7703           goto yy415;
7704         goto yy364;
7705       } else {
7706         if (yych <= 'I')
7707           goto yy508;
7708         if (yych == 'i')
7709           goto yy508;
7710         goto yy364;
7711       }
7712     }
7713   yy488:
7714     yych = *++p;
7715     if (yych == 'A')
7716       goto yy509;
7717     if (yych == 'a')
7718       goto yy509;
7719     goto yy364;
7720   yy489:
7721     yych = *++p;
7722     if (yych == 'O')
7723       goto yy454;
7724     if (yych == 'o')
7725       goto yy454;
7726     goto yy364;
7727   yy490:
7728     ++p;
7729     { return 1; }
7730   yy492:
7731     yych = *++p;
7732     if (yych == 'P')
7733       goto yy510;
7734     if (yych == 'p')
7735       goto yy510;
7736     goto yy364;
7737   yy493:
7738     yych = *++p;
7739     if (yych == 'C')
7740       goto yy472;
7741     if (yych == 'c')
7742       goto yy472;
7743     goto yy364;
7744   yy494:
7745     yych = *++p;
7746     if (yych == 'A')
7747       goto yy511;
7748     if (yych == 'a')
7749       goto yy511;
7750     goto yy364;
7751   yy495:
7752     yych = *++p;
7753     if (yych == 'A')
7754       goto yy512;
7755     if (yych == 'a')
7756       goto yy512;
7757     goto yy364;
7758   yy496:
7759     yych = *++p;
7760     if (yych == 'T')
7761       goto yy399;
7762     if (yych == 't')
7763       goto yy399;
7764     goto yy364;
7765   yy497:
7766     yych = *++p;
7767     if (yych == 'D')
7768       goto yy399;
7769     if (yych == 'd')
7770       goto yy399;
7771     goto yy364;
7772   yy498:
7773     yych = *++p;
7774     if (yych == 'T')
7775       goto yy513;
7776     if (yych == 't')
7777       goto yy513;
7778     goto yy364;
7779   yy499:
7780     yych = *++p;
7781     if (yych == 'S')
7782       goto yy514;
7783     if (yych == 's')
7784       goto yy514;
7785     goto yy364;
7786   yy500:
7787     yych = *++p;
7788     if (yych == 'O')
7789       goto yy515;
7790     if (yych == 'o')
7791       goto yy515;
7792     goto yy364;
7793   yy501:
7794     yych = *++p;
7795     if (yych == 'Q')
7796       goto yy516;
7797     if (yych == 'q')
7798       goto yy516;
7799     goto yy364;
7800   yy502:
7801     yych = *++p;
7802     if (yych == 'R')
7803       goto yy399;
7804     if (yych == 'r')
7805       goto yy399;
7806     goto yy364;
7807   yy503:
7808     yych = *++p;
7809     if (yych == 'O')
7810       goto yy517;
7811     if (yych == 'o')
7812       goto yy517;
7813     goto yy364;
7814   yy504:
7815     yych = *++p;
7816     if (yych == 'L')
7817       goto yy514;
7818     if (yych == 'l')
7819       goto yy514;
7820     goto yy364;
7821   yy505:
7822     yych = *++p;
7823     if (yych == 'G')
7824       goto yy399;
7825     if (yych == 'g')
7826       goto yy399;
7827     goto yy364;
7828   yy506:
7829     yych = *++p;
7830     if (yych == 'S')
7831       goto yy518;
7832     if (yych == 's')
7833       goto yy518;
7834     goto yy364;
7835   yy507:
7836     yych = *++p;
7837     if (yych <= '/') {
7838       if (yych <= 0x1F) {
7839         if (yych <= 0x08)
7840           goto yy364;
7841         if (yych <= '\r')
7842           goto yy415;
7843         goto yy364;
7844       } else {
7845         if (yych <= ' ')
7846           goto yy415;
7847         if (yych <= '.')
7848           goto yy364;
7849         goto yy417;
7850       }
7851     } else {
7852       if (yych <= 'R') {
7853         if (yych == '>')
7854           goto yy415;
7855         goto yy364;
7856       } else {
7857         if (yych <= 'S')
7858           goto yy518;
7859         if (yych == 's')
7860           goto yy518;
7861         goto yy364;
7862       }
7863     }
7864   yy508:
7865     yych = *++p;
7866     if (yych == 'T')
7867       goto yy519;
7868     if (yych == 't')
7869       goto yy519;
7870     goto yy364;
7871   yy509:
7872     yych = *++p;
7873     if (yych == 'M')
7874       goto yy520;
7875     if (yych == 'm')
7876       goto yy520;
7877     goto yy364;
7878   yy510:
7879     yych = *++p;
7880     if (yych == 'T')
7881       goto yy459;
7882     if (yych == 't')
7883       goto yy459;
7884     goto yy364;
7885   yy511:
7886     yych = *++p;
7887     if (yych == 'R')
7888       goto yy440;
7889     if (yych == 'r')
7890       goto yy440;
7891     goto yy364;
7892   yy512:
7893     yych = *++p;
7894     if (yych == 'R')
7895       goto yy521;
7896     if (yych == 'r')
7897       goto yy521;
7898     goto yy364;
7899   yy513:
7900     yych = *++p;
7901     if (yych == 'A')
7902       goto yy522;
7903     if (yych == 'a')
7904       goto yy522;
7905     goto yy364;
7906   yy514:
7907     yych = *++p;
7908     if (yych == 'S')
7909       goto yy399;
7910     if (yych == 's')
7911       goto yy399;
7912     goto yy364;
7913   yy515:
7914     yych = *++p;
7915     if (yych == 'N')
7916       goto yy496;
7917     if (yych == 'n')
7918       goto yy496;
7919     goto yy364;
7920   yy516:
7921     yych = *++p;
7922     if (yych == 'U')
7923       goto yy523;
7924     if (yych == 'u')
7925       goto yy523;
7926     goto yy364;
7927   yy517:
7928     yych = *++p;
7929     if (yych == 'U')
7930       goto yy524;
7931     if (yych == 'u')
7932       goto yy524;
7933     goto yy364;
7934   yy518:
7935     yych = *++p;
7936     if (yych == 'E')
7937       goto yy496;
7938     if (yych == 'e')
7939       goto yy496;
7940     goto yy364;
7941   yy519:
7942     yych = *++p;
7943     if (yych == 'E')
7944       goto yy448;
7945     if (yych == 'e')
7946       goto yy448;
7947     goto yy364;
7948   yy520:
7949     yych = *++p;
7950     if (yych == 'E')
7951       goto yy514;
7952     if (yych == 'e')
7953       goto yy514;
7954     goto yy364;
7955   yy521:
7956     yych = *++p;
7957     if (yych == 'E')
7958       goto yy525;
7959     if (yych == 'e')
7960       goto yy525;
7961     goto yy364;
7962   yy522:
7963     yych = *++p;
7964     if (yych == '[')
7965       goto yy526;
7966     goto yy364;
7967   yy523:
7968     yych = *++p;
7969     if (yych == 'O')
7970       goto yy528;
7971     if (yych == 'o')
7972       goto yy528;
7973     goto yy364;
7974   yy524:
7975     yych = *++p;
7976     if (yych == 'P')
7977       goto yy399;
7978     if (yych == 'p')
7979       goto yy399;
7980     goto yy364;
7981   yy525:
7982     yych = *++p;
7983     if (yych == 'A')
7984       goto yy459;
7985     if (yych == 'a')
7986       goto yy459;
7987     goto yy364;
7988   yy526:
7989     ++p;
7990     { return 5; }
7991   yy528:
7992     yych = *++p;
7993     if (yych == 'T')
7994       goto yy472;
7995     if (yych == 't')
7996       goto yy472;
7997     goto yy364;
7998   }
7999 }
8000 
8001 // Try to match an HTML block tag start line of type 7, returning
8002 // 7 if successful, 0 if not.
_scan_html_block_start_7(const unsigned char * p)8003 bufsize_t _scan_html_block_start_7(const unsigned char *p) {
8004   const unsigned char *marker = NULL;
8005 
8006   {
8007     unsigned char yych;
8008     unsigned int yyaccept = 0;
8009     static const unsigned char yybm[] = {
8010         0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 210, 194, 198, 194,
8011         224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
8012         224, 224, 224, 224, 198, 224, 128, 224, 224, 224, 224, 64,  224, 224,
8013         224, 224, 224, 233, 232, 224, 233, 233, 233, 233, 233, 233, 233, 233,
8014         233, 233, 232, 224, 192, 192, 192, 224, 224, 233, 233, 233, 233, 233,
8015         233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
8016         233, 233, 233, 233, 233, 233, 233, 224, 224, 224, 224, 232, 192, 233,
8017         233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
8018         233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 224, 224, 224,
8019         224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8020         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8021         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8022         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8023         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8024         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8025         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8026         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8027         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
8028         0,   0,   0,   0,
8029     };
8030     yych = *p;
8031     if (yych == '<')
8032       goto yy533;
8033     ++p;
8034   yy532 : { return 0; }
8035   yy533:
8036     yyaccept = 0;
8037     yych = *(marker = ++p);
8038     if (yych <= '@') {
8039       if (yych != '/')
8040         goto yy532;
8041     } else {
8042       if (yych <= 'Z')
8043         goto yy536;
8044       if (yych <= '`')
8045         goto yy532;
8046       if (yych <= 'z')
8047         goto yy536;
8048       goto yy532;
8049     }
8050     yych = *++p;
8051     if (yych <= '@')
8052       goto yy535;
8053     if (yych <= 'Z')
8054       goto yy538;
8055     if (yych <= '`')
8056       goto yy535;
8057     if (yych <= 'z')
8058       goto yy538;
8059   yy535:
8060     p = marker;
8061     if (yyaccept == 0) {
8062       goto yy532;
8063     } else {
8064       goto yy551;
8065     }
8066   yy536:
8067     yych = *++p;
8068     if (yybm[0 + yych] & 2) {
8069       goto yy540;
8070     }
8071     if (yych <= '=') {
8072       if (yych <= '.') {
8073         if (yych == '-')
8074           goto yy536;
8075         goto yy535;
8076       } else {
8077         if (yych <= '/')
8078           goto yy542;
8079         if (yych <= '9')
8080           goto yy536;
8081         goto yy535;
8082       }
8083     } else {
8084       if (yych <= 'Z') {
8085         if (yych <= '>')
8086           goto yy543;
8087         if (yych <= '@')
8088           goto yy535;
8089         goto yy536;
8090       } else {
8091         if (yych <= '`')
8092           goto yy535;
8093         if (yych <= 'z')
8094           goto yy536;
8095         goto yy535;
8096       }
8097     }
8098   yy538:
8099     yych = *++p;
8100     if (yych <= '/') {
8101       if (yych <= 0x1F) {
8102         if (yych <= 0x08)
8103           goto yy535;
8104         if (yych <= '\r')
8105           goto yy545;
8106         goto yy535;
8107       } else {
8108         if (yych <= ' ')
8109           goto yy545;
8110         if (yych == '-')
8111           goto yy538;
8112         goto yy535;
8113       }
8114     } else {
8115       if (yych <= '@') {
8116         if (yych <= '9')
8117           goto yy538;
8118         if (yych == '>')
8119           goto yy543;
8120         goto yy535;
8121       } else {
8122         if (yych <= 'Z')
8123           goto yy538;
8124         if (yych <= '`')
8125           goto yy535;
8126         if (yych <= 'z')
8127           goto yy538;
8128         goto yy535;
8129       }
8130     }
8131   yy540:
8132     yych = *++p;
8133     if (yybm[0 + yych] & 2) {
8134       goto yy540;
8135     }
8136     if (yych <= '>') {
8137       if (yych <= '9') {
8138         if (yych != '/')
8139           goto yy535;
8140       } else {
8141         if (yych <= ':')
8142           goto yy547;
8143         if (yych <= '=')
8144           goto yy535;
8145         goto yy543;
8146       }
8147     } else {
8148       if (yych <= '^') {
8149         if (yych <= '@')
8150           goto yy535;
8151         if (yych <= 'Z')
8152           goto yy547;
8153         goto yy535;
8154       } else {
8155         if (yych == '`')
8156           goto yy535;
8157         if (yych <= 'z')
8158           goto yy547;
8159         goto yy535;
8160       }
8161     }
8162   yy542:
8163     yych = *++p;
8164     if (yych != '>')
8165       goto yy535;
8166   yy543:
8167     yych = *++p;
8168     if (yybm[0 + yych] & 4) {
8169       goto yy543;
8170     }
8171     if (yych <= 0x08)
8172       goto yy535;
8173     if (yych <= '\n')
8174       goto yy549;
8175     if (yych <= '\v')
8176       goto yy535;
8177     if (yych <= '\r')
8178       goto yy552;
8179     goto yy535;
8180   yy545:
8181     yych = *++p;
8182     if (yych <= 0x1F) {
8183       if (yych <= 0x08)
8184         goto yy535;
8185       if (yych <= '\r')
8186         goto yy545;
8187       goto yy535;
8188     } else {
8189       if (yych <= ' ')
8190         goto yy545;
8191       if (yych == '>')
8192         goto yy543;
8193       goto yy535;
8194     }
8195   yy547:
8196     yych = *++p;
8197     if (yybm[0 + yych] & 8) {
8198       goto yy547;
8199     }
8200     if (yych <= ',') {
8201       if (yych <= '\r') {
8202         if (yych <= 0x08)
8203           goto yy535;
8204         goto yy553;
8205       } else {
8206         if (yych == ' ')
8207           goto yy553;
8208         goto yy535;
8209       }
8210     } else {
8211       if (yych <= '<') {
8212         if (yych <= '/')
8213           goto yy542;
8214         goto yy535;
8215       } else {
8216         if (yych <= '=')
8217           goto yy555;
8218         if (yych <= '>')
8219           goto yy543;
8220         goto yy535;
8221       }
8222     }
8223   yy549:
8224     yyaccept = 1;
8225     yych = *(marker = ++p);
8226     if (yybm[0 + yych] & 4) {
8227       goto yy543;
8228     }
8229     if (yych <= 0x08)
8230       goto yy551;
8231     if (yych <= '\n')
8232       goto yy549;
8233     if (yych <= '\v')
8234       goto yy551;
8235     if (yych <= '\r')
8236       goto yy552;
8237   yy551 : { return 7; }
8238   yy552:
8239     ++p;
8240     goto yy551;
8241   yy553:
8242     yych = *++p;
8243     if (yych <= '<') {
8244       if (yych <= ' ') {
8245         if (yych <= 0x08)
8246           goto yy535;
8247         if (yych <= '\r')
8248           goto yy553;
8249         if (yych <= 0x1F)
8250           goto yy535;
8251         goto yy553;
8252       } else {
8253         if (yych <= '/') {
8254           if (yych <= '.')
8255             goto yy535;
8256           goto yy542;
8257         } else {
8258           if (yych == ':')
8259             goto yy547;
8260           goto yy535;
8261         }
8262       }
8263     } else {
8264       if (yych <= 'Z') {
8265         if (yych <= '=')
8266           goto yy555;
8267         if (yych <= '>')
8268           goto yy543;
8269         if (yych <= '@')
8270           goto yy535;
8271         goto yy547;
8272       } else {
8273         if (yych <= '_') {
8274           if (yych <= '^')
8275             goto yy535;
8276           goto yy547;
8277         } else {
8278           if (yych <= '`')
8279             goto yy535;
8280           if (yych <= 'z')
8281             goto yy547;
8282           goto yy535;
8283         }
8284       }
8285     }
8286   yy555:
8287     yych = *++p;
8288     if (yybm[0 + yych] & 32) {
8289       goto yy557;
8290     }
8291     if (yych <= 0xE0) {
8292       if (yych <= '"') {
8293         if (yych <= 0x00)
8294           goto yy535;
8295         if (yych <= ' ')
8296           goto yy555;
8297         goto yy559;
8298       } else {
8299         if (yych <= '\'')
8300           goto yy561;
8301         if (yych <= 0xC1)
8302           goto yy535;
8303         if (yych <= 0xDF)
8304           goto yy563;
8305         goto yy564;
8306       }
8307     } else {
8308       if (yych <= 0xEF) {
8309         if (yych == 0xED)
8310           goto yy566;
8311         goto yy565;
8312       } else {
8313         if (yych <= 0xF0)
8314           goto yy567;
8315         if (yych <= 0xF3)
8316           goto yy568;
8317         if (yych <= 0xF4)
8318           goto yy569;
8319         goto yy535;
8320       }
8321     }
8322   yy557:
8323     yych = *++p;
8324     if (yybm[0 + yych] & 32) {
8325       goto yy557;
8326     }
8327     if (yych <= 0xE0) {
8328       if (yych <= '=') {
8329         if (yych <= 0x00)
8330           goto yy535;
8331         if (yych <= ' ')
8332           goto yy540;
8333         goto yy535;
8334       } else {
8335         if (yych <= '>')
8336           goto yy543;
8337         if (yych <= 0xC1)
8338           goto yy535;
8339         if (yych <= 0xDF)
8340           goto yy563;
8341         goto yy564;
8342       }
8343     } else {
8344       if (yych <= 0xEF) {
8345         if (yych == 0xED)
8346           goto yy566;
8347         goto yy565;
8348       } else {
8349         if (yych <= 0xF0)
8350           goto yy567;
8351         if (yych <= 0xF3)
8352           goto yy568;
8353         if (yych <= 0xF4)
8354           goto yy569;
8355         goto yy535;
8356       }
8357     }
8358   yy559:
8359     yych = *++p;
8360     if (yybm[0 + yych] & 64) {
8361       goto yy559;
8362     }
8363     if (yych <= 0xEC) {
8364       if (yych <= 0xC1) {
8365         if (yych <= 0x00)
8366           goto yy535;
8367         if (yych <= '"')
8368           goto yy570;
8369         goto yy535;
8370       } else {
8371         if (yych <= 0xDF)
8372           goto yy571;
8373         if (yych <= 0xE0)
8374           goto yy572;
8375         goto yy573;
8376       }
8377     } else {
8378       if (yych <= 0xF0) {
8379         if (yych <= 0xED)
8380           goto yy574;
8381         if (yych <= 0xEF)
8382           goto yy573;
8383         goto yy575;
8384       } else {
8385         if (yych <= 0xF3)
8386           goto yy576;
8387         if (yych <= 0xF4)
8388           goto yy577;
8389         goto yy535;
8390       }
8391     }
8392   yy561:
8393     yych = *++p;
8394     if (yybm[0 + yych] & 128) {
8395       goto yy561;
8396     }
8397     if (yych <= 0xEC) {
8398       if (yych <= 0xC1) {
8399         if (yych <= 0x00)
8400           goto yy535;
8401         if (yych <= '\'')
8402           goto yy570;
8403         goto yy535;
8404       } else {
8405         if (yych <= 0xDF)
8406           goto yy578;
8407         if (yych <= 0xE0)
8408           goto yy579;
8409         goto yy580;
8410       }
8411     } else {
8412       if (yych <= 0xF0) {
8413         if (yych <= 0xED)
8414           goto yy581;
8415         if (yych <= 0xEF)
8416           goto yy580;
8417         goto yy582;
8418       } else {
8419         if (yych <= 0xF3)
8420           goto yy583;
8421         if (yych <= 0xF4)
8422           goto yy584;
8423         goto yy535;
8424       }
8425     }
8426   yy563:
8427     yych = *++p;
8428     if (yych <= 0x7F)
8429       goto yy535;
8430     if (yych <= 0xBF)
8431       goto yy557;
8432     goto yy535;
8433   yy564:
8434     yych = *++p;
8435     if (yych <= 0x9F)
8436       goto yy535;
8437     if (yych <= 0xBF)
8438       goto yy563;
8439     goto yy535;
8440   yy565:
8441     yych = *++p;
8442     if (yych <= 0x7F)
8443       goto yy535;
8444     if (yych <= 0xBF)
8445       goto yy563;
8446     goto yy535;
8447   yy566:
8448     yych = *++p;
8449     if (yych <= 0x7F)
8450       goto yy535;
8451     if (yych <= 0x9F)
8452       goto yy563;
8453     goto yy535;
8454   yy567:
8455     yych = *++p;
8456     if (yych <= 0x8F)
8457       goto yy535;
8458     if (yych <= 0xBF)
8459       goto yy565;
8460     goto yy535;
8461   yy568:
8462     yych = *++p;
8463     if (yych <= 0x7F)
8464       goto yy535;
8465     if (yych <= 0xBF)
8466       goto yy565;
8467     goto yy535;
8468   yy569:
8469     yych = *++p;
8470     if (yych <= 0x7F)
8471       goto yy535;
8472     if (yych <= 0x8F)
8473       goto yy565;
8474     goto yy535;
8475   yy570:
8476     yych = *++p;
8477     if (yybm[0 + yych] & 2) {
8478       goto yy540;
8479     }
8480     if (yych == '/')
8481       goto yy542;
8482     if (yych == '>')
8483       goto yy543;
8484     goto yy535;
8485   yy571:
8486     yych = *++p;
8487     if (yych <= 0x7F)
8488       goto yy535;
8489     if (yych <= 0xBF)
8490       goto yy559;
8491     goto yy535;
8492   yy572:
8493     yych = *++p;
8494     if (yych <= 0x9F)
8495       goto yy535;
8496     if (yych <= 0xBF)
8497       goto yy571;
8498     goto yy535;
8499   yy573:
8500     yych = *++p;
8501     if (yych <= 0x7F)
8502       goto yy535;
8503     if (yych <= 0xBF)
8504       goto yy571;
8505     goto yy535;
8506   yy574:
8507     yych = *++p;
8508     if (yych <= 0x7F)
8509       goto yy535;
8510     if (yych <= 0x9F)
8511       goto yy571;
8512     goto yy535;
8513   yy575:
8514     yych = *++p;
8515     if (yych <= 0x8F)
8516       goto yy535;
8517     if (yych <= 0xBF)
8518       goto yy573;
8519     goto yy535;
8520   yy576:
8521     yych = *++p;
8522     if (yych <= 0x7F)
8523       goto yy535;
8524     if (yych <= 0xBF)
8525       goto yy573;
8526     goto yy535;
8527   yy577:
8528     yych = *++p;
8529     if (yych <= 0x7F)
8530       goto yy535;
8531     if (yych <= 0x8F)
8532       goto yy573;
8533     goto yy535;
8534   yy578:
8535     yych = *++p;
8536     if (yych <= 0x7F)
8537       goto yy535;
8538     if (yych <= 0xBF)
8539       goto yy561;
8540     goto yy535;
8541   yy579:
8542     yych = *++p;
8543     if (yych <= 0x9F)
8544       goto yy535;
8545     if (yych <= 0xBF)
8546       goto yy578;
8547     goto yy535;
8548   yy580:
8549     yych = *++p;
8550     if (yych <= 0x7F)
8551       goto yy535;
8552     if (yych <= 0xBF)
8553       goto yy578;
8554     goto yy535;
8555   yy581:
8556     yych = *++p;
8557     if (yych <= 0x7F)
8558       goto yy535;
8559     if (yych <= 0x9F)
8560       goto yy578;
8561     goto yy535;
8562   yy582:
8563     yych = *++p;
8564     if (yych <= 0x8F)
8565       goto yy535;
8566     if (yych <= 0xBF)
8567       goto yy580;
8568     goto yy535;
8569   yy583:
8570     yych = *++p;
8571     if (yych <= 0x7F)
8572       goto yy535;
8573     if (yych <= 0xBF)
8574       goto yy580;
8575     goto yy535;
8576   yy584:
8577     yych = *++p;
8578     if (yych <= 0x7F)
8579       goto yy535;
8580     if (yych <= 0x8F)
8581       goto yy580;
8582     goto yy535;
8583   }
8584 }
8585 
8586 // Try to match an HTML block end line of type 1
_scan_html_block_end_1(const unsigned char * p)8587 bufsize_t _scan_html_block_end_1(const unsigned char *p) {
8588   const unsigned char *marker = NULL;
8589   const unsigned char *start = p;
8590 
8591   {
8592     unsigned char yych;
8593     unsigned int yyaccept = 0;
8594     static const unsigned char yybm[] = {
8595         0,  64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,
8596         64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
8597         64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
8598         64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
8599         64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
8600         64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
8601         64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
8602         64, 64, 0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8603         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8604         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8605         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8606         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8607         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8608         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
8609         0,  0,  0,  0,
8610     };
8611     yych = *p;
8612     if (yych <= 0xDF) {
8613       if (yych <= ';') {
8614         if (yych <= 0x00)
8615           goto yy587;
8616         if (yych != '\n')
8617           goto yy589;
8618       } else {
8619         if (yych <= '<')
8620           goto yy590;
8621         if (yych <= 0x7F)
8622           goto yy589;
8623         if (yych >= 0xC2)
8624           goto yy591;
8625       }
8626     } else {
8627       if (yych <= 0xEF) {
8628         if (yych <= 0xE0)
8629           goto yy592;
8630         if (yych == 0xED)
8631           goto yy594;
8632         goto yy593;
8633       } else {
8634         if (yych <= 0xF0)
8635           goto yy595;
8636         if (yych <= 0xF3)
8637           goto yy596;
8638         if (yych <= 0xF4)
8639           goto yy597;
8640       }
8641     }
8642   yy587:
8643     ++p;
8644   yy588 : { return 0; }
8645   yy589:
8646     yyaccept = 0;
8647     yych = *(marker = ++p);
8648     if (yych <= '\n') {
8649       if (yych <= 0x00)
8650         goto yy588;
8651       if (yych <= '\t')
8652         goto yy599;
8653       goto yy588;
8654     } else {
8655       if (yych <= 0x7F)
8656         goto yy599;
8657       if (yych <= 0xC1)
8658         goto yy588;
8659       if (yych <= 0xF4)
8660         goto yy599;
8661       goto yy588;
8662     }
8663   yy590:
8664     yyaccept = 0;
8665     yych = *(marker = ++p);
8666     if (yych <= '.') {
8667       if (yych <= 0x00)
8668         goto yy588;
8669       if (yych == '\n')
8670         goto yy588;
8671       goto yy599;
8672     } else {
8673       if (yych <= 0x7F) {
8674         if (yych <= '/')
8675           goto yy610;
8676         goto yy599;
8677       } else {
8678         if (yych <= 0xC1)
8679           goto yy588;
8680         if (yych <= 0xF4)
8681           goto yy599;
8682         goto yy588;
8683       }
8684     }
8685   yy591:
8686     yyaccept = 0;
8687     yych = *(marker = ++p);
8688     if (yych <= 0x7F)
8689       goto yy588;
8690     if (yych <= 0xBF)
8691       goto yy598;
8692     goto yy588;
8693   yy592:
8694     yyaccept = 0;
8695     yych = *(marker = ++p);
8696     if (yych <= 0x9F)
8697       goto yy588;
8698     if (yych <= 0xBF)
8699       goto yy603;
8700     goto yy588;
8701   yy593:
8702     yyaccept = 0;
8703     yych = *(marker = ++p);
8704     if (yych <= 0x7F)
8705       goto yy588;
8706     if (yych <= 0xBF)
8707       goto yy603;
8708     goto yy588;
8709   yy594:
8710     yyaccept = 0;
8711     yych = *(marker = ++p);
8712     if (yych <= 0x7F)
8713       goto yy588;
8714     if (yych <= 0x9F)
8715       goto yy603;
8716     goto yy588;
8717   yy595:
8718     yyaccept = 0;
8719     yych = *(marker = ++p);
8720     if (yych <= 0x8F)
8721       goto yy588;
8722     if (yych <= 0xBF)
8723       goto yy605;
8724     goto yy588;
8725   yy596:
8726     yyaccept = 0;
8727     yych = *(marker = ++p);
8728     if (yych <= 0x7F)
8729       goto yy588;
8730     if (yych <= 0xBF)
8731       goto yy605;
8732     goto yy588;
8733   yy597:
8734     yyaccept = 0;
8735     yych = *(marker = ++p);
8736     if (yych <= 0x7F)
8737       goto yy588;
8738     if (yych <= 0x8F)
8739       goto yy605;
8740     goto yy588;
8741   yy598:
8742     yych = *++p;
8743   yy599:
8744     if (yybm[0 + yych] & 64) {
8745       goto yy598;
8746     }
8747     if (yych <= 0xEC) {
8748       if (yych <= 0xC1) {
8749         if (yych <= '\n')
8750           goto yy600;
8751         if (yych <= '<')
8752           goto yy601;
8753       } else {
8754         if (yych <= 0xDF)
8755           goto yy603;
8756         if (yych <= 0xE0)
8757           goto yy604;
8758         goto yy605;
8759       }
8760     } else {
8761       if (yych <= 0xF0) {
8762         if (yych <= 0xED)
8763           goto yy606;
8764         if (yych <= 0xEF)
8765           goto yy605;
8766         goto yy607;
8767       } else {
8768         if (yych <= 0xF3)
8769           goto yy608;
8770         if (yych <= 0xF4)
8771           goto yy609;
8772       }
8773     }
8774   yy600:
8775     p = marker;
8776     if (yyaccept == 0) {
8777       goto yy588;
8778     } else {
8779       goto yy623;
8780     }
8781   yy601:
8782     yych = *++p;
8783     if (yybm[0 + yych] & 128) {
8784       goto yy601;
8785     }
8786     if (yych <= 0xDF) {
8787       if (yych <= '.') {
8788         if (yych <= 0x00)
8789           goto yy600;
8790         if (yych == '\n')
8791           goto yy600;
8792         goto yy598;
8793       } else {
8794         if (yych <= '/')
8795           goto yy610;
8796         if (yych <= 0x7F)
8797           goto yy598;
8798         if (yych <= 0xC1)
8799           goto yy600;
8800       }
8801     } else {
8802       if (yych <= 0xEF) {
8803         if (yych <= 0xE0)
8804           goto yy604;
8805         if (yych == 0xED)
8806           goto yy606;
8807         goto yy605;
8808       } else {
8809         if (yych <= 0xF0)
8810           goto yy607;
8811         if (yych <= 0xF3)
8812           goto yy608;
8813         if (yych <= 0xF4)
8814           goto yy609;
8815         goto yy600;
8816       }
8817     }
8818   yy603:
8819     yych = *++p;
8820     if (yych <= 0x7F)
8821       goto yy600;
8822     if (yych <= 0xBF)
8823       goto yy598;
8824     goto yy600;
8825   yy604:
8826     yych = *++p;
8827     if (yych <= 0x9F)
8828       goto yy600;
8829     if (yych <= 0xBF)
8830       goto yy603;
8831     goto yy600;
8832   yy605:
8833     yych = *++p;
8834     if (yych <= 0x7F)
8835       goto yy600;
8836     if (yych <= 0xBF)
8837       goto yy603;
8838     goto yy600;
8839   yy606:
8840     yych = *++p;
8841     if (yych <= 0x7F)
8842       goto yy600;
8843     if (yych <= 0x9F)
8844       goto yy603;
8845     goto yy600;
8846   yy607:
8847     yych = *++p;
8848     if (yych <= 0x8F)
8849       goto yy600;
8850     if (yych <= 0xBF)
8851       goto yy605;
8852     goto yy600;
8853   yy608:
8854     yych = *++p;
8855     if (yych <= 0x7F)
8856       goto yy600;
8857     if (yych <= 0xBF)
8858       goto yy605;
8859     goto yy600;
8860   yy609:
8861     yych = *++p;
8862     if (yych <= 0x7F)
8863       goto yy600;
8864     if (yych <= 0x8F)
8865       goto yy605;
8866     goto yy600;
8867   yy610:
8868     yych = *++p;
8869     if (yybm[0 + yych] & 128) {
8870       goto yy601;
8871     }
8872     if (yych <= 's') {
8873       if (yych <= 'R') {
8874         if (yych <= '\n') {
8875           if (yych <= 0x00)
8876             goto yy600;
8877           if (yych <= '\t')
8878             goto yy598;
8879           goto yy600;
8880         } else {
8881           if (yych != 'P')
8882             goto yy598;
8883         }
8884       } else {
8885         if (yych <= 'o') {
8886           if (yych <= 'S')
8887             goto yy612;
8888           if (yych <= 'T')
8889             goto yy613;
8890           goto yy598;
8891         } else {
8892           if (yych <= 'p')
8893             goto yy611;
8894           if (yych <= 'r')
8895             goto yy598;
8896           goto yy612;
8897         }
8898       }
8899     } else {
8900       if (yych <= 0xEC) {
8901         if (yych <= 0xC1) {
8902           if (yych <= 't')
8903             goto yy613;
8904           if (yych <= 0x7F)
8905             goto yy598;
8906           goto yy600;
8907         } else {
8908           if (yych <= 0xDF)
8909             goto yy603;
8910           if (yych <= 0xE0)
8911             goto yy604;
8912           goto yy605;
8913         }
8914       } else {
8915         if (yych <= 0xF0) {
8916           if (yych <= 0xED)
8917             goto yy606;
8918           if (yych <= 0xEF)
8919             goto yy605;
8920           goto yy607;
8921         } else {
8922           if (yych <= 0xF3)
8923             goto yy608;
8924           if (yych <= 0xF4)
8925             goto yy609;
8926           goto yy600;
8927         }
8928       }
8929     }
8930   yy611:
8931     yych = *++p;
8932     if (yybm[0 + yych] & 128) {
8933       goto yy601;
8934     }
8935     if (yych <= 0xC1) {
8936       if (yych <= 'Q') {
8937         if (yych <= 0x00)
8938           goto yy600;
8939         if (yych == '\n')
8940           goto yy600;
8941         goto yy598;
8942       } else {
8943         if (yych <= 'q') {
8944           if (yych <= 'R')
8945             goto yy614;
8946           goto yy598;
8947         } else {
8948           if (yych <= 'r')
8949             goto yy614;
8950           if (yych <= 0x7F)
8951             goto yy598;
8952           goto yy600;
8953         }
8954       }
8955     } else {
8956       if (yych <= 0xED) {
8957         if (yych <= 0xDF)
8958           goto yy603;
8959         if (yych <= 0xE0)
8960           goto yy604;
8961         if (yych <= 0xEC)
8962           goto yy605;
8963         goto yy606;
8964       } else {
8965         if (yych <= 0xF0) {
8966           if (yych <= 0xEF)
8967             goto yy605;
8968           goto yy607;
8969         } else {
8970           if (yych <= 0xF3)
8971             goto yy608;
8972           if (yych <= 0xF4)
8973             goto yy609;
8974           goto yy600;
8975         }
8976       }
8977     }
8978   yy612:
8979     yych = *++p;
8980     if (yybm[0 + yych] & 128) {
8981       goto yy601;
8982     }
8983     if (yych <= 't') {
8984       if (yych <= 'C') {
8985         if (yych <= '\t') {
8986           if (yych <= 0x00)
8987             goto yy600;
8988           goto yy598;
8989         } else {
8990           if (yych <= '\n')
8991             goto yy600;
8992           if (yych <= 'B')
8993             goto yy598;
8994           goto yy615;
8995         }
8996       } else {
8997         if (yych <= 'b') {
8998           if (yych == 'T')
8999             goto yy616;
9000           goto yy598;
9001         } else {
9002           if (yych <= 'c')
9003             goto yy615;
9004           if (yych <= 's')
9005             goto yy598;
9006           goto yy616;
9007         }
9008       }
9009     } else {
9010       if (yych <= 0xEC) {
9011         if (yych <= 0xC1) {
9012           if (yych <= 0x7F)
9013             goto yy598;
9014           goto yy600;
9015         } else {
9016           if (yych <= 0xDF)
9017             goto yy603;
9018           if (yych <= 0xE0)
9019             goto yy604;
9020           goto yy605;
9021         }
9022       } else {
9023         if (yych <= 0xF0) {
9024           if (yych <= 0xED)
9025             goto yy606;
9026           if (yych <= 0xEF)
9027             goto yy605;
9028           goto yy607;
9029         } else {
9030           if (yych <= 0xF3)
9031             goto yy608;
9032           if (yych <= 0xF4)
9033             goto yy609;
9034           goto yy600;
9035         }
9036       }
9037     }
9038   yy613:
9039     yych = *++p;
9040     if (yybm[0 + yych] & 128) {
9041       goto yy601;
9042     }
9043     if (yych <= 0xC1) {
9044       if (yych <= 'D') {
9045         if (yych <= 0x00)
9046           goto yy600;
9047         if (yych == '\n')
9048           goto yy600;
9049         goto yy598;
9050       } else {
9051         if (yych <= 'd') {
9052           if (yych <= 'E')
9053             goto yy617;
9054           goto yy598;
9055         } else {
9056           if (yych <= 'e')
9057             goto yy617;
9058           if (yych <= 0x7F)
9059             goto yy598;
9060           goto yy600;
9061         }
9062       }
9063     } else {
9064       if (yych <= 0xED) {
9065         if (yych <= 0xDF)
9066           goto yy603;
9067         if (yych <= 0xE0)
9068           goto yy604;
9069         if (yych <= 0xEC)
9070           goto yy605;
9071         goto yy606;
9072       } else {
9073         if (yych <= 0xF0) {
9074           if (yych <= 0xEF)
9075             goto yy605;
9076           goto yy607;
9077         } else {
9078           if (yych <= 0xF3)
9079             goto yy608;
9080           if (yych <= 0xF4)
9081             goto yy609;
9082           goto yy600;
9083         }
9084       }
9085     }
9086   yy614:
9087     yych = *++p;
9088     if (yybm[0 + yych] & 128) {
9089       goto yy601;
9090     }
9091     if (yych <= 0xC1) {
9092       if (yych <= 'D') {
9093         if (yych <= 0x00)
9094           goto yy600;
9095         if (yych == '\n')
9096           goto yy600;
9097         goto yy598;
9098       } else {
9099         if (yych <= 'd') {
9100           if (yych <= 'E')
9101             goto yy618;
9102           goto yy598;
9103         } else {
9104           if (yych <= 'e')
9105             goto yy618;
9106           if (yych <= 0x7F)
9107             goto yy598;
9108           goto yy600;
9109         }
9110       }
9111     } else {
9112       if (yych <= 0xED) {
9113         if (yych <= 0xDF)
9114           goto yy603;
9115         if (yych <= 0xE0)
9116           goto yy604;
9117         if (yych <= 0xEC)
9118           goto yy605;
9119         goto yy606;
9120       } else {
9121         if (yych <= 0xF0) {
9122           if (yych <= 0xEF)
9123             goto yy605;
9124           goto yy607;
9125         } else {
9126           if (yych <= 0xF3)
9127             goto yy608;
9128           if (yych <= 0xF4)
9129             goto yy609;
9130           goto yy600;
9131         }
9132       }
9133     }
9134   yy615:
9135     yych = *++p;
9136     if (yybm[0 + yych] & 128) {
9137       goto yy601;
9138     }
9139     if (yych <= 0xC1) {
9140       if (yych <= 'Q') {
9141         if (yych <= 0x00)
9142           goto yy600;
9143         if (yych == '\n')
9144           goto yy600;
9145         goto yy598;
9146       } else {
9147         if (yych <= 'q') {
9148           if (yych <= 'R')
9149             goto yy619;
9150           goto yy598;
9151         } else {
9152           if (yych <= 'r')
9153             goto yy619;
9154           if (yych <= 0x7F)
9155             goto yy598;
9156           goto yy600;
9157         }
9158       }
9159     } else {
9160       if (yych <= 0xED) {
9161         if (yych <= 0xDF)
9162           goto yy603;
9163         if (yych <= 0xE0)
9164           goto yy604;
9165         if (yych <= 0xEC)
9166           goto yy605;
9167         goto yy606;
9168       } else {
9169         if (yych <= 0xF0) {
9170           if (yych <= 0xEF)
9171             goto yy605;
9172           goto yy607;
9173         } else {
9174           if (yych <= 0xF3)
9175             goto yy608;
9176           if (yych <= 0xF4)
9177             goto yy609;
9178           goto yy600;
9179         }
9180       }
9181     }
9182   yy616:
9183     yych = *++p;
9184     if (yybm[0 + yych] & 128) {
9185       goto yy601;
9186     }
9187     if (yych <= 0xC1) {
9188       if (yych <= 'X') {
9189         if (yych <= 0x00)
9190           goto yy600;
9191         if (yych == '\n')
9192           goto yy600;
9193         goto yy598;
9194       } else {
9195         if (yych <= 'x') {
9196           if (yych <= 'Y')
9197             goto yy620;
9198           goto yy598;
9199         } else {
9200           if (yych <= 'y')
9201             goto yy620;
9202           if (yych <= 0x7F)
9203             goto yy598;
9204           goto yy600;
9205         }
9206       }
9207     } else {
9208       if (yych <= 0xED) {
9209         if (yych <= 0xDF)
9210           goto yy603;
9211         if (yych <= 0xE0)
9212           goto yy604;
9213         if (yych <= 0xEC)
9214           goto yy605;
9215         goto yy606;
9216       } else {
9217         if (yych <= 0xF0) {
9218           if (yych <= 0xEF)
9219             goto yy605;
9220           goto yy607;
9221         } else {
9222           if (yych <= 0xF3)
9223             goto yy608;
9224           if (yych <= 0xF4)
9225             goto yy609;
9226           goto yy600;
9227         }
9228       }
9229     }
9230   yy617:
9231     yych = *++p;
9232     if (yybm[0 + yych] & 128) {
9233       goto yy601;
9234     }
9235     if (yych <= 0xC1) {
9236       if (yych <= 'W') {
9237         if (yych <= 0x00)
9238           goto yy600;
9239         if (yych == '\n')
9240           goto yy600;
9241         goto yy598;
9242       } else {
9243         if (yych <= 'w') {
9244           if (yych <= 'X')
9245             goto yy621;
9246           goto yy598;
9247         } else {
9248           if (yych <= 'x')
9249             goto yy621;
9250           if (yych <= 0x7F)
9251             goto yy598;
9252           goto yy600;
9253         }
9254       }
9255     } else {
9256       if (yych <= 0xED) {
9257         if (yych <= 0xDF)
9258           goto yy603;
9259         if (yych <= 0xE0)
9260           goto yy604;
9261         if (yych <= 0xEC)
9262           goto yy605;
9263         goto yy606;
9264       } else {
9265         if (yych <= 0xF0) {
9266           if (yych <= 0xEF)
9267             goto yy605;
9268           goto yy607;
9269         } else {
9270           if (yych <= 0xF3)
9271             goto yy608;
9272           if (yych <= 0xF4)
9273             goto yy609;
9274           goto yy600;
9275         }
9276       }
9277     }
9278   yy618:
9279     yych = *++p;
9280     if (yybm[0 + yych] & 128) {
9281       goto yy601;
9282     }
9283     if (yych <= 0xDF) {
9284       if (yych <= '=') {
9285         if (yych <= 0x00)
9286           goto yy600;
9287         if (yych == '\n')
9288           goto yy600;
9289         goto yy598;
9290       } else {
9291         if (yych <= '>')
9292           goto yy622;
9293         if (yych <= 0x7F)
9294           goto yy598;
9295         if (yych <= 0xC1)
9296           goto yy600;
9297         goto yy603;
9298       }
9299     } else {
9300       if (yych <= 0xEF) {
9301         if (yych <= 0xE0)
9302           goto yy604;
9303         if (yych == 0xED)
9304           goto yy606;
9305         goto yy605;
9306       } else {
9307         if (yych <= 0xF0)
9308           goto yy607;
9309         if (yych <= 0xF3)
9310           goto yy608;
9311         if (yych <= 0xF4)
9312           goto yy609;
9313         goto yy600;
9314       }
9315     }
9316   yy619:
9317     yych = *++p;
9318     if (yybm[0 + yych] & 128) {
9319       goto yy601;
9320     }
9321     if (yych <= 0xC1) {
9322       if (yych <= 'H') {
9323         if (yych <= 0x00)
9324           goto yy600;
9325         if (yych == '\n')
9326           goto yy600;
9327         goto yy598;
9328       } else {
9329         if (yych <= 'h') {
9330           if (yych <= 'I')
9331             goto yy624;
9332           goto yy598;
9333         } else {
9334           if (yych <= 'i')
9335             goto yy624;
9336           if (yych <= 0x7F)
9337             goto yy598;
9338           goto yy600;
9339         }
9340       }
9341     } else {
9342       if (yych <= 0xED) {
9343         if (yych <= 0xDF)
9344           goto yy603;
9345         if (yych <= 0xE0)
9346           goto yy604;
9347         if (yych <= 0xEC)
9348           goto yy605;
9349         goto yy606;
9350       } else {
9351         if (yych <= 0xF0) {
9352           if (yych <= 0xEF)
9353             goto yy605;
9354           goto yy607;
9355         } else {
9356           if (yych <= 0xF3)
9357             goto yy608;
9358           if (yych <= 0xF4)
9359             goto yy609;
9360           goto yy600;
9361         }
9362       }
9363     }
9364   yy620:
9365     yych = *++p;
9366     if (yybm[0 + yych] & 128) {
9367       goto yy601;
9368     }
9369     if (yych <= 0xC1) {
9370       if (yych <= 'K') {
9371         if (yych <= 0x00)
9372           goto yy600;
9373         if (yych == '\n')
9374           goto yy600;
9375         goto yy598;
9376       } else {
9377         if (yych <= 'k') {
9378           if (yych <= 'L')
9379             goto yy614;
9380           goto yy598;
9381         } else {
9382           if (yych <= 'l')
9383             goto yy614;
9384           if (yych <= 0x7F)
9385             goto yy598;
9386           goto yy600;
9387         }
9388       }
9389     } else {
9390       if (yych <= 0xED) {
9391         if (yych <= 0xDF)
9392           goto yy603;
9393         if (yych <= 0xE0)
9394           goto yy604;
9395         if (yych <= 0xEC)
9396           goto yy605;
9397         goto yy606;
9398       } else {
9399         if (yych <= 0xF0) {
9400           if (yych <= 0xEF)
9401             goto yy605;
9402           goto yy607;
9403         } else {
9404           if (yych <= 0xF3)
9405             goto yy608;
9406           if (yych <= 0xF4)
9407             goto yy609;
9408           goto yy600;
9409         }
9410       }
9411     }
9412   yy621:
9413     yych = *++p;
9414     if (yybm[0 + yych] & 128) {
9415       goto yy601;
9416     }
9417     if (yych <= 0xC1) {
9418       if (yych <= 'S') {
9419         if (yych <= 0x00)
9420           goto yy600;
9421         if (yych == '\n')
9422           goto yy600;
9423         goto yy598;
9424       } else {
9425         if (yych <= 's') {
9426           if (yych <= 'T')
9427             goto yy625;
9428           goto yy598;
9429         } else {
9430           if (yych <= 't')
9431             goto yy625;
9432           if (yych <= 0x7F)
9433             goto yy598;
9434           goto yy600;
9435         }
9436       }
9437     } else {
9438       if (yych <= 0xED) {
9439         if (yych <= 0xDF)
9440           goto yy603;
9441         if (yych <= 0xE0)
9442           goto yy604;
9443         if (yych <= 0xEC)
9444           goto yy605;
9445         goto yy606;
9446       } else {
9447         if (yych <= 0xF0) {
9448           if (yych <= 0xEF)
9449             goto yy605;
9450           goto yy607;
9451         } else {
9452           if (yych <= 0xF3)
9453             goto yy608;
9454           if (yych <= 0xF4)
9455             goto yy609;
9456           goto yy600;
9457         }
9458       }
9459     }
9460   yy622:
9461     yyaccept = 1;
9462     yych = *(marker = ++p);
9463     if (yybm[0 + yych] & 64) {
9464       goto yy598;
9465     }
9466     if (yych <= 0xEC) {
9467       if (yych <= 0xC1) {
9468         if (yych <= '\n')
9469           goto yy623;
9470         if (yych <= '<')
9471           goto yy601;
9472       } else {
9473         if (yych <= 0xDF)
9474           goto yy603;
9475         if (yych <= 0xE0)
9476           goto yy604;
9477         goto yy605;
9478       }
9479     } else {
9480       if (yych <= 0xF0) {
9481         if (yych <= 0xED)
9482           goto yy606;
9483         if (yych <= 0xEF)
9484           goto yy605;
9485         goto yy607;
9486       } else {
9487         if (yych <= 0xF3)
9488           goto yy608;
9489         if (yych <= 0xF4)
9490           goto yy609;
9491       }
9492     }
9493   yy623 : { return (bufsize_t)(p - start); }
9494   yy624:
9495     yych = *++p;
9496     if (yybm[0 + yych] & 128) {
9497       goto yy601;
9498     }
9499     if (yych <= 0xC1) {
9500       if (yych <= 'O') {
9501         if (yych <= 0x00)
9502           goto yy600;
9503         if (yych == '\n')
9504           goto yy600;
9505         goto yy598;
9506       } else {
9507         if (yych <= 'o') {
9508           if (yych <= 'P')
9509             goto yy626;
9510           goto yy598;
9511         } else {
9512           if (yych <= 'p')
9513             goto yy626;
9514           if (yych <= 0x7F)
9515             goto yy598;
9516           goto yy600;
9517         }
9518       }
9519     } else {
9520       if (yych <= 0xED) {
9521         if (yych <= 0xDF)
9522           goto yy603;
9523         if (yych <= 0xE0)
9524           goto yy604;
9525         if (yych <= 0xEC)
9526           goto yy605;
9527         goto yy606;
9528       } else {
9529         if (yych <= 0xF0) {
9530           if (yych <= 0xEF)
9531             goto yy605;
9532           goto yy607;
9533         } else {
9534           if (yych <= 0xF3)
9535             goto yy608;
9536           if (yych <= 0xF4)
9537             goto yy609;
9538           goto yy600;
9539         }
9540       }
9541     }
9542   yy625:
9543     yych = *++p;
9544     if (yybm[0 + yych] & 128) {
9545       goto yy601;
9546     }
9547     if (yych <= 0xC1) {
9548       if (yych <= '@') {
9549         if (yych <= 0x00)
9550           goto yy600;
9551         if (yych == '\n')
9552           goto yy600;
9553         goto yy598;
9554       } else {
9555         if (yych <= '`') {
9556           if (yych <= 'A')
9557             goto yy627;
9558           goto yy598;
9559         } else {
9560           if (yych <= 'a')
9561             goto yy627;
9562           if (yych <= 0x7F)
9563             goto yy598;
9564           goto yy600;
9565         }
9566       }
9567     } else {
9568       if (yych <= 0xED) {
9569         if (yych <= 0xDF)
9570           goto yy603;
9571         if (yych <= 0xE0)
9572           goto yy604;
9573         if (yych <= 0xEC)
9574           goto yy605;
9575         goto yy606;
9576       } else {
9577         if (yych <= 0xF0) {
9578           if (yych <= 0xEF)
9579             goto yy605;
9580           goto yy607;
9581         } else {
9582           if (yych <= 0xF3)
9583             goto yy608;
9584           if (yych <= 0xF4)
9585             goto yy609;
9586           goto yy600;
9587         }
9588       }
9589     }
9590   yy626:
9591     yych = *++p;
9592     if (yybm[0 + yych] & 128) {
9593       goto yy601;
9594     }
9595     if (yych <= 0xC1) {
9596       if (yych <= 'S') {
9597         if (yych <= 0x00)
9598           goto yy600;
9599         if (yych == '\n')
9600           goto yy600;
9601         goto yy598;
9602       } else {
9603         if (yych <= 's') {
9604           if (yych <= 'T')
9605             goto yy618;
9606           goto yy598;
9607         } else {
9608           if (yych <= 't')
9609             goto yy618;
9610           if (yych <= 0x7F)
9611             goto yy598;
9612           goto yy600;
9613         }
9614       }
9615     } else {
9616       if (yych <= 0xED) {
9617         if (yych <= 0xDF)
9618           goto yy603;
9619         if (yych <= 0xE0)
9620           goto yy604;
9621         if (yych <= 0xEC)
9622           goto yy605;
9623         goto yy606;
9624       } else {
9625         if (yych <= 0xF0) {
9626           if (yych <= 0xEF)
9627             goto yy605;
9628           goto yy607;
9629         } else {
9630           if (yych <= 0xF3)
9631             goto yy608;
9632           if (yych <= 0xF4)
9633             goto yy609;
9634           goto yy600;
9635         }
9636       }
9637     }
9638   yy627:
9639     yych = *++p;
9640     if (yybm[0 + yych] & 128) {
9641       goto yy601;
9642     }
9643     if (yych <= 0xC1) {
9644       if (yych <= 'Q') {
9645         if (yych <= 0x00)
9646           goto yy600;
9647         if (yych == '\n')
9648           goto yy600;
9649         goto yy598;
9650       } else {
9651         if (yych <= 'q') {
9652           if (yych >= 'S')
9653             goto yy598;
9654         } else {
9655           if (yych <= 'r')
9656             goto yy628;
9657           if (yych <= 0x7F)
9658             goto yy598;
9659           goto yy600;
9660         }
9661       }
9662     } else {
9663       if (yych <= 0xED) {
9664         if (yych <= 0xDF)
9665           goto yy603;
9666         if (yych <= 0xE0)
9667           goto yy604;
9668         if (yych <= 0xEC)
9669           goto yy605;
9670         goto yy606;
9671       } else {
9672         if (yych <= 0xF0) {
9673           if (yych <= 0xEF)
9674             goto yy605;
9675           goto yy607;
9676         } else {
9677           if (yych <= 0xF3)
9678             goto yy608;
9679           if (yych <= 0xF4)
9680             goto yy609;
9681           goto yy600;
9682         }
9683       }
9684     }
9685   yy628:
9686     yych = *++p;
9687     if (yybm[0 + yych] & 128) {
9688       goto yy601;
9689     }
9690     if (yych <= 0xC1) {
9691       if (yych <= 'D') {
9692         if (yych <= 0x00)
9693           goto yy600;
9694         if (yych == '\n')
9695           goto yy600;
9696         goto yy598;
9697       } else {
9698         if (yych <= 'd') {
9699           if (yych >= 'F')
9700             goto yy598;
9701         } else {
9702           if (yych <= 'e')
9703             goto yy629;
9704           if (yych <= 0x7F)
9705             goto yy598;
9706           goto yy600;
9707         }
9708       }
9709     } else {
9710       if (yych <= 0xED) {
9711         if (yych <= 0xDF)
9712           goto yy603;
9713         if (yych <= 0xE0)
9714           goto yy604;
9715         if (yych <= 0xEC)
9716           goto yy605;
9717         goto yy606;
9718       } else {
9719         if (yych <= 0xF0) {
9720           if (yych <= 0xEF)
9721             goto yy605;
9722           goto yy607;
9723         } else {
9724           if (yych <= 0xF3)
9725             goto yy608;
9726           if (yych <= 0xF4)
9727             goto yy609;
9728           goto yy600;
9729         }
9730       }
9731     }
9732   yy629:
9733     yych = *++p;
9734     if (yybm[0 + yych] & 128) {
9735       goto yy601;
9736     }
9737     if (yych <= 0xC1) {
9738       if (yych <= '@') {
9739         if (yych <= 0x00)
9740           goto yy600;
9741         if (yych == '\n')
9742           goto yy600;
9743         goto yy598;
9744       } else {
9745         if (yych <= '`') {
9746           if (yych <= 'A')
9747             goto yy618;
9748           goto yy598;
9749         } else {
9750           if (yych <= 'a')
9751             goto yy618;
9752           if (yych <= 0x7F)
9753             goto yy598;
9754           goto yy600;
9755         }
9756       }
9757     } else {
9758       if (yych <= 0xED) {
9759         if (yych <= 0xDF)
9760           goto yy603;
9761         if (yych <= 0xE0)
9762           goto yy604;
9763         if (yych <= 0xEC)
9764           goto yy605;
9765         goto yy606;
9766       } else {
9767         if (yych <= 0xF0) {
9768           if (yych <= 0xEF)
9769             goto yy605;
9770           goto yy607;
9771         } else {
9772           if (yych <= 0xF3)
9773             goto yy608;
9774           if (yych <= 0xF4)
9775             goto yy609;
9776           goto yy600;
9777         }
9778       }
9779     }
9780   }
9781 }
9782 
9783 // Try to match an HTML block end line of type 2
_scan_html_block_end_2(const unsigned char * p)9784 bufsize_t _scan_html_block_end_2(const unsigned char *p) {
9785   const unsigned char *marker = NULL;
9786   const unsigned char *start = p;
9787 
9788   {
9789     unsigned char yych;
9790     unsigned int yyaccept = 0;
9791     static const unsigned char yybm[] = {
9792         0,  64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  64, 64, 64, 64, 64, 64, 64,
9793         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
9794         64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,
9795         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
9796         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
9797         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
9798         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
9799         64, 64, 0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9800         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9801         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9802         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9803         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9804         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9805         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
9806         0,  0,  0,  0,
9807     };
9808     yych = *p;
9809     if (yych <= 0xDF) {
9810       if (yych <= ',') {
9811         if (yych <= 0x00)
9812           goto yy632;
9813         if (yych != '\n')
9814           goto yy634;
9815       } else {
9816         if (yych <= '-')
9817           goto yy635;
9818         if (yych <= 0x7F)
9819           goto yy634;
9820         if (yych >= 0xC2)
9821           goto yy636;
9822       }
9823     } else {
9824       if (yych <= 0xEF) {
9825         if (yych <= 0xE0)
9826           goto yy637;
9827         if (yych == 0xED)
9828           goto yy639;
9829         goto yy638;
9830       } else {
9831         if (yych <= 0xF0)
9832           goto yy640;
9833         if (yych <= 0xF3)
9834           goto yy641;
9835         if (yych <= 0xF4)
9836           goto yy642;
9837       }
9838     }
9839   yy632:
9840     ++p;
9841   yy633 : { return 0; }
9842   yy634:
9843     yyaccept = 0;
9844     yych = *(marker = ++p);
9845     if (yych <= '\n') {
9846       if (yych <= 0x00)
9847         goto yy633;
9848       if (yych <= '\t')
9849         goto yy644;
9850       goto yy633;
9851     } else {
9852       if (yych <= 0x7F)
9853         goto yy644;
9854       if (yych <= 0xC1)
9855         goto yy633;
9856       if (yych <= 0xF4)
9857         goto yy644;
9858       goto yy633;
9859     }
9860   yy635:
9861     yyaccept = 0;
9862     yych = *(marker = ++p);
9863     if (yybm[0 + yych] & 128) {
9864       goto yy654;
9865     }
9866     if (yych <= '\n') {
9867       if (yych <= 0x00)
9868         goto yy633;
9869       if (yych <= '\t')
9870         goto yy644;
9871       goto yy633;
9872     } else {
9873       if (yych <= 0x7F)
9874         goto yy644;
9875       if (yych <= 0xC1)
9876         goto yy633;
9877       if (yych <= 0xF4)
9878         goto yy644;
9879       goto yy633;
9880     }
9881   yy636:
9882     yyaccept = 0;
9883     yych = *(marker = ++p);
9884     if (yych <= 0x7F)
9885       goto yy633;
9886     if (yych <= 0xBF)
9887       goto yy643;
9888     goto yy633;
9889   yy637:
9890     yyaccept = 0;
9891     yych = *(marker = ++p);
9892     if (yych <= 0x9F)
9893       goto yy633;
9894     if (yych <= 0xBF)
9895       goto yy647;
9896     goto yy633;
9897   yy638:
9898     yyaccept = 0;
9899     yych = *(marker = ++p);
9900     if (yych <= 0x7F)
9901       goto yy633;
9902     if (yych <= 0xBF)
9903       goto yy647;
9904     goto yy633;
9905   yy639:
9906     yyaccept = 0;
9907     yych = *(marker = ++p);
9908     if (yych <= 0x7F)
9909       goto yy633;
9910     if (yych <= 0x9F)
9911       goto yy647;
9912     goto yy633;
9913   yy640:
9914     yyaccept = 0;
9915     yych = *(marker = ++p);
9916     if (yych <= 0x8F)
9917       goto yy633;
9918     if (yych <= 0xBF)
9919       goto yy649;
9920     goto yy633;
9921   yy641:
9922     yyaccept = 0;
9923     yych = *(marker = ++p);
9924     if (yych <= 0x7F)
9925       goto yy633;
9926     if (yych <= 0xBF)
9927       goto yy649;
9928     goto yy633;
9929   yy642:
9930     yyaccept = 0;
9931     yych = *(marker = ++p);
9932     if (yych <= 0x7F)
9933       goto yy633;
9934     if (yych <= 0x8F)
9935       goto yy649;
9936     goto yy633;
9937   yy643:
9938     yych = *++p;
9939   yy644:
9940     if (yybm[0 + yych] & 64) {
9941       goto yy643;
9942     }
9943     if (yych <= 0xEC) {
9944       if (yych <= 0xC1) {
9945         if (yych <= '\n')
9946           goto yy645;
9947         if (yych <= '-')
9948           goto yy646;
9949       } else {
9950         if (yych <= 0xDF)
9951           goto yy647;
9952         if (yych <= 0xE0)
9953           goto yy648;
9954         goto yy649;
9955       }
9956     } else {
9957       if (yych <= 0xF0) {
9958         if (yych <= 0xED)
9959           goto yy650;
9960         if (yych <= 0xEF)
9961           goto yy649;
9962         goto yy651;
9963       } else {
9964         if (yych <= 0xF3)
9965           goto yy652;
9966         if (yych <= 0xF4)
9967           goto yy653;
9968       }
9969     }
9970   yy645:
9971     p = marker;
9972     if (yyaccept == 0) {
9973       goto yy633;
9974     } else {
9975       goto yy657;
9976     }
9977   yy646:
9978     yych = *++p;
9979     if (yybm[0 + yych] & 64) {
9980       goto yy643;
9981     }
9982     if (yych <= 0xEC) {
9983       if (yych <= 0xC1) {
9984         if (yych <= '\n')
9985           goto yy645;
9986         if (yych <= '-')
9987           goto yy654;
9988         goto yy645;
9989       } else {
9990         if (yych <= 0xDF)
9991           goto yy647;
9992         if (yych <= 0xE0)
9993           goto yy648;
9994         goto yy649;
9995       }
9996     } else {
9997       if (yych <= 0xF0) {
9998         if (yych <= 0xED)
9999           goto yy650;
10000         if (yych <= 0xEF)
10001           goto yy649;
10002         goto yy651;
10003       } else {
10004         if (yych <= 0xF3)
10005           goto yy652;
10006         if (yych <= 0xF4)
10007           goto yy653;
10008         goto yy645;
10009       }
10010     }
10011   yy647:
10012     yych = *++p;
10013     if (yych <= 0x7F)
10014       goto yy645;
10015     if (yych <= 0xBF)
10016       goto yy643;
10017     goto yy645;
10018   yy648:
10019     yych = *++p;
10020     if (yych <= 0x9F)
10021       goto yy645;
10022     if (yych <= 0xBF)
10023       goto yy647;
10024     goto yy645;
10025   yy649:
10026     yych = *++p;
10027     if (yych <= 0x7F)
10028       goto yy645;
10029     if (yych <= 0xBF)
10030       goto yy647;
10031     goto yy645;
10032   yy650:
10033     yych = *++p;
10034     if (yych <= 0x7F)
10035       goto yy645;
10036     if (yych <= 0x9F)
10037       goto yy647;
10038     goto yy645;
10039   yy651:
10040     yych = *++p;
10041     if (yych <= 0x8F)
10042       goto yy645;
10043     if (yych <= 0xBF)
10044       goto yy649;
10045     goto yy645;
10046   yy652:
10047     yych = *++p;
10048     if (yych <= 0x7F)
10049       goto yy645;
10050     if (yych <= 0xBF)
10051       goto yy649;
10052     goto yy645;
10053   yy653:
10054     yych = *++p;
10055     if (yych <= 0x7F)
10056       goto yy645;
10057     if (yych <= 0x8F)
10058       goto yy649;
10059     goto yy645;
10060   yy654:
10061     yych = *++p;
10062     if (yybm[0 + yych] & 128) {
10063       goto yy654;
10064     }
10065     if (yych <= 0xDF) {
10066       if (yych <= '=') {
10067         if (yych <= 0x00)
10068           goto yy645;
10069         if (yych == '\n')
10070           goto yy645;
10071         goto yy643;
10072       } else {
10073         if (yych <= '>')
10074           goto yy656;
10075         if (yych <= 0x7F)
10076           goto yy643;
10077         if (yych <= 0xC1)
10078           goto yy645;
10079         goto yy647;
10080       }
10081     } else {
10082       if (yych <= 0xEF) {
10083         if (yych <= 0xE0)
10084           goto yy648;
10085         if (yych == 0xED)
10086           goto yy650;
10087         goto yy649;
10088       } else {
10089         if (yych <= 0xF0)
10090           goto yy651;
10091         if (yych <= 0xF3)
10092           goto yy652;
10093         if (yych <= 0xF4)
10094           goto yy653;
10095         goto yy645;
10096       }
10097     }
10098   yy656:
10099     yyaccept = 1;
10100     yych = *(marker = ++p);
10101     if (yybm[0 + yych] & 64) {
10102       goto yy643;
10103     }
10104     if (yych <= 0xEC) {
10105       if (yych <= 0xC1) {
10106         if (yych <= '\n')
10107           goto yy657;
10108         if (yych <= '-')
10109           goto yy646;
10110       } else {
10111         if (yych <= 0xDF)
10112           goto yy647;
10113         if (yych <= 0xE0)
10114           goto yy648;
10115         goto yy649;
10116       }
10117     } else {
10118       if (yych <= 0xF0) {
10119         if (yych <= 0xED)
10120           goto yy650;
10121         if (yych <= 0xEF)
10122           goto yy649;
10123         goto yy651;
10124       } else {
10125         if (yych <= 0xF3)
10126           goto yy652;
10127         if (yych <= 0xF4)
10128           goto yy653;
10129       }
10130     }
10131   yy657 : { return (bufsize_t)(p - start); }
10132   }
10133 }
10134 
10135 // Try to match an HTML block end line of type 3
_scan_html_block_end_3(const unsigned char * p)10136 bufsize_t _scan_html_block_end_3(const unsigned char *p) {
10137   const unsigned char *marker = NULL;
10138   const unsigned char *start = p;
10139 
10140   {
10141     unsigned char yych;
10142     unsigned int yyaccept = 0;
10143     static const unsigned char yybm[] = {
10144         0,  64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  64, 64, 64, 64, 64, 64, 64,
10145         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
10146         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
10147         64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,
10148         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
10149         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
10150         64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
10151         64, 64, 0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10152         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10153         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10154         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10155         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10156         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10157         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,
10158         0,  0,  0,  0,
10159     };
10160     yych = *p;
10161     if (yych <= 0xDF) {
10162       if (yych <= '>') {
10163         if (yych <= 0x00)
10164           goto yy660;
10165         if (yych != '\n')
10166           goto yy662;
10167       } else {
10168         if (yych <= '?')
10169           goto yy663;
10170         if (yych <= 0x7F)
10171           goto yy662;
10172         if (yych >= 0xC2)
10173           goto yy664;
10174       }
10175     } else {
10176       if (yych <= 0xEF) {
10177         if (yych <= 0xE0)
10178           goto yy665;
10179         if (yych == 0xED)
10180           goto yy667;
10181         goto yy666;
10182       } else {
10183         if (yych <= 0xF0)
10184           goto yy668;
10185         if (yych <= 0xF3)
10186           goto yy669;
10187         if (yych <= 0xF4)
10188           goto yy670;
10189       }
10190     }
10191   yy660:
10192     ++p;
10193   yy661 : { return 0; }
10194   yy662:
10195     yyaccept = 0;
10196     yych = *(marker = ++p);
10197     if (yych <= '\n') {
10198       if (yych <= 0x00)
10199         goto yy661;
10200       if (yych <= '\t')
10201         goto yy672;
10202       goto yy661;
10203     } else {
10204       if (yych <= 0x7F)
10205         goto yy672;
10206       if (yych <= 0xC1)
10207         goto yy661;
10208       if (yych <= 0xF4)
10209         goto yy672;
10210       goto yy661;
10211     }
10212   yy663:
10213     yyaccept = 0;
10214     yych = *(marker = ++p);
10215     if (yych <= '=') {
10216       if (yych <= 0x00)
10217         goto yy661;
10218       if (yych == '\n')
10219         goto yy661;
10220       goto yy672;
10221     } else {
10222       if (yych <= 0x7F) {
10223         if (yych <= '>')
10224           goto yy683;
10225         goto yy672;
10226       } else {
10227         if (yych <= 0xC1)
10228           goto yy661;
10229         if (yych <= 0xF4)
10230           goto yy672;
10231         goto yy661;
10232       }
10233     }
10234   yy664:
10235     yyaccept = 0;
10236     yych = *(marker = ++p);
10237     if (yych <= 0x7F)
10238       goto yy661;
10239     if (yych <= 0xBF)
10240       goto yy671;
10241     goto yy661;
10242   yy665:
10243     yyaccept = 0;
10244     yych = *(marker = ++p);
10245     if (yych <= 0x9F)
10246       goto yy661;
10247     if (yych <= 0xBF)
10248       goto yy676;
10249     goto yy661;
10250   yy666:
10251     yyaccept = 0;
10252     yych = *(marker = ++p);
10253     if (yych <= 0x7F)
10254       goto yy661;
10255     if (yych <= 0xBF)
10256       goto yy676;
10257     goto yy661;
10258   yy667:
10259     yyaccept = 0;
10260     yych = *(marker = ++p);
10261     if (yych <= 0x7F)
10262       goto yy661;
10263     if (yych <= 0x9F)
10264       goto yy676;
10265     goto yy661;
10266   yy668:
10267     yyaccept = 0;
10268     yych = *(marker = ++p);
10269     if (yych <= 0x8F)
10270       goto yy661;
10271     if (yych <= 0xBF)
10272       goto yy678;
10273     goto yy661;
10274   yy669:
10275     yyaccept = 0;
10276     yych = *(marker = ++p);
10277     if (yych <= 0x7F)
10278       goto yy661;
10279     if (yych <= 0xBF)
10280       goto yy678;
10281     goto yy661;
10282   yy670:
10283     yyaccept = 0;
10284     yych = *(marker = ++p);
10285     if (yych <= 0x7F)
10286       goto yy661;
10287     if (yych <= 0x8F)
10288       goto yy678;
10289     goto yy661;
10290   yy671:
10291     yych = *++p;
10292   yy672:
10293     if (yybm[0 + yych] & 64) {
10294       goto yy671;
10295     }
10296     if (yych <= 0xEC) {
10297       if (yych <= 0xC1) {
10298         if (yych <= '\n')
10299           goto yy673;
10300         if (yych <= '?')
10301           goto yy674;
10302       } else {
10303         if (yych <= 0xDF)
10304           goto yy676;
10305         if (yych <= 0xE0)
10306           goto yy677;
10307         goto yy678;
10308       }
10309     } else {
10310       if (yych <= 0xF0) {
10311         if (yych <= 0xED)
10312           goto yy679;
10313         if (yych <= 0xEF)
10314           goto yy678;
10315         goto yy680;
10316       } else {
10317         if (yych <= 0xF3)
10318           goto yy681;
10319         if (yych <= 0xF4)
10320           goto yy682;
10321       }
10322     }
10323   yy673:
10324     p = marker;
10325     if (yyaccept == 0) {
10326       goto yy661;
10327     } else {
10328       goto yy684;
10329     }
10330   yy674:
10331     yych = *++p;
10332     if (yybm[0 + yych] & 128) {
10333       goto yy674;
10334     }
10335     if (yych <= 0xDF) {
10336       if (yych <= '=') {
10337         if (yych <= 0x00)
10338           goto yy673;
10339         if (yych == '\n')
10340           goto yy673;
10341         goto yy671;
10342       } else {
10343         if (yych <= '>')
10344           goto yy683;
10345         if (yych <= 0x7F)
10346           goto yy671;
10347         if (yych <= 0xC1)
10348           goto yy673;
10349       }
10350     } else {
10351       if (yych <= 0xEF) {
10352         if (yych <= 0xE0)
10353           goto yy677;
10354         if (yych == 0xED)
10355           goto yy679;
10356         goto yy678;
10357       } else {
10358         if (yych <= 0xF0)
10359           goto yy680;
10360         if (yych <= 0xF3)
10361           goto yy681;
10362         if (yych <= 0xF4)
10363           goto yy682;
10364         goto yy673;
10365       }
10366     }
10367   yy676:
10368     yych = *++p;
10369     if (yych <= 0x7F)
10370       goto yy673;
10371     if (yych <= 0xBF)
10372       goto yy671;
10373     goto yy673;
10374   yy677:
10375     yych = *++p;
10376     if (yych <= 0x9F)
10377       goto yy673;
10378     if (yych <= 0xBF)
10379       goto yy676;
10380     goto yy673;
10381   yy678:
10382     yych = *++p;
10383     if (yych <= 0x7F)
10384       goto yy673;
10385     if (yych <= 0xBF)
10386       goto yy676;
10387     goto yy673;
10388   yy679:
10389     yych = *++p;
10390     if (yych <= 0x7F)
10391       goto yy673;
10392     if (yych <= 0x9F)
10393       goto yy676;
10394     goto yy673;
10395   yy680:
10396     yych = *++p;
10397     if (yych <= 0x8F)
10398       goto yy673;
10399     if (yych <= 0xBF)
10400       goto yy678;
10401     goto yy673;
10402   yy681:
10403     yych = *++p;
10404     if (yych <= 0x7F)
10405       goto yy673;
10406     if (yych <= 0xBF)
10407       goto yy678;
10408     goto yy673;
10409   yy682:
10410     yych = *++p;
10411     if (yych <= 0x7F)
10412       goto yy673;
10413     if (yych <= 0x8F)
10414       goto yy678;
10415     goto yy673;
10416   yy683:
10417     yyaccept = 1;
10418     yych = *(marker = ++p);
10419     if (yybm[0 + yych] & 64) {
10420       goto yy671;
10421     }
10422     if (yych <= 0xEC) {
10423       if (yych <= 0xC1) {
10424         if (yych <= '\n')
10425           goto yy684;
10426         if (yych <= '?')
10427           goto yy674;
10428       } else {
10429         if (yych <= 0xDF)
10430           goto yy676;
10431         if (yych <= 0xE0)
10432           goto yy677;
10433         goto yy678;
10434       }
10435     } else {
10436       if (yych <= 0xF0) {
10437         if (yych <= 0xED)
10438           goto yy679;
10439         if (yych <= 0xEF)
10440           goto yy678;
10441         goto yy680;
10442       } else {
10443         if (yych <= 0xF3)
10444           goto yy681;
10445         if (yych <= 0xF4)
10446           goto yy682;
10447       }
10448     }
10449   yy684 : { return (bufsize_t)(p - start); }
10450   }
10451 }
10452 
10453 // Try to match an HTML block end line of type 4
_scan_html_block_end_4(const unsigned char * p)10454 bufsize_t _scan_html_block_end_4(const unsigned char *p) {
10455   const unsigned char *marker = NULL;
10456   const unsigned char *start = p;
10457 
10458   {
10459     unsigned char yych;
10460     unsigned int yyaccept = 0;
10461     static const unsigned char yybm[] = {
10462         0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
10463         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10464         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10465         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10466         128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128,
10467         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10468         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10469         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10470         128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
10471         128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10472         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10473         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10474         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10475         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10476         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10477         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10478         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10479         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
10480         0,   0,   0,   0,
10481     };
10482     yych = *p;
10483     if (yybm[0 + yych] & 64) {
10484       goto yy690;
10485     }
10486     if (yych <= 0xE0) {
10487       if (yych <= '\n') {
10488         if (yych <= 0x00)
10489           goto yy687;
10490         if (yych <= '\t')
10491           goto yy689;
10492       } else {
10493         if (yych <= 0x7F)
10494           goto yy689;
10495         if (yych <= 0xC1)
10496           goto yy687;
10497         if (yych <= 0xDF)
10498           goto yy693;
10499         goto yy694;
10500       }
10501     } else {
10502       if (yych <= 0xEF) {
10503         if (yych == 0xED)
10504           goto yy696;
10505         goto yy695;
10506       } else {
10507         if (yych <= 0xF0)
10508           goto yy697;
10509         if (yych <= 0xF3)
10510           goto yy698;
10511         if (yych <= 0xF4)
10512           goto yy699;
10513       }
10514     }
10515   yy687:
10516     ++p;
10517   yy688 : { return 0; }
10518   yy689:
10519     yyaccept = 0;
10520     yych = *(marker = ++p);
10521     if (yych <= '\n') {
10522       if (yych <= 0x00)
10523         goto yy688;
10524       if (yych <= '\t')
10525         goto yy701;
10526       goto yy688;
10527     } else {
10528       if (yych <= 0x7F)
10529         goto yy701;
10530       if (yych <= 0xC1)
10531         goto yy688;
10532       if (yych <= 0xF4)
10533         goto yy701;
10534       goto yy688;
10535     }
10536   yy690:
10537     yyaccept = 1;
10538     yych = *(marker = ++p);
10539     if (yybm[0 + yych] & 128) {
10540       goto yy700;
10541     }
10542     if (yych <= 0xEC) {
10543       if (yych <= 0xC1) {
10544         if (yych <= '\n')
10545           goto yy692;
10546         if (yych <= '>')
10547           goto yy690;
10548       } else {
10549         if (yych <= 0xDF)
10550           goto yy703;
10551         if (yych <= 0xE0)
10552           goto yy704;
10553         goto yy705;
10554       }
10555     } else {
10556       if (yych <= 0xF0) {
10557         if (yych <= 0xED)
10558           goto yy706;
10559         if (yych <= 0xEF)
10560           goto yy705;
10561         goto yy707;
10562       } else {
10563         if (yych <= 0xF3)
10564           goto yy708;
10565         if (yych <= 0xF4)
10566           goto yy709;
10567       }
10568     }
10569   yy692 : { return (bufsize_t)(p - start); }
10570   yy693:
10571     yyaccept = 0;
10572     yych = *(marker = ++p);
10573     if (yych <= 0x7F)
10574       goto yy688;
10575     if (yych <= 0xBF)
10576       goto yy700;
10577     goto yy688;
10578   yy694:
10579     yyaccept = 0;
10580     yych = *(marker = ++p);
10581     if (yych <= 0x9F)
10582       goto yy688;
10583     if (yych <= 0xBF)
10584       goto yy703;
10585     goto yy688;
10586   yy695:
10587     yyaccept = 0;
10588     yych = *(marker = ++p);
10589     if (yych <= 0x7F)
10590       goto yy688;
10591     if (yych <= 0xBF)
10592       goto yy703;
10593     goto yy688;
10594   yy696:
10595     yyaccept = 0;
10596     yych = *(marker = ++p);
10597     if (yych <= 0x7F)
10598       goto yy688;
10599     if (yych <= 0x9F)
10600       goto yy703;
10601     goto yy688;
10602   yy697:
10603     yyaccept = 0;
10604     yych = *(marker = ++p);
10605     if (yych <= 0x8F)
10606       goto yy688;
10607     if (yych <= 0xBF)
10608       goto yy705;
10609     goto yy688;
10610   yy698:
10611     yyaccept = 0;
10612     yych = *(marker = ++p);
10613     if (yych <= 0x7F)
10614       goto yy688;
10615     if (yych <= 0xBF)
10616       goto yy705;
10617     goto yy688;
10618   yy699:
10619     yyaccept = 0;
10620     yych = *(marker = ++p);
10621     if (yych <= 0x7F)
10622       goto yy688;
10623     if (yych <= 0x8F)
10624       goto yy705;
10625     goto yy688;
10626   yy700:
10627     yych = *++p;
10628   yy701:
10629     if (yybm[0 + yych] & 128) {
10630       goto yy700;
10631     }
10632     if (yych <= 0xEC) {
10633       if (yych <= 0xC1) {
10634         if (yych <= '\n')
10635           goto yy702;
10636         if (yych <= '>')
10637           goto yy690;
10638       } else {
10639         if (yych <= 0xDF)
10640           goto yy703;
10641         if (yych <= 0xE0)
10642           goto yy704;
10643         goto yy705;
10644       }
10645     } else {
10646       if (yych <= 0xF0) {
10647         if (yych <= 0xED)
10648           goto yy706;
10649         if (yych <= 0xEF)
10650           goto yy705;
10651         goto yy707;
10652       } else {
10653         if (yych <= 0xF3)
10654           goto yy708;
10655         if (yych <= 0xF4)
10656           goto yy709;
10657       }
10658     }
10659   yy702:
10660     p = marker;
10661     if (yyaccept == 0) {
10662       goto yy688;
10663     } else {
10664       goto yy692;
10665     }
10666   yy703:
10667     yych = *++p;
10668     if (yych <= 0x7F)
10669       goto yy702;
10670     if (yych <= 0xBF)
10671       goto yy700;
10672     goto yy702;
10673   yy704:
10674     yych = *++p;
10675     if (yych <= 0x9F)
10676       goto yy702;
10677     if (yych <= 0xBF)
10678       goto yy703;
10679     goto yy702;
10680   yy705:
10681     yych = *++p;
10682     if (yych <= 0x7F)
10683       goto yy702;
10684     if (yych <= 0xBF)
10685       goto yy703;
10686     goto yy702;
10687   yy706:
10688     yych = *++p;
10689     if (yych <= 0x7F)
10690       goto yy702;
10691     if (yych <= 0x9F)
10692       goto yy703;
10693     goto yy702;
10694   yy707:
10695     yych = *++p;
10696     if (yych <= 0x8F)
10697       goto yy702;
10698     if (yych <= 0xBF)
10699       goto yy705;
10700     goto yy702;
10701   yy708:
10702     yych = *++p;
10703     if (yych <= 0x7F)
10704       goto yy702;
10705     if (yych <= 0xBF)
10706       goto yy705;
10707     goto yy702;
10708   yy709:
10709     yych = *++p;
10710     if (yych <= 0x7F)
10711       goto yy702;
10712     if (yych <= 0x8F)
10713       goto yy705;
10714     goto yy702;
10715   }
10716 }
10717 
10718 // Try to match an HTML block end line of type 5
_scan_html_block_end_5(const unsigned char * p)10719 bufsize_t _scan_html_block_end_5(const unsigned char *p) {
10720   const unsigned char *marker = NULL;
10721   const unsigned char *start = p;
10722 
10723   {
10724     unsigned char yych;
10725     unsigned int yyaccept = 0;
10726     static const unsigned char yybm[] = {
10727         0,  64, 64, 64,  64, 64, 64, 64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,
10728         64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
10729         64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
10730         64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
10731         64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
10732         64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
10733         64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
10734         64, 64, 0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10735         0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10736         0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10737         0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10738         0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10739         0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10740         0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
10741         0,  0,  0,  0,
10742     };
10743     yych = *p;
10744     if (yych <= 0xDF) {
10745       if (yych <= '\\') {
10746         if (yych <= 0x00)
10747           goto yy712;
10748         if (yych != '\n')
10749           goto yy714;
10750       } else {
10751         if (yych <= ']')
10752           goto yy715;
10753         if (yych <= 0x7F)
10754           goto yy714;
10755         if (yych >= 0xC2)
10756           goto yy716;
10757       }
10758     } else {
10759       if (yych <= 0xEF) {
10760         if (yych <= 0xE0)
10761           goto yy717;
10762         if (yych == 0xED)
10763           goto yy719;
10764         goto yy718;
10765       } else {
10766         if (yych <= 0xF0)
10767           goto yy720;
10768         if (yych <= 0xF3)
10769           goto yy721;
10770         if (yych <= 0xF4)
10771           goto yy722;
10772       }
10773     }
10774   yy712:
10775     ++p;
10776   yy713 : { return 0; }
10777   yy714:
10778     yyaccept = 0;
10779     yych = *(marker = ++p);
10780     if (yych <= '\n') {
10781       if (yych <= 0x00)
10782         goto yy713;
10783       if (yych <= '\t')
10784         goto yy724;
10785       goto yy713;
10786     } else {
10787       if (yych <= 0x7F)
10788         goto yy724;
10789       if (yych <= 0xC1)
10790         goto yy713;
10791       if (yych <= 0xF4)
10792         goto yy724;
10793       goto yy713;
10794     }
10795   yy715:
10796     yyaccept = 0;
10797     yych = *(marker = ++p);
10798     if (yybm[0 + yych] & 128) {
10799       goto yy734;
10800     }
10801     if (yych <= '\n') {
10802       if (yych <= 0x00)
10803         goto yy713;
10804       if (yych <= '\t')
10805         goto yy724;
10806       goto yy713;
10807     } else {
10808       if (yych <= 0x7F)
10809         goto yy724;
10810       if (yych <= 0xC1)
10811         goto yy713;
10812       if (yych <= 0xF4)
10813         goto yy724;
10814       goto yy713;
10815     }
10816   yy716:
10817     yyaccept = 0;
10818     yych = *(marker = ++p);
10819     if (yych <= 0x7F)
10820       goto yy713;
10821     if (yych <= 0xBF)
10822       goto yy723;
10823     goto yy713;
10824   yy717:
10825     yyaccept = 0;
10826     yych = *(marker = ++p);
10827     if (yych <= 0x9F)
10828       goto yy713;
10829     if (yych <= 0xBF)
10830       goto yy727;
10831     goto yy713;
10832   yy718:
10833     yyaccept = 0;
10834     yych = *(marker = ++p);
10835     if (yych <= 0x7F)
10836       goto yy713;
10837     if (yych <= 0xBF)
10838       goto yy727;
10839     goto yy713;
10840   yy719:
10841     yyaccept = 0;
10842     yych = *(marker = ++p);
10843     if (yych <= 0x7F)
10844       goto yy713;
10845     if (yych <= 0x9F)
10846       goto yy727;
10847     goto yy713;
10848   yy720:
10849     yyaccept = 0;
10850     yych = *(marker = ++p);
10851     if (yych <= 0x8F)
10852       goto yy713;
10853     if (yych <= 0xBF)
10854       goto yy729;
10855     goto yy713;
10856   yy721:
10857     yyaccept = 0;
10858     yych = *(marker = ++p);
10859     if (yych <= 0x7F)
10860       goto yy713;
10861     if (yych <= 0xBF)
10862       goto yy729;
10863     goto yy713;
10864   yy722:
10865     yyaccept = 0;
10866     yych = *(marker = ++p);
10867     if (yych <= 0x7F)
10868       goto yy713;
10869     if (yych <= 0x8F)
10870       goto yy729;
10871     goto yy713;
10872   yy723:
10873     yych = *++p;
10874   yy724:
10875     if (yybm[0 + yych] & 64) {
10876       goto yy723;
10877     }
10878     if (yych <= 0xEC) {
10879       if (yych <= 0xC1) {
10880         if (yych <= '\n')
10881           goto yy725;
10882         if (yych <= ']')
10883           goto yy726;
10884       } else {
10885         if (yych <= 0xDF)
10886           goto yy727;
10887         if (yych <= 0xE0)
10888           goto yy728;
10889         goto yy729;
10890       }
10891     } else {
10892       if (yych <= 0xF0) {
10893         if (yych <= 0xED)
10894           goto yy730;
10895         if (yych <= 0xEF)
10896           goto yy729;
10897         goto yy731;
10898       } else {
10899         if (yych <= 0xF3)
10900           goto yy732;
10901         if (yych <= 0xF4)
10902           goto yy733;
10903       }
10904     }
10905   yy725:
10906     p = marker;
10907     if (yyaccept == 0) {
10908       goto yy713;
10909     } else {
10910       goto yy737;
10911     }
10912   yy726:
10913     yych = *++p;
10914     if (yybm[0 + yych] & 64) {
10915       goto yy723;
10916     }
10917     if (yych <= 0xEC) {
10918       if (yych <= 0xC1) {
10919         if (yych <= '\n')
10920           goto yy725;
10921         if (yych <= ']')
10922           goto yy734;
10923         goto yy725;
10924       } else {
10925         if (yych <= 0xDF)
10926           goto yy727;
10927         if (yych <= 0xE0)
10928           goto yy728;
10929         goto yy729;
10930       }
10931     } else {
10932       if (yych <= 0xF0) {
10933         if (yych <= 0xED)
10934           goto yy730;
10935         if (yych <= 0xEF)
10936           goto yy729;
10937         goto yy731;
10938       } else {
10939         if (yych <= 0xF3)
10940           goto yy732;
10941         if (yych <= 0xF4)
10942           goto yy733;
10943         goto yy725;
10944       }
10945     }
10946   yy727:
10947     yych = *++p;
10948     if (yych <= 0x7F)
10949       goto yy725;
10950     if (yych <= 0xBF)
10951       goto yy723;
10952     goto yy725;
10953   yy728:
10954     yych = *++p;
10955     if (yych <= 0x9F)
10956       goto yy725;
10957     if (yych <= 0xBF)
10958       goto yy727;
10959     goto yy725;
10960   yy729:
10961     yych = *++p;
10962     if (yych <= 0x7F)
10963       goto yy725;
10964     if (yych <= 0xBF)
10965       goto yy727;
10966     goto yy725;
10967   yy730:
10968     yych = *++p;
10969     if (yych <= 0x7F)
10970       goto yy725;
10971     if (yych <= 0x9F)
10972       goto yy727;
10973     goto yy725;
10974   yy731:
10975     yych = *++p;
10976     if (yych <= 0x8F)
10977       goto yy725;
10978     if (yych <= 0xBF)
10979       goto yy729;
10980     goto yy725;
10981   yy732:
10982     yych = *++p;
10983     if (yych <= 0x7F)
10984       goto yy725;
10985     if (yych <= 0xBF)
10986       goto yy729;
10987     goto yy725;
10988   yy733:
10989     yych = *++p;
10990     if (yych <= 0x7F)
10991       goto yy725;
10992     if (yych <= 0x8F)
10993       goto yy729;
10994     goto yy725;
10995   yy734:
10996     yych = *++p;
10997     if (yybm[0 + yych] & 128) {
10998       goto yy734;
10999     }
11000     if (yych <= 0xDF) {
11001       if (yych <= '=') {
11002         if (yych <= 0x00)
11003           goto yy725;
11004         if (yych == '\n')
11005           goto yy725;
11006         goto yy723;
11007       } else {
11008         if (yych <= '>')
11009           goto yy736;
11010         if (yych <= 0x7F)
11011           goto yy723;
11012         if (yych <= 0xC1)
11013           goto yy725;
11014         goto yy727;
11015       }
11016     } else {
11017       if (yych <= 0xEF) {
11018         if (yych <= 0xE0)
11019           goto yy728;
11020         if (yych == 0xED)
11021           goto yy730;
11022         goto yy729;
11023       } else {
11024         if (yych <= 0xF0)
11025           goto yy731;
11026         if (yych <= 0xF3)
11027           goto yy732;
11028         if (yych <= 0xF4)
11029           goto yy733;
11030         goto yy725;
11031       }
11032     }
11033   yy736:
11034     yyaccept = 1;
11035     yych = *(marker = ++p);
11036     if (yybm[0 + yych] & 64) {
11037       goto yy723;
11038     }
11039     if (yych <= 0xEC) {
11040       if (yych <= 0xC1) {
11041         if (yych <= '\n')
11042           goto yy737;
11043         if (yych <= ']')
11044           goto yy726;
11045       } else {
11046         if (yych <= 0xDF)
11047           goto yy727;
11048         if (yych <= 0xE0)
11049           goto yy728;
11050         goto yy729;
11051       }
11052     } else {
11053       if (yych <= 0xF0) {
11054         if (yych <= 0xED)
11055           goto yy730;
11056         if (yych <= 0xEF)
11057           goto yy729;
11058         goto yy731;
11059       } else {
11060         if (yych <= 0xF3)
11061           goto yy732;
11062         if (yych <= 0xF4)
11063           goto yy733;
11064       }
11065     }
11066   yy737 : { return (bufsize_t)(p - start); }
11067   }
11068 }
11069 
11070 // Try to match a link title (in single quotes, in double quotes, or
11071 // in parentheses), returning number of chars matched.  Allow one
11072 // level of internal nesting (quotes within quotes).
_scan_link_title(const unsigned char * p)11073 bufsize_t _scan_link_title(const unsigned char *p) {
11074   const unsigned char *marker = NULL;
11075   const unsigned char *start = p;
11076 
11077   {
11078     unsigned char yych;
11079     unsigned int yyaccept = 0;
11080     static const unsigned char yybm[] = {
11081         0,   208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11082         208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11083         208, 208, 208, 208, 208, 208, 192, 208, 208, 208, 208, 144, 80,  80,
11084         208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11085         208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11086         208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11087         208, 208, 208, 208, 208, 208, 208, 208, 32,  208, 208, 208, 208, 208,
11088         208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11089         208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
11090         208, 208, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11091         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11092         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11093         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11094         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11095         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11096         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11097         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11098         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11099         0,   0,   0,   0,
11100     };
11101     yych = *p;
11102     if (yych <= '&') {
11103       if (yych == '"')
11104         goto yy742;
11105     } else {
11106       if (yych <= '\'')
11107         goto yy743;
11108       if (yych <= '(')
11109         goto yy744;
11110     }
11111     ++p;
11112   yy741 : { return 0; }
11113   yy742:
11114     yyaccept = 0;
11115     yych = *(marker = ++p);
11116     if (yych <= 0x00)
11117       goto yy741;
11118     if (yych <= 0x7F)
11119       goto yy746;
11120     if (yych <= 0xC1)
11121       goto yy741;
11122     if (yych <= 0xF4)
11123       goto yy746;
11124     goto yy741;
11125   yy743:
11126     yyaccept = 0;
11127     yych = *(marker = ++p);
11128     if (yych <= 0x00)
11129       goto yy741;
11130     if (yych <= 0x7F)
11131       goto yy760;
11132     if (yych <= 0xC1)
11133       goto yy741;
11134     if (yych <= 0xF4)
11135       goto yy760;
11136     goto yy741;
11137   yy744:
11138     yyaccept = 0;
11139     yych = *(marker = ++p);
11140     if (yych <= '(') {
11141       if (yych <= 0x00)
11142         goto yy741;
11143       if (yych <= '\'')
11144         goto yy773;
11145       goto yy741;
11146     } else {
11147       if (yych <= 0x7F)
11148         goto yy773;
11149       if (yych <= 0xC1)
11150         goto yy741;
11151       if (yych <= 0xF4)
11152         goto yy773;
11153       goto yy741;
11154     }
11155   yy745:
11156     yych = *++p;
11157   yy746:
11158     if (yybm[0 + yych] & 16) {
11159       goto yy745;
11160     }
11161     if (yych <= 0xE0) {
11162       if (yych <= '\\') {
11163         if (yych <= 0x00)
11164           goto yy747;
11165         if (yych <= '"')
11166           goto yy748;
11167         goto yy750;
11168       } else {
11169         if (yych <= 0xC1)
11170           goto yy747;
11171         if (yych <= 0xDF)
11172           goto yy752;
11173         goto yy753;
11174       }
11175     } else {
11176       if (yych <= 0xEF) {
11177         if (yych == 0xED)
11178           goto yy755;
11179         goto yy754;
11180       } else {
11181         if (yych <= 0xF0)
11182           goto yy756;
11183         if (yych <= 0xF3)
11184           goto yy757;
11185         if (yych <= 0xF4)
11186           goto yy758;
11187       }
11188     }
11189   yy747:
11190     p = marker;
11191     if (yyaccept <= 1) {
11192       if (yyaccept == 0) {
11193         goto yy741;
11194       } else {
11195         goto yy749;
11196       }
11197     } else {
11198       if (yyaccept == 2) {
11199         goto yy762;
11200       } else {
11201         goto yy775;
11202       }
11203     }
11204   yy748:
11205     ++p;
11206   yy749 : { return (bufsize_t)(p - start); }
11207   yy750:
11208     yych = *++p;
11209     if (yybm[0 + yych] & 16) {
11210       goto yy745;
11211     }
11212     if (yych <= 0xE0) {
11213       if (yych <= '\\') {
11214         if (yych <= 0x00)
11215           goto yy747;
11216         if (yych <= '"')
11217           goto yy785;
11218         goto yy750;
11219       } else {
11220         if (yych <= 0xC1)
11221           goto yy747;
11222         if (yych >= 0xE0)
11223           goto yy753;
11224       }
11225     } else {
11226       if (yych <= 0xEF) {
11227         if (yych == 0xED)
11228           goto yy755;
11229         goto yy754;
11230       } else {
11231         if (yych <= 0xF0)
11232           goto yy756;
11233         if (yych <= 0xF3)
11234           goto yy757;
11235         if (yych <= 0xF4)
11236           goto yy758;
11237         goto yy747;
11238       }
11239     }
11240   yy752:
11241     yych = *++p;
11242     if (yych <= 0x7F)
11243       goto yy747;
11244     if (yych <= 0xBF)
11245       goto yy745;
11246     goto yy747;
11247   yy753:
11248     yych = *++p;
11249     if (yych <= 0x9F)
11250       goto yy747;
11251     if (yych <= 0xBF)
11252       goto yy752;
11253     goto yy747;
11254   yy754:
11255     yych = *++p;
11256     if (yych <= 0x7F)
11257       goto yy747;
11258     if (yych <= 0xBF)
11259       goto yy752;
11260     goto yy747;
11261   yy755:
11262     yych = *++p;
11263     if (yych <= 0x7F)
11264       goto yy747;
11265     if (yych <= 0x9F)
11266       goto yy752;
11267     goto yy747;
11268   yy756:
11269     yych = *++p;
11270     if (yych <= 0x8F)
11271       goto yy747;
11272     if (yych <= 0xBF)
11273       goto yy754;
11274     goto yy747;
11275   yy757:
11276     yych = *++p;
11277     if (yych <= 0x7F)
11278       goto yy747;
11279     if (yych <= 0xBF)
11280       goto yy754;
11281     goto yy747;
11282   yy758:
11283     yych = *++p;
11284     if (yych <= 0x7F)
11285       goto yy747;
11286     if (yych <= 0x8F)
11287       goto yy754;
11288     goto yy747;
11289   yy759:
11290     yych = *++p;
11291   yy760:
11292     if (yybm[0 + yych] & 64) {
11293       goto yy759;
11294     }
11295     if (yych <= 0xE0) {
11296       if (yych <= '\\') {
11297         if (yych <= 0x00)
11298           goto yy747;
11299         if (yych >= '(')
11300           goto yy763;
11301       } else {
11302         if (yych <= 0xC1)
11303           goto yy747;
11304         if (yych <= 0xDF)
11305           goto yy765;
11306         goto yy766;
11307       }
11308     } else {
11309       if (yych <= 0xEF) {
11310         if (yych == 0xED)
11311           goto yy768;
11312         goto yy767;
11313       } else {
11314         if (yych <= 0xF0)
11315           goto yy769;
11316         if (yych <= 0xF3)
11317           goto yy770;
11318         if (yych <= 0xF4)
11319           goto yy771;
11320         goto yy747;
11321       }
11322     }
11323   yy761:
11324     ++p;
11325   yy762 : { return (bufsize_t)(p - start); }
11326   yy763:
11327     yych = *++p;
11328     if (yybm[0 + yych] & 64) {
11329       goto yy759;
11330     }
11331     if (yych <= 0xE0) {
11332       if (yych <= '\\') {
11333         if (yych <= 0x00)
11334           goto yy747;
11335         if (yych <= '\'')
11336           goto yy786;
11337         goto yy763;
11338       } else {
11339         if (yych <= 0xC1)
11340           goto yy747;
11341         if (yych >= 0xE0)
11342           goto yy766;
11343       }
11344     } else {
11345       if (yych <= 0xEF) {
11346         if (yych == 0xED)
11347           goto yy768;
11348         goto yy767;
11349       } else {
11350         if (yych <= 0xF0)
11351           goto yy769;
11352         if (yych <= 0xF3)
11353           goto yy770;
11354         if (yych <= 0xF4)
11355           goto yy771;
11356         goto yy747;
11357       }
11358     }
11359   yy765:
11360     yych = *++p;
11361     if (yych <= 0x7F)
11362       goto yy747;
11363     if (yych <= 0xBF)
11364       goto yy759;
11365     goto yy747;
11366   yy766:
11367     yych = *++p;
11368     if (yych <= 0x9F)
11369       goto yy747;
11370     if (yych <= 0xBF)
11371       goto yy765;
11372     goto yy747;
11373   yy767:
11374     yych = *++p;
11375     if (yych <= 0x7F)
11376       goto yy747;
11377     if (yych <= 0xBF)
11378       goto yy765;
11379     goto yy747;
11380   yy768:
11381     yych = *++p;
11382     if (yych <= 0x7F)
11383       goto yy747;
11384     if (yych <= 0x9F)
11385       goto yy765;
11386     goto yy747;
11387   yy769:
11388     yych = *++p;
11389     if (yych <= 0x8F)
11390       goto yy747;
11391     if (yych <= 0xBF)
11392       goto yy767;
11393     goto yy747;
11394   yy770:
11395     yych = *++p;
11396     if (yych <= 0x7F)
11397       goto yy747;
11398     if (yych <= 0xBF)
11399       goto yy767;
11400     goto yy747;
11401   yy771:
11402     yych = *++p;
11403     if (yych <= 0x7F)
11404       goto yy747;
11405     if (yych <= 0x8F)
11406       goto yy767;
11407     goto yy747;
11408   yy772:
11409     yych = *++p;
11410   yy773:
11411     if (yybm[0 + yych] & 128) {
11412       goto yy772;
11413     }
11414     if (yych <= 0xE0) {
11415       if (yych <= '\\') {
11416         if (yych <= '(')
11417           goto yy747;
11418         if (yych >= '*')
11419           goto yy776;
11420       } else {
11421         if (yych <= 0xC1)
11422           goto yy747;
11423         if (yych <= 0xDF)
11424           goto yy778;
11425         goto yy779;
11426       }
11427     } else {
11428       if (yych <= 0xEF) {
11429         if (yych == 0xED)
11430           goto yy781;
11431         goto yy780;
11432       } else {
11433         if (yych <= 0xF0)
11434           goto yy782;
11435         if (yych <= 0xF3)
11436           goto yy783;
11437         if (yych <= 0xF4)
11438           goto yy784;
11439         goto yy747;
11440       }
11441     }
11442   yy774:
11443     ++p;
11444   yy775 : { return (bufsize_t)(p - start); }
11445   yy776:
11446     yych = *++p;
11447     if (yych <= 0xDF) {
11448       if (yych <= '[') {
11449         if (yych <= 0x00)
11450           goto yy747;
11451         if (yych == ')')
11452           goto yy787;
11453         goto yy772;
11454       } else {
11455         if (yych <= '\\')
11456           goto yy776;
11457         if (yych <= 0x7F)
11458           goto yy772;
11459         if (yych <= 0xC1)
11460           goto yy747;
11461       }
11462     } else {
11463       if (yych <= 0xEF) {
11464         if (yych <= 0xE0)
11465           goto yy779;
11466         if (yych == 0xED)
11467           goto yy781;
11468         goto yy780;
11469       } else {
11470         if (yych <= 0xF0)
11471           goto yy782;
11472         if (yych <= 0xF3)
11473           goto yy783;
11474         if (yych <= 0xF4)
11475           goto yy784;
11476         goto yy747;
11477       }
11478     }
11479   yy778:
11480     yych = *++p;
11481     if (yych <= 0x7F)
11482       goto yy747;
11483     if (yych <= 0xBF)
11484       goto yy772;
11485     goto yy747;
11486   yy779:
11487     yych = *++p;
11488     if (yych <= 0x9F)
11489       goto yy747;
11490     if (yych <= 0xBF)
11491       goto yy778;
11492     goto yy747;
11493   yy780:
11494     yych = *++p;
11495     if (yych <= 0x7F)
11496       goto yy747;
11497     if (yych <= 0xBF)
11498       goto yy778;
11499     goto yy747;
11500   yy781:
11501     yych = *++p;
11502     if (yych <= 0x7F)
11503       goto yy747;
11504     if (yych <= 0x9F)
11505       goto yy778;
11506     goto yy747;
11507   yy782:
11508     yych = *++p;
11509     if (yych <= 0x8F)
11510       goto yy747;
11511     if (yych <= 0xBF)
11512       goto yy780;
11513     goto yy747;
11514   yy783:
11515     yych = *++p;
11516     if (yych <= 0x7F)
11517       goto yy747;
11518     if (yych <= 0xBF)
11519       goto yy780;
11520     goto yy747;
11521   yy784:
11522     yych = *++p;
11523     if (yych <= 0x7F)
11524       goto yy747;
11525     if (yych <= 0x8F)
11526       goto yy780;
11527     goto yy747;
11528   yy785:
11529     yyaccept = 1;
11530     yych = *(marker = ++p);
11531     if (yybm[0 + yych] & 16) {
11532       goto yy745;
11533     }
11534     if (yych <= 0xE0) {
11535       if (yych <= '\\') {
11536         if (yych <= 0x00)
11537           goto yy749;
11538         if (yych <= '"')
11539           goto yy748;
11540         goto yy750;
11541       } else {
11542         if (yych <= 0xC1)
11543           goto yy749;
11544         if (yych <= 0xDF)
11545           goto yy752;
11546         goto yy753;
11547       }
11548     } else {
11549       if (yych <= 0xEF) {
11550         if (yych == 0xED)
11551           goto yy755;
11552         goto yy754;
11553       } else {
11554         if (yych <= 0xF0)
11555           goto yy756;
11556         if (yych <= 0xF3)
11557           goto yy757;
11558         if (yych <= 0xF4)
11559           goto yy758;
11560         goto yy749;
11561       }
11562     }
11563   yy786:
11564     yyaccept = 2;
11565     yych = *(marker = ++p);
11566     if (yybm[0 + yych] & 64) {
11567       goto yy759;
11568     }
11569     if (yych <= 0xE0) {
11570       if (yych <= '\\') {
11571         if (yych <= 0x00)
11572           goto yy762;
11573         if (yych <= '\'')
11574           goto yy761;
11575         goto yy763;
11576       } else {
11577         if (yych <= 0xC1)
11578           goto yy762;
11579         if (yych <= 0xDF)
11580           goto yy765;
11581         goto yy766;
11582       }
11583     } else {
11584       if (yych <= 0xEF) {
11585         if (yych == 0xED)
11586           goto yy768;
11587         goto yy767;
11588       } else {
11589         if (yych <= 0xF0)
11590           goto yy769;
11591         if (yych <= 0xF3)
11592           goto yy770;
11593         if (yych <= 0xF4)
11594           goto yy771;
11595         goto yy762;
11596       }
11597     }
11598   yy787:
11599     yyaccept = 3;
11600     yych = *(marker = ++p);
11601     if (yybm[0 + yych] & 128) {
11602       goto yy772;
11603     }
11604     if (yych <= 0xE0) {
11605       if (yych <= '\\') {
11606         if (yych <= '(')
11607           goto yy775;
11608         if (yych <= ')')
11609           goto yy774;
11610         goto yy776;
11611       } else {
11612         if (yych <= 0xC1)
11613           goto yy775;
11614         if (yych <= 0xDF)
11615           goto yy778;
11616         goto yy779;
11617       }
11618     } else {
11619       if (yych <= 0xEF) {
11620         if (yych == 0xED)
11621           goto yy781;
11622         goto yy780;
11623       } else {
11624         if (yych <= 0xF0)
11625           goto yy782;
11626         if (yych <= 0xF3)
11627           goto yy783;
11628         if (yych <= 0xF4)
11629           goto yy784;
11630         goto yy775;
11631       }
11632     }
11633   }
11634 }
11635 
11636 // Match space characters, including newlines.
_scan_spacechars(const unsigned char * p)11637 bufsize_t _scan_spacechars(const unsigned char *p) {
11638   const unsigned char *start = p;
11639 
11640   {
11641     unsigned char yych;
11642     static const unsigned char yybm[] = {
11643         0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,
11644         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,
11645         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11646         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11647         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11648         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11649         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11650         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11651         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11652         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11653         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11654         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
11655         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,
11656     };
11657     yych = *p;
11658     if (yybm[0 + yych] & 128) {
11659       goto yy792;
11660     }
11661     ++p;
11662     { return 0; }
11663   yy792:
11664     yych = *++p;
11665     if (yybm[0 + yych] & 128) {
11666       goto yy792;
11667     }
11668     { return (bufsize_t)(p - start); }
11669   }
11670 }
11671 
11672 // Match ATX heading start.
_scan_atx_heading_start(const unsigned char * p)11673 bufsize_t _scan_atx_heading_start(const unsigned char *p) {
11674   const unsigned char *marker = NULL;
11675   const unsigned char *start = p;
11676 
11677   {
11678     unsigned char yych;
11679     static const unsigned char yybm[] = {
11680         0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11681         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11682         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11683         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11684         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11685         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11686         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11687         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11688         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11689         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11690         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11691         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,
11692     };
11693     yych = *p;
11694     if (yych == '#')
11695       goto yy799;
11696     ++p;
11697   yy798 : { return 0; }
11698   yy799:
11699     yych = *(marker = ++p);
11700     if (yybm[0 + yych] & 128) {
11701       goto yy800;
11702     }
11703     if (yych <= '\f') {
11704       if (yych <= 0x08)
11705         goto yy798;
11706       if (yych <= '\n')
11707         goto yy803;
11708       goto yy798;
11709     } else {
11710       if (yych <= '\r')
11711         goto yy803;
11712       if (yych == '#')
11713         goto yy804;
11714       goto yy798;
11715     }
11716   yy800:
11717     yych = *++p;
11718     if (yybm[0 + yych] & 128) {
11719       goto yy800;
11720     }
11721   yy802 : { return (bufsize_t)(p - start); }
11722   yy803:
11723     ++p;
11724     goto yy802;
11725   yy804:
11726     yych = *++p;
11727     if (yybm[0 + yych] & 128) {
11728       goto yy800;
11729     }
11730     if (yych <= '\f') {
11731       if (yych <= 0x08)
11732         goto yy805;
11733       if (yych <= '\n')
11734         goto yy803;
11735     } else {
11736       if (yych <= '\r')
11737         goto yy803;
11738       if (yych == '#')
11739         goto yy806;
11740     }
11741   yy805:
11742     p = marker;
11743     goto yy798;
11744   yy806:
11745     yych = *++p;
11746     if (yybm[0 + yych] & 128) {
11747       goto yy800;
11748     }
11749     if (yych <= '\f') {
11750       if (yych <= 0x08)
11751         goto yy805;
11752       if (yych <= '\n')
11753         goto yy803;
11754       goto yy805;
11755     } else {
11756       if (yych <= '\r')
11757         goto yy803;
11758       if (yych != '#')
11759         goto yy805;
11760     }
11761     yych = *++p;
11762     if (yybm[0 + yych] & 128) {
11763       goto yy800;
11764     }
11765     if (yych <= '\f') {
11766       if (yych <= 0x08)
11767         goto yy805;
11768       if (yych <= '\n')
11769         goto yy803;
11770       goto yy805;
11771     } else {
11772       if (yych <= '\r')
11773         goto yy803;
11774       if (yych != '#')
11775         goto yy805;
11776     }
11777     yych = *++p;
11778     if (yybm[0 + yych] & 128) {
11779       goto yy800;
11780     }
11781     if (yych <= '\f') {
11782       if (yych <= 0x08)
11783         goto yy805;
11784       if (yych <= '\n')
11785         goto yy803;
11786       goto yy805;
11787     } else {
11788       if (yych <= '\r')
11789         goto yy803;
11790       if (yych != '#')
11791         goto yy805;
11792     }
11793     yych = *++p;
11794     if (yybm[0 + yych] & 128) {
11795       goto yy800;
11796     }
11797     if (yych <= 0x08)
11798       goto yy805;
11799     if (yych <= '\n')
11800       goto yy803;
11801     if (yych == '\r')
11802       goto yy803;
11803     goto yy805;
11804   }
11805 }
11806 
11807 // Match setext heading line.  Return 1 for level-1 heading,
11808 // 2 for level-2, 0 for no match.
_scan_setext_heading_line(const unsigned char * p)11809 bufsize_t _scan_setext_heading_line(const unsigned char *p) {
11810   const unsigned char *marker = NULL;
11811 
11812   {
11813     unsigned char yych;
11814     static const unsigned char yybm[] = {
11815         0, 0,  0, 0, 0, 0, 0, 0, 0, 32, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11816         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11817         0, 64, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
11818         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11819         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11820         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11821         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11822         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11823         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11824         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11825         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
11826         0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0,
11827     };
11828     yych = *p;
11829     if (yych == '-')
11830       goto yy814;
11831     if (yych == '=')
11832       goto yy815;
11833     ++p;
11834   yy813 : { return 0; }
11835   yy814:
11836     yych = *(marker = ++p);
11837     if (yybm[0 + yych] & 64) {
11838       goto yy821;
11839     }
11840     if (yych <= '\f') {
11841       if (yych <= 0x08)
11842         goto yy813;
11843       if (yych <= '\n')
11844         goto yy817;
11845       goto yy813;
11846     } else {
11847       if (yych <= '\r')
11848         goto yy817;
11849       if (yych == ' ')
11850         goto yy817;
11851       goto yy813;
11852     }
11853   yy815:
11854     yych = *(marker = ++p);
11855     if (yybm[0 + yych] & 128) {
11856       goto yy827;
11857     }
11858     if (yych <= '\f') {
11859       if (yych <= 0x08)
11860         goto yy813;
11861       if (yych <= '\n')
11862         goto yy824;
11863       goto yy813;
11864     } else {
11865       if (yych <= '\r')
11866         goto yy824;
11867       if (yych == ' ')
11868         goto yy824;
11869       goto yy813;
11870     }
11871   yy816:
11872     yych = *++p;
11873   yy817:
11874     if (yybm[0 + yych] & 32) {
11875       goto yy816;
11876     }
11877     if (yych <= 0x08)
11878       goto yy818;
11879     if (yych <= '\n')
11880       goto yy819;
11881     if (yych == '\r')
11882       goto yy819;
11883   yy818:
11884     p = marker;
11885     goto yy813;
11886   yy819:
11887     ++p;
11888     { return 2; }
11889   yy821:
11890     yych = *++p;
11891     if (yybm[0 + yych] & 32) {
11892       goto yy816;
11893     }
11894     if (yych <= '\f') {
11895       if (yych <= 0x08)
11896         goto yy818;
11897       if (yych <= '\n')
11898         goto yy819;
11899       goto yy818;
11900     } else {
11901       if (yych <= '\r')
11902         goto yy819;
11903       if (yych == '-')
11904         goto yy821;
11905       goto yy818;
11906     }
11907   yy823:
11908     yych = *++p;
11909   yy824:
11910     if (yych <= '\f') {
11911       if (yych <= 0x08)
11912         goto yy818;
11913       if (yych <= '\t')
11914         goto yy823;
11915       if (yych >= '\v')
11916         goto yy818;
11917     } else {
11918       if (yych <= '\r')
11919         goto yy825;
11920       if (yych == ' ')
11921         goto yy823;
11922       goto yy818;
11923     }
11924   yy825:
11925     ++p;
11926     { return 1; }
11927   yy827:
11928     yych = *++p;
11929     if (yybm[0 + yych] & 128) {
11930       goto yy827;
11931     }
11932     if (yych <= '\f') {
11933       if (yych <= 0x08)
11934         goto yy818;
11935       if (yych <= '\t')
11936         goto yy823;
11937       if (yych <= '\n')
11938         goto yy825;
11939       goto yy818;
11940     } else {
11941       if (yych <= '\r')
11942         goto yy825;
11943       if (yych == ' ')
11944         goto yy823;
11945       goto yy818;
11946     }
11947   }
11948 }
11949 
11950 // Scan an opening code fence.
_scan_open_code_fence(const unsigned char * p)11951 bufsize_t _scan_open_code_fence(const unsigned char *p) {
11952   const unsigned char *marker = NULL;
11953   const unsigned char *start = p;
11954 
11955   {
11956     unsigned char yych;
11957     static const unsigned char yybm[] = {
11958         0,   192, 192, 192, 192, 192, 192, 192, 192, 192, 0,   192, 192, 0,
11959         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11960         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11961         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11962         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11963         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11964         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 144, 192,
11965         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11966         192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
11967         224, 192, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11968         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11969         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11970         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11971         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11972         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11973         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11974         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11975         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
11976         0,   0,   0,   0,
11977     };
11978     yych = *p;
11979     if (yych == '`')
11980       goto yy833;
11981     if (yych == '~')
11982       goto yy834;
11983     ++p;
11984   yy832 : { return 0; }
11985   yy833:
11986     yych = *(marker = ++p);
11987     if (yych == '`')
11988       goto yy835;
11989     goto yy832;
11990   yy834:
11991     yych = *(marker = ++p);
11992     if (yych == '~')
11993       goto yy837;
11994     goto yy832;
11995   yy835:
11996     yych = *++p;
11997     if (yybm[0 + yych] & 16) {
11998       goto yy838;
11999     }
12000   yy836:
12001     p = marker;
12002     goto yy832;
12003   yy837:
12004     yych = *++p;
12005     if (yybm[0 + yych] & 32) {
12006       goto yy840;
12007     }
12008     goto yy836;
12009   yy838:
12010     yych = *++p;
12011     if (yybm[0 + yych] & 16) {
12012       goto yy838;
12013     }
12014     if (yych <= 0xDF) {
12015       if (yych <= '\f') {
12016         if (yych <= 0x00)
12017           goto yy836;
12018         if (yych == '\n') {
12019           marker = p;
12020           goto yy844;
12021         }
12022         marker = p;
12023         goto yy842;
12024       } else {
12025         if (yych <= '\r') {
12026           marker = p;
12027           goto yy844;
12028         }
12029         if (yych <= 0x7F) {
12030           marker = p;
12031           goto yy842;
12032         }
12033         if (yych <= 0xC1)
12034           goto yy836;
12035         marker = p;
12036         goto yy846;
12037       }
12038     } else {
12039       if (yych <= 0xEF) {
12040         if (yych <= 0xE0) {
12041           marker = p;
12042           goto yy847;
12043         }
12044         if (yych == 0xED) {
12045           marker = p;
12046           goto yy849;
12047         }
12048         marker = p;
12049         goto yy848;
12050       } else {
12051         if (yych <= 0xF0) {
12052           marker = p;
12053           goto yy850;
12054         }
12055         if (yych <= 0xF3) {
12056           marker = p;
12057           goto yy851;
12058         }
12059         if (yych <= 0xF4) {
12060           marker = p;
12061           goto yy852;
12062         }
12063         goto yy836;
12064       }
12065     }
12066   yy840:
12067     yych = *++p;
12068     if (yybm[0 + yych] & 32) {
12069       goto yy840;
12070     }
12071     if (yych <= 0xDF) {
12072       if (yych <= '\f') {
12073         if (yych <= 0x00)
12074           goto yy836;
12075         if (yych == '\n') {
12076           marker = p;
12077           goto yy855;
12078         }
12079         marker = p;
12080         goto yy853;
12081       } else {
12082         if (yych <= '\r') {
12083           marker = p;
12084           goto yy855;
12085         }
12086         if (yych <= 0x7F) {
12087           marker = p;
12088           goto yy853;
12089         }
12090         if (yych <= 0xC1)
12091           goto yy836;
12092         marker = p;
12093         goto yy857;
12094       }
12095     } else {
12096       if (yych <= 0xEF) {
12097         if (yych <= 0xE0) {
12098           marker = p;
12099           goto yy858;
12100         }
12101         if (yych == 0xED) {
12102           marker = p;
12103           goto yy860;
12104         }
12105         marker = p;
12106         goto yy859;
12107       } else {
12108         if (yych <= 0xF0) {
12109           marker = p;
12110           goto yy861;
12111         }
12112         if (yych <= 0xF3) {
12113           marker = p;
12114           goto yy862;
12115         }
12116         if (yych <= 0xF4) {
12117           marker = p;
12118           goto yy863;
12119         }
12120         goto yy836;
12121       }
12122     }
12123   yy842:
12124     yych = *++p;
12125     if (yybm[0 + yych] & 64) {
12126       goto yy842;
12127     }
12128     if (yych <= 0xEC) {
12129       if (yych <= 0xC1) {
12130         if (yych <= 0x00)
12131           goto yy836;
12132         if (yych >= 0x0E)
12133           goto yy836;
12134       } else {
12135         if (yych <= 0xDF)
12136           goto yy846;
12137         if (yych <= 0xE0)
12138           goto yy847;
12139         goto yy848;
12140       }
12141     } else {
12142       if (yych <= 0xF0) {
12143         if (yych <= 0xED)
12144           goto yy849;
12145         if (yych <= 0xEF)
12146           goto yy848;
12147         goto yy850;
12148       } else {
12149         if (yych <= 0xF3)
12150           goto yy851;
12151         if (yych <= 0xF4)
12152           goto yy852;
12153         goto yy836;
12154       }
12155     }
12156   yy844:
12157     ++p;
12158     p = marker;
12159     { return (bufsize_t)(p - start); }
12160   yy846:
12161     yych = *++p;
12162     if (yych <= 0x7F)
12163       goto yy836;
12164     if (yych <= 0xBF)
12165       goto yy842;
12166     goto yy836;
12167   yy847:
12168     yych = *++p;
12169     if (yych <= 0x9F)
12170       goto yy836;
12171     if (yych <= 0xBF)
12172       goto yy846;
12173     goto yy836;
12174   yy848:
12175     yych = *++p;
12176     if (yych <= 0x7F)
12177       goto yy836;
12178     if (yych <= 0xBF)
12179       goto yy846;
12180     goto yy836;
12181   yy849:
12182     yych = *++p;
12183     if (yych <= 0x7F)
12184       goto yy836;
12185     if (yych <= 0x9F)
12186       goto yy846;
12187     goto yy836;
12188   yy850:
12189     yych = *++p;
12190     if (yych <= 0x8F)
12191       goto yy836;
12192     if (yych <= 0xBF)
12193       goto yy848;
12194     goto yy836;
12195   yy851:
12196     yych = *++p;
12197     if (yych <= 0x7F)
12198       goto yy836;
12199     if (yych <= 0xBF)
12200       goto yy848;
12201     goto yy836;
12202   yy852:
12203     yych = *++p;
12204     if (yych <= 0x7F)
12205       goto yy836;
12206     if (yych <= 0x8F)
12207       goto yy848;
12208     goto yy836;
12209   yy853:
12210     yych = *++p;
12211     if (yybm[0 + yych] & 128) {
12212       goto yy853;
12213     }
12214     if (yych <= 0xEC) {
12215       if (yych <= 0xC1) {
12216         if (yych <= 0x00)
12217           goto yy836;
12218         if (yych >= 0x0E)
12219           goto yy836;
12220       } else {
12221         if (yych <= 0xDF)
12222           goto yy857;
12223         if (yych <= 0xE0)
12224           goto yy858;
12225         goto yy859;
12226       }
12227     } else {
12228       if (yych <= 0xF0) {
12229         if (yych <= 0xED)
12230           goto yy860;
12231         if (yych <= 0xEF)
12232           goto yy859;
12233         goto yy861;
12234       } else {
12235         if (yych <= 0xF3)
12236           goto yy862;
12237         if (yych <= 0xF4)
12238           goto yy863;
12239         goto yy836;
12240       }
12241     }
12242   yy855:
12243     ++p;
12244     p = marker;
12245     { return (bufsize_t)(p - start); }
12246   yy857:
12247     yych = *++p;
12248     if (yych <= 0x7F)
12249       goto yy836;
12250     if (yych <= 0xBF)
12251       goto yy853;
12252     goto yy836;
12253   yy858:
12254     yych = *++p;
12255     if (yych <= 0x9F)
12256       goto yy836;
12257     if (yych <= 0xBF)
12258       goto yy857;
12259     goto yy836;
12260   yy859:
12261     yych = *++p;
12262     if (yych <= 0x7F)
12263       goto yy836;
12264     if (yych <= 0xBF)
12265       goto yy857;
12266     goto yy836;
12267   yy860:
12268     yych = *++p;
12269     if (yych <= 0x7F)
12270       goto yy836;
12271     if (yych <= 0x9F)
12272       goto yy857;
12273     goto yy836;
12274   yy861:
12275     yych = *++p;
12276     if (yych <= 0x8F)
12277       goto yy836;
12278     if (yych <= 0xBF)
12279       goto yy859;
12280     goto yy836;
12281   yy862:
12282     yych = *++p;
12283     if (yych <= 0x7F)
12284       goto yy836;
12285     if (yych <= 0xBF)
12286       goto yy859;
12287     goto yy836;
12288   yy863:
12289     yych = *++p;
12290     if (yych <= 0x7F)
12291       goto yy836;
12292     if (yych <= 0x8F)
12293       goto yy859;
12294     goto yy836;
12295   }
12296 }
12297 
12298 // Scan a closing code fence with length at least len.
_scan_close_code_fence(const unsigned char * p)12299 bufsize_t _scan_close_code_fence(const unsigned char *p) {
12300   const unsigned char *marker = NULL;
12301   const unsigned char *start = p;
12302 
12303   {
12304     unsigned char yych;
12305     static const unsigned char yybm[] = {
12306         0, 0, 0, 0, 0, 0, 0, 0, 0,  128, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12307         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   128, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12308         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12309         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12310         0, 0, 0, 0, 0, 0, 0, 0, 32, 0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12311         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
12312         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12313         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12314         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12315         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12316         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
12317         0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0,
12318     };
12319     yych = *p;
12320     if (yych == '`')
12321       goto yy868;
12322     if (yych == '~')
12323       goto yy869;
12324     ++p;
12325   yy867 : { return 0; }
12326   yy868:
12327     yych = *(marker = ++p);
12328     if (yych == '`')
12329       goto yy870;
12330     goto yy867;
12331   yy869:
12332     yych = *(marker = ++p);
12333     if (yych == '~')
12334       goto yy872;
12335     goto yy867;
12336   yy870:
12337     yych = *++p;
12338     if (yybm[0 + yych] & 32) {
12339       goto yy873;
12340     }
12341   yy871:
12342     p = marker;
12343     goto yy867;
12344   yy872:
12345     yych = *++p;
12346     if (yybm[0 + yych] & 64) {
12347       goto yy875;
12348     }
12349     goto yy871;
12350   yy873:
12351     yych = *++p;
12352     if (yybm[0 + yych] & 32) {
12353       goto yy873;
12354     }
12355     if (yych <= '\f') {
12356       if (yych <= 0x08)
12357         goto yy871;
12358       if (yych <= '\t') {
12359         marker = p;
12360         goto yy877;
12361       }
12362       if (yych <= '\n') {
12363         marker = p;
12364         goto yy879;
12365       }
12366       goto yy871;
12367     } else {
12368       if (yych <= '\r') {
12369         marker = p;
12370         goto yy879;
12371       }
12372       if (yych == ' ') {
12373         marker = p;
12374         goto yy877;
12375       }
12376       goto yy871;
12377     }
12378   yy875:
12379     yych = *++p;
12380     if (yybm[0 + yych] & 64) {
12381       goto yy875;
12382     }
12383     if (yych <= '\f') {
12384       if (yych <= 0x08)
12385         goto yy871;
12386       if (yych <= '\t') {
12387         marker = p;
12388         goto yy881;
12389       }
12390       if (yych <= '\n') {
12391         marker = p;
12392         goto yy883;
12393       }
12394       goto yy871;
12395     } else {
12396       if (yych <= '\r') {
12397         marker = p;
12398         goto yy883;
12399       }
12400       if (yych == ' ') {
12401         marker = p;
12402         goto yy881;
12403       }
12404       goto yy871;
12405     }
12406   yy877:
12407     yych = *++p;
12408     if (yybm[0 + yych] & 128) {
12409       goto yy877;
12410     }
12411     if (yych <= 0x08)
12412       goto yy871;
12413     if (yych <= '\n')
12414       goto yy879;
12415     if (yych != '\r')
12416       goto yy871;
12417   yy879:
12418     ++p;
12419     p = marker;
12420     { return (bufsize_t)(p - start); }
12421   yy881:
12422     yych = *++p;
12423     if (yych <= '\f') {
12424       if (yych <= 0x08)
12425         goto yy871;
12426       if (yych <= '\t')
12427         goto yy881;
12428       if (yych >= '\v')
12429         goto yy871;
12430     } else {
12431       if (yych <= '\r')
12432         goto yy883;
12433       if (yych == ' ')
12434         goto yy881;
12435       goto yy871;
12436     }
12437   yy883:
12438     ++p;
12439     p = marker;
12440     { return (bufsize_t)(p - start); }
12441   }
12442 }
12443 
12444 // Scans an entity.
12445 // Returns number of chars matched.
_scan_entity(const unsigned char * p)12446 bufsize_t _scan_entity(const unsigned char *p) {
12447   const unsigned char *marker = NULL;
12448   const unsigned char *start = p;
12449 
12450   {
12451     unsigned char yych;
12452     yych = *p;
12453     if (yych == '&')
12454       goto yy889;
12455     ++p;
12456   yy888 : { return 0; }
12457   yy889:
12458     yych = *(marker = ++p);
12459     if (yych <= '@') {
12460       if (yych != '#')
12461         goto yy888;
12462     } else {
12463       if (yych <= 'Z')
12464         goto yy892;
12465       if (yych <= '`')
12466         goto yy888;
12467       if (yych <= 'z')
12468         goto yy892;
12469       goto yy888;
12470     }
12471     yych = *++p;
12472     if (yych <= 'W') {
12473       if (yych <= '/')
12474         goto yy891;
12475       if (yych <= '9')
12476         goto yy893;
12477     } else {
12478       if (yych <= 'X')
12479         goto yy894;
12480       if (yych == 'x')
12481         goto yy894;
12482     }
12483   yy891:
12484     p = marker;
12485     goto yy888;
12486   yy892:
12487     yych = *++p;
12488     if (yych <= '@') {
12489       if (yych <= '/')
12490         goto yy891;
12491       if (yych <= '9')
12492         goto yy895;
12493       goto yy891;
12494     } else {
12495       if (yych <= 'Z')
12496         goto yy895;
12497       if (yych <= '`')
12498         goto yy891;
12499       if (yych <= 'z')
12500         goto yy895;
12501       goto yy891;
12502     }
12503   yy893:
12504     yych = *++p;
12505     if (yych <= '/')
12506       goto yy891;
12507     if (yych <= '9')
12508       goto yy896;
12509     if (yych == ';')
12510       goto yy897;
12511     goto yy891;
12512   yy894:
12513     yych = *++p;
12514     if (yych <= '@') {
12515       if (yych <= '/')
12516         goto yy891;
12517       if (yych <= '9')
12518         goto yy899;
12519       goto yy891;
12520     } else {
12521       if (yych <= 'F')
12522         goto yy899;
12523       if (yych <= '`')
12524         goto yy891;
12525       if (yych <= 'f')
12526         goto yy899;
12527       goto yy891;
12528     }
12529   yy895:
12530     yych = *++p;
12531     if (yych <= ';') {
12532       if (yych <= '/')
12533         goto yy891;
12534       if (yych <= '9')
12535         goto yy900;
12536       if (yych <= ':')
12537         goto yy891;
12538       goto yy897;
12539     } else {
12540       if (yych <= 'Z') {
12541         if (yych <= '@')
12542           goto yy891;
12543         goto yy900;
12544       } else {
12545         if (yych <= '`')
12546           goto yy891;
12547         if (yych <= 'z')
12548           goto yy900;
12549         goto yy891;
12550       }
12551     }
12552   yy896:
12553     yych = *++p;
12554     if (yych <= '/')
12555       goto yy891;
12556     if (yych <= '9')
12557       goto yy901;
12558     if (yych != ';')
12559       goto yy891;
12560   yy897:
12561     ++p;
12562     { return (bufsize_t)(p - start); }
12563   yy899:
12564     yych = *++p;
12565     if (yych <= ';') {
12566       if (yych <= '/')
12567         goto yy891;
12568       if (yych <= '9')
12569         goto yy902;
12570       if (yych <= ':')
12571         goto yy891;
12572       goto yy897;
12573     } else {
12574       if (yych <= 'F') {
12575         if (yych <= '@')
12576           goto yy891;
12577         goto yy902;
12578       } else {
12579         if (yych <= '`')
12580           goto yy891;
12581         if (yych <= 'f')
12582           goto yy902;
12583         goto yy891;
12584       }
12585     }
12586   yy900:
12587     yych = *++p;
12588     if (yych <= ';') {
12589       if (yych <= '/')
12590         goto yy891;
12591       if (yych <= '9')
12592         goto yy903;
12593       if (yych <= ':')
12594         goto yy891;
12595       goto yy897;
12596     } else {
12597       if (yych <= 'Z') {
12598         if (yych <= '@')
12599           goto yy891;
12600         goto yy903;
12601       } else {
12602         if (yych <= '`')
12603           goto yy891;
12604         if (yych <= 'z')
12605           goto yy903;
12606         goto yy891;
12607       }
12608     }
12609   yy901:
12610     yych = *++p;
12611     if (yych <= '/')
12612       goto yy891;
12613     if (yych <= '9')
12614       goto yy904;
12615     if (yych == ';')
12616       goto yy897;
12617     goto yy891;
12618   yy902:
12619     yych = *++p;
12620     if (yych <= ';') {
12621       if (yych <= '/')
12622         goto yy891;
12623       if (yych <= '9')
12624         goto yy905;
12625       if (yych <= ':')
12626         goto yy891;
12627       goto yy897;
12628     } else {
12629       if (yych <= 'F') {
12630         if (yych <= '@')
12631           goto yy891;
12632         goto yy905;
12633       } else {
12634         if (yych <= '`')
12635           goto yy891;
12636         if (yych <= 'f')
12637           goto yy905;
12638         goto yy891;
12639       }
12640     }
12641   yy903:
12642     yych = *++p;
12643     if (yych <= ';') {
12644       if (yych <= '/')
12645         goto yy891;
12646       if (yych <= '9')
12647         goto yy906;
12648       if (yych <= ':')
12649         goto yy891;
12650       goto yy897;
12651     } else {
12652       if (yych <= 'Z') {
12653         if (yych <= '@')
12654           goto yy891;
12655         goto yy906;
12656       } else {
12657         if (yych <= '`')
12658           goto yy891;
12659         if (yych <= 'z')
12660           goto yy906;
12661         goto yy891;
12662       }
12663     }
12664   yy904:
12665     yych = *++p;
12666     if (yych <= '/')
12667       goto yy891;
12668     if (yych <= '9')
12669       goto yy907;
12670     if (yych == ';')
12671       goto yy897;
12672     goto yy891;
12673   yy905:
12674     yych = *++p;
12675     if (yych <= ';') {
12676       if (yych <= '/')
12677         goto yy891;
12678       if (yych <= '9')
12679         goto yy908;
12680       if (yych <= ':')
12681         goto yy891;
12682       goto yy897;
12683     } else {
12684       if (yych <= 'F') {
12685         if (yych <= '@')
12686           goto yy891;
12687         goto yy908;
12688       } else {
12689         if (yych <= '`')
12690           goto yy891;
12691         if (yych <= 'f')
12692           goto yy908;
12693         goto yy891;
12694       }
12695     }
12696   yy906:
12697     yych = *++p;
12698     if (yych <= ';') {
12699       if (yych <= '/')
12700         goto yy891;
12701       if (yych <= '9')
12702         goto yy909;
12703       if (yych <= ':')
12704         goto yy891;
12705       goto yy897;
12706     } else {
12707       if (yych <= 'Z') {
12708         if (yych <= '@')
12709           goto yy891;
12710         goto yy909;
12711       } else {
12712         if (yych <= '`')
12713           goto yy891;
12714         if (yych <= 'z')
12715           goto yy909;
12716         goto yy891;
12717       }
12718     }
12719   yy907:
12720     yych = *++p;
12721     if (yych <= '/')
12722       goto yy891;
12723     if (yych <= '9')
12724       goto yy910;
12725     if (yych == ';')
12726       goto yy897;
12727     goto yy891;
12728   yy908:
12729     yych = *++p;
12730     if (yych <= ';') {
12731       if (yych <= '/')
12732         goto yy891;
12733       if (yych <= '9')
12734         goto yy911;
12735       if (yych <= ':')
12736         goto yy891;
12737       goto yy897;
12738     } else {
12739       if (yych <= 'F') {
12740         if (yych <= '@')
12741           goto yy891;
12742         goto yy911;
12743       } else {
12744         if (yych <= '`')
12745           goto yy891;
12746         if (yych <= 'f')
12747           goto yy911;
12748         goto yy891;
12749       }
12750     }
12751   yy909:
12752     yych = *++p;
12753     if (yych <= ';') {
12754       if (yych <= '/')
12755         goto yy891;
12756       if (yych <= '9')
12757         goto yy912;
12758       if (yych <= ':')
12759         goto yy891;
12760       goto yy897;
12761     } else {
12762       if (yych <= 'Z') {
12763         if (yych <= '@')
12764           goto yy891;
12765         goto yy912;
12766       } else {
12767         if (yych <= '`')
12768           goto yy891;
12769         if (yych <= 'z')
12770           goto yy912;
12771         goto yy891;
12772       }
12773     }
12774   yy910:
12775     yych = *++p;
12776     if (yych <= '/')
12777       goto yy891;
12778     if (yych <= '9')
12779       goto yy913;
12780     if (yych == ';')
12781       goto yy897;
12782     goto yy891;
12783   yy911:
12784     yych = *++p;
12785     if (yych <= ';') {
12786       if (yych <= '/')
12787         goto yy891;
12788       if (yych <= '9')
12789         goto yy913;
12790       if (yych <= ':')
12791         goto yy891;
12792       goto yy897;
12793     } else {
12794       if (yych <= 'F') {
12795         if (yych <= '@')
12796           goto yy891;
12797         goto yy913;
12798       } else {
12799         if (yych <= '`')
12800           goto yy891;
12801         if (yych <= 'f')
12802           goto yy913;
12803         goto yy891;
12804       }
12805     }
12806   yy912:
12807     yych = *++p;
12808     if (yych <= ';') {
12809       if (yych <= '/')
12810         goto yy891;
12811       if (yych <= '9')
12812         goto yy914;
12813       if (yych <= ':')
12814         goto yy891;
12815       goto yy897;
12816     } else {
12817       if (yych <= 'Z') {
12818         if (yych <= '@')
12819           goto yy891;
12820         goto yy914;
12821       } else {
12822         if (yych <= '`')
12823           goto yy891;
12824         if (yych <= 'z')
12825           goto yy914;
12826         goto yy891;
12827       }
12828     }
12829   yy913:
12830     yych = *++p;
12831     if (yych == ';')
12832       goto yy897;
12833     goto yy891;
12834   yy914:
12835     yych = *++p;
12836     if (yych <= ';') {
12837       if (yych <= '/')
12838         goto yy891;
12839       if (yych <= '9')
12840         goto yy915;
12841       if (yych <= ':')
12842         goto yy891;
12843       goto yy897;
12844     } else {
12845       if (yych <= 'Z') {
12846         if (yych <= '@')
12847           goto yy891;
12848       } else {
12849         if (yych <= '`')
12850           goto yy891;
12851         if (yych >= '{')
12852           goto yy891;
12853       }
12854     }
12855   yy915:
12856     yych = *++p;
12857     if (yych <= ';') {
12858       if (yych <= '/')
12859         goto yy891;
12860       if (yych <= '9')
12861         goto yy916;
12862       if (yych <= ':')
12863         goto yy891;
12864       goto yy897;
12865     } else {
12866       if (yych <= 'Z') {
12867         if (yych <= '@')
12868           goto yy891;
12869       } else {
12870         if (yych <= '`')
12871           goto yy891;
12872         if (yych >= '{')
12873           goto yy891;
12874       }
12875     }
12876   yy916:
12877     yych = *++p;
12878     if (yych <= ';') {
12879       if (yych <= '/')
12880         goto yy891;
12881       if (yych <= '9')
12882         goto yy917;
12883       if (yych <= ':')
12884         goto yy891;
12885       goto yy897;
12886     } else {
12887       if (yych <= 'Z') {
12888         if (yych <= '@')
12889           goto yy891;
12890       } else {
12891         if (yych <= '`')
12892           goto yy891;
12893         if (yych >= '{')
12894           goto yy891;
12895       }
12896     }
12897   yy917:
12898     yych = *++p;
12899     if (yych <= ';') {
12900       if (yych <= '/')
12901         goto yy891;
12902       if (yych <= '9')
12903         goto yy918;
12904       if (yych <= ':')
12905         goto yy891;
12906       goto yy897;
12907     } else {
12908       if (yych <= 'Z') {
12909         if (yych <= '@')
12910           goto yy891;
12911       } else {
12912         if (yych <= '`')
12913           goto yy891;
12914         if (yych >= '{')
12915           goto yy891;
12916       }
12917     }
12918   yy918:
12919     yych = *++p;
12920     if (yych <= ';') {
12921       if (yych <= '/')
12922         goto yy891;
12923       if (yych <= '9')
12924         goto yy919;
12925       if (yych <= ':')
12926         goto yy891;
12927       goto yy897;
12928     } else {
12929       if (yych <= 'Z') {
12930         if (yych <= '@')
12931           goto yy891;
12932       } else {
12933         if (yych <= '`')
12934           goto yy891;
12935         if (yych >= '{')
12936           goto yy891;
12937       }
12938     }
12939   yy919:
12940     yych = *++p;
12941     if (yych <= ';') {
12942       if (yych <= '/')
12943         goto yy891;
12944       if (yych <= '9')
12945         goto yy920;
12946       if (yych <= ':')
12947         goto yy891;
12948       goto yy897;
12949     } else {
12950       if (yych <= 'Z') {
12951         if (yych <= '@')
12952           goto yy891;
12953       } else {
12954         if (yych <= '`')
12955           goto yy891;
12956         if (yych >= '{')
12957           goto yy891;
12958       }
12959     }
12960   yy920:
12961     yych = *++p;
12962     if (yych <= ';') {
12963       if (yych <= '/')
12964         goto yy891;
12965       if (yych <= '9')
12966         goto yy921;
12967       if (yych <= ':')
12968         goto yy891;
12969       goto yy897;
12970     } else {
12971       if (yych <= 'Z') {
12972         if (yych <= '@')
12973           goto yy891;
12974       } else {
12975         if (yych <= '`')
12976           goto yy891;
12977         if (yych >= '{')
12978           goto yy891;
12979       }
12980     }
12981   yy921:
12982     yych = *++p;
12983     if (yych <= ';') {
12984       if (yych <= '/')
12985         goto yy891;
12986       if (yych <= '9')
12987         goto yy922;
12988       if (yych <= ':')
12989         goto yy891;
12990       goto yy897;
12991     } else {
12992       if (yych <= 'Z') {
12993         if (yych <= '@')
12994           goto yy891;
12995       } else {
12996         if (yych <= '`')
12997           goto yy891;
12998         if (yych >= '{')
12999           goto yy891;
13000       }
13001     }
13002   yy922:
13003     yych = *++p;
13004     if (yych <= ';') {
13005       if (yych <= '/')
13006         goto yy891;
13007       if (yych <= '9')
13008         goto yy923;
13009       if (yych <= ':')
13010         goto yy891;
13011       goto yy897;
13012     } else {
13013       if (yych <= 'Z') {
13014         if (yych <= '@')
13015           goto yy891;
13016       } else {
13017         if (yych <= '`')
13018           goto yy891;
13019         if (yych >= '{')
13020           goto yy891;
13021       }
13022     }
13023   yy923:
13024     yych = *++p;
13025     if (yych <= ';') {
13026       if (yych <= '/')
13027         goto yy891;
13028       if (yych <= '9')
13029         goto yy924;
13030       if (yych <= ':')
13031         goto yy891;
13032       goto yy897;
13033     } else {
13034       if (yych <= 'Z') {
13035         if (yych <= '@')
13036           goto yy891;
13037       } else {
13038         if (yych <= '`')
13039           goto yy891;
13040         if (yych >= '{')
13041           goto yy891;
13042       }
13043     }
13044   yy924:
13045     yych = *++p;
13046     if (yych <= ';') {
13047       if (yych <= '/')
13048         goto yy891;
13049       if (yych <= '9')
13050         goto yy925;
13051       if (yych <= ':')
13052         goto yy891;
13053       goto yy897;
13054     } else {
13055       if (yych <= 'Z') {
13056         if (yych <= '@')
13057           goto yy891;
13058       } else {
13059         if (yych <= '`')
13060           goto yy891;
13061         if (yych >= '{')
13062           goto yy891;
13063       }
13064     }
13065   yy925:
13066     yych = *++p;
13067     if (yych <= ';') {
13068       if (yych <= '/')
13069         goto yy891;
13070       if (yych <= '9')
13071         goto yy926;
13072       if (yych <= ':')
13073         goto yy891;
13074       goto yy897;
13075     } else {
13076       if (yych <= 'Z') {
13077         if (yych <= '@')
13078           goto yy891;
13079       } else {
13080         if (yych <= '`')
13081           goto yy891;
13082         if (yych >= '{')
13083           goto yy891;
13084       }
13085     }
13086   yy926:
13087     yych = *++p;
13088     if (yych <= ';') {
13089       if (yych <= '/')
13090         goto yy891;
13091       if (yych <= '9')
13092         goto yy927;
13093       if (yych <= ':')
13094         goto yy891;
13095       goto yy897;
13096     } else {
13097       if (yych <= 'Z') {
13098         if (yych <= '@')
13099           goto yy891;
13100       } else {
13101         if (yych <= '`')
13102           goto yy891;
13103         if (yych >= '{')
13104           goto yy891;
13105       }
13106     }
13107   yy927:
13108     yych = *++p;
13109     if (yych <= ';') {
13110       if (yych <= '/')
13111         goto yy891;
13112       if (yych <= '9')
13113         goto yy928;
13114       if (yych <= ':')
13115         goto yy891;
13116       goto yy897;
13117     } else {
13118       if (yych <= 'Z') {
13119         if (yych <= '@')
13120           goto yy891;
13121       } else {
13122         if (yych <= '`')
13123           goto yy891;
13124         if (yych >= '{')
13125           goto yy891;
13126       }
13127     }
13128   yy928:
13129     yych = *++p;
13130     if (yych <= ';') {
13131       if (yych <= '/')
13132         goto yy891;
13133       if (yych <= '9')
13134         goto yy929;
13135       if (yych <= ':')
13136         goto yy891;
13137       goto yy897;
13138     } else {
13139       if (yych <= 'Z') {
13140         if (yych <= '@')
13141           goto yy891;
13142       } else {
13143         if (yych <= '`')
13144           goto yy891;
13145         if (yych >= '{')
13146           goto yy891;
13147       }
13148     }
13149   yy929:
13150     yych = *++p;
13151     if (yych <= ';') {
13152       if (yych <= '/')
13153         goto yy891;
13154       if (yych <= '9')
13155         goto yy930;
13156       if (yych <= ':')
13157         goto yy891;
13158       goto yy897;
13159     } else {
13160       if (yych <= 'Z') {
13161         if (yych <= '@')
13162           goto yy891;
13163       } else {
13164         if (yych <= '`')
13165           goto yy891;
13166         if (yych >= '{')
13167           goto yy891;
13168       }
13169     }
13170   yy930:
13171     yych = *++p;
13172     if (yych <= ';') {
13173       if (yych <= '/')
13174         goto yy891;
13175       if (yych <= '9')
13176         goto yy931;
13177       if (yych <= ':')
13178         goto yy891;
13179       goto yy897;
13180     } else {
13181       if (yych <= 'Z') {
13182         if (yych <= '@')
13183           goto yy891;
13184       } else {
13185         if (yych <= '`')
13186           goto yy891;
13187         if (yych >= '{')
13188           goto yy891;
13189       }
13190     }
13191   yy931:
13192     yych = *++p;
13193     if (yych <= ';') {
13194       if (yych <= '/')
13195         goto yy891;
13196       if (yych <= '9')
13197         goto yy932;
13198       if (yych <= ':')
13199         goto yy891;
13200       goto yy897;
13201     } else {
13202       if (yych <= 'Z') {
13203         if (yych <= '@')
13204           goto yy891;
13205       } else {
13206         if (yych <= '`')
13207           goto yy891;
13208         if (yych >= '{')
13209           goto yy891;
13210       }
13211     }
13212   yy932:
13213     yych = *++p;
13214     if (yych <= ';') {
13215       if (yych <= '/')
13216         goto yy891;
13217       if (yych <= '9')
13218         goto yy933;
13219       if (yych <= ':')
13220         goto yy891;
13221       goto yy897;
13222     } else {
13223       if (yych <= 'Z') {
13224         if (yych <= '@')
13225           goto yy891;
13226       } else {
13227         if (yych <= '`')
13228           goto yy891;
13229         if (yych >= '{')
13230           goto yy891;
13231       }
13232     }
13233   yy933:
13234     yych = *++p;
13235     if (yych <= ';') {
13236       if (yych <= '/')
13237         goto yy891;
13238       if (yych <= '9')
13239         goto yy934;
13240       if (yych <= ':')
13241         goto yy891;
13242       goto yy897;
13243     } else {
13244       if (yych <= 'Z') {
13245         if (yych <= '@')
13246           goto yy891;
13247       } else {
13248         if (yych <= '`')
13249           goto yy891;
13250         if (yych >= '{')
13251           goto yy891;
13252       }
13253     }
13254   yy934:
13255     yych = *++p;
13256     if (yych <= ';') {
13257       if (yych <= '/')
13258         goto yy891;
13259       if (yych <= '9')
13260         goto yy935;
13261       if (yych <= ':')
13262         goto yy891;
13263       goto yy897;
13264     } else {
13265       if (yych <= 'Z') {
13266         if (yych <= '@')
13267           goto yy891;
13268       } else {
13269         if (yych <= '`')
13270           goto yy891;
13271         if (yych >= '{')
13272           goto yy891;
13273       }
13274     }
13275   yy935:
13276     yych = *++p;
13277     if (yych <= ';') {
13278       if (yych <= '/')
13279         goto yy891;
13280       if (yych <= '9')
13281         goto yy936;
13282       if (yych <= ':')
13283         goto yy891;
13284       goto yy897;
13285     } else {
13286       if (yych <= 'Z') {
13287         if (yych <= '@')
13288           goto yy891;
13289       } else {
13290         if (yych <= '`')
13291           goto yy891;
13292         if (yych >= '{')
13293           goto yy891;
13294       }
13295     }
13296   yy936:
13297     yych = *++p;
13298     if (yych <= ';') {
13299       if (yych <= '/')
13300         goto yy891;
13301       if (yych <= '9')
13302         goto yy937;
13303       if (yych <= ':')
13304         goto yy891;
13305       goto yy897;
13306     } else {
13307       if (yych <= 'Z') {
13308         if (yych <= '@')
13309           goto yy891;
13310       } else {
13311         if (yych <= '`')
13312           goto yy891;
13313         if (yych >= '{')
13314           goto yy891;
13315       }
13316     }
13317   yy937:
13318     yych = *++p;
13319     if (yych <= ';') {
13320       if (yych <= '/')
13321         goto yy891;
13322       if (yych <= '9')
13323         goto yy913;
13324       if (yych <= ':')
13325         goto yy891;
13326       goto yy897;
13327     } else {
13328       if (yych <= 'Z') {
13329         if (yych <= '@')
13330           goto yy891;
13331         goto yy913;
13332       } else {
13333         if (yych <= '`')
13334           goto yy891;
13335         if (yych <= 'z')
13336           goto yy913;
13337         goto yy891;
13338       }
13339     }
13340   }
13341 }
13342 
13343 // Returns positive value if a URL begins in a way that is potentially
13344 // dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.
_scan_dangerous_url(const unsigned char * p)13345 bufsize_t _scan_dangerous_url(const unsigned char *p) {
13346   const unsigned char *marker = NULL;
13347   const unsigned char *start = p;
13348 
13349   {
13350     unsigned char yych;
13351     unsigned int yyaccept = 0;
13352     yych = *p;
13353     if (yych <= 'V') {
13354       if (yych <= 'F') {
13355         if (yych == 'D')
13356           goto yy942;
13357         if (yych >= 'F')
13358           goto yy943;
13359       } else {
13360         if (yych == 'J')
13361           goto yy944;
13362         if (yych >= 'V')
13363           goto yy945;
13364       }
13365     } else {
13366       if (yych <= 'f') {
13367         if (yych == 'd')
13368           goto yy942;
13369         if (yych >= 'f')
13370           goto yy943;
13371       } else {
13372         if (yych <= 'j') {
13373           if (yych >= 'j')
13374             goto yy944;
13375         } else {
13376           if (yych == 'v')
13377             goto yy945;
13378         }
13379       }
13380     }
13381     ++p;
13382   yy941 : { return 0; }
13383   yy942:
13384     yyaccept = 0;
13385     yych = *(marker = ++p);
13386     if (yych == 'A')
13387       goto yy946;
13388     if (yych == 'a')
13389       goto yy946;
13390     goto yy941;
13391   yy943:
13392     yyaccept = 0;
13393     yych = *(marker = ++p);
13394     if (yych == 'I')
13395       goto yy948;
13396     if (yych == 'i')
13397       goto yy948;
13398     goto yy941;
13399   yy944:
13400     yyaccept = 0;
13401     yych = *(marker = ++p);
13402     if (yych == 'A')
13403       goto yy949;
13404     if (yych == 'a')
13405       goto yy949;
13406     goto yy941;
13407   yy945:
13408     yyaccept = 0;
13409     yych = *(marker = ++p);
13410     if (yych == 'B')
13411       goto yy950;
13412     if (yych == 'b')
13413       goto yy950;
13414     goto yy941;
13415   yy946:
13416     yych = *++p;
13417     if (yych == 'T')
13418       goto yy951;
13419     if (yych == 't')
13420       goto yy951;
13421   yy947:
13422     p = marker;
13423     if (yyaccept == 0) {
13424       goto yy941;
13425     } else {
13426       goto yy959;
13427     }
13428   yy948:
13429     yych = *++p;
13430     if (yych == 'L')
13431       goto yy952;
13432     if (yych == 'l')
13433       goto yy952;
13434     goto yy947;
13435   yy949:
13436     yych = *++p;
13437     if (yych == 'V')
13438       goto yy953;
13439     if (yych == 'v')
13440       goto yy953;
13441     goto yy947;
13442   yy950:
13443     yych = *++p;
13444     if (yych == 'S')
13445       goto yy954;
13446     if (yych == 's')
13447       goto yy954;
13448     goto yy947;
13449   yy951:
13450     yych = *++p;
13451     if (yych == 'A')
13452       goto yy955;
13453     if (yych == 'a')
13454       goto yy955;
13455     goto yy947;
13456   yy952:
13457     yych = *++p;
13458     if (yych == 'E')
13459       goto yy956;
13460     if (yych == 'e')
13461       goto yy956;
13462     goto yy947;
13463   yy953:
13464     yych = *++p;
13465     if (yych == 'A')
13466       goto yy950;
13467     if (yych == 'a')
13468       goto yy950;
13469     goto yy947;
13470   yy954:
13471     yych = *++p;
13472     if (yych == 'C')
13473       goto yy957;
13474     if (yych == 'c')
13475       goto yy957;
13476     goto yy947;
13477   yy955:
13478     yych = *++p;
13479     if (yych == ':')
13480       goto yy958;
13481     goto yy947;
13482   yy956:
13483     yych = *++p;
13484     if (yych == ':')
13485       goto yy960;
13486     goto yy947;
13487   yy957:
13488     yych = *++p;
13489     if (yych == 'R')
13490       goto yy961;
13491     if (yych == 'r')
13492       goto yy961;
13493     goto yy947;
13494   yy958:
13495     yyaccept = 1;
13496     yych = *(marker = ++p);
13497     if (yych == 'I')
13498       goto yy962;
13499     if (yych == 'i')
13500       goto yy962;
13501   yy959 : { return (bufsize_t)(p - start); }
13502   yy960:
13503     ++p;
13504     goto yy959;
13505   yy961:
13506     yych = *++p;
13507     if (yych == 'I')
13508       goto yy963;
13509     if (yych == 'i')
13510       goto yy963;
13511     goto yy947;
13512   yy962:
13513     yych = *++p;
13514     if (yych == 'M')
13515       goto yy964;
13516     if (yych == 'm')
13517       goto yy964;
13518     goto yy947;
13519   yy963:
13520     yych = *++p;
13521     if (yych == 'P')
13522       goto yy965;
13523     if (yych == 'p')
13524       goto yy965;
13525     goto yy947;
13526   yy964:
13527     yych = *++p;
13528     if (yych == 'A')
13529       goto yy966;
13530     if (yych == 'a')
13531       goto yy966;
13532     goto yy947;
13533   yy965:
13534     yych = *++p;
13535     if (yych == 'T')
13536       goto yy956;
13537     if (yych == 't')
13538       goto yy956;
13539     goto yy947;
13540   yy966:
13541     yych = *++p;
13542     if (yych == 'G')
13543       goto yy967;
13544     if (yych != 'g')
13545       goto yy947;
13546   yy967:
13547     yych = *++p;
13548     if (yych == 'E')
13549       goto yy968;
13550     if (yych != 'e')
13551       goto yy947;
13552   yy968:
13553     yych = *++p;
13554     if (yych != '/')
13555       goto yy947;
13556     yych = *++p;
13557     if (yych <= 'W') {
13558       if (yych <= 'J') {
13559         if (yych == 'G')
13560           goto yy970;
13561         if (yych <= 'I')
13562           goto yy947;
13563         goto yy971;
13564       } else {
13565         if (yych == 'P')
13566           goto yy972;
13567         if (yych <= 'V')
13568           goto yy947;
13569         goto yy973;
13570       }
13571     } else {
13572       if (yych <= 'j') {
13573         if (yych == 'g')
13574           goto yy970;
13575         if (yych <= 'i')
13576           goto yy947;
13577         goto yy971;
13578       } else {
13579         if (yych <= 'p') {
13580           if (yych <= 'o')
13581             goto yy947;
13582           goto yy972;
13583         } else {
13584           if (yych == 'w')
13585             goto yy973;
13586           goto yy947;
13587         }
13588       }
13589     }
13590   yy970:
13591     yych = *++p;
13592     if (yych == 'I')
13593       goto yy974;
13594     if (yych == 'i')
13595       goto yy974;
13596     goto yy947;
13597   yy971:
13598     yych = *++p;
13599     if (yych == 'P')
13600       goto yy975;
13601     if (yych == 'p')
13602       goto yy975;
13603     goto yy947;
13604   yy972:
13605     yych = *++p;
13606     if (yych == 'N')
13607       goto yy976;
13608     if (yych == 'n')
13609       goto yy976;
13610     goto yy947;
13611   yy973:
13612     yych = *++p;
13613     if (yych == 'E')
13614       goto yy977;
13615     if (yych == 'e')
13616       goto yy977;
13617     goto yy947;
13618   yy974:
13619     yych = *++p;
13620     if (yych == 'F')
13621       goto yy978;
13622     if (yych == 'f')
13623       goto yy978;
13624     goto yy947;
13625   yy975:
13626     yych = *++p;
13627     if (yych == 'E')
13628       goto yy976;
13629     if (yych != 'e')
13630       goto yy947;
13631   yy976:
13632     yych = *++p;
13633     if (yych == 'G')
13634       goto yy978;
13635     if (yych == 'g')
13636       goto yy978;
13637     goto yy947;
13638   yy977:
13639     yych = *++p;
13640     if (yych == 'B')
13641       goto yy980;
13642     if (yych == 'b')
13643       goto yy980;
13644     goto yy947;
13645   yy978:
13646     ++p;
13647     { return 0; }
13648   yy980:
13649     yych = *++p;
13650     if (yych == 'P')
13651       goto yy978;
13652     if (yych == 'p')
13653       goto yy978;
13654     goto yy947;
13655   }
13656 }
13657