cmark

My personal build of CMark ✏️

Commit
06e3af57a1ed7b07560974877b5280504eaefb63
Parent
33bf2cfdf6928e6e6c53ae0daa13a795bb811fa3
Author
John MacFarlane <jgm@berkeley.edu>
Date

Treat textarea like script, style, pre (type 1 HTML block)...

in accordance with spec change.

Diffstat

3 files changed, 3668 insertions, 3556 deletions

Status File Name N° Changes Insertions Deletions
Modified src/blocks.c 2 1 1
Modified src/scanners.c 7218 3665 3553
Modified src/scanners.re 4 2 2
diff --git a/src/blocks.c b/src/blocks.c
@@ -1167,7 +1167,7 @@ static void add_text_to_container(cmark_parser *parser, cmark_node *container,
       int matches_end_condition;
       switch (container->as.html_block_type) {
       case 1:
-        // </script>, </style>, </pre>
+        // </script>, </style>, </textarea>, </pre>
         matches_end_condition =
             scan_html_block_end_1(input, parser->first_nonspace);
         break;
diff --git a/src/scanners.c b/src/scanners.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 */
+/* Generated by re2c 1.3 */
 #include <stdlib.h>
 #include "chunk.h"
 #include "scanners.h"
@@ -738,8 +738,8 @@ bufsize_t _scan_scheme(const unsigned char *p) {
           goto yy6;
       }
     }
-    ++p;
-    if ((yych = *p) == ':')
+    yych = *++p;
+    if (yych == ':')
       goto yy8;
     goto yy6;
   }
@@ -864,8 +864,7 @@ bufsize_t _scan_autolink_uri(const unsigned char *p) {
       }
     }
   yy47:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
       goto yy47;
     }
@@ -929,56 +928,49 @@ bufsize_t _scan_autolink_uri(const unsigned char *p) {
     ++p;
     { return (bufsize_t)(p - start); }
   yy52:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy45;
     if (yych <= 0xBF)
       goto yy47;
     goto yy45;
   yy53:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy45;
     if (yych <= 0xBF)
       goto yy52;
     goto yy45;
   yy54:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy45;
     if (yych <= 0xBF)
       goto yy52;
     goto yy45;
   yy55:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy45;
     if (yych <= 0x9F)
       goto yy52;
     goto yy45;
   yy56:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy45;
     if (yych <= 0xBF)
       goto yy54;
     goto yy45;
   yy57:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy45;
     if (yych <= 0xBF)
       goto yy54;
     goto yy45;
   yy58:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy45;
     if (yych <= 0x8F)
@@ -1579,8 +1571,8 @@ bufsize_t _scan_autolink_uri(const unsigned char *p) {
           goto yy45;
       }
     }
-    ++p;
-    if ((yych = *p) == ':')
+    yych = *++p;
+    if (yych == ':')
       goto yy47;
     goto yy45;
   }
@@ -1682,8 +1674,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy92:
-    ++p;
-    yych = *p;
+    yych = *++p;
   yy93:
     if (yybm[0 + yych] & 128) {
       goto yy92;
@@ -1696,8 +1687,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
     p = marker;
     goto yy90;
   yy95:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
         goto yy94;
@@ -1712,8 +1702,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
         goto yy94;
     }
   yy96:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -1742,8 +1731,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
         goto yy94;
       }
     }
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy101;
@@ -1764,8 +1752,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy98:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -1799,8 +1786,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
     ++p;
     { return (bufsize_t)(p - start); }
   yy101:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy103;
@@ -1821,8 +1807,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy102:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -1852,8 +1837,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy103:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy105;
@@ -1874,8 +1858,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy104:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -1905,8 +1888,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy105:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy107;
@@ -1927,8 +1909,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy106:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -1958,8 +1939,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy107:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy109;
@@ -1980,8 +1960,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy108:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2011,8 +1990,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy109:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy111;
@@ -2033,8 +2011,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy110:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2064,8 +2041,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy111:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy113;
@@ -2086,8 +2062,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy112:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2117,8 +2092,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy113:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy115;
@@ -2139,8 +2113,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy114:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2170,8 +2143,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy115:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy117;
@@ -2192,8 +2164,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy116:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2223,8 +2194,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy117:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy119;
@@ -2245,8 +2215,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy118:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2276,8 +2245,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy119:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy121;
@@ -2298,8 +2266,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy120:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2329,8 +2296,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy121:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy123;
@@ -2351,8 +2317,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy122:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2382,8 +2347,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy123:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy125;
@@ -2404,8 +2368,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy124:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2435,8 +2398,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy125:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy127;
@@ -2457,8 +2419,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy126:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2488,8 +2449,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy127:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy129;
@@ -2510,8 +2470,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy128:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2541,8 +2500,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy129:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy131;
@@ -2563,8 +2521,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy130:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2594,8 +2551,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy131:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy133;
@@ -2616,8 +2572,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy132:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2647,8 +2602,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy133:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy135;
@@ -2669,8 +2623,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy134:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2700,8 +2653,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy135:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy137;
@@ -2722,8 +2674,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy136:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2753,8 +2704,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy137:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy139;
@@ -2775,8 +2725,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy138:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2806,8 +2755,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy139:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy141;
@@ -2828,8 +2776,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy140:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2859,8 +2806,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy141:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy143;
@@ -2881,8 +2827,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy142:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2912,8 +2857,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy143:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy145;
@@ -2934,8 +2878,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy144:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -2965,8 +2908,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy145:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy147;
@@ -2987,8 +2929,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy146:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3018,8 +2959,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy147:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy149;
@@ -3040,8 +2980,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy148:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3071,8 +3010,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy149:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy151;
@@ -3093,8 +3031,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy150:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3124,8 +3061,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy151:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy153;
@@ -3146,8 +3082,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy152:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3177,8 +3112,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy153:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy155;
@@ -3199,8 +3133,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy154:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3230,8 +3163,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy155:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy157;
@@ -3252,8 +3184,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy156:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3283,8 +3214,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy157:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy159;
@@ -3305,8 +3235,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy158:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3336,8 +3265,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy159:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy161;
@@ -3358,8 +3286,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy160:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3389,8 +3316,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy161:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy163;
@@ -3411,8 +3337,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy162:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3442,8 +3367,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy163:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy165;
@@ -3464,8 +3388,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy164:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3495,8 +3418,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy165:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy167;
@@ -3517,8 +3439,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy166:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3548,8 +3469,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy167:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy169;
@@ -3570,8 +3490,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy168:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3601,8 +3520,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy169:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy171;
@@ -3623,8 +3541,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy170:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3654,8 +3571,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy171:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy173;
@@ -3676,8 +3592,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy172:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3707,8 +3622,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy173:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy175;
@@ -3729,8 +3643,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy174:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3760,8 +3673,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy175:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy177;
@@ -3782,8 +3694,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy176:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3813,8 +3724,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy177:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy179;
@@ -3835,8 +3745,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy178:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3866,8 +3775,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy179:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy181;
@@ -3888,8 +3796,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy180:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3919,8 +3826,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy181:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy183;
@@ -3941,8 +3847,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy182:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -3972,8 +3877,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy183:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy185;
@@ -3994,8 +3898,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy184:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4025,8 +3928,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy185:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy187;
@@ -4047,8 +3949,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy186:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4078,8 +3979,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy187:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy189;
@@ -4100,8 +4000,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy188:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4131,8 +4030,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy189:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy191;
@@ -4153,8 +4051,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy190:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4184,8 +4081,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy191:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy193;
@@ -4206,8 +4102,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy192:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4237,8 +4132,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy193:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy195;
@@ -4259,8 +4153,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy194:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4290,8 +4183,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy195:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy197;
@@ -4312,8 +4204,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy196:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4343,8 +4234,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy197:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy199;
@@ -4365,8 +4255,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy198:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4396,8 +4285,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy199:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy201;
@@ -4418,8 +4306,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy200:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4449,8 +4336,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy201:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy203;
@@ -4471,8 +4357,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy202:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4502,8 +4387,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy203:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy205;
@@ -4524,8 +4408,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy204:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4555,8 +4438,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy205:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy207;
@@ -4577,8 +4459,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy206:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4608,8 +4489,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy207:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy209;
@@ -4630,8 +4510,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy208:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4661,8 +4540,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy209:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy211;
@@ -4683,8 +4561,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy210:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4714,8 +4591,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy211:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy213;
@@ -4736,8 +4612,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy212:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4767,8 +4642,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy213:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy215;
@@ -4789,8 +4663,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy214:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4820,8 +4693,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy215:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy217;
@@ -4842,8 +4714,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy216:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4873,8 +4744,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy217:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
         goto yy219;
@@ -4895,8 +4765,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy218:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
@@ -4926,8 +4795,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy219:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
         goto yy94;
@@ -4944,8 +4812,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       goto yy94;
     }
   yy220:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= '-')
@@ -4971,8 +4838,7 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       }
     }
   yy221:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych == '.')
       goto yy95;
     if (yych == '>')
@@ -5565,33 +5431,34 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
     goto yy225;
   yy229:
     yych = *(marker = ++p);
-    if (yybm[0 + yych] & 1) {
-      goto yy247;
-    }
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych == '-')
-          goto yy249;
+    if (yych <= '.') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy225;
+        if (yych <= '\r')
+          goto yy250;
         goto yy225;
       } else {
-        if (yych <= '/')
-          goto yy251;
-        if (yych <= '9')
-          goto yy249;
+        if (yych <= ' ')
+          goto yy250;
+        if (yych == '-')
+          goto yy250;
         goto yy225;
       }
     } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy252;
-        if (yych <= '@')
-          goto yy225;
-        goto yy249;
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy250;
+        if (yych == '>')
+          goto yy250;
+        goto yy225;
       } else {
+        if (yych <= 'Z')
+          goto yy250;
         if (yych <= '`')
           goto yy225;
         if (yych <= 'z')
-          goto yy249;
+          goto yy250;
         goto yy225;
       }
     }
@@ -5603,8 +5470,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
     p = marker;
     goto yy225;
   yy232:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[256 + yych] & 32) {
       goto yy232;
     }
@@ -5623,8 +5489,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy257;
     goto yy231;
   yy235:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[256 + yych] & 64) {
       goto yy235;
     }
@@ -5642,8 +5507,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy231;
     }
   yy237:
-    ++p;
-    yych = *p;
+    yych = *++p;
   yy238:
     if (yybm[256 + yych] & 128) {
       goto yy237;
@@ -5676,8 +5540,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
         goto yy231;
       }
     }
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0xE0) {
       if (yych <= '>') {
         if (yych <= 0x00)
@@ -5709,64 +5572,56 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy240:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy237;
     goto yy231;
   yy241:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy240;
     goto yy231;
   yy242:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy240;
     goto yy231;
   yy243:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy240;
     goto yy231;
   yy244:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy242;
     goto yy231;
   yy245:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy242;
     goto yy231;
   yy246:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
       goto yy242;
     goto yy231;
   yy247:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 1) {
       goto yy247;
     }
@@ -5798,8 +5653,8 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy249:
-    ++p;
-    yych = *p;
+    yych = *++p;
+  yy250:
     if (yybm[0 + yych] & 1) {
       goto yy247;
     }
@@ -5845,8 +5700,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy231;
     goto yy263;
   yy255:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 2) {
       goto yy255;
     }
@@ -5887,8 +5741,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy279;
     goto yy231;
   yy258:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x1F) {
       if (yych <= 0x08)
         goto yy231;
@@ -5903,8 +5756,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy231;
     }
   yy260:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 4) {
       goto yy260;
     }
@@ -5932,8 +5784,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy262:
-    ++p;
-    yych = *p;
+    yych = *++p;
   yy263:
     if (yybm[0 + yych] & 8) {
       goto yy262;
@@ -5975,112 +5826,98 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy231;
     goto yy263;
   yy265:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy262;
     goto yy231;
   yy266:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy265;
     goto yy231;
   yy267:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy265;
     goto yy231;
   yy268:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy265;
     goto yy231;
   yy269:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy267;
     goto yy231;
   yy270:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy267;
     goto yy231;
   yy271:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
       goto yy267;
     goto yy231;
   yy272:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy255;
     goto yy231;
   yy273:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy272;
     goto yy231;
   yy274:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy272;
     goto yy231;
   yy275:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy272;
     goto yy231;
   yy276:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy274;
     goto yy231;
   yy277:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy274;
     goto yy231;
   yy278:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
@@ -6094,8 +5931,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy285;
     goto yy231;
   yy280:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= '<') {
       if (yych <= ' ') {
         if (yych <= 0x08)
@@ -6140,8 +5976,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy282:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 16) {
       goto yy286;
     }
@@ -6177,8 +6012,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy284:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 8) {
       goto yy262;
     }
@@ -6219,8 +6053,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy299;
     goto yy231;
   yy286:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 16) {
       goto yy286;
     }
@@ -6256,8 +6089,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy288:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 32) {
       goto yy288;
     }
@@ -6291,8 +6123,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy290:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
       goto yy290;
     }
@@ -6326,56 +6157,49 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy292:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy286;
     goto yy231;
   yy293:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy292;
     goto yy231;
   yy294:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy292;
     goto yy231;
   yy295:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy292;
     goto yy231;
   yy296:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy294;
     goto yy231;
   yy297:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy294;
     goto yy231;
   yy298:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
@@ -6389,8 +6213,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy315;
     goto yy231;
   yy300:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 1) {
       goto yy247;
     }
@@ -6400,112 +6223,98 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       goto yy252;
     goto yy231;
   yy301:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy288;
     goto yy231;
   yy302:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy301;
     goto yy231;
   yy303:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy301;
     goto yy231;
   yy304:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy301;
     goto yy231;
   yy305:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy303;
     goto yy231;
   yy306:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy303;
     goto yy231;
   yy307:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
       goto yy303;
     goto yy231;
   yy308:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy290;
     goto yy231;
   yy309:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy308;
     goto yy231;
   yy310:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy308;
     goto yy231;
   yy311:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy308;
     goto yy231;
   yy312:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy310;
     goto yy231;
   yy313:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy310;
     goto yy231;
   yy314:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
@@ -6516,8 +6325,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
     if (yych != '[')
       goto yy231;
   yy316:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
       goto yy316;
     }
@@ -6549,8 +6357,7 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
         goto yy231;
       }
     }
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
       goto yy316;
     }
@@ -6584,64 +6391,56 @@ bufsize_t _scan_html_tag(const unsigned char *p) {
       }
     }
   yy319:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy316;
     goto yy231;
   yy320:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy319;
     goto yy231;
   yy321:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy319;
     goto yy231;
   yy322:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x9F)
       goto yy319;
     goto yy231;
   yy323:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy321;
     goto yy231;
   yy324:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0xBF)
       goto yy321;
     goto yy231;
   yy325:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
       goto yy231;
     if (yych <= 0x8F)
       goto yy321;
     goto yy231;
   yy326:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0xE0) {
       if (yych <= '>') {
         if (yych <= 0x00)
@@ -6804,7 +6603,7 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
       goto yy357;
     case 'T':
     case 't':
-      goto yy350;
+      goto yy358;
     case 'U':
     case 'u':
       goto yy351;
@@ -6820,24 +6619,24 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
       if (yych <= 'D') {
         if (yych <= 'C')
           goto yy333;
-        goto yy358;
+        goto yy359;
       } else {
         if (yych <= 'Q')
           goto yy333;
         if (yych <= 'R')
-          goto yy359;
-        goto yy360;
+          goto yy360;
+        goto yy361;
       }
     } else {
       if (yych <= 'q') {
         if (yych == 'd')
-          goto yy358;
+          goto yy359;
         goto yy333;
       } else {
         if (yych <= 'r')
-          goto yy359;
-        if (yych <= 's')
           goto yy360;
+        if (yych <= 's')
+          goto yy361;
         goto yy333;
       }
     }
@@ -6846,25 +6645,25 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     if (yych <= 'O') {
       if (yych <= 'K') {
         if (yych == 'A')
-          goto yy361;
+          goto yy362;
         goto yy333;
       } else {
         if (yych <= 'L')
-          goto yy362;
+          goto yy363;
         if (yych <= 'N')
           goto yy333;
-        goto yy363;
+        goto yy364;
       }
     } else {
       if (yych <= 'k') {
         if (yych == 'a')
-          goto yy361;
+          goto yy362;
         goto yy333;
       } else {
         if (yych <= 'l')
-          goto yy362;
-        if (yych == 'o')
           goto yy363;
+        if (yych == 'o')
+          goto yy364;
         goto yy333;
       }
     }
@@ -6873,25 +6672,25 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     if (yych <= 'O') {
       if (yych <= 'D') {
         if (yych == 'A')
-          goto yy364;
+          goto yy365;
         goto yy333;
       } else {
         if (yych <= 'E')
-          goto yy365;
+          goto yy366;
         if (yych <= 'N')
           goto yy333;
-        goto yy366;
+        goto yy367;
       }
     } else {
       if (yych <= 'd') {
         if (yych == 'a')
-          goto yy364;
+          goto yy365;
         goto yy333;
       } else {
         if (yych <= 'e')
-          goto yy365;
-        if (yych == 'o')
           goto yy366;
+        if (yych == 'o')
+          goto yy367;
         goto yy333;
       }
     }
@@ -6904,13 +6703,13 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     case 'd':
     case 'l':
     case 't':
-      goto yy367;
+      goto yy368;
     case 'E':
     case 'e':
-      goto yy368;
+      goto yy369;
     case 'I':
     case 'i':
-      goto yy369;
+      goto yy370;
     default:
       goto yy333;
     }
@@ -6919,25 +6718,25 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     if (yych <= 'R') {
       if (yych <= 'N') {
         if (yych == 'I')
-          goto yy370;
+          goto yy371;
         goto yy333;
       } else {
         if (yych <= 'O')
-          goto yy371;
+          goto yy372;
         if (yych <= 'Q')
           goto yy333;
-        goto yy372;
+        goto yy373;
       }
     } else {
       if (yych <= 'n') {
         if (yych == 'i')
-          goto yy370;
+          goto yy371;
         goto yy333;
       } else {
         if (yych <= 'o')
-          goto yy371;
-        if (yych == 'r')
           goto yy372;
+        if (yych == 'r')
+          goto yy373;
         goto yy333;
       }
     }
@@ -6948,53 +6747,53 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
         if (yych <= '0')
           goto yy333;
         if (yych <= '6')
-          goto yy367;
+          goto yy368;
         goto yy333;
       } else {
         if (yych <= 'E')
-          goto yy373;
+          goto yy374;
         if (yych == 'R')
-          goto yy367;
+          goto yy368;
         goto yy333;
       }
     } else {
       if (yych <= 'q') {
         if (yych <= 'T')
-          goto yy374;
+          goto yy375;
         if (yych == 'e')
-          goto yy373;
+          goto yy374;
         goto yy333;
       } else {
         if (yych <= 'r')
-          goto yy367;
+          goto yy368;
         if (yych == 't')
-          goto yy374;
+          goto yy375;
         goto yy333;
       }
     }
   yy343:
     yych = *++p;
     if (yych == 'F')
-      goto yy375;
+      goto yy376;
     if (yych == 'f')
-      goto yy375;
+      goto yy376;
     goto yy333;
   yy344:
     yych = *++p;
     if (yych <= 'I') {
       if (yych == 'E')
-        goto yy376;
+        goto yy377;
       if (yych <= 'H')
         goto yy333;
-      goto yy377;
+      goto yy378;
     } else {
       if (yych <= 'e') {
         if (yych <= 'd')
           goto yy333;
-        goto yy376;
+        goto yy377;
       } else {
         if (yych == 'i')
-          goto yy377;
+          goto yy378;
         goto yy333;
       }
     }
@@ -7002,18 +6801,18 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     yych = *++p;
     if (yych <= 'E') {
       if (yych == 'A')
-        goto yy378;
+        goto yy379;
       if (yych <= 'D')
         goto yy333;
-      goto yy379;
+      goto yy380;
     } else {
       if (yych <= 'a') {
         if (yych <= '`')
           goto yy333;
-        goto yy378;
+        goto yy379;
       } else {
         if (yych == 'e')
-          goto yy379;
+          goto yy380;
         goto yy333;
       }
     }
@@ -7021,18 +6820,18 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     yych = *++p;
     if (yych <= 'O') {
       if (yych == 'A')
-        goto yy380;
+        goto yy381;
       if (yych <= 'N')
         goto yy333;
-      goto yy381;
+      goto yy382;
     } else {
       if (yych <= 'a') {
         if (yych <= '`')
           goto yy333;
-        goto yy380;
+        goto yy381;
       } else {
         if (yych == 'o')
-          goto yy381;
+          goto yy382;
         goto yy333;
       }
     }
@@ -7040,18 +6839,18 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     yych = *++p;
     if (yych <= 'P') {
       if (yych == 'L')
-        goto yy367;
+        goto yy368;
       if (yych <= 'O')
         goto yy333;
-      goto yy382;
+      goto yy383;
     } else {
       if (yych <= 'l') {
         if (yych <= 'k')
           goto yy333;
-        goto yy367;
+        goto yy368;
       } else {
         if (yych == 'p')
-          goto yy382;
+          goto yy383;
         goto yy333;
       }
     }
@@ -7062,32 +6861,32 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         if (yych <= 0x1F)
           goto yy333;
-        goto yy383;
+        goto yy384;
       } else {
         if (yych == '/')
-          goto yy385;
+          goto yy386;
         if (yych <= '=')
           goto yy333;
-        goto yy383;
+        goto yy384;
       }
     } else {
       if (yych <= 'R') {
         if (yych == 'A')
-          goto yy386;
+          goto yy387;
         if (yych <= 'Q')
           goto yy333;
-        goto yy387;
+        goto yy388;
       } else {
         if (yych <= 'a') {
           if (yych <= '`')
             goto yy333;
-          goto yy386;
+          goto yy387;
         } else {
           if (yych == 'r')
-            goto yy387;
+            goto yy388;
           goto yy333;
         }
       }
@@ -7097,19 +6896,19 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     switch (yych) {
     case 'C':
     case 'c':
-      goto yy388;
+      goto yy389;
     case 'E':
     case 'e':
-      goto yy389;
+      goto yy390;
     case 'O':
     case 'o':
-      goto yy390;
+      goto yy391;
     case 'T':
     case 't':
-      goto yy391;
+      goto yy392;
     case 'U':
     case 'u':
-      goto yy392;
+      goto yy393;
     default:
       goto yy333;
     }
@@ -7118,39 +6917,42 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     switch (yych) {
     case 'A':
     case 'a':
-      goto yy393;
+      goto yy394;
     case 'B':
     case 'b':
-      goto yy394;
+      goto yy395;
     case 'D':
     case 'd':
-      goto yy367;
+      goto yy368;
+    case 'E':
+    case 'e':
+      goto yy396;
     case 'F':
     case 'f':
-      goto yy395;
+      goto yy397;
     case 'H':
     case 'h':
-      goto yy396;
+      goto yy398;
     case 'I':
     case 'i':
-      goto yy397;
+      goto yy399;
     case 'R':
     case 'r':
-      goto yy398;
+      goto yy400;
     default:
       goto yy333;
     }
   yy351:
     yych = *++p;
     if (yych == 'L')
-      goto yy367;
+      goto yy368;
     if (yych == 'l')
-      goto yy367;
+      goto yy368;
     goto yy333;
   yy352:
     yych = *++p;
     if (yych == '-')
-      goto yy399;
+      goto yy401;
     goto yy333;
   yy353:
     ++p;
@@ -7158,9 +6960,9 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
   yy355:
     yych = *++p;
     if (yych == 'C')
-      goto yy401;
+      goto yy403;
     if (yych == 'c')
-      goto yy401;
+      goto yy403;
     goto yy333;
   yy356:
     yych = *++p;
@@ -7169,25 +6971,25 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= '@') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'A')
-          goto yy386;
+          goto yy387;
         if (yych == 'a')
-          goto yy386;
+          goto yy387;
         goto yy333;
       }
     }
@@ -7196,1176 +6998,1245 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     if (yych <= 'U') {
       if (yych <= 'N') {
         if (yych == 'E')
-          goto yy389;
+          goto yy390;
         goto yy333;
       } else {
         if (yych <= 'O')
-          goto yy390;
+          goto yy391;
         if (yych <= 'T')
           goto yy333;
-        goto yy392;
+        goto yy393;
       }
     } else {
       if (yych <= 'n') {
         if (yych == 'e')
-          goto yy389;
+          goto yy390;
         goto yy333;
       } else {
         if (yych <= 'o')
-          goto yy390;
+          goto yy391;
         if (yych == 'u')
-          goto yy392;
+          goto yy393;
         goto yy333;
       }
     }
   yy358:
     yych = *++p;
-    if (yych == 'D')
-      goto yy402;
-    if (yych == 'd')
-      goto yy402;
-    goto yy333;
-  yy359:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy403;
-    if (yych == 't')
-      goto yy403;
-    goto yy333;
-  yy360:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy404;
-    if (yych == 'i')
-      goto yy404;
-    goto yy333;
-  yy361:
-    yych = *++p;
-    if (yych == 'S')
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy394;
+    case 'B':
+    case 'b':
+      goto yy395;
+    case 'D':
+    case 'd':
+      goto yy368;
+    case 'F':
+    case 'f':
+      goto yy397;
+    case 'H':
+    case 'h':
+      goto yy398;
+    case 'I':
+    case 'i':
+      goto yy399;
+    case 'R':
+    case 'r':
+      goto yy400;
+    default:
+      goto yy333;
+    }
+  yy359:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy404;
+    if (yych == 'd')
+      goto yy404;
+    goto yy333;
+  yy360:
+    yych = *++p;
+    if (yych == 'T')
       goto yy405;
-    if (yych == 's')
+    if (yych == 't')
       goto yy405;
     goto yy333;
-  yy362:
+  yy361:
     yych = *++p;
-    if (yych == 'O')
+    if (yych == 'I')
       goto yy406;
-    if (yych == 'o')
+    if (yych == 'i')
       goto yy406;
     goto yy333;
-  yy363:
+  yy362:
     yych = *++p;
-    if (yych == 'D')
+    if (yych == 'S')
       goto yy407;
-    if (yych == 'd')
+    if (yych == 's')
       goto yy407;
     goto yy333;
-  yy364:
+  yy363:
     yych = *++p;
-    if (yych == 'P')
+    if (yych == 'O')
       goto yy408;
-    if (yych == 'p')
+    if (yych == 'o')
       goto yy408;
     goto yy333;
-  yy365:
+  yy364:
     yych = *++p;
-    if (yych == 'N')
+    if (yych == 'D')
       goto yy409;
-    if (yych == 'n')
+    if (yych == 'd')
       goto yy409;
     goto yy333;
-  yy366:
+  yy365:
     yych = *++p;
-    if (yych == 'L')
+    if (yych == 'P')
       goto yy410;
-    if (yych == 'l')
+    if (yych == 'p')
       goto yy410;
     goto yy333;
+  yy366:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy411;
+    if (yych == 'n')
+      goto yy411;
+    goto yy333;
   yy367:
     yych = *++p;
+    if (yych == 'L')
+      goto yy412;
+    if (yych == 'l')
+      goto yy412;
+    goto yy333;
+  yy368:
+    yych = *++p;
     if (yych <= ' ') {
       if (yych <= 0x08)
         goto yy333;
       if (yych <= '\r')
-        goto yy383;
+        goto yy384;
       if (yych <= 0x1F)
         goto yy333;
-      goto yy383;
+      goto yy384;
     } else {
       if (yych <= '/') {
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       } else {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       }
     }
-  yy368:
+  yy369:
     yych = *++p;
     if (yych == 'T')
-      goto yy411;
+      goto yy413;
     if (yych == 't')
-      goto yy411;
+      goto yy413;
     goto yy333;
-  yy369:
+  yy370:
     yych = *++p;
     if (yych <= 'V') {
       if (yych <= 'Q') {
         if (yych == 'A')
-          goto yy412;
+          goto yy414;
         goto yy333;
       } else {
         if (yych <= 'R')
-          goto yy367;
+          goto yy368;
         if (yych <= 'U')
           goto yy333;
-        goto yy367;
+        goto yy368;
       }
     } else {
       if (yych <= 'q') {
         if (yych == 'a')
-          goto yy412;
+          goto yy414;
         goto yy333;
       } else {
         if (yych <= 'r')
-          goto yy367;
+          goto yy368;
         if (yych == 'v')
-          goto yy367;
+          goto yy368;
         goto yy333;
       }
     }
-  yy370:
+  yy371:
     yych = *++p;
     if (yych <= 'G') {
       if (yych == 'E')
-        goto yy413;
+        goto yy415;
       if (yych <= 'F')
         goto yy333;
-      goto yy414;
+      goto yy416;
     } else {
       if (yych <= 'e') {
         if (yych <= 'd')
           goto yy333;
-        goto yy413;
+        goto yy415;
       } else {
         if (yych == 'g')
-          goto yy414;
+          goto yy416;
         goto yy333;
       }
     }
-  yy371:
+  yy372:
     yych = *++p;
     if (yych <= 'R') {
       if (yych == 'O')
-        goto yy409;
+        goto yy411;
       if (yych <= 'Q')
         goto yy333;
-      goto yy415;
+      goto yy417;
     } else {
       if (yych <= 'o') {
         if (yych <= 'n')
           goto yy333;
-        goto yy409;
+        goto yy411;
       } else {
         if (yych == 'r')
-          goto yy415;
+          goto yy417;
         goto yy333;
       }
     }
-  yy372:
+  yy373:
     yych = *++p;
     if (yych == 'A')
-      goto yy416;
+      goto yy418;
     if (yych == 'a')
-      goto yy416;
+      goto yy418;
     goto yy333;
-  yy373:
+  yy374:
     yych = *++p;
     if (yych == 'A')
-      goto yy417;
+      goto yy419;
     if (yych == 'a')
-      goto yy417;
+      goto yy419;
     goto yy333;
-  yy374:
+  yy375:
     yych = *++p;
     if (yych == 'M')
       goto yy351;
     if (yych == 'm')
       goto yy351;
     goto yy333;
-  yy375:
+  yy376:
     yych = *++p;
     if (yych == 'R')
-      goto yy418;
+      goto yy420;
     if (yych == 'r')
-      goto yy418;
+      goto yy420;
     goto yy333;
-  yy376:
+  yy377:
     yych = *++p;
     if (yych == 'G')
-      goto yy419;
+      goto yy421;
     if (yych == 'g')
-      goto yy419;
+      goto yy421;
     goto yy333;
-  yy377:
+  yy378:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'M') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'N')
-          goto yy420;
+          goto yy422;
         if (yych == 'n')
-          goto yy420;
+          goto yy422;
         goto yy333;
       }
     }
-  yy378:
+  yy379:
     yych = *++p;
     if (yych == 'I')
-      goto yy421;
+      goto yy423;
     if (yych == 'i')
-      goto yy421;
+      goto yy423;
     goto yy333;
-  yy379:
+  yy380:
     yych = *++p;
     if (yych == 'N')
-      goto yy422;
+      goto yy424;
     if (yych == 'n')
-      goto yy422;
+      goto yy424;
     goto yy333;
-  yy380:
+  yy381:
     yych = *++p;
     if (yych == 'V')
-      goto yy367;
+      goto yy368;
     if (yych == 'v')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy381:
+  yy382:
     yych = *++p;
     if (yych == 'F')
-      goto yy423;
+      goto yy425;
     if (yych == 'f')
-      goto yy423;
+      goto yy425;
     goto yy333;
-  yy382:
+  yy383:
     yych = *++p;
     if (yych == 'T')
-      goto yy424;
+      goto yy426;
     if (yych == 't')
-      goto yy424;
+      goto yy426;
     goto yy333;
-  yy383:
+  yy384:
     ++p;
     { return 6; }
-  yy385:
+  yy386:
     yych = *++p;
     if (yych == '>')
-      goto yy383;
+      goto yy384;
     goto yy333;
-  yy386:
+  yy387:
     yych = *++p;
     if (yych == 'R')
-      goto yy425;
+      goto yy427;
     if (yych == 'r')
-      goto yy425;
+      goto yy427;
     goto yy333;
-  yy387:
+  yy388:
     yych = *++p;
     if (yych == 'E')
-      goto yy426;
+      goto yy428;
     if (yych == 'e')
-      goto yy426;
+      goto yy428;
     goto yy333;
-  yy388:
+  yy389:
     yych = *++p;
     if (yych == 'R')
-      goto yy427;
+      goto yy429;
     if (yych == 'r')
-      goto yy427;
+      goto yy429;
     goto yy333;
-  yy389:
+  yy390:
     yych = *++p;
     if (yych == 'C')
-      goto yy408;
+      goto yy410;
     if (yych == 'c')
-      goto yy408;
+      goto yy410;
     goto yy333;
-  yy390:
+  yy391:
     yych = *++p;
     if (yych == 'U')
-      goto yy428;
+      goto yy430;
     if (yych == 'u')
-      goto yy428;
+      goto yy430;
     goto yy333;
-  yy391:
+  yy392:
     yych = *++p;
     if (yych == 'Y')
-      goto yy429;
+      goto yy431;
     if (yych == 'y')
-      goto yy429;
+      goto yy431;
     goto yy333;
-  yy392:
+  yy393:
     yych = *++p;
     if (yych == 'M')
-      goto yy430;
+      goto yy432;
     if (yych == 'm')
-      goto yy430;
+      goto yy432;
     goto yy333;
-  yy393:
+  yy394:
     yych = *++p;
     if (yych == 'B')
-      goto yy431;
+      goto yy433;
     if (yych == 'b')
-      goto yy431;
+      goto yy433;
     goto yy333;
-  yy394:
+  yy395:
     yych = *++p;
     if (yych == 'O')
-      goto yy363;
+      goto yy364;
     if (yych == 'o')
-      goto yy363;
+      goto yy364;
     goto yy333;
-  yy395:
+  yy396:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy434;
+    if (yych == 'x')
+      goto yy434;
+    goto yy333;
+  yy397:
     yych = *++p;
     if (yych == 'O')
-      goto yy432;
+      goto yy435;
     if (yych == 'o')
-      goto yy432;
+      goto yy435;
     goto yy333;
-  yy396:
+  yy398:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'D') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'E')
-          goto yy433;
+          goto yy436;
         if (yych == 'e')
-          goto yy433;
+          goto yy436;
         goto yy333;
       }
     }
-  yy397:
+  yy399:
     yych = *++p;
     if (yych == 'T')
-      goto yy431;
+      goto yy433;
     if (yych == 't')
-      goto yy431;
+      goto yy433;
     goto yy333;
-  yy398:
+  yy400:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= '@') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'A')
-          goto yy434;
+          goto yy437;
         if (yych == 'a')
-          goto yy434;
+          goto yy437;
         goto yy333;
       }
     }
-  yy399:
+  yy401:
     ++p;
     { return 2; }
-  yy401:
+  yy403:
     yych = *++p;
     if (yych == 'D')
-      goto yy435;
+      goto yy438;
     if (yych == 'd')
-      goto yy435;
+      goto yy438;
     goto yy333;
-  yy402:
+  yy404:
     yych = *++p;
     if (yych == 'R')
-      goto yy436;
+      goto yy439;
     if (yych == 'r')
-      goto yy436;
+      goto yy439;
     goto yy333;
-  yy403:
+  yy405:
     yych = *++p;
     if (yych == 'I')
-      goto yy437;
+      goto yy440;
     if (yych == 'i')
-      goto yy437;
+      goto yy440;
     goto yy333;
-  yy404:
+  yy406:
     yych = *++p;
     if (yych == 'D')
-      goto yy438;
+      goto yy441;
     if (yych == 'd')
-      goto yy438;
+      goto yy441;
     goto yy333;
-  yy405:
+  yy407:
     yych = *++p;
     if (yych == 'E')
-      goto yy439;
+      goto yy442;
     if (yych == 'e')
-      goto yy439;
+      goto yy442;
     goto yy333;
-  yy406:
+  yy408:
     yych = *++p;
     if (yych == 'C')
-      goto yy440;
+      goto yy443;
     if (yych == 'c')
-      goto yy440;
+      goto yy443;
     goto yy333;
-  yy407:
+  yy409:
     yych = *++p;
     if (yych == 'Y')
-      goto yy367;
+      goto yy368;
     if (yych == 'y')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy408:
+  yy410:
     yych = *++p;
     if (yych == 'T')
-      goto yy441;
+      goto yy444;
     if (yych == 't')
-      goto yy441;
+      goto yy444;
     goto yy333;
-  yy409:
+  yy411:
     yych = *++p;
     if (yych == 'T')
-      goto yy442;
+      goto yy445;
     if (yych == 't')
-      goto yy442;
+      goto yy445;
     goto yy333;
-  yy410:
+  yy412:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'F') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'G')
-          goto yy443;
+          goto yy446;
         if (yych == 'g')
-          goto yy443;
+          goto yy446;
         goto yy333;
       }
     }
-  yy411:
+  yy413:
     yych = *++p;
     if (yych == 'A')
-      goto yy444;
+      goto yy447;
     if (yych == 'a')
-      goto yy444;
+      goto yy447;
     goto yy333;
-  yy412:
+  yy414:
     yych = *++p;
     if (yych == 'L')
-      goto yy445;
+      goto yy448;
     if (yych == 'l')
-      goto yy445;
+      goto yy448;
     goto yy333;
-  yy413:
+  yy415:
     yych = *++p;
     if (yych == 'L')
-      goto yy446;
+      goto yy449;
     if (yych == 'l')
-      goto yy446;
+      goto yy449;
     goto yy333;
-  yy414:
+  yy416:
     yych = *++p;
     if (yych <= 'U') {
       if (yych == 'C')
-        goto yy447;
+        goto yy450;
       if (yych <= 'T')
         goto yy333;
-      goto yy448;
+      goto yy451;
     } else {
       if (yych <= 'c') {
         if (yych <= 'b')
           goto yy333;
-        goto yy447;
+        goto yy450;
       } else {
         if (yych == 'u')
-          goto yy448;
+          goto yy451;
         goto yy333;
       }
     }
-  yy415:
+  yy417:
     yych = *++p;
     if (yych == 'M')
-      goto yy367;
+      goto yy368;
     if (yych == 'm')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy416:
+  yy418:
     yych = *++p;
     if (yych == 'M')
-      goto yy449;
+      goto yy452;
     if (yych == 'm')
-      goto yy449;
+      goto yy452;
     goto yy333;
-  yy417:
+  yy419:
     yych = *++p;
     if (yych == 'D')
-      goto yy450;
+      goto yy453;
     if (yych == 'd')
-      goto yy450;
+      goto yy453;
     goto yy333;
-  yy418:
+  yy420:
     yych = *++p;
     if (yych == 'A')
-      goto yy451;
+      goto yy454;
     if (yych == 'a')
-      goto yy451;
+      goto yy454;
     goto yy333;
-  yy419:
+  yy421:
     yych = *++p;
     if (yych == 'E')
-      goto yy452;
+      goto yy455;
     if (yych == 'e')
-      goto yy452;
+      goto yy455;
     goto yy333;
-  yy420:
+  yy422:
     yych = *++p;
     if (yych == 'K')
-      goto yy367;
+      goto yy368;
     if (yych == 'k')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy421:
+  yy423:
     yych = *++p;
     if (yych == 'N')
-      goto yy367;
+      goto yy368;
     if (yych == 'n')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy422:
+  yy424:
     yych = *++p;
     if (yych == 'U')
-      goto yy453;
+      goto yy456;
     if (yych == 'u')
-      goto yy453;
+      goto yy456;
     goto yy333;
-  yy423:
+  yy425:
     yych = *++p;
     if (yych == 'R')
-      goto yy454;
+      goto yy457;
     if (yych == 'r')
-      goto yy454;
+      goto yy457;
     goto yy333;
-  yy424:
+  yy426:
     yych = *++p;
     if (yych <= 'I') {
       if (yych == 'G')
-        goto yy443;
+        goto yy446;
       if (yych <= 'H')
         goto yy333;
-      goto yy455;
+      goto yy458;
     } else {
       if (yych <= 'g') {
         if (yych <= 'f')
           goto yy333;
-        goto yy443;
+        goto yy446;
       } else {
         if (yych == 'i')
-          goto yy455;
+          goto yy458;
         goto yy333;
       }
     }
-  yy425:
+  yy427:
     yych = *++p;
     if (yych == 'A')
-      goto yy415;
+      goto yy417;
     if (yych == 'a')
-      goto yy415;
+      goto yy417;
     goto yy333;
-  yy426:
+  yy428:
     yych = *++p;
     if (yych <= 0x1F) {
       if (yych <= 0x08)
         goto yy333;
       if (yych <= '\r')
-        goto yy456;
+        goto yy459;
       goto yy333;
     } else {
       if (yych <= ' ')
-        goto yy456;
+        goto yy459;
       if (yych == '>')
-        goto yy456;
+        goto yy459;
       goto yy333;
     }
-  yy427:
+  yy429:
     yych = *++p;
     if (yych == 'I')
-      goto yy458;
+      goto yy461;
     if (yych == 'i')
-      goto yy458;
+      goto yy461;
     goto yy333;
-  yy428:
+  yy430:
     yych = *++p;
     if (yych == 'R')
-      goto yy459;
+      goto yy462;
     if (yych == 'r')
-      goto yy459;
+      goto yy462;
     goto yy333;
-  yy429:
+  yy431:
     yych = *++p;
     if (yych == 'L')
-      goto yy387;
+      goto yy388;
     if (yych == 'l')
-      goto yy387;
+      goto yy388;
     goto yy333;
-  yy430:
+  yy432:
     yych = *++p;
     if (yych == 'M')
-      goto yy460;
+      goto yy463;
     if (yych == 'm')
-      goto yy460;
+      goto yy463;
     goto yy333;
-  yy431:
+  yy433:
     yych = *++p;
     if (yych == 'L')
-      goto yy438;
+      goto yy441;
     if (yych == 'l')
-      goto yy438;
+      goto yy441;
     goto yy333;
-  yy432:
+  yy434:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy464;
+    if (yych == 't')
+      goto yy464;
+    goto yy333;
+  yy435:
     yych = *++p;
     if (yych == 'O')
-      goto yy461;
+      goto yy465;
     if (yych == 'o')
-      goto yy461;
+      goto yy465;
     goto yy333;
-  yy433:
+  yy436:
     yych = *++p;
     if (yych == 'A')
-      goto yy462;
+      goto yy466;
     if (yych == 'a')
-      goto yy462;
+      goto yy466;
     goto yy333;
-  yy434:
+  yy437:
     yych = *++p;
     if (yych == 'C')
-      goto yy420;
+      goto yy422;
     if (yych == 'c')
-      goto yy420;
+      goto yy422;
     goto yy333;
-  yy435:
+  yy438:
     yych = *++p;
     if (yych == 'A')
-      goto yy463;
+      goto yy467;
     if (yych == 'a')
-      goto yy463;
+      goto yy467;
     goto yy333;
-  yy436:
+  yy439:
     yych = *++p;
     if (yych == 'E')
-      goto yy464;
+      goto yy468;
     if (yych == 'e')
-      goto yy464;
+      goto yy468;
     goto yy333;
-  yy437:
+  yy440:
     yych = *++p;
     if (yych == 'C')
-      goto yy431;
+      goto yy433;
     if (yych == 'c')
-      goto yy431;
+      goto yy433;
     goto yy333;
-  yy438:
+  yy441:
     yych = *++p;
     if (yych == 'E')
-      goto yy367;
+      goto yy368;
     if (yych == 'e')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy439:
+  yy442:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'E') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'F')
-          goto yy465;
+          goto yy469;
         if (yych == 'f')
-          goto yy465;
+          goto yy469;
         goto yy333;
       }
     }
-  yy440:
+  yy443:
     yych = *++p;
     if (yych == 'K')
-      goto yy466;
+      goto yy470;
     if (yych == 'k')
-      goto yy466;
+      goto yy470;
     goto yy333;
-  yy441:
+  yy444:
     yych = *++p;
     if (yych == 'I')
-      goto yy455;
+      goto yy458;
     if (yych == 'i')
-      goto yy455;
+      goto yy458;
     goto yy333;
-  yy442:
+  yy445:
     yych = *++p;
     if (yych == 'E')
-      goto yy467;
+      goto yy471;
     if (yych == 'e')
-      goto yy467;
+      goto yy471;
     goto yy333;
-  yy443:
+  yy446:
     yych = *++p;
     if (yych == 'R')
-      goto yy468;
+      goto yy472;
     if (yych == 'r')
-      goto yy468;
+      goto yy472;
     goto yy333;
-  yy444:
+  yy447:
     yych = *++p;
     if (yych == 'I')
-      goto yy469;
+      goto yy473;
     if (yych == 'i')
-      goto yy469;
+      goto yy473;
     goto yy333;
-  yy445:
+  yy448:
     yych = *++p;
     if (yych == 'O')
-      goto yy470;
+      goto yy474;
     if (yych == 'o')
-      goto yy470;
+      goto yy474;
     goto yy333;
-  yy446:
+  yy449:
     yych = *++p;
     if (yych == 'D')
-      goto yy471;
+      goto yy475;
     if (yych == 'd')
-      goto yy471;
+      goto yy475;
     goto yy333;
-  yy447:
+  yy450:
     yych = *++p;
     if (yych == 'A')
-      goto yy364;
+      goto yy365;
     if (yych == 'a')
-      goto yy364;
+      goto yy365;
     goto yy333;
-  yy448:
+  yy451:
     yych = *++p;
     if (yych == 'R')
-      goto yy438;
+      goto yy441;
     if (yych == 'r')
-      goto yy438;
+      goto yy441;
     goto yy333;
-  yy449:
+  yy452:
     yych = *++p;
     if (yych == 'E')
-      goto yy472;
+      goto yy476;
     if (yych == 'e')
-      goto yy472;
+      goto yy476;
     goto yy333;
-  yy450:
+  yy453:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'D') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'E')
-          goto yy467;
+          goto yy471;
         if (yych == 'e')
-          goto yy467;
+          goto yy471;
         goto yy333;
       }
     }
-  yy451:
+  yy454:
     yych = *++p;
     if (yych == 'M')
-      goto yy438;
+      goto yy441;
     if (yych == 'm')
-      goto yy438;
+      goto yy441;
     goto yy333;
-  yy452:
+  yy455:
     yych = *++p;
     if (yych == 'N')
-      goto yy462;
+      goto yy466;
     if (yych == 'n')
-      goto yy462;
+      goto yy466;
     goto yy333;
-  yy453:
+  yy456:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'H') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'I')
-          goto yy473;
+          goto yy477;
         if (yych == 'i')
-          goto yy473;
+          goto yy477;
         goto yy333;
       }
     }
-  yy454:
+  yy457:
     yych = *++p;
     if (yych == 'A')
-      goto yy474;
+      goto yy478;
     if (yych == 'a')
-      goto yy474;
+      goto yy478;
     goto yy333;
-  yy455:
+  yy458:
     yych = *++p;
     if (yych == 'O')
-      goto yy421;
+      goto yy423;
     if (yych == 'o')
-      goto yy421;
+      goto yy423;
     goto yy333;
-  yy456:
+  yy459:
     ++p;
     { return 1; }
-  yy458:
+  yy461:
     yych = *++p;
     if (yych == 'P')
-      goto yy475;
+      goto yy479;
     if (yych == 'p')
-      goto yy475;
+      goto yy479;
     goto yy333;
-  yy459:
+  yy462:
     yych = *++p;
     if (yych == 'C')
-      goto yy438;
+      goto yy441;
     if (yych == 'c')
-      goto yy438;
+      goto yy441;
     goto yy333;
-  yy460:
+  yy463:
     yych = *++p;
     if (yych == 'A')
-      goto yy476;
+      goto yy480;
     if (yych == 'a')
-      goto yy476;
+      goto yy480;
     goto yy333;
-  yy461:
+  yy464:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy481;
+    if (yych == 'a')
+      goto yy481;
+    goto yy333;
+  yy465:
     yych = *++p;
     if (yych == 'T')
-      goto yy367;
+      goto yy368;
     if (yych == 't')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy462:
+  yy466:
     yych = *++p;
     if (yych == 'D')
-      goto yy367;
+      goto yy368;
     if (yych == 'd')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy463:
+  yy467:
     yych = *++p;
     if (yych == 'T')
-      goto yy477;
+      goto yy482;
     if (yych == 't')
-      goto yy477;
+      goto yy482;
     goto yy333;
-  yy464:
+  yy468:
     yych = *++p;
     if (yych == 'S')
-      goto yy478;
+      goto yy483;
     if (yych == 's')
-      goto yy478;
+      goto yy483;
     goto yy333;
-  yy465:
+  yy469:
     yych = *++p;
     if (yych == 'O')
-      goto yy479;
+      goto yy484;
     if (yych == 'o')
-      goto yy479;
+      goto yy484;
     goto yy333;
-  yy466:
+  yy470:
     yych = *++p;
     if (yych == 'Q')
-      goto yy480;
+      goto yy485;
     if (yych == 'q')
-      goto yy480;
+      goto yy485;
     goto yy333;
-  yy467:
+  yy471:
     yych = *++p;
     if (yych == 'R')
-      goto yy367;
+      goto yy368;
     if (yych == 'r')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy468:
+  yy472:
     yych = *++p;
     if (yych == 'O')
-      goto yy481;
+      goto yy486;
     if (yych == 'o')
-      goto yy481;
+      goto yy486;
     goto yy333;
-  yy469:
+  yy473:
     yych = *++p;
     if (yych == 'L')
-      goto yy478;
+      goto yy483;
     if (yych == 'l')
-      goto yy478;
+      goto yy483;
     goto yy333;
-  yy470:
+  yy474:
     yych = *++p;
     if (yych == 'G')
-      goto yy367;
+      goto yy368;
     if (yych == 'g')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy471:
+  yy475:
     yych = *++p;
     if (yych == 'S')
-      goto yy482;
+      goto yy487;
     if (yych == 's')
-      goto yy482;
+      goto yy487;
     goto yy333;
-  yy472:
+  yy476:
     yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
           goto yy333;
         if (yych <= '\r')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= ' ')
-          goto yy383;
+          goto yy384;
         if (yych <= '.')
           goto yy333;
-        goto yy385;
+        goto yy386;
       }
     } else {
       if (yych <= 'R') {
         if (yych == '>')
-          goto yy383;
+          goto yy384;
         goto yy333;
       } else {
         if (yych <= 'S')
-          goto yy482;
+          goto yy487;
         if (yych == 's')
-          goto yy482;
+          goto yy487;
         goto yy333;
       }
     }
-  yy473:
+  yy477:
     yych = *++p;
     if (yych == 'T')
-      goto yy483;
+      goto yy488;
     if (yych == 't')
-      goto yy483;
+      goto yy488;
     goto yy333;
-  yy474:
+  yy478:
     yych = *++p;
     if (yych == 'M')
-      goto yy484;
+      goto yy489;
     if (yych == 'm')
-      goto yy484;
+      goto yy489;
     goto yy333;
-  yy475:
+  yy479:
     yych = *++p;
     if (yych == 'T')
-      goto yy426;
+      goto yy428;
     if (yych == 't')
-      goto yy426;
+      goto yy428;
     goto yy333;
-  yy476:
+  yy480:
     yych = *++p;
     if (yych == 'R')
-      goto yy407;
+      goto yy409;
     if (yych == 'r')
-      goto yy407;
+      goto yy409;
     goto yy333;
-  yy477:
+  yy481:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy490;
+    if (yych == 'r')
+      goto yy490;
+    goto yy333;
+  yy482:
     yych = *++p;
     if (yych == 'A')
-      goto yy485;
+      goto yy491;
     if (yych == 'a')
-      goto yy485;
+      goto yy491;
     goto yy333;
-  yy478:
+  yy483:
     yych = *++p;
     if (yych == 'S')
-      goto yy367;
+      goto yy368;
     if (yych == 's')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy479:
+  yy484:
     yych = *++p;
     if (yych == 'N')
-      goto yy461;
+      goto yy465;
     if (yych == 'n')
-      goto yy461;
+      goto yy465;
     goto yy333;
-  yy480:
+  yy485:
     yych = *++p;
     if (yych == 'U')
-      goto yy486;
+      goto yy492;
     if (yych == 'u')
-      goto yy486;
+      goto yy492;
     goto yy333;
-  yy481:
+  yy486:
     yych = *++p;
     if (yych == 'U')
-      goto yy487;
+      goto yy493;
     if (yych == 'u')
-      goto yy487;
+      goto yy493;
     goto yy333;
-  yy482:
+  yy487:
     yych = *++p;
     if (yych == 'E')
-      goto yy461;
+      goto yy465;
     if (yych == 'e')
-      goto yy461;
+      goto yy465;
     goto yy333;
-  yy483:
+  yy488:
     yych = *++p;
     if (yych == 'E')
-      goto yy415;
+      goto yy417;
     if (yych == 'e')
-      goto yy415;
+      goto yy417;
     goto yy333;
-  yy484:
+  yy489:
     yych = *++p;
     if (yych == 'E')
-      goto yy478;
+      goto yy483;
     if (yych == 'e')
-      goto yy478;
+      goto yy483;
     goto yy333;
-  yy485:
+  yy490:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy494;
+    if (yych == 'e')
+      goto yy494;
+    goto yy333;
+  yy491:
     yych = *++p;
     if (yych == '[')
-      goto yy488;
+      goto yy495;
     goto yy333;
-  yy486:
+  yy492:
     yych = *++p;
     if (yych == 'O')
-      goto yy490;
+      goto yy497;
     if (yych == 'o')
-      goto yy490;
+      goto yy497;
     goto yy333;
-  yy487:
+  yy493:
     yych = *++p;
     if (yych == 'P')
-      goto yy367;
+      goto yy368;
     if (yych == 'p')
-      goto yy367;
+      goto yy368;
     goto yy333;
-  yy488:
+  yy494:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy428;
+    if (yych == 'a')
+      goto yy428;
+    goto yy333;
+  yy495:
     ++p;
     { return 5; }
-  yy490:
-    ++p;
-    if ((yych = *p) == 'T')
-      goto yy438;
+  yy497:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy441;
     if (yych == 't')
-      goto yy438;
+      goto yy441;
     goto yy333;
   }
 }
@@ -8401,614 +8272,580 @@ bufsize_t _scan_html_block_start_7(const unsigned char *p) {
     };
     yych = *p;
     if (yych == '<')
-      goto yy495;
+      goto yy502;
     ++p;
-  yy494 : { return 0; }
-  yy495:
+  yy501 : { return 0; }
+  yy502:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '@') {
       if (yych != '/')
-        goto yy494;
+        goto yy501;
     } else {
       if (yych <= 'Z')
-        goto yy498;
+        goto yy505;
       if (yych <= '`')
-        goto yy494;
+        goto yy501;
       if (yych <= 'z')
-        goto yy498;
-      goto yy494;
+        goto yy505;
+      goto yy501;
     }
     yych = *++p;
     if (yych <= '@')
-      goto yy497;
+      goto yy504;
     if (yych <= 'Z')
-      goto yy500;
+      goto yy507;
     if (yych <= '`')
-      goto yy497;
+      goto yy504;
     if (yych <= 'z')
-      goto yy500;
-  yy497:
+      goto yy507;
+  yy504:
     p = marker;
     if (yyaccept == 0) {
-      goto yy494;
+      goto yy501;
     } else {
-      goto yy513;
+      goto yy520;
     }
-  yy498:
-    ++p;
-    yych = *p;
+  yy505:
+    yych = *++p;
     if (yybm[0 + yych] & 2) {
-      goto yy502;
+      goto yy509;
     }
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych == '-')
-          goto yy498;
-        goto yy497;
+          goto yy505;
+        goto yy504;
       } else {
         if (yych <= '/')
-          goto yy504;
+          goto yy511;
         if (yych <= '9')
-          goto yy498;
-        goto yy497;
+          goto yy505;
+        goto yy504;
       }
     } else {
       if (yych <= 'Z') {
         if (yych <= '>')
-          goto yy505;
+          goto yy512;
         if (yych <= '@')
-          goto yy497;
-        goto yy498;
+          goto yy504;
+        goto yy505;
       } else {
         if (yych <= '`')
-          goto yy497;
+          goto yy504;
         if (yych <= 'z')
-          goto yy498;
-        goto yy497;
+          goto yy505;
+        goto yy504;
       }
     }
-  yy500:
-    ++p;
-    yych = *p;
+  yy507:
+    yych = *++p;
     if (yych <= '/') {
       if (yych <= 0x1F) {
         if (yych <= 0x08)
-          goto yy497;
+          goto yy504;
         if (yych <= '\r')
-          goto yy507;
-        goto yy497;
+          goto yy514;
+        goto yy504;
       } else {
         if (yych <= ' ')
-          goto yy507;
+          goto yy514;
         if (yych == '-')
-          goto yy500;
-        goto yy497;
+          goto yy507;
+        goto yy504;
       }
     } else {
       if (yych <= '@') {
         if (yych <= '9')
-          goto yy500;
+          goto yy507;
         if (yych == '>')
-          goto yy505;
-        goto yy497;
+          goto yy512;
+        goto yy504;
       } else {
         if (yych <= 'Z')
-          goto yy500;
+          goto yy507;
         if (yych <= '`')
-          goto yy497;
+          goto yy504;
         if (yych <= 'z')
-          goto yy500;
-        goto yy497;
+          goto yy507;
+        goto yy504;
       }
     }
-  yy502:
-    ++p;
-    yych = *p;
+  yy509:
+    yych = *++p;
     if (yybm[0 + yych] & 2) {
-      goto yy502;
+      goto yy509;
     }
     if (yych <= '>') {
       if (yych <= '9') {
         if (yych != '/')
-          goto yy497;
+          goto yy504;
       } else {
         if (yych <= ':')
-          goto yy509;
+          goto yy516;
         if (yych <= '=')
-          goto yy497;
-        goto yy505;
+          goto yy504;
+        goto yy512;
       }
     } else {
       if (yych <= '^') {
         if (yych <= '@')
-          goto yy497;
+          goto yy504;
         if (yych <= 'Z')
-          goto yy509;
-        goto yy497;
+          goto yy516;
+        goto yy504;
       } else {
         if (yych == '`')
-          goto yy497;
+          goto yy504;
         if (yych <= 'z')
-          goto yy509;
-        goto yy497;
+          goto yy516;
+        goto yy504;
       }
     }
-  yy504:
+  yy511:
     yych = *++p;
     if (yych != '>')
-      goto yy497;
-  yy505:
-    ++p;
-    yych = *p;
+      goto yy504;
+  yy512:
+    yych = *++p;
     if (yybm[0 + yych] & 4) {
-      goto yy505;
+      goto yy512;
     }
     if (yych <= 0x08)
-      goto yy497;
+      goto yy504;
     if (yych <= '\n')
-      goto yy511;
+      goto yy518;
     if (yych <= '\v')
-      goto yy497;
+      goto yy504;
     if (yych <= '\r')
-      goto yy514;
-    goto yy497;
-  yy507:
-    ++p;
-    yych = *p;
+      goto yy521;
+    goto yy504;
+  yy514:
+    yych = *++p;
     if (yych <= 0x1F) {
       if (yych <= 0x08)
-        goto yy497;
+        goto yy504;
       if (yych <= '\r')
-        goto yy507;
-      goto yy497;
+        goto yy514;
+      goto yy504;
     } else {
       if (yych <= ' ')
-        goto yy507;
+        goto yy514;
       if (yych == '>')
-        goto yy505;
-      goto yy497;
+        goto yy512;
+      goto yy504;
     }
-  yy509:
-    ++p;
-    yych = *p;
+  yy516:
+    yych = *++p;
     if (yybm[0 + yych] & 8) {
-      goto yy509;
+      goto yy516;
     }
     if (yych <= ',') {
       if (yych <= '\r') {
         if (yych <= 0x08)
-          goto yy497;
-        goto yy515;
+          goto yy504;
+        goto yy522;
       } else {
         if (yych == ' ')
-          goto yy515;
-        goto yy497;
+          goto yy522;
+        goto yy504;
       }
     } else {
       if (yych <= '<') {
         if (yych <= '/')
-          goto yy504;
-        goto yy497;
+          goto yy511;
+        goto yy504;
       } else {
         if (yych <= '=')
-          goto yy517;
+          goto yy524;
         if (yych <= '>')
-          goto yy505;
-        goto yy497;
+          goto yy512;
+        goto yy504;
       }
     }
-  yy511:
+  yy518:
     yyaccept = 1;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 4) {
-      goto yy505;
+      goto yy512;
     }
     if (yych <= 0x08)
-      goto yy513;
+      goto yy520;
     if (yych <= '\n')
-      goto yy511;
+      goto yy518;
     if (yych <= '\v')
-      goto yy513;
+      goto yy520;
     if (yych <= '\r')
-      goto yy514;
-  yy513 : { return 7; }
-  yy514:
-    yych = *++p;
-    goto yy513;
-  yy515:
+      goto yy521;
+  yy520 : { return 7; }
+  yy521:
     ++p;
-    yych = *p;
+    goto yy520;
+  yy522:
+    yych = *++p;
     if (yych <= '<') {
       if (yych <= ' ') {
         if (yych <= 0x08)
-          goto yy497;
+          goto yy504;
         if (yych <= '\r')
-          goto yy515;
+          goto yy522;
         if (yych <= 0x1F)
-          goto yy497;
-        goto yy515;
+          goto yy504;
+        goto yy522;
       } else {
         if (yych <= '/') {
           if (yych <= '.')
-            goto yy497;
-          goto yy504;
+            goto yy504;
+          goto yy511;
         } else {
           if (yych == ':')
-            goto yy509;
-          goto yy497;
+            goto yy516;
+          goto yy504;
         }
       }
     } else {
       if (yych <= 'Z') {
         if (yych <= '=')
-          goto yy517;
+          goto yy524;
         if (yych <= '>')
-          goto yy505;
+          goto yy512;
         if (yych <= '@')
-          goto yy497;
-        goto yy509;
+          goto yy504;
+        goto yy516;
       } else {
         if (yych <= '_') {
           if (yych <= '^')
-            goto yy497;
-          goto yy509;
+            goto yy504;
+          goto yy516;
         } else {
           if (yych <= '`')
-            goto yy497;
+            goto yy504;
           if (yych <= 'z')
-            goto yy509;
-          goto yy497;
+            goto yy516;
+          goto yy504;
         }
       }
     }
-  yy517:
-    ++p;
-    yych = *p;
+  yy524:
+    yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy519;
+      goto yy526;
     }
     if (yych <= 0xE0) {
       if (yych <= '"') {
         if (yych <= 0x00)
-          goto yy497;
+          goto yy504;
         if (yych <= ' ')
-          goto yy517;
-        goto yy521;
+          goto yy524;
+        goto yy528;
       } else {
         if (yych <= '\'')
-          goto yy523;
+          goto yy530;
         if (yych <= 0xC1)
-          goto yy497;
+          goto yy504;
         if (yych <= 0xDF)
-          goto yy525;
-        goto yy526;
+          goto yy532;
+        goto yy533;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy528;
-        goto yy527;
+          goto yy535;
+        goto yy534;
       } else {
         if (yych <= 0xF0)
-          goto yy529;
+          goto yy536;
         if (yych <= 0xF3)
-          goto yy530;
+          goto yy537;
         if (yych <= 0xF4)
-          goto yy531;
-        goto yy497;
+          goto yy538;
+        goto yy504;
       }
     }
-  yy519:
-    ++p;
-    yych = *p;
+  yy526:
+    yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy519;
+      goto yy526;
     }
     if (yych <= 0xE0) {
       if (yych <= '=') {
         if (yych <= 0x00)
-          goto yy497;
+          goto yy504;
         if (yych <= ' ')
-          goto yy502;
-        goto yy497;
+          goto yy509;
+        goto yy504;
       } else {
         if (yych <= '>')
-          goto yy505;
+          goto yy512;
         if (yych <= 0xC1)
-          goto yy497;
+          goto yy504;
         if (yych <= 0xDF)
-          goto yy525;
-        goto yy526;
+          goto yy532;
+        goto yy533;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy528;
-        goto yy527;
+          goto yy535;
+        goto yy534;
       } else {
         if (yych <= 0xF0)
-          goto yy529;
+          goto yy536;
         if (yych <= 0xF3)
-          goto yy530;
+          goto yy537;
         if (yych <= 0xF4)
-          goto yy531;
-        goto yy497;
+          goto yy538;
+        goto yy504;
       }
     }
-  yy521:
-    ++p;
-    yych = *p;
+  yy528:
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy521;
+      goto yy528;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy497;
+          goto yy504;
         if (yych <= '"')
-          goto yy532;
-        goto yy497;
+          goto yy539;
+        goto yy504;
       } else {
         if (yych <= 0xDF)
-          goto yy533;
+          goto yy540;
         if (yych <= 0xE0)
-          goto yy534;
-        goto yy535;
+          goto yy541;
+        goto yy542;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy536;
+          goto yy543;
         if (yych <= 0xEF)
-          goto yy535;
-        goto yy537;
+          goto yy542;
+        goto yy544;
       } else {
         if (yych <= 0xF3)
-          goto yy538;
+          goto yy545;
         if (yych <= 0xF4)
-          goto yy539;
-        goto yy497;
+          goto yy546;
+        goto yy504;
       }
     }
-  yy523:
-    ++p;
-    yych = *p;
+  yy530:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy523;
+      goto yy530;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy497;
+          goto yy504;
         if (yych <= '\'')
-          goto yy532;
-        goto yy497;
+          goto yy539;
+        goto yy504;
       } else {
         if (yych <= 0xDF)
-          goto yy540;
+          goto yy547;
         if (yych <= 0xE0)
-          goto yy541;
-        goto yy542;
+          goto yy548;
+        goto yy549;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy543;
+          goto yy550;
         if (yych <= 0xEF)
-          goto yy542;
-        goto yy544;
+          goto yy549;
+        goto yy551;
       } else {
         if (yych <= 0xF3)
-          goto yy545;
+          goto yy552;
         if (yych <= 0xF4)
-          goto yy546;
-        goto yy497;
+          goto yy553;
+        goto yy504;
       }
     }
-  yy525:
-    ++p;
-    yych = *p;
+  yy532:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
-      goto yy519;
-    goto yy497;
-  yy526:
-    ++p;
-    yych = *p;
+      goto yy526;
+    goto yy504;
+  yy533:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
-      goto yy525;
-    goto yy497;
-  yy527:
-    ++p;
-    yych = *p;
+      goto yy532;
+    goto yy504;
+  yy534:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
-      goto yy525;
-    goto yy497;
-  yy528:
-    ++p;
-    yych = *p;
+      goto yy532;
+    goto yy504;
+  yy535:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0x9F)
-      goto yy525;
-    goto yy497;
-  yy529:
-    ++p;
-    yych = *p;
+      goto yy532;
+    goto yy504;
+  yy536:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
-      goto yy527;
-    goto yy497;
-  yy530:
-    ++p;
-    yych = *p;
+      goto yy534;
+    goto yy504;
+  yy537:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
-      goto yy527;
-    goto yy497;
-  yy531:
-    ++p;
-    yych = *p;
+      goto yy534;
+    goto yy504;
+  yy538:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0x8F)
-      goto yy527;
-    goto yy497;
-  yy532:
-    ++p;
-    yych = *p;
+      goto yy534;
+    goto yy504;
+  yy539:
+    yych = *++p;
     if (yybm[0 + yych] & 2) {
-      goto yy502;
+      goto yy509;
     }
     if (yych == '/')
-      goto yy504;
+      goto yy511;
     if (yych == '>')
-      goto yy505;
-    goto yy497;
-  yy533:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy497;
-    if (yych <= 0xBF)
-      goto yy521;
-    goto yy497;
-  yy534:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy497;
-    if (yych <= 0xBF)
-      goto yy533;
-    goto yy497;
-  yy535:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy497;
-    if (yych <= 0xBF)
-      goto yy533;
-    goto yy497;
-  yy536:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy497;
-    if (yych <= 0x9F)
-      goto yy533;
-    goto yy497;
-  yy537:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy497;
-    if (yych <= 0xBF)
-      goto yy535;
-    goto yy497;
-  yy538:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy497;
-    if (yych <= 0xBF)
-      goto yy535;
-    goto yy497;
-  yy539:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy497;
-    if (yych <= 0x8F)
-      goto yy535;
-    goto yy497;
+      goto yy512;
+    goto yy504;
   yy540:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
-      goto yy523;
-    goto yy497;
+      goto yy528;
+    goto yy504;
   yy541:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
       goto yy540;
-    goto yy497;
+    goto yy504;
   yy542:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
       goto yy540;
-    goto yy497;
+    goto yy504;
   yy543:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0x9F)
       goto yy540;
-    goto yy497;
+    goto yy504;
   yy544:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
       goto yy542;
-    goto yy497;
+    goto yy504;
   yy545:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0xBF)
       goto yy542;
-    goto yy497;
+    goto yy504;
   yy546:
-    ++p;
-    yych = *p;
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy497;
+      goto yy504;
     if (yych <= 0x8F)
       goto yy542;
-    goto yy497;
-  }
-}
-
-// Try to match an HTML block end line of type 1
-bufsize_t _scan_html_block_end_1(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        0,  64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,
-        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-        64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
-        64, 64, 0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    goto yy504;
+  yy547:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy504;
+    if (yych <= 0xBF)
+      goto yy530;
+    goto yy504;
+  yy548:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy504;
+    if (yych <= 0xBF)
+      goto yy547;
+    goto yy504;
+  yy549:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy504;
+    if (yych <= 0xBF)
+      goto yy547;
+    goto yy504;
+  yy550:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy504;
+    if (yych <= 0x9F)
+      goto yy547;
+    goto yy504;
+  yy551:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy504;
+    if (yych <= 0xBF)
+      goto yy549;
+    goto yy504;
+  yy552:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy504;
+    if (yych <= 0xBF)
+      goto yy549;
+    goto yy504;
+  yy553:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy504;
+    if (yych <= 0x8F)
+      goto yy549;
+    goto yy504;
+  }
+}
+
+// Try to match an HTML block end line of type 1
+bufsize_t _scan_html_block_end_1(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,  64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
         0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -9018,850 +8855,1168 @@ bufsize_t _scan_html_block_end_1(const unsigned char *p) {
     if (yych <= 0xDF) {
       if (yych <= ';') {
         if (yych <= 0x00)
-          goto yy549;
+          goto yy556;
         if (yych != '\n')
-          goto yy551;
+          goto yy558;
       } else {
         if (yych <= '<')
-          goto yy552;
+          goto yy559;
         if (yych <= 0x7F)
-          goto yy551;
+          goto yy558;
         if (yych >= 0xC2)
-          goto yy553;
+          goto yy560;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy554;
+          goto yy561;
         if (yych == 0xED)
-          goto yy556;
-        goto yy555;
+          goto yy563;
+        goto yy562;
       } else {
         if (yych <= 0xF0)
-          goto yy557;
+          goto yy564;
         if (yych <= 0xF3)
-          goto yy558;
+          goto yy565;
         if (yych <= 0xF4)
-          goto yy559;
+          goto yy566;
       }
     }
-  yy549:
+  yy556:
     ++p;
-  yy550 : { return 0; }
-  yy551:
+  yy557 : { return 0; }
+  yy558:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy550;
+        goto yy557;
       if (yych <= '\t')
-        goto yy561;
-      goto yy550;
+        goto yy568;
+      goto yy557;
     } else {
       if (yych <= 0x7F)
-        goto yy561;
+        goto yy568;
       if (yych <= 0xC1)
-        goto yy550;
+        goto yy557;
       if (yych <= 0xF4)
-        goto yy561;
-      goto yy550;
+        goto yy568;
+      goto yy557;
     }
-  yy552:
+  yy559:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '.') {
       if (yych <= 0x00)
-        goto yy550;
+        goto yy557;
       if (yych == '\n')
-        goto yy550;
-      goto yy561;
+        goto yy557;
+      goto yy568;
     } else {
       if (yych <= 0x7F) {
         if (yych <= '/')
-          goto yy572;
-        goto yy561;
+          goto yy579;
+        goto yy568;
       } else {
         if (yych <= 0xC1)
-          goto yy550;
+          goto yy557;
         if (yych <= 0xF4)
-          goto yy561;
-        goto yy550;
+          goto yy568;
+        goto yy557;
       }
     }
-  yy553:
+  yy560:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0xBF)
-      goto yy560;
-    goto yy550;
-  yy554:
+      goto yy567;
+    goto yy557;
+  yy561:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x9F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0xBF)
-      goto yy565;
-    goto yy550;
-  yy555:
+      goto yy572;
+    goto yy557;
+  yy562:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0xBF)
-      goto yy565;
-    goto yy550;
-  yy556:
+      goto yy572;
+    goto yy557;
+  yy563:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0x9F)
-      goto yy565;
-    goto yy550;
-  yy557:
+      goto yy572;
+    goto yy557;
+  yy564:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x8F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0xBF)
-      goto yy567;
-    goto yy550;
-  yy558:
+      goto yy574;
+    goto yy557;
+  yy565:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0xBF)
-      goto yy567;
-    goto yy550;
-  yy559:
+      goto yy574;
+    goto yy557;
+  yy566:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy550;
+      goto yy557;
     if (yych <= 0x8F)
-      goto yy567;
-    goto yy550;
-  yy560:
-    ++p;
-    yych = *p;
-  yy561:
+      goto yy574;
+    goto yy557;
+  yy567:
+    yych = *++p;
+  yy568:
     if (yybm[0 + yych] & 64) {
-      goto yy560;
+      goto yy567;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy562;
+          goto yy569;
         if (yych <= '<')
-          goto yy563;
+          goto yy570;
       } else {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
-        goto yy567;
+          goto yy573;
+        goto yy574;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy568;
+          goto yy575;
         if (yych <= 0xEF)
-          goto yy567;
-        goto yy569;
+          goto yy574;
+        goto yy576;
       } else {
         if (yych <= 0xF3)
-          goto yy570;
+          goto yy577;
         if (yych <= 0xF4)
-          goto yy571;
+          goto yy578;
       }
     }
-  yy562:
+  yy569:
     p = marker;
     if (yyaccept == 0) {
-      goto yy550;
+      goto yy557;
     } else {
-      goto yy582;
+      goto yy592;
     }
-  yy563:
-    ++p;
-    yych = *p;
+  yy570:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xDF) {
       if (yych <= '.') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
         if (yych <= '/')
-          goto yy572;
+          goto yy579;
         if (yych <= 0x7F)
-          goto yy560;
+          goto yy567;
         if (yych <= 0xC1)
-          goto yy562;
+          goto yy569;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych == 0xED)
-          goto yy568;
-        goto yy567;
+          goto yy575;
+        goto yy574;
       } else {
         if (yych <= 0xF0)
-          goto yy569;
+          goto yy576;
         if (yych <= 0xF3)
-          goto yy570;
+          goto yy577;
         if (yych <= 0xF4)
-          goto yy571;
-        goto yy562;
+          goto yy578;
+        goto yy569;
       }
     }
-  yy565:
-    ++p;
-    yych = *p;
+  yy572:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0xBF)
-      goto yy560;
-    goto yy562;
-  yy566:
-    ++p;
-    yych = *p;
+      goto yy567;
+    goto yy569;
+  yy573:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0xBF)
-      goto yy565;
-    goto yy562;
-  yy567:
-    ++p;
-    yych = *p;
+      goto yy572;
+    goto yy569;
+  yy574:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0xBF)
-      goto yy565;
-    goto yy562;
-  yy568:
-    ++p;
-    yych = *p;
+      goto yy572;
+    goto yy569;
+  yy575:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0x9F)
-      goto yy565;
-    goto yy562;
-  yy569:
-    ++p;
-    yych = *p;
+      goto yy572;
+    goto yy569;
+  yy576:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0xBF)
-      goto yy567;
-    goto yy562;
-  yy570:
-    ++p;
-    yych = *p;
+      goto yy574;
+    goto yy569;
+  yy577:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0xBF)
-      goto yy567;
-    goto yy562;
-  yy571:
-    ++p;
-    yych = *p;
+      goto yy574;
+    goto yy569;
+  yy578:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy562;
+      goto yy569;
     if (yych <= 0x8F)
-      goto yy567;
-    goto yy562;
-  yy572:
-    ++p;
-    yych = *p;
+      goto yy574;
+    goto yy569;
+  yy579:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 's') {
-      if (yych <= 'P') {
-        if (yych <= '\t') {
+      if (yych <= 'R') {
+        if (yych <= '\n') {
           if (yych <= 0x00)
-            goto yy562;
-          goto yy560;
+            goto yy569;
+          if (yych <= '\t')
+            goto yy567;
+          goto yy569;
         } else {
-          if (yych <= '\n')
-            goto yy562;
-          if (yych <= 'O')
-            goto yy560;
+          if (yych != 'P')
+            goto yy567;
         }
       } else {
         if (yych <= 'o') {
-          if (yych == 'S')
-            goto yy574;
-          goto yy560;
+          if (yych <= 'S')
+            goto yy581;
+          if (yych <= 'T')
+            goto yy582;
+          goto yy567;
         } else {
           if (yych <= 'p')
-            goto yy573;
+            goto yy580;
           if (yych <= 'r')
-            goto yy560;
-          goto yy574;
+            goto yy567;
+          goto yy581;
         }
       }
     } else {
       if (yych <= 0xEC) {
         if (yych <= 0xC1) {
+          if (yych <= 't')
+            goto yy582;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         } else {
           if (yych <= 0xDF)
-            goto yy565;
+            goto yy572;
           if (yych <= 0xE0)
-            goto yy566;
-          goto yy567;
+            goto yy573;
+          goto yy574;
         }
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xED)
-            goto yy568;
+            goto yy575;
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy573:
-    ++p;
-    yych = *p;
+  yy580:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
       if (yych <= 'Q') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
         if (yych <= 'q') {
           if (yych <= 'R')
-            goto yy575;
-          goto yy560;
+            goto yy583;
+          goto yy567;
         } else {
           if (yych <= 'r')
-            goto yy575;
+            goto yy583;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy574:
-    ++p;
-    yych = *p;
+  yy581:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 't') {
       if (yych <= 'C') {
         if (yych <= '\t') {
           if (yych <= 0x00)
-            goto yy562;
-          goto yy560;
+            goto yy569;
+          goto yy567;
         } else {
           if (yych <= '\n')
-            goto yy562;
+            goto yy569;
           if (yych <= 'B')
-            goto yy560;
-          goto yy576;
+            goto yy567;
+          goto yy584;
         }
       } else {
         if (yych <= 'b') {
           if (yych == 'T')
-            goto yy577;
-          goto yy560;
+            goto yy585;
+          goto yy567;
         } else {
           if (yych <= 'c')
-            goto yy576;
+            goto yy584;
           if (yych <= 's')
-            goto yy560;
-          goto yy577;
+            goto yy567;
+          goto yy585;
         }
       }
     } else {
       if (yych <= 0xEC) {
         if (yych <= 0xC1) {
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         } else {
           if (yych <= 0xDF)
-            goto yy565;
+            goto yy572;
           if (yych <= 0xE0)
-            goto yy566;
-          goto yy567;
+            goto yy573;
+          goto yy574;
         }
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xED)
-            goto yy568;
+            goto yy575;
           if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
+            goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy582:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'D') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 'd') {
+          if (yych <= 'E')
+            goto yy586;
+          goto yy567;
+        } else {
+          if (yych <= 'e')
+            goto yy586;
+          if (yych <= 0x7F)
             goto yy567;
           goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy575:
-    ++p;
-    yych = *p;
+  yy583:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
       if (yych <= 'D') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
         if (yych <= 'd') {
           if (yych <= 'E')
-            goto yy578;
-          goto yy560;
+            goto yy587;
+          goto yy567;
         } else {
           if (yych <= 'e')
+            goto yy587;
+          if (yych <= 0x7F)
+            goto yy567;
+          goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
             goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy584:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'Q') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 'q') {
+          if (yych <= 'R')
+            goto yy588;
+          goto yy567;
+        } else {
+          if (yych <= 'r')
+            goto yy588;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
+            goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy585:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'X') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 'x') {
+          if (yych <= 'Y')
+            goto yy589;
           goto yy567;
-        goto yy568;
+        } else {
+          if (yych <= 'y')
+            goto yy589;
+          if (yych <= 0x7F)
+            goto yy567;
+          goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
+            goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy586:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'W') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 'w') {
+          if (yych <= 'X')
+            goto yy590;
+          goto yy567;
+        } else {
+          if (yych <= 'x')
+            goto yy590;
+          if (yych <= 0x7F)
             goto yy567;
           goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy576:
-    ++p;
-    yych = *p;
+  yy587:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= '>')
+          goto yy591;
+        if (yych <= 0x7F)
+          goto yy567;
+        if (yych <= 0xC1)
+          goto yy569;
+        goto yy572;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych == 0xED)
+          goto yy575;
+        goto yy574;
+      } else {
+        if (yych <= 0xF0)
+          goto yy576;
+        if (yych <= 0xF3)
+          goto yy577;
+        if (yych <= 0xF4)
+          goto yy578;
+        goto yy569;
+      }
+    }
+  yy588:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
     }
     if (yych <= 0xC1) {
-      if (yych <= 'Q') {
+      if (yych <= 'H') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
-        if (yych <= 'q') {
-          if (yych <= 'R')
-            goto yy579;
-          goto yy560;
+        if (yych <= 'h') {
+          if (yych <= 'I')
+            goto yy593;
+          goto yy567;
+        } else {
+          if (yych <= 'i')
+            goto yy593;
+          if (yych <= 0x7F)
+            goto yy567;
+          goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
+            goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy589:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'K') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 'k') {
+          if (yych <= 'L')
+            goto yy583;
+          goto yy567;
+        } else {
+          if (yych <= 'l')
+            goto yy583;
+          if (yych <= 0x7F)
+            goto yy567;
+          goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
+            goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy590:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'S') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 's') {
+          if (yych <= 'T')
+            goto yy594;
+          goto yy567;
+        } else {
+          if (yych <= 't')
+            goto yy594;
+          if (yych <= 0x7F)
+            goto yy567;
+          goto yy569;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych <= 0xEC)
+          goto yy574;
+        goto yy575;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy574;
+          goto yy576;
+        } else {
+          if (yych <= 0xF3)
+            goto yy577;
+          if (yych <= 0xF4)
+            goto yy578;
+          goto yy569;
+        }
+      }
+    }
+  yy591:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy567;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy592;
+        if (yych <= '<')
+          goto yy570;
+      } else {
+        if (yych <= 0xDF)
+          goto yy572;
+        if (yych <= 0xE0)
+          goto yy573;
+        goto yy574;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy575;
+        if (yych <= 0xEF)
+          goto yy574;
+        goto yy576;
+      } else {
+        if (yych <= 0xF3)
+          goto yy577;
+        if (yych <= 0xF4)
+          goto yy578;
+      }
+    }
+  yy592 : { return (bufsize_t)(p - start); }
+  yy593:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy570;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'O') {
+        if (yych <= 0x00)
+          goto yy569;
+        if (yych == '\n')
+          goto yy569;
+        goto yy567;
+      } else {
+        if (yych <= 'o') {
+          if (yych <= 'P')
+            goto yy595;
+          goto yy567;
         } else {
-          if (yych <= 'r')
-            goto yy579;
+          if (yych <= 'p')
+            goto yy595;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy577:
-    ++p;
-    yych = *p;
+  yy594:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
-      if (yych <= 'X') {
+      if (yych <= '@') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
-        if (yych <= 'x') {
-          if (yych <= 'Y')
-            goto yy580;
-          goto yy560;
+        if (yych <= '`') {
+          if (yych <= 'A')
+            goto yy596;
+          goto yy567;
         } else {
-          if (yych <= 'y')
-            goto yy580;
+          if (yych <= 'a')
+            goto yy596;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
-        }
-      }
-    }
-  yy578:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy563;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych <= 0x00)
-          goto yy562;
-        if (yych == '\n')
-          goto yy562;
-        goto yy560;
-      } else {
-        if (yych <= '>')
-          goto yy581;
-        if (yych <= 0x7F)
-          goto yy560;
-        if (yych <= 0xC1)
-          goto yy562;
-        goto yy565;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy566;
-        if (yych == 0xED)
-          goto yy568;
-        goto yy567;
-      } else {
-        if (yych <= 0xF0)
+            goto yy578;
           goto yy569;
-        if (yych <= 0xF3)
-          goto yy570;
-        if (yych <= 0xF4)
-          goto yy571;
-        goto yy562;
+        }
       }
     }
-  yy579:
-    ++p;
-    yych = *p;
+  yy595:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
-      if (yych <= 'H') {
+      if (yych <= 'S') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
-        if (yych <= 'h') {
-          if (yych <= 'I')
-            goto yy583;
-          goto yy560;
+        if (yych <= 's') {
+          if (yych <= 'T')
+            goto yy587;
+          goto yy567;
         } else {
-          if (yych <= 'i')
-            goto yy583;
+          if (yych <= 't')
+            goto yy587;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy580:
-    ++p;
-    yych = *p;
+  yy596:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
-      if (yych <= 'K') {
+      if (yych <= 'Q') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
-        if (yych <= 'k') {
-          if (yych <= 'L')
-            goto yy575;
-          goto yy560;
+        if (yych <= 'q') {
+          if (yych >= 'S')
+            goto yy567;
         } else {
-          if (yych <= 'l')
-            goto yy575;
+          if (yych <= 'r')
+            goto yy597;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy581:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy560;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy582;
-        if (yych <= '<')
-          goto yy563;
-      } else {
-        if (yych <= 0xDF)
-          goto yy565;
-        if (yych <= 0xE0)
-          goto yy566;
-        goto yy567;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy568;
-        if (yych <= 0xEF)
-          goto yy567;
-        goto yy569;
-      } else {
-        if (yych <= 0xF3)
-          goto yy570;
-        if (yych <= 0xF4)
-          goto yy571;
-      }
-    }
-  yy582 : { return (bufsize_t)(p - start); }
-  yy583:
-    ++p;
-    yych = *p;
+  yy597:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
-      if (yych <= 'O') {
+      if (yych <= 'D') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
-        if (yych <= 'o') {
-          if (yych >= 'Q')
-            goto yy560;
+        if (yych <= 'd') {
+          if (yych >= 'F')
+            goto yy567;
         } else {
-          if (yych <= 'p')
-            goto yy584;
+          if (yych <= 'e')
+            goto yy598;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
-  yy584:
-    ++p;
-    yych = *p;
+  yy598:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy563;
+      goto yy570;
     }
     if (yych <= 0xC1) {
-      if (yych <= 'S') {
+      if (yych <= '@') {
         if (yych <= 0x00)
-          goto yy562;
+          goto yy569;
         if (yych == '\n')
-          goto yy562;
-        goto yy560;
+          goto yy569;
+        goto yy567;
       } else {
-        if (yych <= 's') {
-          if (yych <= 'T')
-            goto yy578;
-          goto yy560;
+        if (yych <= '`') {
+          if (yych <= 'A')
+            goto yy587;
+          goto yy567;
         } else {
-          if (yych <= 't')
-            goto yy578;
+          if (yych <= 'a')
+            goto yy587;
           if (yych <= 0x7F)
-            goto yy560;
-          goto yy562;
+            goto yy567;
+          goto yy569;
         }
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy565;
+          goto yy572;
         if (yych <= 0xE0)
-          goto yy566;
+          goto yy573;
         if (yych <= 0xEC)
-          goto yy567;
-        goto yy568;
+          goto yy574;
+        goto yy575;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy567;
-          goto yy569;
+            goto yy574;
+          goto yy576;
         } else {
           if (yych <= 0xF3)
-            goto yy570;
+            goto yy577;
           if (yych <= 0xF4)
-            goto yy571;
-          goto yy562;
+            goto yy578;
+          goto yy569;
         }
       }
     }
@@ -9897,337 +10052,326 @@ bufsize_t _scan_html_block_end_2(const unsigned char *p) {
     if (yych <= 0xDF) {
       if (yych <= ',') {
         if (yych <= 0x00)
-          goto yy587;
+          goto yy601;
         if (yych != '\n')
-          goto yy589;
+          goto yy603;
       } else {
         if (yych <= '-')
-          goto yy590;
+          goto yy604;
         if (yych <= 0x7F)
-          goto yy589;
+          goto yy603;
         if (yych >= 0xC2)
-          goto yy591;
+          goto yy605;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy592;
+          goto yy606;
         if (yych == 0xED)
-          goto yy594;
-        goto yy593;
+          goto yy608;
+        goto yy607;
       } else {
         if (yych <= 0xF0)
-          goto yy595;
+          goto yy609;
         if (yych <= 0xF3)
-          goto yy596;
+          goto yy610;
         if (yych <= 0xF4)
-          goto yy597;
+          goto yy611;
       }
     }
-  yy587:
+  yy601:
     ++p;
-  yy588 : { return 0; }
-  yy589:
+  yy602 : { return 0; }
+  yy603:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy588;
+        goto yy602;
       if (yych <= '\t')
-        goto yy599;
-      goto yy588;
+        goto yy613;
+      goto yy602;
     } else {
       if (yych <= 0x7F)
-        goto yy599;
+        goto yy613;
       if (yych <= 0xC1)
-        goto yy588;
+        goto yy602;
       if (yych <= 0xF4)
-        goto yy599;
-      goto yy588;
+        goto yy613;
+      goto yy602;
     }
-  yy590:
+  yy604:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yybm[0 + yych] & 128) {
-      goto yy609;
+      goto yy623;
     }
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy588;
+        goto yy602;
       if (yych <= '\t')
-        goto yy599;
-      goto yy588;
+        goto yy613;
+      goto yy602;
     } else {
       if (yych <= 0x7F)
-        goto yy599;
+        goto yy613;
       if (yych <= 0xC1)
-        goto yy588;
+        goto yy602;
       if (yych <= 0xF4)
-        goto yy599;
-      goto yy588;
+        goto yy613;
+      goto yy602;
     }
-  yy591:
+  yy605:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy588;
+      goto yy602;
     if (yych <= 0xBF)
-      goto yy598;
-    goto yy588;
-  yy592:
+      goto yy612;
+    goto yy602;
+  yy606:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x9F)
-      goto yy588;
-    if (yych <= 0xBF)
       goto yy602;
-    goto yy588;
-  yy593:
+    if (yych <= 0xBF)
+      goto yy616;
+    goto yy602;
+  yy607:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy588;
-    if (yych <= 0xBF)
       goto yy602;
-    goto yy588;
-  yy594:
+    if (yych <= 0xBF)
+      goto yy616;
+    goto yy602;
+  yy608:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy588;
-    if (yych <= 0x9F)
       goto yy602;
-    goto yy588;
-  yy595:
+    if (yych <= 0x9F)
+      goto yy616;
+    goto yy602;
+  yy609:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x8F)
-      goto yy588;
+      goto yy602;
     if (yych <= 0xBF)
-      goto yy604;
-    goto yy588;
-  yy596:
+      goto yy618;
+    goto yy602;
+  yy610:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy588;
+      goto yy602;
     if (yych <= 0xBF)
-      goto yy604;
-    goto yy588;
-  yy597:
+      goto yy618;
+    goto yy602;
+  yy611:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy588;
+      goto yy602;
     if (yych <= 0x8F)
-      goto yy604;
-    goto yy588;
-  yy598:
-    ++p;
-    yych = *p;
-  yy599:
+      goto yy618;
+    goto yy602;
+  yy612:
+    yych = *++p;
+  yy613:
     if (yybm[0 + yych] & 64) {
-      goto yy598;
+      goto yy612;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy600;
+          goto yy614;
         if (yych <= '-')
-          goto yy601;
+          goto yy615;
       } else {
         if (yych <= 0xDF)
-          goto yy602;
+          goto yy616;
         if (yych <= 0xE0)
-          goto yy603;
-        goto yy604;
+          goto yy617;
+        goto yy618;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy605;
+          goto yy619;
         if (yych <= 0xEF)
-          goto yy604;
-        goto yy606;
+          goto yy618;
+        goto yy620;
       } else {
         if (yych <= 0xF3)
-          goto yy607;
+          goto yy621;
         if (yych <= 0xF4)
-          goto yy608;
+          goto yy622;
       }
     }
-  yy600:
+  yy614:
     p = marker;
     if (yyaccept == 0) {
-      goto yy588;
+      goto yy602;
     } else {
-      goto yy612;
+      goto yy626;
     }
-  yy601:
-    ++p;
-    yych = *p;
+  yy615:
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy598;
+      goto yy612;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy600;
+          goto yy614;
         if (yych <= '-')
-          goto yy609;
-        goto yy600;
+          goto yy623;
+        goto yy614;
       } else {
         if (yych <= 0xDF)
-          goto yy602;
+          goto yy616;
         if (yych <= 0xE0)
-          goto yy603;
-        goto yy604;
+          goto yy617;
+        goto yy618;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy605;
+          goto yy619;
         if (yych <= 0xEF)
-          goto yy604;
-        goto yy606;
+          goto yy618;
+        goto yy620;
       } else {
         if (yych <= 0xF3)
-          goto yy607;
+          goto yy621;
         if (yych <= 0xF4)
-          goto yy608;
-        goto yy600;
+          goto yy622;
+        goto yy614;
       }
     }
-  yy602:
-    ++p;
-    yych = *p;
+  yy616:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0xBF)
-      goto yy598;
-    goto yy600;
-  yy603:
-    ++p;
-    yych = *p;
+      goto yy612;
+    goto yy614;
+  yy617:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0xBF)
-      goto yy602;
-    goto yy600;
-  yy604:
-    ++p;
-    yych = *p;
+      goto yy616;
+    goto yy614;
+  yy618:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0xBF)
-      goto yy602;
-    goto yy600;
-  yy605:
-    ++p;
-    yych = *p;
+      goto yy616;
+    goto yy614;
+  yy619:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0x9F)
-      goto yy602;
-    goto yy600;
-  yy606:
-    ++p;
-    yych = *p;
+      goto yy616;
+    goto yy614;
+  yy620:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0xBF)
-      goto yy604;
-    goto yy600;
-  yy607:
-    ++p;
-    yych = *p;
+      goto yy618;
+    goto yy614;
+  yy621:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0xBF)
-      goto yy604;
-    goto yy600;
-  yy608:
-    ++p;
-    yych = *p;
+      goto yy618;
+    goto yy614;
+  yy622:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy600;
+      goto yy614;
     if (yych <= 0x8F)
-      goto yy604;
-    goto yy600;
-  yy609:
-    ++p;
-    yych = *p;
+      goto yy618;
+    goto yy614;
+  yy623:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy609;
+      goto yy623;
     }
     if (yych <= 0xDF) {
       if (yych <= '=') {
         if (yych <= 0x00)
-          goto yy600;
+          goto yy614;
         if (yych == '\n')
-          goto yy600;
-        goto yy598;
+          goto yy614;
+        goto yy612;
       } else {
         if (yych <= '>')
-          goto yy611;
+          goto yy625;
         if (yych <= 0x7F)
-          goto yy598;
+          goto yy612;
         if (yych <= 0xC1)
-          goto yy600;
-        goto yy602;
+          goto yy614;
+        goto yy616;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy603;
+          goto yy617;
         if (yych == 0xED)
-          goto yy605;
-        goto yy604;
+          goto yy619;
+        goto yy618;
       } else {
         if (yych <= 0xF0)
-          goto yy606;
+          goto yy620;
         if (yych <= 0xF3)
-          goto yy607;
+          goto yy621;
         if (yych <= 0xF4)
-          goto yy608;
-        goto yy600;
+          goto yy622;
+        goto yy614;
       }
     }
-  yy611:
+  yy625:
     yyaccept = 1;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 64) {
-      goto yy598;
+      goto yy612;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy612;
+          goto yy626;
         if (yych <= '-')
-          goto yy601;
+          goto yy615;
       } else {
         if (yych <= 0xDF)
-          goto yy602;
+          goto yy616;
         if (yych <= 0xE0)
-          goto yy603;
-        goto yy604;
+          goto yy617;
+        goto yy618;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy605;
+          goto yy619;
         if (yych <= 0xEF)
-          goto yy604;
-        goto yy606;
+          goto yy618;
+        goto yy620;
       } else {
         if (yych <= 0xF3)
-          goto yy607;
+          goto yy621;
         if (yych <= 0xF4)
-          goto yy608;
+          goto yy622;
       }
     }
-  yy612 : { return (bufsize_t)(p - start); }
+  yy626 : { return (bufsize_t)(p - start); }
   }
 }
 
@@ -10260,302 +10404,292 @@ bufsize_t _scan_html_block_end_3(const unsigned char *p) {
     if (yych <= 0xDF) {
       if (yych <= '>') {
         if (yych <= 0x00)
-          goto yy615;
+          goto yy629;
         if (yych != '\n')
-          goto yy617;
+          goto yy631;
       } else {
         if (yych <= '?')
-          goto yy618;
+          goto yy632;
         if (yych <= 0x7F)
-          goto yy617;
+          goto yy631;
         if (yych >= 0xC2)
-          goto yy619;
+          goto yy633;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy620;
+          goto yy634;
         if (yych == 0xED)
-          goto yy622;
-        goto yy621;
+          goto yy636;
+        goto yy635;
       } else {
         if (yych <= 0xF0)
-          goto yy623;
+          goto yy637;
         if (yych <= 0xF3)
-          goto yy624;
+          goto yy638;
         if (yych <= 0xF4)
-          goto yy625;
+          goto yy639;
       }
     }
-  yy615:
+  yy629:
     ++p;
-  yy616 : { return 0; }
-  yy617:
+  yy630 : { return 0; }
+  yy631:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy616;
+        goto yy630;
       if (yych <= '\t')
-        goto yy627;
-      goto yy616;
+        goto yy641;
+      goto yy630;
     } else {
       if (yych <= 0x7F)
-        goto yy627;
+        goto yy641;
       if (yych <= 0xC1)
-        goto yy616;
+        goto yy630;
       if (yych <= 0xF4)
-        goto yy627;
-      goto yy616;
+        goto yy641;
+      goto yy630;
     }
-  yy618:
+  yy632:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '=') {
       if (yych <= 0x00)
-        goto yy616;
+        goto yy630;
       if (yych == '\n')
-        goto yy616;
-      goto yy627;
+        goto yy630;
+      goto yy641;
     } else {
       if (yych <= 0x7F) {
         if (yych <= '>')
-          goto yy638;
-        goto yy627;
+          goto yy652;
+        goto yy641;
       } else {
         if (yych <= 0xC1)
-          goto yy616;
+          goto yy630;
         if (yych <= 0xF4)
-          goto yy627;
-        goto yy616;
+          goto yy641;
+        goto yy630;
       }
     }
-  yy619:
+  yy633:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0xBF)
-      goto yy626;
-    goto yy616;
-  yy620:
+      goto yy640;
+    goto yy630;
+  yy634:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x9F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0xBF)
-      goto yy631;
-    goto yy616;
-  yy621:
+      goto yy645;
+    goto yy630;
+  yy635:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0xBF)
-      goto yy631;
-    goto yy616;
-  yy622:
+      goto yy645;
+    goto yy630;
+  yy636:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0x9F)
-      goto yy631;
-    goto yy616;
-  yy623:
+      goto yy645;
+    goto yy630;
+  yy637:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x8F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0xBF)
-      goto yy633;
-    goto yy616;
-  yy624:
+      goto yy647;
+    goto yy630;
+  yy638:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0xBF)
-      goto yy633;
-    goto yy616;
-  yy625:
+      goto yy647;
+    goto yy630;
+  yy639:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy616;
+      goto yy630;
     if (yych <= 0x8F)
-      goto yy633;
-    goto yy616;
-  yy626:
-    ++p;
-    yych = *p;
-  yy627:
+      goto yy647;
+    goto yy630;
+  yy640:
+    yych = *++p;
+  yy641:
     if (yybm[0 + yych] & 64) {
-      goto yy626;
+      goto yy640;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy628;
+          goto yy642;
         if (yych <= '?')
-          goto yy629;
+          goto yy643;
       } else {
         if (yych <= 0xDF)
-          goto yy631;
+          goto yy645;
         if (yych <= 0xE0)
-          goto yy632;
-        goto yy633;
+          goto yy646;
+        goto yy647;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy634;
+          goto yy648;
         if (yych <= 0xEF)
-          goto yy633;
-        goto yy635;
+          goto yy647;
+        goto yy649;
       } else {
         if (yych <= 0xF3)
-          goto yy636;
+          goto yy650;
         if (yych <= 0xF4)
-          goto yy637;
+          goto yy651;
       }
     }
-  yy628:
+  yy642:
     p = marker;
     if (yyaccept == 0) {
-      goto yy616;
+      goto yy630;
     } else {
-      goto yy639;
+      goto yy653;
     }
-  yy629:
-    ++p;
-    yych = *p;
+  yy643:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy629;
+      goto yy643;
     }
     if (yych <= 0xDF) {
       if (yych <= '=') {
         if (yych <= 0x00)
-          goto yy628;
+          goto yy642;
         if (yych == '\n')
-          goto yy628;
-        goto yy626;
+          goto yy642;
+        goto yy640;
       } else {
         if (yych <= '>')
-          goto yy638;
+          goto yy652;
         if (yych <= 0x7F)
-          goto yy626;
+          goto yy640;
         if (yych <= 0xC1)
-          goto yy628;
+          goto yy642;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy632;
+          goto yy646;
         if (yych == 0xED)
-          goto yy634;
-        goto yy633;
+          goto yy648;
+        goto yy647;
       } else {
         if (yych <= 0xF0)
-          goto yy635;
+          goto yy649;
         if (yych <= 0xF3)
-          goto yy636;
+          goto yy650;
         if (yych <= 0xF4)
-          goto yy637;
-        goto yy628;
+          goto yy651;
+        goto yy642;
       }
     }
-  yy631:
-    ++p;
-    yych = *p;
+  yy645:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0xBF)
-      goto yy626;
-    goto yy628;
-  yy632:
-    ++p;
-    yych = *p;
+      goto yy640;
+    goto yy642;
+  yy646:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0xBF)
-      goto yy631;
-    goto yy628;
-  yy633:
-    ++p;
-    yych = *p;
+      goto yy645;
+    goto yy642;
+  yy647:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0xBF)
-      goto yy631;
-    goto yy628;
-  yy634:
-    ++p;
-    yych = *p;
+      goto yy645;
+    goto yy642;
+  yy648:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0x9F)
-      goto yy631;
-    goto yy628;
-  yy635:
-    ++p;
-    yych = *p;
+      goto yy645;
+    goto yy642;
+  yy649:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0xBF)
-      goto yy633;
-    goto yy628;
-  yy636:
-    ++p;
-    yych = *p;
+      goto yy647;
+    goto yy642;
+  yy650:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0xBF)
-      goto yy633;
-    goto yy628;
-  yy637:
-    ++p;
-    yych = *p;
+      goto yy647;
+    goto yy642;
+  yy651:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy628;
+      goto yy642;
     if (yych <= 0x8F)
-      goto yy633;
-    goto yy628;
-  yy638:
+      goto yy647;
+    goto yy642;
+  yy652:
     yyaccept = 1;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 64) {
-      goto yy626;
+      goto yy640;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy639;
+          goto yy653;
         if (yych <= '?')
-          goto yy629;
+          goto yy643;
       } else {
         if (yych <= 0xDF)
-          goto yy631;
+          goto yy645;
         if (yych <= 0xE0)
-          goto yy632;
-        goto yy633;
+          goto yy646;
+        goto yy647;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy634;
+          goto yy648;
         if (yych <= 0xEF)
-          goto yy633;
-        goto yy635;
+          goto yy647;
+        goto yy649;
       } else {
         if (yych <= 0xF3)
-          goto yy636;
+          goto yy650;
         if (yych <= 0xF4)
-          goto yy637;
+          goto yy651;
       }
     }
-  yy639 : { return (bufsize_t)(p - start); }
+  yy653 : { return (bufsize_t)(p - start); }
   }
 }
 
@@ -10590,246 +10724,237 @@ bufsize_t _scan_html_block_end_4(const unsigned char *p) {
     };
     yych = *p;
     if (yybm[0 + yych] & 64) {
-      goto yy645;
+      goto yy659;
     }
     if (yych <= 0xE0) {
       if (yych <= '\n') {
         if (yych <= 0x00)
-          goto yy642;
+          goto yy656;
         if (yych <= '\t')
-          goto yy644;
+          goto yy658;
       } else {
         if (yych <= 0x7F)
-          goto yy644;
+          goto yy658;
         if (yych <= 0xC1)
-          goto yy642;
+          goto yy656;
         if (yych <= 0xDF)
-          goto yy648;
-        goto yy649;
+          goto yy662;
+        goto yy663;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy651;
-        goto yy650;
+          goto yy665;
+        goto yy664;
       } else {
         if (yych <= 0xF0)
-          goto yy652;
+          goto yy666;
         if (yych <= 0xF3)
-          goto yy653;
+          goto yy667;
         if (yych <= 0xF4)
-          goto yy654;
+          goto yy668;
       }
     }
-  yy642:
+  yy656:
     ++p;
-  yy643 : { return 0; }
-  yy644:
+  yy657 : { return 0; }
+  yy658:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy643;
+        goto yy657;
       if (yych <= '\t')
-        goto yy656;
-      goto yy643;
+        goto yy670;
+      goto yy657;
     } else {
       if (yych <= 0x7F)
-        goto yy656;
+        goto yy670;
       if (yych <= 0xC1)
-        goto yy643;
+        goto yy657;
       if (yych <= 0xF4)
-        goto yy656;
-      goto yy643;
+        goto yy670;
+      goto yy657;
     }
-  yy645:
+  yy659:
     yyaccept = 1;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 128) {
-      goto yy655;
+      goto yy669;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy647;
+          goto yy661;
         if (yych <= '>')
-          goto yy645;
+          goto yy659;
       } else {
         if (yych <= 0xDF)
-          goto yy658;
+          goto yy672;
         if (yych <= 0xE0)
-          goto yy659;
-        goto yy660;
+          goto yy673;
+        goto yy674;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy661;
+          goto yy675;
         if (yych <= 0xEF)
-          goto yy660;
-        goto yy662;
+          goto yy674;
+        goto yy676;
       } else {
         if (yych <= 0xF3)
-          goto yy663;
+          goto yy677;
         if (yych <= 0xF4)
-          goto yy664;
+          goto yy678;
       }
     }
-  yy647 : { return (bufsize_t)(p - start); }
-  yy648:
+  yy661 : { return (bufsize_t)(p - start); }
+  yy662:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0xBF)
-      goto yy655;
-    goto yy643;
-  yy649:
+      goto yy669;
+    goto yy657;
+  yy663:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x9F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0xBF)
-      goto yy658;
-    goto yy643;
-  yy650:
+      goto yy672;
+    goto yy657;
+  yy664:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0xBF)
-      goto yy658;
-    goto yy643;
-  yy651:
+      goto yy672;
+    goto yy657;
+  yy665:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0x9F)
-      goto yy658;
-    goto yy643;
-  yy652:
+      goto yy672;
+    goto yy657;
+  yy666:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x8F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0xBF)
-      goto yy660;
-    goto yy643;
-  yy653:
+      goto yy674;
+    goto yy657;
+  yy667:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0xBF)
-      goto yy660;
-    goto yy643;
-  yy654:
+      goto yy674;
+    goto yy657;
+  yy668:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy643;
+      goto yy657;
     if (yych <= 0x8F)
-      goto yy660;
-    goto yy643;
-  yy655:
-    ++p;
-    yych = *p;
-  yy656:
+      goto yy674;
+    goto yy657;
+  yy669:
+    yych = *++p;
+  yy670:
     if (yybm[0 + yych] & 128) {
-      goto yy655;
+      goto yy669;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy657;
+          goto yy671;
         if (yych <= '>')
-          goto yy645;
+          goto yy659;
       } else {
         if (yych <= 0xDF)
-          goto yy658;
+          goto yy672;
         if (yych <= 0xE0)
-          goto yy659;
-        goto yy660;
+          goto yy673;
+        goto yy674;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy661;
+          goto yy675;
         if (yych <= 0xEF)
-          goto yy660;
-        goto yy662;
+          goto yy674;
+        goto yy676;
       } else {
         if (yych <= 0xF3)
-          goto yy663;
+          goto yy677;
         if (yych <= 0xF4)
-          goto yy664;
+          goto yy678;
       }
     }
-  yy657:
+  yy671:
     p = marker;
     if (yyaccept == 0) {
-      goto yy643;
+      goto yy657;
     } else {
-      goto yy647;
+      goto yy661;
     }
-  yy658:
-    ++p;
-    yych = *p;
+  yy672:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0xBF)
-      goto yy655;
-    goto yy657;
-  yy659:
-    ++p;
-    yych = *p;
+      goto yy669;
+    goto yy671;
+  yy673:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0xBF)
-      goto yy658;
-    goto yy657;
-  yy660:
-    ++p;
-    yych = *p;
+      goto yy672;
+    goto yy671;
+  yy674:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0xBF)
-      goto yy658;
-    goto yy657;
-  yy661:
-    ++p;
-    yych = *p;
+      goto yy672;
+    goto yy671;
+  yy675:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0x9F)
-      goto yy658;
-    goto yy657;
-  yy662:
-    ++p;
-    yych = *p;
+      goto yy672;
+    goto yy671;
+  yy676:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0xBF)
-      goto yy660;
-    goto yy657;
-  yy663:
-    ++p;
-    yych = *p;
+      goto yy674;
+    goto yy671;
+  yy677:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0xBF)
-      goto yy660;
-    goto yy657;
-  yy664:
-    ++p;
-    yych = *p;
+      goto yy674;
+    goto yy671;
+  yy678:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy657;
+      goto yy671;
     if (yych <= 0x8F)
-      goto yy660;
-    goto yy657;
+      goto yy674;
+    goto yy671;
   }
 }
 
@@ -10862,337 +10987,326 @@ bufsize_t _scan_html_block_end_5(const unsigned char *p) {
     if (yych <= 0xDF) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy667;
+          goto yy681;
         if (yych != '\n')
-          goto yy669;
+          goto yy683;
       } else {
         if (yych <= ']')
-          goto yy670;
+          goto yy684;
         if (yych <= 0x7F)
-          goto yy669;
+          goto yy683;
         if (yych >= 0xC2)
-          goto yy671;
+          goto yy685;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy672;
+          goto yy686;
         if (yych == 0xED)
-          goto yy674;
-        goto yy673;
+          goto yy688;
+        goto yy687;
       } else {
         if (yych <= 0xF0)
-          goto yy675;
+          goto yy689;
         if (yych <= 0xF3)
-          goto yy676;
+          goto yy690;
         if (yych <= 0xF4)
-          goto yy677;
+          goto yy691;
       }
     }
-  yy667:
+  yy681:
     ++p;
-  yy668 : { return 0; }
-  yy669:
+  yy682 : { return 0; }
+  yy683:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy668;
+        goto yy682;
       if (yych <= '\t')
-        goto yy679;
-      goto yy668;
+        goto yy693;
+      goto yy682;
     } else {
       if (yych <= 0x7F)
-        goto yy679;
+        goto yy693;
       if (yych <= 0xC1)
-        goto yy668;
+        goto yy682;
       if (yych <= 0xF4)
-        goto yy679;
-      goto yy668;
+        goto yy693;
+      goto yy682;
     }
-  yy670:
+  yy684:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yybm[0 + yych] & 128) {
-      goto yy689;
+      goto yy703;
     }
     if (yych <= '\n') {
       if (yych <= 0x00)
-        goto yy668;
+        goto yy682;
       if (yych <= '\t')
-        goto yy679;
-      goto yy668;
+        goto yy693;
+      goto yy682;
     } else {
       if (yych <= 0x7F)
-        goto yy679;
+        goto yy693;
       if (yych <= 0xC1)
-        goto yy668;
+        goto yy682;
       if (yych <= 0xF4)
-        goto yy679;
-      goto yy668;
+        goto yy693;
+      goto yy682;
     }
-  yy671:
+  yy685:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy668;
+      goto yy682;
     if (yych <= 0xBF)
-      goto yy678;
-    goto yy668;
-  yy672:
+      goto yy692;
+    goto yy682;
+  yy686:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x9F)
-      goto yy668;
-    if (yych <= 0xBF)
       goto yy682;
-    goto yy668;
-  yy673:
+    if (yych <= 0xBF)
+      goto yy696;
+    goto yy682;
+  yy687:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy668;
-    if (yych <= 0xBF)
       goto yy682;
-    goto yy668;
-  yy674:
+    if (yych <= 0xBF)
+      goto yy696;
+    goto yy682;
+  yy688:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy668;
-    if (yych <= 0x9F)
       goto yy682;
-    goto yy668;
-  yy675:
+    if (yych <= 0x9F)
+      goto yy696;
+    goto yy682;
+  yy689:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x8F)
-      goto yy668;
+      goto yy682;
     if (yych <= 0xBF)
-      goto yy684;
-    goto yy668;
-  yy676:
+      goto yy698;
+    goto yy682;
+  yy690:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy668;
+      goto yy682;
     if (yych <= 0xBF)
-      goto yy684;
-    goto yy668;
-  yy677:
+      goto yy698;
+    goto yy682;
+  yy691:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x7F)
-      goto yy668;
+      goto yy682;
     if (yych <= 0x8F)
-      goto yy684;
-    goto yy668;
-  yy678:
-    ++p;
-    yych = *p;
-  yy679:
+      goto yy698;
+    goto yy682;
+  yy692:
+    yych = *++p;
+  yy693:
     if (yybm[0 + yych] & 64) {
-      goto yy678;
+      goto yy692;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy680;
+          goto yy694;
         if (yych <= ']')
-          goto yy681;
+          goto yy695;
       } else {
         if (yych <= 0xDF)
-          goto yy682;
+          goto yy696;
         if (yych <= 0xE0)
-          goto yy683;
-        goto yy684;
+          goto yy697;
+        goto yy698;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy685;
+          goto yy699;
         if (yych <= 0xEF)
-          goto yy684;
-        goto yy686;
+          goto yy698;
+        goto yy700;
       } else {
         if (yych <= 0xF3)
-          goto yy687;
+          goto yy701;
         if (yych <= 0xF4)
-          goto yy688;
+          goto yy702;
       }
     }
-  yy680:
+  yy694:
     p = marker;
     if (yyaccept == 0) {
-      goto yy668;
+      goto yy682;
     } else {
-      goto yy692;
+      goto yy706;
     }
-  yy681:
-    ++p;
-    yych = *p;
+  yy695:
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy678;
+      goto yy692;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy680;
+          goto yy694;
         if (yych <= ']')
-          goto yy689;
-        goto yy680;
+          goto yy703;
+        goto yy694;
       } else {
         if (yych <= 0xDF)
-          goto yy682;
+          goto yy696;
         if (yych <= 0xE0)
-          goto yy683;
-        goto yy684;
+          goto yy697;
+        goto yy698;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy685;
+          goto yy699;
         if (yych <= 0xEF)
-          goto yy684;
-        goto yy686;
+          goto yy698;
+        goto yy700;
       } else {
         if (yych <= 0xF3)
-          goto yy687;
+          goto yy701;
         if (yych <= 0xF4)
-          goto yy688;
-        goto yy680;
+          goto yy702;
+        goto yy694;
       }
     }
-  yy682:
-    ++p;
-    yych = *p;
+  yy696:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0xBF)
-      goto yy678;
-    goto yy680;
-  yy683:
-    ++p;
-    yych = *p;
+      goto yy692;
+    goto yy694;
+  yy697:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0xBF)
-      goto yy682;
-    goto yy680;
-  yy684:
-    ++p;
-    yych = *p;
+      goto yy696;
+    goto yy694;
+  yy698:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0xBF)
-      goto yy682;
-    goto yy680;
-  yy685:
-    ++p;
-    yych = *p;
+      goto yy696;
+    goto yy694;
+  yy699:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0x9F)
-      goto yy682;
-    goto yy680;
-  yy686:
-    ++p;
-    yych = *p;
+      goto yy696;
+    goto yy694;
+  yy700:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0xBF)
-      goto yy684;
-    goto yy680;
-  yy687:
-    ++p;
-    yych = *p;
+      goto yy698;
+    goto yy694;
+  yy701:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0xBF)
-      goto yy684;
-    goto yy680;
-  yy688:
-    ++p;
-    yych = *p;
+      goto yy698;
+    goto yy694;
+  yy702:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy680;
+      goto yy694;
     if (yych <= 0x8F)
-      goto yy684;
-    goto yy680;
-  yy689:
-    ++p;
-    yych = *p;
+      goto yy698;
+    goto yy694;
+  yy703:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy689;
+      goto yy703;
     }
     if (yych <= 0xDF) {
       if (yych <= '=') {
         if (yych <= 0x00)
-          goto yy680;
+          goto yy694;
         if (yych == '\n')
-          goto yy680;
-        goto yy678;
+          goto yy694;
+        goto yy692;
       } else {
         if (yych <= '>')
-          goto yy691;
+          goto yy705;
         if (yych <= 0x7F)
-          goto yy678;
+          goto yy692;
         if (yych <= 0xC1)
-          goto yy680;
-        goto yy682;
+          goto yy694;
+        goto yy696;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy683;
+          goto yy697;
         if (yych == 0xED)
-          goto yy685;
-        goto yy684;
+          goto yy699;
+        goto yy698;
       } else {
         if (yych <= 0xF0)
-          goto yy686;
+          goto yy700;
         if (yych <= 0xF3)
-          goto yy687;
+          goto yy701;
         if (yych <= 0xF4)
-          goto yy688;
-        goto yy680;
+          goto yy702;
+        goto yy694;
       }
     }
-  yy691:
+  yy705:
     yyaccept = 1;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 64) {
-      goto yy678;
+      goto yy692;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= '\n')
-          goto yy692;
+          goto yy706;
         if (yych <= ']')
-          goto yy681;
+          goto yy695;
       } else {
         if (yych <= 0xDF)
-          goto yy682;
+          goto yy696;
         if (yych <= 0xE0)
-          goto yy683;
-        goto yy684;
+          goto yy697;
+        goto yy698;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy685;
+          goto yy699;
         if (yych <= 0xEF)
-          goto yy684;
-        goto yy686;
+          goto yy698;
+        goto yy700;
       } else {
         if (yych <= 0xF3)
-          goto yy687;
+          goto yy701;
         if (yych <= 0xF4)
-          goto yy688;
+          goto yy702;
       }
     }
-  yy692 : { return (bufsize_t)(p - start); }
+  yy706 : { return (bufsize_t)(p - start); }
   }
 }
 
@@ -11230,563 +11344,533 @@ bufsize_t _scan_link_title(const unsigned char *p) {
     yych = *p;
     if (yych <= '&') {
       if (yych == '"')
-        goto yy697;
+        goto yy711;
     } else {
       if (yych <= '\'')
-        goto yy698;
+        goto yy712;
       if (yych <= '(')
-        goto yy699;
+        goto yy713;
     }
     ++p;
-  yy696 : { return 0; }
-  yy697:
+  yy710 : { return 0; }
+  yy711:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x00)
-      goto yy696;
+      goto yy710;
     if (yych <= 0x7F)
-      goto yy701;
+      goto yy715;
     if (yych <= 0xC1)
-      goto yy696;
+      goto yy710;
     if (yych <= 0xF4)
-      goto yy701;
-    goto yy696;
-  yy698:
+      goto yy715;
+    goto yy710;
+  yy712:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= 0x00)
-      goto yy696;
+      goto yy710;
     if (yych <= 0x7F)
-      goto yy715;
+      goto yy729;
     if (yych <= 0xC1)
-      goto yy696;
+      goto yy710;
     if (yych <= 0xF4)
-      goto yy715;
-    goto yy696;
-  yy699:
+      goto yy729;
+    goto yy710;
+  yy713:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych <= '(') {
       if (yych <= 0x00)
-        goto yy696;
+        goto yy710;
       if (yych <= '\'')
-        goto yy728;
-      goto yy696;
+        goto yy742;
+      goto yy710;
     } else {
       if (yych <= 0x7F)
-        goto yy728;
+        goto yy742;
       if (yych <= 0xC1)
-        goto yy696;
+        goto yy710;
       if (yych <= 0xF4)
-        goto yy728;
-      goto yy696;
+        goto yy742;
+      goto yy710;
     }
-  yy700:
-    ++p;
-    yych = *p;
-  yy701:
+  yy714:
+    yych = *++p;
+  yy715:
     if (yybm[0 + yych] & 16) {
-      goto yy700;
+      goto yy714;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy702;
+          goto yy716;
         if (yych <= '"')
-          goto yy703;
-        goto yy705;
+          goto yy717;
+        goto yy719;
       } else {
         if (yych <= 0xC1)
-          goto yy702;
+          goto yy716;
         if (yych <= 0xDF)
-          goto yy707;
-        goto yy708;
+          goto yy721;
+        goto yy722;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy710;
-        goto yy709;
+          goto yy724;
+        goto yy723;
       } else {
         if (yych <= 0xF0)
-          goto yy711;
+          goto yy725;
         if (yych <= 0xF3)
-          goto yy712;
+          goto yy726;
         if (yych <= 0xF4)
-          goto yy713;
+          goto yy727;
       }
     }
-  yy702:
+  yy716:
     p = marker;
     if (yyaccept <= 1) {
       if (yyaccept == 0) {
-        goto yy696;
+        goto yy710;
       } else {
-        goto yy704;
+        goto yy718;
       }
     } else {
       if (yyaccept == 2) {
-        goto yy717;
+        goto yy731;
       } else {
-        goto yy730;
+        goto yy744;
       }
     }
-  yy703:
+  yy717:
     ++p;
-  yy704 : { return (bufsize_t)(p - start); }
-  yy705:
-    ++p;
-    yych = *p;
+  yy718 : { return (bufsize_t)(p - start); }
+  yy719:
+    yych = *++p;
     if (yybm[0 + yych] & 16) {
-      goto yy700;
+      goto yy714;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy702;
+          goto yy716;
         if (yych <= '"')
-          goto yy740;
-        goto yy705;
+          goto yy754;
+        goto yy719;
       } else {
         if (yych <= 0xC1)
-          goto yy702;
+          goto yy716;
         if (yych >= 0xE0)
-          goto yy708;
+          goto yy722;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy710;
-        goto yy709;
+          goto yy724;
+        goto yy723;
       } else {
         if (yych <= 0xF0)
-          goto yy711;
+          goto yy725;
         if (yych <= 0xF3)
-          goto yy712;
+          goto yy726;
         if (yych <= 0xF4)
-          goto yy713;
-        goto yy702;
+          goto yy727;
+        goto yy716;
       }
     }
-  yy707:
-    ++p;
-    yych = *p;
+  yy721:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy700;
-    goto yy702;
-  yy708:
-    ++p;
-    yych = *p;
+      goto yy714;
+    goto yy716;
+  yy722:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy707;
-    goto yy702;
-  yy709:
-    ++p;
-    yych = *p;
+      goto yy721;
+    goto yy716;
+  yy723:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy707;
-    goto yy702;
-  yy710:
-    ++p;
-    yych = *p;
+      goto yy721;
+    goto yy716;
+  yy724:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0x9F)
-      goto yy707;
-    goto yy702;
-  yy711:
-    ++p;
-    yych = *p;
+      goto yy721;
+    goto yy716;
+  yy725:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy709;
-    goto yy702;
-  yy712:
-    ++p;
-    yych = *p;
+      goto yy723;
+    goto yy716;
+  yy726:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy709;
-    goto yy702;
-  yy713:
-    ++p;
-    yych = *p;
+      goto yy723;
+    goto yy716;
+  yy727:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0x8F)
-      goto yy709;
-    goto yy702;
-  yy714:
-    ++p;
-    yych = *p;
-  yy715:
+      goto yy723;
+    goto yy716;
+  yy728:
+    yych = *++p;
+  yy729:
     if (yybm[0 + yych] & 64) {
-      goto yy714;
+      goto yy728;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy702;
+          goto yy716;
         if (yych >= '(')
-          goto yy718;
+          goto yy732;
       } else {
         if (yych <= 0xC1)
-          goto yy702;
+          goto yy716;
         if (yych <= 0xDF)
-          goto yy720;
-        goto yy721;
+          goto yy734;
+        goto yy735;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy723;
-        goto yy722;
+          goto yy737;
+        goto yy736;
       } else {
         if (yych <= 0xF0)
-          goto yy724;
+          goto yy738;
         if (yych <= 0xF3)
-          goto yy725;
+          goto yy739;
         if (yych <= 0xF4)
-          goto yy726;
-        goto yy702;
+          goto yy740;
+        goto yy716;
       }
     }
-  yy716:
+  yy730:
     ++p;
-  yy717 : { return (bufsize_t)(p - start); }
-  yy718:
-    ++p;
-    yych = *p;
+  yy731 : { return (bufsize_t)(p - start); }
+  yy732:
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy714;
+      goto yy728;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy702;
+          goto yy716;
         if (yych <= '\'')
-          goto yy741;
-        goto yy718;
+          goto yy755;
+        goto yy732;
       } else {
         if (yych <= 0xC1)
-          goto yy702;
+          goto yy716;
         if (yych >= 0xE0)
-          goto yy721;
+          goto yy735;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy723;
-        goto yy722;
+          goto yy737;
+        goto yy736;
       } else {
         if (yych <= 0xF0)
-          goto yy724;
+          goto yy738;
         if (yych <= 0xF3)
-          goto yy725;
+          goto yy739;
         if (yych <= 0xF4)
-          goto yy726;
-        goto yy702;
+          goto yy740;
+        goto yy716;
       }
     }
-  yy720:
-    ++p;
-    yych = *p;
+  yy734:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy714;
-    goto yy702;
-  yy721:
-    ++p;
-    yych = *p;
+      goto yy728;
+    goto yy716;
+  yy735:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy720;
-    goto yy702;
-  yy722:
-    ++p;
-    yych = *p;
+      goto yy734;
+    goto yy716;
+  yy736:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy720;
-    goto yy702;
-  yy723:
-    ++p;
-    yych = *p;
+      goto yy734;
+    goto yy716;
+  yy737:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0x9F)
-      goto yy720;
-    goto yy702;
-  yy724:
-    ++p;
-    yych = *p;
+      goto yy734;
+    goto yy716;
+  yy738:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy722;
-    goto yy702;
-  yy725:
-    ++p;
-    yych = *p;
+      goto yy736;
+    goto yy716;
+  yy739:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy722;
-    goto yy702;
-  yy726:
-    ++p;
-    yych = *p;
+      goto yy736;
+    goto yy716;
+  yy740:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0x8F)
-      goto yy722;
-    goto yy702;
-  yy727:
-    ++p;
-    yych = *p;
-  yy728:
+      goto yy736;
+    goto yy716;
+  yy741:
+    yych = *++p;
+  yy742:
     if (yybm[0 + yych] & 128) {
-      goto yy727;
+      goto yy741;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= '(')
-          goto yy702;
+          goto yy716;
         if (yych >= '*')
-          goto yy731;
+          goto yy745;
       } else {
         if (yych <= 0xC1)
-          goto yy702;
+          goto yy716;
         if (yych <= 0xDF)
-          goto yy733;
-        goto yy734;
+          goto yy747;
+        goto yy748;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy736;
-        goto yy735;
+          goto yy750;
+        goto yy749;
       } else {
         if (yych <= 0xF0)
-          goto yy737;
+          goto yy751;
         if (yych <= 0xF3)
-          goto yy738;
+          goto yy752;
         if (yych <= 0xF4)
-          goto yy739;
-        goto yy702;
+          goto yy753;
+        goto yy716;
       }
     }
-  yy729:
-    ++p;
-  yy730 : { return (bufsize_t)(p - start); }
-  yy731:
+  yy743:
     ++p;
-    yych = *p;
+  yy744 : { return (bufsize_t)(p - start); }
+  yy745:
+    yych = *++p;
     if (yych <= 0xDF) {
       if (yych <= '[') {
         if (yych <= 0x00)
-          goto yy702;
+          goto yy716;
         if (yych == ')')
-          goto yy742;
-        goto yy727;
+          goto yy756;
+        goto yy741;
       } else {
         if (yych <= '\\')
-          goto yy731;
+          goto yy745;
         if (yych <= 0x7F)
-          goto yy727;
+          goto yy741;
         if (yych <= 0xC1)
-          goto yy702;
+          goto yy716;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy734;
+          goto yy748;
         if (yych == 0xED)
-          goto yy736;
-        goto yy735;
+          goto yy750;
+        goto yy749;
       } else {
         if (yych <= 0xF0)
-          goto yy737;
+          goto yy751;
         if (yych <= 0xF3)
-          goto yy738;
+          goto yy752;
         if (yych <= 0xF4)
-          goto yy739;
-        goto yy702;
+          goto yy753;
+        goto yy716;
       }
     }
-  yy733:
-    ++p;
-    yych = *p;
+  yy747:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy727;
-    goto yy702;
-  yy734:
-    ++p;
-    yych = *p;
+      goto yy741;
+    goto yy716;
+  yy748:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy733;
-    goto yy702;
-  yy735:
-    ++p;
-    yych = *p;
+      goto yy747;
+    goto yy716;
+  yy749:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy733;
-    goto yy702;
-  yy736:
-    ++p;
-    yych = *p;
+      goto yy747;
+    goto yy716;
+  yy750:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0x9F)
-      goto yy733;
-    goto yy702;
-  yy737:
-    ++p;
-    yych = *p;
+      goto yy747;
+    goto yy716;
+  yy751:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy735;
-    goto yy702;
-  yy738:
-    ++p;
-    yych = *p;
+      goto yy749;
+    goto yy716;
+  yy752:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0xBF)
-      goto yy735;
-    goto yy702;
-  yy739:
-    ++p;
-    yych = *p;
+      goto yy749;
+    goto yy716;
+  yy753:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy702;
+      goto yy716;
     if (yych <= 0x8F)
-      goto yy735;
-    goto yy702;
-  yy740:
+      goto yy749;
+    goto yy716;
+  yy754:
     yyaccept = 1;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 16) {
-      goto yy700;
+      goto yy714;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy704;
+          goto yy718;
         if (yych <= '"')
-          goto yy703;
-        goto yy705;
+          goto yy717;
+        goto yy719;
       } else {
         if (yych <= 0xC1)
-          goto yy704;
+          goto yy718;
         if (yych <= 0xDF)
-          goto yy707;
-        goto yy708;
+          goto yy721;
+        goto yy722;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy710;
-        goto yy709;
+          goto yy724;
+        goto yy723;
       } else {
         if (yych <= 0xF0)
-          goto yy711;
+          goto yy725;
         if (yych <= 0xF3)
-          goto yy712;
+          goto yy726;
         if (yych <= 0xF4)
-          goto yy713;
-        goto yy704;
+          goto yy727;
+        goto yy718;
       }
     }
-  yy741:
+  yy755:
     yyaccept = 2;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 64) {
-      goto yy714;
+      goto yy728;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= 0x00)
-          goto yy717;
+          goto yy731;
         if (yych <= '\'')
-          goto yy716;
-        goto yy718;
+          goto yy730;
+        goto yy732;
       } else {
         if (yych <= 0xC1)
-          goto yy717;
+          goto yy731;
         if (yych <= 0xDF)
-          goto yy720;
-        goto yy721;
+          goto yy734;
+        goto yy735;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy723;
-        goto yy722;
+          goto yy737;
+        goto yy736;
       } else {
         if (yych <= 0xF0)
-          goto yy724;
+          goto yy738;
         if (yych <= 0xF3)
-          goto yy725;
+          goto yy739;
         if (yych <= 0xF4)
-          goto yy726;
-        goto yy717;
+          goto yy740;
+        goto yy731;
       }
     }
-  yy742:
+  yy756:
     yyaccept = 3;
-    marker = ++p;
-    yych = *p;
+    yych = *(marker = ++p);
     if (yybm[0 + yych] & 128) {
-      goto yy727;
+      goto yy741;
     }
     if (yych <= 0xE0) {
       if (yych <= '\\') {
         if (yych <= '(')
-          goto yy730;
+          goto yy744;
         if (yych <= ')')
-          goto yy729;
-        goto yy731;
+          goto yy743;
+        goto yy745;
       } else {
         if (yych <= 0xC1)
-          goto yy730;
+          goto yy744;
         if (yych <= 0xDF)
-          goto yy733;
-        goto yy734;
+          goto yy747;
+        goto yy748;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy736;
-        goto yy735;
+          goto yy750;
+        goto yy749;
       } else {
         if (yych <= 0xF0)
-          goto yy737;
+          goto yy751;
         if (yych <= 0xF3)
-          goto yy738;
+          goto yy752;
         if (yych <= 0xF4)
-          goto yy739;
-        goto yy730;
+          goto yy753;
+        goto yy744;
       }
     }
   }
@@ -11815,15 +11899,14 @@ bufsize_t _scan_spacechars(const unsigned char *p) {
     };
     yych = *p;
     if (yybm[0 + yych] & 128) {
-      goto yy747;
+      goto yy761;
     }
     ++p;
     { return 0; }
-  yy747:
-    ++p;
-    yych = *p;
+  yy761:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy747;
+      goto yy761;
     }
     { return (bufsize_t)(p - start); }
   }
@@ -11852,116 +11935,115 @@ bufsize_t _scan_atx_heading_start(const unsigned char *p) {
     };
     yych = *p;
     if (yych == '#')
-      goto yy754;
+      goto yy768;
     ++p;
-  yy753 : { return 0; }
-  yy754:
+  yy767 : { return 0; }
+  yy768:
     yych = *(marker = ++p);
     if (yybm[0 + yych] & 128) {
-      goto yy755;
+      goto yy769;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy753;
+        goto yy767;
       if (yych <= '\n')
-        goto yy758;
-      goto yy753;
+        goto yy772;
+      goto yy767;
     } else {
       if (yych <= '\r')
-        goto yy758;
+        goto yy772;
       if (yych == '#')
-        goto yy759;
-      goto yy753;
+        goto yy773;
+      goto yy767;
     }
-  yy755:
-    ++p;
-    yych = *p;
+  yy769:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy755;
+      goto yy769;
     }
-  yy757 : { return (bufsize_t)(p - start); }
-  yy758:
-    yych = *++p;
-    goto yy757;
-  yy759:
+  yy771 : { return (bufsize_t)(p - start); }
+  yy772:
+    ++p;
+    goto yy771;
+  yy773:
     yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy755;
+      goto yy769;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy760;
+        goto yy774;
       if (yych <= '\n')
-        goto yy758;
+        goto yy772;
     } else {
       if (yych <= '\r')
-        goto yy758;
+        goto yy772;
       if (yych == '#')
-        goto yy761;
+        goto yy775;
     }
-  yy760:
+  yy774:
     p = marker;
-    goto yy753;
-  yy761:
+    goto yy767;
+  yy775:
     yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy755;
+      goto yy769;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy760;
+        goto yy774;
       if (yych <= '\n')
-        goto yy758;
-      goto yy760;
+        goto yy772;
+      goto yy774;
     } else {
       if (yych <= '\r')
-        goto yy758;
+        goto yy772;
       if (yych != '#')
-        goto yy760;
+        goto yy774;
     }
     yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy755;
+      goto yy769;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy760;
+        goto yy774;
       if (yych <= '\n')
-        goto yy758;
-      goto yy760;
+        goto yy772;
+      goto yy774;
     } else {
       if (yych <= '\r')
-        goto yy758;
+        goto yy772;
       if (yych != '#')
-        goto yy760;
+        goto yy774;
     }
     yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy755;
+      goto yy769;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy760;
+        goto yy774;
       if (yych <= '\n')
-        goto yy758;
-      goto yy760;
+        goto yy772;
+      goto yy774;
     } else {
       if (yych <= '\r')
-        goto yy758;
+        goto yy772;
       if (yych != '#')
-        goto yy760;
+        goto yy774;
     }
-    ++p;
-    if (yybm[0 + (yych = *p)] & 128) {
-      goto yy755;
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy769;
     }
     if (yych <= 0x08)
-      goto yy760;
+      goto yy774;
     if (yych <= '\n')
-      goto yy758;
+      goto yy772;
     if (yych == '\r')
-      goto yy758;
-    goto yy760;
+      goto yy772;
+    goto yy774;
   }
 }
 
@@ -11988,126 +12070,122 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
     };
     yych = *p;
     if (yych == '-')
-      goto yy769;
+      goto yy783;
     if (yych == '=')
-      goto yy770;
+      goto yy784;
     ++p;
-  yy768 : { return 0; }
-  yy769:
+  yy782 : { return 0; }
+  yy783:
     yych = *(marker = ++p);
     if (yybm[0 + yych] & 64) {
-      goto yy776;
+      goto yy790;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy768;
+        goto yy782;
       if (yych <= '\n')
-        goto yy772;
-      goto yy768;
+        goto yy786;
+      goto yy782;
     } else {
       if (yych <= '\r')
-        goto yy772;
+        goto yy786;
       if (yych == ' ')
-        goto yy772;
-      goto yy768;
+        goto yy786;
+      goto yy782;
     }
-  yy770:
+  yy784:
     yych = *(marker = ++p);
     if (yybm[0 + yych] & 128) {
-      goto yy782;
+      goto yy796;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy768;
+        goto yy782;
       if (yych <= '\n')
-        goto yy779;
-      goto yy768;
+        goto yy793;
+      goto yy782;
     } else {
       if (yych <= '\r')
-        goto yy779;
+        goto yy793;
       if (yych == ' ')
-        goto yy779;
-      goto yy768;
+        goto yy793;
+      goto yy782;
     }
-  yy771:
-    ++p;
-    yych = *p;
-  yy772:
+  yy785:
+    yych = *++p;
+  yy786:
     if (yybm[0 + yych] & 32) {
-      goto yy771;
+      goto yy785;
     }
     if (yych <= 0x08)
-      goto yy773;
+      goto yy787;
     if (yych <= '\n')
-      goto yy774;
+      goto yy788;
     if (yych == '\r')
-      goto yy774;
-  yy773:
+      goto yy788;
+  yy787:
     p = marker;
-    goto yy768;
-  yy774:
+    goto yy782;
+  yy788:
     ++p;
     { return 2; }
-  yy776:
-    ++p;
-    yych = *p;
+  yy790:
+    yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy771;
+      goto yy785;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy773;
+        goto yy787;
       if (yych <= '\n')
-        goto yy774;
-      goto yy773;
+        goto yy788;
+      goto yy787;
     } else {
       if (yych <= '\r')
-        goto yy774;
+        goto yy788;
       if (yych == '-')
-        goto yy776;
-      goto yy773;
+        goto yy790;
+      goto yy787;
     }
-  yy778:
-    ++p;
-    yych = *p;
-  yy779:
+  yy792:
+    yych = *++p;
+  yy793:
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy773;
+        goto yy787;
       if (yych <= '\t')
-        goto yy778;
+        goto yy792;
       if (yych >= '\v')
-        goto yy773;
+        goto yy787;
     } else {
       if (yych <= '\r')
-        goto yy780;
+        goto yy794;
       if (yych == ' ')
-        goto yy778;
-      goto yy773;
+        goto yy792;
+      goto yy787;
     }
-  yy780:
+  yy794:
     ++p;
     { return 1; }
-  yy782:
-    ++p;
-    yych = *p;
+  yy796:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy782;
+      goto yy796;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy773;
+        goto yy787;
       if (yych <= '\t')
-        goto yy778;
+        goto yy792;
       if (yych <= '\n')
-        goto yy780;
-      goto yy773;
+        goto yy794;
+      goto yy787;
     } else {
       if (yych <= '\r')
-        goto yy780;
+        goto yy794;
       if (yych == ' ')
-        goto yy778;
-      goto yy773;
+        goto yy792;
+      goto yy787;
     }
   }
 }
@@ -12142,299 +12220,321 @@ bufsize_t _scan_open_code_fence(const unsigned char *p) {
     };
     yych = *p;
     if (yych == '`')
-      goto yy788;
+      goto yy802;
     if (yych == '~')
-      goto yy789;
+      goto yy803;
     ++p;
-  yy787 : { return 0; }
-  yy788:
+  yy801 : { return 0; }
+  yy802:
     yych = *(marker = ++p);
     if (yych == '`')
-      goto yy790;
-    goto yy787;
-  yy789:
+      goto yy804;
+    goto yy801;
+  yy803:
     yych = *(marker = ++p);
     if (yych == '~')
-      goto yy792;
-    goto yy787;
-  yy790:
+      goto yy806;
+    goto yy801;
+  yy804:
     yych = *++p;
     if (yybm[0 + yych] & 16) {
-      goto yy793;
+      goto yy807;
     }
-  yy791:
+  yy805:
     p = marker;
-    goto yy787;
-  yy792:
+    goto yy801;
+  yy806:
     yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy795;
+      goto yy809;
     }
-    goto yy791;
-  yy793:
-    ++p;
-    yych = *p;
-    marker = p;
-    if (yybm[0 + yych] & 64) {
-      goto yy797;
+    goto yy805;
+  yy807:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy807;
     }
-    if (yych <= 0xE0) {
-      if (yych <= '`') {
+    if (yych <= 0xDF) {
+      if (yych <= '\f') {
         if (yych <= 0x00)
-          goto yy791;
-        if (yych <= '\r')
-          goto yy799;
-        goto yy793;
+          goto yy805;
+        if (yych == '\n') {
+          marker = p;
+          goto yy813;
+        }
+        marker = p;
+        goto yy811;
       } else {
+        if (yych <= '\r') {
+          marker = p;
+          goto yy813;
+        }
+        if (yych <= 0x7F) {
+          marker = p;
+          goto yy811;
+        }
         if (yych <= 0xC1)
-          goto yy791;
-        if (yych <= 0xDF)
-          goto yy801;
-        goto yy802;
+          goto yy805;
+        marker = p;
+        goto yy815;
       }
     } else {
       if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy804;
-        goto yy803;
+        if (yych <= 0xE0) {
+          marker = p;
+          goto yy816;
+        }
+        if (yych == 0xED) {
+          marker = p;
+          goto yy818;
+        }
+        marker = p;
+        goto yy817;
       } else {
-        if (yych <= 0xF0)
-          goto yy805;
-        if (yych <= 0xF3)
-          goto yy806;
-        if (yych <= 0xF4)
-          goto yy807;
-        goto yy791;
+        if (yych <= 0xF0) {
+          marker = p;
+          goto yy819;
+        }
+        if (yych <= 0xF3) {
+          marker = p;
+          goto yy820;
+        }
+        if (yych <= 0xF4) {
+          marker = p;
+          goto yy821;
+        }
+        goto yy805;
       }
     }
-  yy795:
-    ++p;
-    yych = *p;
-    marker = p;
+  yy809:
+    yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy795;
+      goto yy809;
     }
     if (yych <= 0xDF) {
       if (yych <= '\f') {
         if (yych <= 0x00)
-          goto yy791;
-        if (yych == '\n')
-          goto yy810;
-        goto yy808;
+          goto yy805;
+        if (yych == '\n') {
+          marker = p;
+          goto yy824;
+        }
+        marker = p;
+        goto yy822;
       } else {
-        if (yych <= '\r')
-          goto yy810;
-        if (yych <= 0x7F)
-          goto yy808;
+        if (yych <= '\r') {
+          marker = p;
+          goto yy824;
+        }
+        if (yych <= 0x7F) {
+          marker = p;
+          goto yy822;
+        }
         if (yych <= 0xC1)
-          goto yy791;
-        goto yy812;
+          goto yy805;
+        marker = p;
+        goto yy826;
       }
     } else {
       if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy813;
-        if (yych == 0xED)
-          goto yy815;
-        goto yy814;
+        if (yych <= 0xE0) {
+          marker = p;
+          goto yy827;
+        }
+        if (yych == 0xED) {
+          marker = p;
+          goto yy829;
+        }
+        marker = p;
+        goto yy828;
       } else {
-        if (yych <= 0xF0)
-          goto yy816;
-        if (yych <= 0xF3)
-          goto yy817;
-        if (yych <= 0xF4)
-          goto yy818;
-        goto yy791;
+        if (yych <= 0xF0) {
+          marker = p;
+          goto yy830;
+        }
+        if (yych <= 0xF3) {
+          marker = p;
+          goto yy831;
+        }
+        if (yych <= 0xF4) {
+          marker = p;
+          goto yy832;
+        }
+        goto yy805;
       }
     }
-  yy797:
-    ++p;
-    yych = *p;
+  yy811:
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy797;
+      goto yy811;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy791;
+          goto yy805;
         if (yych >= 0x0E)
-          goto yy791;
+          goto yy805;
       } else {
         if (yych <= 0xDF)
-          goto yy801;
+          goto yy815;
         if (yych <= 0xE0)
-          goto yy802;
-        goto yy803;
+          goto yy816;
+        goto yy817;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy804;
+          goto yy818;
         if (yych <= 0xEF)
-          goto yy803;
-        goto yy805;
+          goto yy817;
+        goto yy819;
       } else {
         if (yych <= 0xF3)
-          goto yy806;
+          goto yy820;
         if (yych <= 0xF4)
-          goto yy807;
-        goto yy791;
+          goto yy821;
+        goto yy805;
       }
     }
-  yy799:
+  yy813:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy801:
-    ++p;
-    yych = *p;
+  yy815:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy797;
-    goto yy791;
-  yy802:
-    ++p;
-    yych = *p;
+      goto yy811;
+    goto yy805;
+  yy816:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy801;
-    goto yy791;
-  yy803:
-    ++p;
-    yych = *p;
+      goto yy815;
+    goto yy805;
+  yy817:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy801;
-    goto yy791;
-  yy804:
-    ++p;
-    yych = *p;
+      goto yy815;
+    goto yy805;
+  yy818:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0x9F)
-      goto yy801;
-    goto yy791;
-  yy805:
-    ++p;
-    yych = *p;
+      goto yy815;
+    goto yy805;
+  yy819:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy803;
-    goto yy791;
-  yy806:
-    ++p;
-    yych = *p;
+      goto yy817;
+    goto yy805;
+  yy820:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy803;
-    goto yy791;
-  yy807:
-    ++p;
-    yych = *p;
+      goto yy817;
+    goto yy805;
+  yy821:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0x8F)
-      goto yy803;
-    goto yy791;
-  yy808:
-    ++p;
-    yych = *p;
+      goto yy817;
+    goto yy805;
+  yy822:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy808;
+      goto yy822;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy791;
+          goto yy805;
         if (yych >= 0x0E)
-          goto yy791;
+          goto yy805;
       } else {
         if (yych <= 0xDF)
-          goto yy812;
+          goto yy826;
         if (yych <= 0xE0)
-          goto yy813;
-        goto yy814;
+          goto yy827;
+        goto yy828;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy815;
+          goto yy829;
         if (yych <= 0xEF)
-          goto yy814;
-        goto yy816;
+          goto yy828;
+        goto yy830;
       } else {
         if (yych <= 0xF3)
-          goto yy817;
+          goto yy831;
         if (yych <= 0xF4)
-          goto yy818;
-        goto yy791;
+          goto yy832;
+        goto yy805;
       }
     }
-  yy810:
+  yy824:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy812:
-    ++p;
-    yych = *p;
+  yy826:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy808;
-    goto yy791;
-  yy813:
-    ++p;
-    yych = *p;
+      goto yy822;
+    goto yy805;
+  yy827:
+    yych = *++p;
     if (yych <= 0x9F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy812;
-    goto yy791;
-  yy814:
-    ++p;
-    yych = *p;
+      goto yy826;
+    goto yy805;
+  yy828:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy812;
-    goto yy791;
-  yy815:
-    ++p;
-    yych = *p;
+      goto yy826;
+    goto yy805;
+  yy829:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0x9F)
-      goto yy812;
-    goto yy791;
-  yy816:
-    ++p;
-    yych = *p;
+      goto yy826;
+    goto yy805;
+  yy830:
+    yych = *++p;
     if (yych <= 0x8F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy814;
-    goto yy791;
-  yy817:
-    ++p;
-    yych = *p;
+      goto yy828;
+    goto yy805;
+  yy831:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0xBF)
-      goto yy814;
-    goto yy791;
-  yy818:
-    ++p;
-    yych = *p;
+      goto yy828;
+    goto yy805;
+  yy832:
+    yych = *++p;
     if (yych <= 0x7F)
-      goto yy791;
+      goto yy805;
     if (yych <= 0x8F)
-      goto yy814;
-    goto yy791;
+      goto yy828;
+    goto yy805;
   }
 }
 
@@ -12461,111 +12561,123 @@ bufsize_t _scan_close_code_fence(const unsigned char *p) {
     };
     yych = *p;
     if (yych == '`')
-      goto yy823;
+      goto yy837;
     if (yych == '~')
-      goto yy824;
+      goto yy838;
     ++p;
-  yy822 : { return 0; }
-  yy823:
+  yy836 : { return 0; }
+  yy837:
     yych = *(marker = ++p);
     if (yych == '`')
-      goto yy825;
-    goto yy822;
-  yy824:
+      goto yy839;
+    goto yy836;
+  yy838:
     yych = *(marker = ++p);
     if (yych == '~')
-      goto yy827;
-    goto yy822;
-  yy825:
+      goto yy841;
+    goto yy836;
+  yy839:
     yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy828;
+      goto yy842;
     }
-  yy826:
+  yy840:
     p = marker;
-    goto yy822;
-  yy827:
+    goto yy836;
+  yy841:
     yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy830;
+      goto yy844;
     }
-    goto yy826;
-  yy828:
-    ++p;
-    yych = *p;
-    marker = p;
-    if (yybm[0 + yych] & 128) {
-      goto yy832;
+    goto yy840;
+  yy842:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy842;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy826;
-      if (yych <= '\n')
-        goto yy834;
-      goto yy826;
+        goto yy840;
+      if (yych <= '\t') {
+        marker = p;
+        goto yy846;
+      }
+      if (yych <= '\n') {
+        marker = p;
+        goto yy848;
+      }
+      goto yy840;
     } else {
-      if (yych <= '\r')
-        goto yy834;
-      if (yych == '`')
-        goto yy828;
-      goto yy826;
+      if (yych <= '\r') {
+        marker = p;
+        goto yy848;
+      }
+      if (yych == ' ') {
+        marker = p;
+        goto yy846;
+      }
+      goto yy840;
     }
-  yy830:
-    ++p;
-    yych = *p;
-    marker = p;
+  yy844:
+    yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy830;
+      goto yy844;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy826;
-      if (yych <= '\t')
-        goto yy836;
-      if (yych <= '\n')
-        goto yy838;
-      goto yy826;
+        goto yy840;
+      if (yych <= '\t') {
+        marker = p;
+        goto yy850;
+      }
+      if (yych <= '\n') {
+        marker = p;
+        goto yy852;
+      }
+      goto yy840;
     } else {
-      if (yych <= '\r')
-        goto yy838;
-      if (yych == ' ')
-        goto yy836;
-      goto yy826;
+      if (yych <= '\r') {
+        marker = p;
+        goto yy852;
+      }
+      if (yych == ' ') {
+        marker = p;
+        goto yy850;
+      }
+      goto yy840;
     }
-  yy832:
-    ++p;
-    yych = *p;
+  yy846:
+    yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy832;
+      goto yy846;
     }
     if (yych <= 0x08)
-      goto yy826;
+      goto yy840;
     if (yych <= '\n')
-      goto yy834;
+      goto yy848;
     if (yych != '\r')
-      goto yy826;
-  yy834:
+      goto yy840;
+  yy848:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy836:
-    ++p;
-    yych = *p;
+  yy850:
+    yych = *++p;
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy826;
+        goto yy840;
       if (yych <= '\t')
-        goto yy836;
+        goto yy850;
       if (yych >= '\v')
-        goto yy826;
+        goto yy840;
     } else {
       if (yych <= '\r')
-        goto yy838;
+        goto yy852;
       if (yych == ' ')
-        goto yy836;
-      goto yy826;
+        goto yy850;
+      goto yy840;
     }
-  yy838:
+  yy852:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
@@ -12582,890 +12694,890 @@ bufsize_t _scan_entity(const unsigned char *p) {
     unsigned char yych;
     yych = *p;
     if (yych == '&')
-      goto yy844;
+      goto yy858;
     ++p;
-  yy843 : { return 0; }
-  yy844:
+  yy857 : { return 0; }
+  yy858:
     yych = *(marker = ++p);
     if (yych <= '@') {
       if (yych != '#')
-        goto yy843;
+        goto yy857;
     } else {
       if (yych <= 'Z')
-        goto yy847;
+        goto yy861;
       if (yych <= '`')
-        goto yy843;
+        goto yy857;
       if (yych <= 'z')
-        goto yy847;
-      goto yy843;
+        goto yy861;
+      goto yy857;
     }
     yych = *++p;
     if (yych <= 'W') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy848;
+        goto yy862;
     } else {
       if (yych <= 'X')
-        goto yy849;
+        goto yy863;
       if (yych == 'x')
-        goto yy849;
+        goto yy863;
     }
-  yy846:
+  yy860:
     p = marker;
-    goto yy843;
-  yy847:
+    goto yy857;
+  yy861:
     yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy850;
-      goto yy846;
+        goto yy864;
+      goto yy860;
     } else {
       if (yych <= 'Z')
-        goto yy850;
+        goto yy864;
       if (yych <= '`')
-        goto yy846;
+        goto yy860;
       if (yych <= 'z')
-        goto yy850;
-      goto yy846;
+        goto yy864;
+      goto yy860;
     }
-  yy848:
+  yy862:
     yych = *++p;
     if (yych <= '/')
-      goto yy846;
+      goto yy860;
     if (yych <= '9')
-      goto yy851;
+      goto yy865;
     if (yych == ';')
-      goto yy852;
-    goto yy846;
-  yy849:
+      goto yy866;
+    goto yy860;
+  yy863:
     yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy854;
-      goto yy846;
+        goto yy868;
+      goto yy860;
     } else {
       if (yych <= 'F')
-        goto yy854;
+        goto yy868;
       if (yych <= '`')
-        goto yy846;
+        goto yy860;
       if (yych <= 'f')
-        goto yy854;
-      goto yy846;
+        goto yy868;
+      goto yy860;
     }
-  yy850:
+  yy864:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy855;
+        goto yy869;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy855;
+          goto yy860;
+        goto yy869;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy855;
-        goto yy846;
+          goto yy869;
+        goto yy860;
       }
     }
-  yy851:
+  yy865:
     yych = *++p;
     if (yych <= '/')
-      goto yy846;
+      goto yy860;
     if (yych <= '9')
-      goto yy856;
+      goto yy870;
     if (yych != ';')
-      goto yy846;
-  yy852:
+      goto yy860;
+  yy866:
     ++p;
     { return (bufsize_t)(p - start); }
-  yy854:
+  yy868:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy857;
+        goto yy871;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy846;
-        goto yy857;
+          goto yy860;
+        goto yy871;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'f')
-          goto yy857;
-        goto yy846;
+          goto yy871;
+        goto yy860;
       }
     }
-  yy855:
+  yy869:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy858;
+        goto yy872;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy858;
+          goto yy860;
+        goto yy872;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy858;
-        goto yy846;
+          goto yy872;
+        goto yy860;
       }
     }
-  yy856:
+  yy870:
     yych = *++p;
     if (yych <= '/')
-      goto yy846;
+      goto yy860;
     if (yych <= '9')
-      goto yy859;
+      goto yy873;
     if (yych == ';')
-      goto yy852;
-    goto yy846;
-  yy857:
+      goto yy866;
+    goto yy860;
+  yy871:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
-      if (yych <= '9')
         goto yy860;
+      if (yych <= '9')
+        goto yy874;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy846;
-        goto yy860;
+          goto yy860;
+        goto yy874;
       } else {
         if (yych <= '`')
-          goto yy846;
-        if (yych <= 'f')
           goto yy860;
-        goto yy846;
+        if (yych <= 'f')
+          goto yy874;
+        goto yy860;
       }
     }
-  yy858:
+  yy872:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy861;
+        goto yy875;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy861;
+          goto yy860;
+        goto yy875;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy861;
-        goto yy846;
+          goto yy875;
+        goto yy860;
       }
     }
-  yy859:
+  yy873:
     yych = *++p;
     if (yych <= '/')
-      goto yy846;
+      goto yy860;
     if (yych <= '9')
-      goto yy862;
+      goto yy876;
     if (yych == ';')
-      goto yy852;
-    goto yy846;
-  yy860:
+      goto yy866;
+    goto yy860;
+  yy874:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy863;
+        goto yy877;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy846;
-        goto yy863;
+          goto yy860;
+        goto yy877;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'f')
-          goto yy863;
-        goto yy846;
+          goto yy877;
+        goto yy860;
       }
     }
-  yy861:
+  yy875:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy864;
+        goto yy878;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy864;
+          goto yy860;
+        goto yy878;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy864;
-        goto yy846;
+          goto yy878;
+        goto yy860;
       }
     }
-  yy862:
+  yy876:
     yych = *++p;
     if (yych <= '/')
-      goto yy846;
+      goto yy860;
     if (yych <= '9')
-      goto yy865;
+      goto yy879;
     if (yych == ';')
-      goto yy852;
-    goto yy846;
-  yy863:
+      goto yy866;
+    goto yy860;
+  yy877:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy866;
+        goto yy880;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy846;
-        goto yy866;
+          goto yy860;
+        goto yy880;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'f')
-          goto yy866;
-        goto yy846;
+          goto yy880;
+        goto yy860;
       }
     }
-  yy864:
+  yy878:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy867;
+        goto yy881;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy867;
+          goto yy860;
+        goto yy881;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy867;
-        goto yy846;
+          goto yy881;
+        goto yy860;
       }
     }
-  yy865:
+  yy879:
     yych = *++p;
     if (yych <= '/')
-      goto yy846;
+      goto yy860;
     if (yych <= '9')
-      goto yy868;
+      goto yy882;
     if (yych == ';')
-      goto yy852;
-    goto yy846;
-  yy866:
+      goto yy866;
+    goto yy860;
+  yy880:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy868;
+        goto yy882;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy846;
-        goto yy868;
+          goto yy860;
+        goto yy882;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'f')
-          goto yy868;
-        goto yy846;
+          goto yy882;
+        goto yy860;
       }
     }
-  yy867:
+  yy881:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy869;
+        goto yy883;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy869;
+          goto yy860;
+        goto yy883;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy869;
-        goto yy846;
+          goto yy883;
+        goto yy860;
       }
     }
-  yy868:
+  yy882:
     yych = *++p;
     if (yych == ';')
-      goto yy852;
-    goto yy846;
-  yy869:
+      goto yy866;
+    goto yy860;
+  yy883:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy870;
+        goto yy884;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy870:
+  yy884:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy871;
+        goto yy885;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy871:
+  yy885:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy872;
+        goto yy886;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy872:
+  yy886:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy873;
+        goto yy887;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy873:
+  yy887:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy874;
+        goto yy888;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy874:
+  yy888:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy875;
+        goto yy889;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy875:
+  yy889:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy876;
+        goto yy890;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy876:
+  yy890:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy877;
+        goto yy891;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy877:
+  yy891:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy878;
+        goto yy892;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy878:
+  yy892:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy879;
+        goto yy893;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy879:
+  yy893:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy880;
+        goto yy894;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy880:
+  yy894:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy881;
+        goto yy895;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy881:
+  yy895:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy882;
+        goto yy896;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy882:
+  yy896:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy883;
+        goto yy897;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy883:
+  yy897:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy884;
+        goto yy898;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy884:
+  yy898:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy885;
+        goto yy899;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy885:
+  yy899:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy886;
+        goto yy900;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy886:
+  yy900:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy887;
+        goto yy901;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy887:
+  yy901:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy888;
+        goto yy902;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy888:
+  yy902:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy889;
+        goto yy903;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy889:
+  yy903:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy890;
+        goto yy904;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy890:
+  yy904:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy891;
+        goto yy905;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy891:
+  yy905:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy892;
+        goto yy906;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
+          goto yy860;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych >= '{')
-          goto yy846;
+          goto yy860;
       }
     }
-  yy892:
-    ++p;
-    if ((yych = *p) <= ';') {
+  yy906:
+    yych = *++p;
+    if (yych <= ';') {
       if (yych <= '/')
-        goto yy846;
+        goto yy860;
       if (yych <= '9')
-        goto yy868;
+        goto yy882;
       if (yych <= ':')
-        goto yy846;
-      goto yy852;
+        goto yy860;
+      goto yy866;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy846;
-        goto yy868;
+          goto yy860;
+        goto yy882;
       } else {
         if (yych <= '`')
-          goto yy846;
+          goto yy860;
         if (yych <= 'z')
-          goto yy868;
-        goto yy846;
+          goto yy882;
+        goto yy860;
       }
     }
   }
@@ -13484,304 +13596,304 @@ bufsize_t _scan_dangerous_url(const unsigned char *p) {
     if (yych <= 'V') {
       if (yych <= 'F') {
         if (yych == 'D')
-          goto yy897;
+          goto yy911;
         if (yych >= 'F')
-          goto yy898;
+          goto yy912;
       } else {
         if (yych == 'J')
-          goto yy899;
+          goto yy913;
         if (yych >= 'V')
-          goto yy900;
+          goto yy914;
       }
     } else {
       if (yych <= 'f') {
         if (yych == 'd')
-          goto yy897;
+          goto yy911;
         if (yych >= 'f')
-          goto yy898;
+          goto yy912;
       } else {
         if (yych <= 'j') {
           if (yych >= 'j')
-            goto yy899;
+            goto yy913;
         } else {
           if (yych == 'v')
-            goto yy900;
+            goto yy914;
         }
       }
     }
     ++p;
-  yy896 : { return 0; }
-  yy897:
+  yy910 : { return 0; }
+  yy911:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'A')
-      goto yy901;
+      goto yy915;
     if (yych == 'a')
-      goto yy901;
-    goto yy896;
-  yy898:
+      goto yy915;
+    goto yy910;
+  yy912:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'I')
-      goto yy903;
+      goto yy917;
     if (yych == 'i')
-      goto yy903;
-    goto yy896;
-  yy899:
+      goto yy917;
+    goto yy910;
+  yy913:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'A')
-      goto yy904;
+      goto yy918;
     if (yych == 'a')
-      goto yy904;
-    goto yy896;
-  yy900:
+      goto yy918;
+    goto yy910;
+  yy914:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'B')
-      goto yy905;
+      goto yy919;
     if (yych == 'b')
-      goto yy905;
-    goto yy896;
-  yy901:
+      goto yy919;
+    goto yy910;
+  yy915:
     yych = *++p;
     if (yych == 'T')
-      goto yy906;
+      goto yy920;
     if (yych == 't')
-      goto yy906;
-  yy902:
+      goto yy920;
+  yy916:
     p = marker;
     if (yyaccept == 0) {
-      goto yy896;
+      goto yy910;
     } else {
-      goto yy914;
+      goto yy928;
     }
-  yy903:
+  yy917:
     yych = *++p;
     if (yych == 'L')
-      goto yy907;
+      goto yy921;
     if (yych == 'l')
-      goto yy907;
-    goto yy902;
-  yy904:
+      goto yy921;
+    goto yy916;
+  yy918:
     yych = *++p;
     if (yych == 'V')
-      goto yy908;
+      goto yy922;
     if (yych == 'v')
-      goto yy908;
-    goto yy902;
-  yy905:
+      goto yy922;
+    goto yy916;
+  yy919:
     yych = *++p;
     if (yych == 'S')
-      goto yy909;
+      goto yy923;
     if (yych == 's')
-      goto yy909;
-    goto yy902;
-  yy906:
+      goto yy923;
+    goto yy916;
+  yy920:
     yych = *++p;
     if (yych == 'A')
-      goto yy910;
+      goto yy924;
     if (yych == 'a')
-      goto yy910;
-    goto yy902;
-  yy907:
+      goto yy924;
+    goto yy916;
+  yy921:
     yych = *++p;
     if (yych == 'E')
-      goto yy911;
+      goto yy925;
     if (yych == 'e')
-      goto yy911;
-    goto yy902;
-  yy908:
+      goto yy925;
+    goto yy916;
+  yy922:
     yych = *++p;
     if (yych == 'A')
-      goto yy905;
+      goto yy919;
     if (yych == 'a')
-      goto yy905;
-    goto yy902;
-  yy909:
+      goto yy919;
+    goto yy916;
+  yy923:
     yych = *++p;
     if (yych == 'C')
-      goto yy912;
+      goto yy926;
     if (yych == 'c')
-      goto yy912;
-    goto yy902;
-  yy910:
+      goto yy926;
+    goto yy916;
+  yy924:
     yych = *++p;
     if (yych == ':')
-      goto yy913;
-    goto yy902;
-  yy911:
+      goto yy927;
+    goto yy916;
+  yy925:
     yych = *++p;
     if (yych == ':')
-      goto yy915;
-    goto yy902;
-  yy912:
+      goto yy929;
+    goto yy916;
+  yy926:
     yych = *++p;
     if (yych == 'R')
-      goto yy916;
+      goto yy930;
     if (yych == 'r')
-      goto yy916;
-    goto yy902;
-  yy913:
+      goto yy930;
+    goto yy916;
+  yy927:
     yyaccept = 1;
     yych = *(marker = ++p);
     if (yych == 'I')
-      goto yy917;
+      goto yy931;
     if (yych == 'i')
-      goto yy917;
-  yy914 : { return (bufsize_t)(p - start); }
-  yy915:
-    yych = *++p;
-    goto yy914;
-  yy916:
+      goto yy931;
+  yy928 : { return (bufsize_t)(p - start); }
+  yy929:
+    ++p;
+    goto yy928;
+  yy930:
     yych = *++p;
     if (yych == 'I')
-      goto yy918;
+      goto yy932;
     if (yych == 'i')
-      goto yy918;
-    goto yy902;
-  yy917:
+      goto yy932;
+    goto yy916;
+  yy931:
     yych = *++p;
     if (yych == 'M')
-      goto yy919;
+      goto yy933;
     if (yych == 'm')
-      goto yy919;
-    goto yy902;
-  yy918:
+      goto yy933;
+    goto yy916;
+  yy932:
     yych = *++p;
     if (yych == 'P')
-      goto yy920;
+      goto yy934;
     if (yych == 'p')
-      goto yy920;
-    goto yy902;
-  yy919:
+      goto yy934;
+    goto yy916;
+  yy933:
     yych = *++p;
     if (yych == 'A')
-      goto yy921;
+      goto yy935;
     if (yych == 'a')
-      goto yy921;
-    goto yy902;
-  yy920:
+      goto yy935;
+    goto yy916;
+  yy934:
     yych = *++p;
     if (yych == 'T')
-      goto yy911;
+      goto yy925;
     if (yych == 't')
-      goto yy911;
-    goto yy902;
-  yy921:
+      goto yy925;
+    goto yy916;
+  yy935:
     yych = *++p;
     if (yych == 'G')
-      goto yy922;
+      goto yy936;
     if (yych != 'g')
-      goto yy902;
-  yy922:
+      goto yy916;
+  yy936:
     yych = *++p;
     if (yych == 'E')
-      goto yy923;
+      goto yy937;
     if (yych != 'e')
-      goto yy902;
-  yy923:
+      goto yy916;
+  yy937:
     yych = *++p;
     if (yych != '/')
-      goto yy902;
+      goto yy916;
     yych = *++p;
     if (yych <= 'W') {
       if (yych <= 'J') {
         if (yych == 'G')
-          goto yy925;
+          goto yy939;
         if (yych <= 'I')
-          goto yy902;
-        goto yy926;
+          goto yy916;
+        goto yy940;
       } else {
         if (yych == 'P')
-          goto yy927;
+          goto yy941;
         if (yych <= 'V')
-          goto yy902;
-        goto yy928;
+          goto yy916;
+        goto yy942;
       }
     } else {
       if (yych <= 'j') {
         if (yych == 'g')
-          goto yy925;
+          goto yy939;
         if (yych <= 'i')
-          goto yy902;
-        goto yy926;
+          goto yy916;
+        goto yy940;
       } else {
         if (yych <= 'p') {
           if (yych <= 'o')
-            goto yy902;
-          goto yy927;
+            goto yy916;
+          goto yy941;
         } else {
           if (yych == 'w')
-            goto yy928;
-          goto yy902;
+            goto yy942;
+          goto yy916;
         }
       }
     }
-  yy925:
+  yy939:
     yych = *++p;
     if (yych == 'I')
-      goto yy929;
+      goto yy943;
     if (yych == 'i')
-      goto yy929;
-    goto yy902;
-  yy926:
+      goto yy943;
+    goto yy916;
+  yy940:
     yych = *++p;
     if (yych == 'P')
-      goto yy930;
+      goto yy944;
     if (yych == 'p')
-      goto yy930;
-    goto yy902;
-  yy927:
+      goto yy944;
+    goto yy916;
+  yy941:
     yych = *++p;
     if (yych == 'N')
-      goto yy931;
+      goto yy945;
     if (yych == 'n')
-      goto yy931;
-    goto yy902;
-  yy928:
+      goto yy945;
+    goto yy916;
+  yy942:
     yych = *++p;
     if (yych == 'E')
-      goto yy932;
+      goto yy946;
     if (yych == 'e')
-      goto yy932;
-    goto yy902;
-  yy929:
+      goto yy946;
+    goto yy916;
+  yy943:
     yych = *++p;
     if (yych == 'F')
-      goto yy933;
+      goto yy947;
     if (yych == 'f')
-      goto yy933;
-    goto yy902;
-  yy930:
+      goto yy947;
+    goto yy916;
+  yy944:
     yych = *++p;
     if (yych == 'E')
-      goto yy931;
+      goto yy945;
     if (yych != 'e')
-      goto yy902;
-  yy931:
+      goto yy916;
+  yy945:
     yych = *++p;
     if (yych == 'G')
-      goto yy933;
+      goto yy947;
     if (yych == 'g')
-      goto yy933;
-    goto yy902;
-  yy932:
+      goto yy947;
+    goto yy916;
+  yy946:
     yych = *++p;
     if (yych == 'B')
-      goto yy935;
+      goto yy949;
     if (yych == 'b')
-      goto yy935;
-    goto yy902;
-  yy933:
+      goto yy949;
+    goto yy916;
+  yy947:
     ++p;
     { return 0; }
-  yy935:
-    ++p;
-    if ((yych = *p) == 'P')
-      goto yy933;
+  yy949:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy947;
     if (yych == 'p')
-      goto yy933;
-    goto yy902;
+      goto yy947;
+    goto yy916;
   }
 }
diff --git a/src/scanners.re b/src/scanners.re
@@ -129,7 +129,7 @@ bufsize_t _scan_html_block_start(const unsigned char *p)
 {
   const unsigned char *marker = NULL;
 /*!re2c
-  [<] ('script'|'pre'|'style') (spacechar | [>]) { return 1; }
+  [<] ('script'|'pre'|'textarea'|'style') (spacechar | [>]) { return 1; }
   '<!--' { return 2; }
   '<?' { return 3; }
   '<!' [A-Z] { return 4; }
@@ -156,7 +156,7 @@ bufsize_t _scan_html_block_end_1(const unsigned char *p)
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 /*!re2c
-  [^\n\x00]* [<] [/] ('script'|'pre'|'style') [>] { return (bufsize_t)(p - start); }
+  [^\n\x00]* [<] [/] ('script'|'pre'|'textarea'|'style') [>] { return (bufsize_t)(p - start); }
   * { return 0; }
 */
 }