cmark

My personal build of CMark ✏️

Commit
a7d9e7daf6e9798267ee5d32a53a03f80c19410a
Parent
56cd911ac2339a8ef80543780325a31e783f8c03
Author
John MacFarlane <jgm@berkeley.edu>
Date

Regenerate scanners.c using re2c 0.15.3.

Diffstat

1 file changed, 2502 insertions, 2743 deletions

Status File Name N° Changes Insertions Deletions
Modified src/scanners.c 5245 2502 2743
diff --git a/src/scanners.c b/src/scanners.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 */
+/* Generated by re2c 0.15.3 */
 #include <stdlib.h>
 #include "chunk.h"
 #include "scanners.h"
@@ -29,7 +29,6 @@ bufsize_t _scan_scheme(const unsigned char *p) {
 
   {
     unsigned char yych;
-
     yych = *(marker = p);
     if (yych <= 'c') {
       if (yych <= 'M') {
@@ -499,50 +498,24 @@ bufsize_t _scan_scheme(const unsigned char *p) {
     }
   yy15:
     yych = *(marker = ++p);
-    if (yych <= 'S') {
-      if (yych <= 'L') {
-        if (yych == 'A')
-          goto yy232;
-        if (yych <= 'K')
-          goto yy2;
-        goto yy231;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy2;
-          goto yy233;
-        } else {
-          if (yych <= 'Q')
-            goto yy2;
-          if (yych <= 'R')
-            goto yy230;
-          goto yy229;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'a') {
-          if (yych <= '`')
-            goto yy2;
-          goto yy232;
-        } else {
-          if (yych == 'l')
-            goto yy231;
-          goto yy2;
-        }
-      } else {
-        if (yych <= 'q') {
-          if (yych <= 'o')
-            goto yy233;
-          goto yy2;
-        } else {
-          if (yych <= 'r')
-            goto yy230;
-          if (yych <= 's')
-            goto yy229;
-          goto yy2;
-        }
-      }
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy232;
+    case 'L':
+    case 'l':
+      goto yy231;
+    case 'O':
+    case 'o':
+      goto yy233;
+    case 'R':
+    case 'r':
+      goto yy230;
+    case 'S':
+    case 's':
+      goto yy229;
+    default:
+      goto yy2;
     }
   yy16:
     yych = *(marker = ++p);
@@ -4699,50 +4672,24 @@ bufsize_t _scan_autolink_uri(const unsigned char *p) {
     }
   yy507:
     yych = *(marker = ++p);
-    if (yych <= 'S') {
-      if (yych <= 'L') {
-        if (yych == 'A')
-          goto yy733;
-        if (yych <= 'K')
-          goto yy494;
-        goto yy732;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy494;
-          goto yy734;
-        } else {
-          if (yych <= 'Q')
-            goto yy494;
-          if (yych <= 'R')
-            goto yy731;
-          goto yy730;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'a') {
-          if (yych <= '`')
-            goto yy494;
-          goto yy733;
-        } else {
-          if (yych == 'l')
-            goto yy732;
-          goto yy494;
-        }
-      } else {
-        if (yych <= 'q') {
-          if (yych <= 'o')
-            goto yy734;
-          goto yy494;
-        } else {
-          if (yych <= 'r')
-            goto yy731;
-          if (yych <= 's')
-            goto yy730;
-          goto yy494;
-        }
-      }
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy733;
+    case 'L':
+    case 'l':
+      goto yy732;
+    case 'O':
+    case 'o':
+      goto yy734;
+    case 'R':
+    case 'r':
+      goto yy731;
+    case 'S':
+    case 's':
+      goto yy730;
+    default:
+      goto yy494;
     }
   yy508:
     yych = *(marker = ++p);
@@ -8703,14 +8650,14 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1011;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
-        if (yych <= '9')
-          goto yy1011;
-        goto yy999;
+        if (yych >= ':')
+          goto yy999;
       }
     } else {
       if (yych <= 'Z') {
@@ -8718,48 +8665,26 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1011;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1011;
-        goto yy999;
-      }
-    }
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1139;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1140;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1140;
-      } else {
-        if (yych <= '`')
+        if (yych >= '{')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1140;
-        goto yy999;
       }
     }
-  yy1011:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
         if (yych <= '-')
-          goto yy1139;
+          goto yy1140;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1140;
+          goto yy1139;
         goto yy999;
       }
     } else {
@@ -8768,12 +8693,33 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
+        goto yy1139;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1139;
+        goto yy999;
+      }
+    }
+  yy1011:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
         goto yy1140;
+      if (yych <= '/')
+        goto yy999;
+      goto yy1139;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+        goto yy1139;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1140;
+          goto yy1139;
         goto yy999;
       }
     }
@@ -8805,14 +8751,14 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1017;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
-        if (yych <= '9')
-          goto yy1017;
-        goto yy999;
+        if (yych >= ':')
+          goto yy999;
       }
     } else {
       if (yych <= 'Z') {
@@ -8820,50 +8766,27 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1017;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1017;
-        goto yy999;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1018;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1019;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1019;
-      } else {
-        if (yych <= '`')
+        if (yych >= '{')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1019;
-        goto yy999;
       }
     }
-  yy1017:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1019;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1019;
+          goto yy1018;
         goto yy999;
       }
     } else {
@@ -8872,51 +8795,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1019;
+        goto yy1018;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1019;
+          goto yy1018;
         goto yy999;
       }
     }
-  yy1018:
+  yy1017:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1020;
+        goto yy1019;
       if (yych <= '/')
         goto yy999;
-      goto yy1021;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1021;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1021;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1019:
+  yy1018:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1021;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1021;
+          goto yy1020;
         goto yy999;
       }
     } else {
@@ -8925,51 +8846,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1021;
+        goto yy1020;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1021;
+          goto yy1020;
         goto yy999;
       }
     }
-  yy1020:
+  yy1019:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1022;
+        goto yy1021;
       if (yych <= '/')
         goto yy999;
-      goto yy1023;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1023;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1023;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1021:
+  yy1020:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1023;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1023;
+          goto yy1022;
         goto yy999;
       }
     } else {
@@ -8978,51 +8897,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1023;
+        goto yy1022;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1023;
+          goto yy1022;
         goto yy999;
       }
     }
-  yy1022:
+  yy1021:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1024;
+        goto yy1023;
       if (yych <= '/')
         goto yy999;
-      goto yy1025;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1025;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1025;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1023:
+  yy1022:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1025;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1025;
+          goto yy1024;
         goto yy999;
       }
     } else {
@@ -9031,51 +8948,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1025;
+        goto yy1024;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1025;
+          goto yy1024;
         goto yy999;
       }
     }
-  yy1024:
+  yy1023:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1026;
+        goto yy1025;
       if (yych <= '/')
         goto yy999;
-      goto yy1027;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1027;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1027;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1025:
+  yy1024:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1027;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1027;
+          goto yy1026;
         goto yy999;
       }
     } else {
@@ -9084,51 +8999,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1027;
+        goto yy1026;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1027;
+          goto yy1026;
         goto yy999;
       }
     }
-  yy1026:
+  yy1025:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1028;
+        goto yy1027;
       if (yych <= '/')
         goto yy999;
-      goto yy1029;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1029;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1029;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1027:
+  yy1026:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1029;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1029;
+          goto yy1028;
         goto yy999;
       }
     } else {
@@ -9137,51 +9050,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1029;
+        goto yy1028;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1029;
+          goto yy1028;
         goto yy999;
       }
     }
-  yy1028:
+  yy1027:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1030;
+        goto yy1029;
       if (yych <= '/')
         goto yy999;
-      goto yy1031;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1031;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1031;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1029:
+  yy1028:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1031;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1031;
+          goto yy1030;
         goto yy999;
       }
     } else {
@@ -9190,51 +9101,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1031;
+        goto yy1030;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1031;
+          goto yy1030;
         goto yy999;
       }
     }
-  yy1030:
+  yy1029:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1032;
+        goto yy1031;
       if (yych <= '/')
         goto yy999;
-      goto yy1033;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1033;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1033;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1031:
+  yy1030:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1033;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1033;
+          goto yy1032;
         goto yy999;
       }
     } else {
@@ -9243,51 +9152,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1033;
+        goto yy1032;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1033;
+          goto yy1032;
         goto yy999;
       }
     }
-  yy1032:
+  yy1031:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1034;
+        goto yy1033;
       if (yych <= '/')
         goto yy999;
-      goto yy1035;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1035;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1035;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1033:
+  yy1032:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1035;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1035;
+          goto yy1034;
         goto yy999;
       }
     } else {
@@ -9296,51 +9203,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1035;
+        goto yy1034;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1035;
+          goto yy1034;
         goto yy999;
       }
     }
-  yy1034:
+  yy1033:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1036;
+        goto yy1035;
       if (yych <= '/')
         goto yy999;
-      goto yy1037;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1037;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1037;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1035:
+  yy1034:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1037;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1037;
+          goto yy1036;
         goto yy999;
       }
     } else {
@@ -9349,51 +9254,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1037;
+        goto yy1036;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1037;
+          goto yy1036;
         goto yy999;
       }
     }
-  yy1036:
+  yy1035:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1038;
+        goto yy1037;
       if (yych <= '/')
         goto yy999;
-      goto yy1039;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1039;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1039;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1037:
+  yy1036:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1039;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1039;
+          goto yy1038;
         goto yy999;
       }
     } else {
@@ -9402,51 +9305,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1039;
+        goto yy1038;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1039;
+          goto yy1038;
         goto yy999;
       }
     }
-  yy1038:
+  yy1037:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1040;
+        goto yy1039;
       if (yych <= '/')
         goto yy999;
-      goto yy1041;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1041;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1041;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1039:
+  yy1038:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1041;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1041;
+          goto yy1040;
         goto yy999;
       }
     } else {
@@ -9455,51 +9356,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1041;
+        goto yy1040;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1041;
+          goto yy1040;
         goto yy999;
       }
     }
-  yy1040:
+  yy1039:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1042;
+        goto yy1041;
       if (yych <= '/')
         goto yy999;
-      goto yy1043;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1043;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1043;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1041:
+  yy1040:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1043;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1043;
+          goto yy1042;
         goto yy999;
       }
     } else {
@@ -9508,51 +9407,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1043;
+        goto yy1042;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1043;
+          goto yy1042;
         goto yy999;
       }
     }
-  yy1042:
+  yy1041:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1044;
+        goto yy1043;
       if (yych <= '/')
         goto yy999;
-      goto yy1045;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1045;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1045;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1043:
+  yy1042:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1045;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1045;
+          goto yy1044;
         goto yy999;
       }
     } else {
@@ -9561,51 +9458,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1045;
+        goto yy1044;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1045;
+          goto yy1044;
         goto yy999;
       }
     }
-  yy1044:
+  yy1043:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1046;
+        goto yy1045;
       if (yych <= '/')
         goto yy999;
-      goto yy1047;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1047;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1047;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1045:
+  yy1044:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1047;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1047;
+          goto yy1046;
         goto yy999;
       }
     } else {
@@ -9614,51 +9509,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1047;
+        goto yy1046;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1047;
+          goto yy1046;
         goto yy999;
       }
     }
-  yy1046:
+  yy1045:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1048;
+        goto yy1047;
       if (yych <= '/')
         goto yy999;
-      goto yy1049;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1049;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1049;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1047:
+  yy1046:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1049;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1049;
+          goto yy1048;
         goto yy999;
       }
     } else {
@@ -9667,51 +9560,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1049;
+        goto yy1048;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1049;
+          goto yy1048;
         goto yy999;
       }
     }
-  yy1048:
+  yy1047:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1050;
+        goto yy1049;
       if (yych <= '/')
         goto yy999;
-      goto yy1051;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1051;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1051;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1049:
+  yy1048:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1051;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1051;
+          goto yy1050;
         goto yy999;
       }
     } else {
@@ -9720,51 +9611,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1051;
+        goto yy1050;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1051;
+          goto yy1050;
         goto yy999;
       }
     }
-  yy1050:
+  yy1049:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1052;
+        goto yy1051;
       if (yych <= '/')
         goto yy999;
-      goto yy1053;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1053;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1053;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1051:
+  yy1050:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1053;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1053;
+          goto yy1052;
         goto yy999;
       }
     } else {
@@ -9773,51 +9662,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1053;
+        goto yy1052;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1053;
+          goto yy1052;
         goto yy999;
       }
     }
-  yy1052:
+  yy1051:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1054;
+        goto yy1053;
       if (yych <= '/')
         goto yy999;
-      goto yy1055;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1055;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1055;
-        goto yy999;
-      }
+        if (yych >= '{')
+          goto yy999;
+      }
     }
-  yy1053:
+  yy1052:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1055;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1055;
+          goto yy1054;
         goto yy999;
       }
     } else {
@@ -9826,51 +9713,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1055;
+        goto yy1054;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1055;
+          goto yy1054;
         goto yy999;
       }
     }
-  yy1054:
+  yy1053:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1056;
+        goto yy1055;
       if (yych <= '/')
         goto yy999;
-      goto yy1057;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1057;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1057;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1055:
+  yy1054:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1057;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1057;
+          goto yy1056;
         goto yy999;
       }
     } else {
@@ -9879,51 +9764,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1057;
+        goto yy1056;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1057;
+          goto yy1056;
         goto yy999;
       }
     }
-  yy1056:
+  yy1055:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1058;
+        goto yy1057;
       if (yych <= '/')
         goto yy999;
-      goto yy1059;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1059;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1059;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1057:
+  yy1056:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1059;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1059;
+          goto yy1058;
         goto yy999;
       }
     } else {
@@ -9932,51 +9815,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1059;
+        goto yy1058;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1059;
+          goto yy1058;
         goto yy999;
       }
     }
-  yy1058:
+  yy1057:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1060;
+        goto yy1059;
       if (yych <= '/')
         goto yy999;
-      goto yy1061;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1061;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1061;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1059:
+  yy1058:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1061;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1061;
+          goto yy1060;
         goto yy999;
       }
     } else {
@@ -9985,51 +9866,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1061;
+        goto yy1060;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1061;
+          goto yy1060;
         goto yy999;
       }
     }
-  yy1060:
+  yy1059:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1062;
+        goto yy1061;
       if (yych <= '/')
         goto yy999;
-      goto yy1063;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1063;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1063;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1061:
+  yy1060:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1063;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1063;
+          goto yy1062;
         goto yy999;
       }
     } else {
@@ -10038,51 +9917,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1063;
+        goto yy1062;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1063;
+          goto yy1062;
         goto yy999;
       }
     }
-  yy1062:
+  yy1061:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1064;
+        goto yy1063;
       if (yych <= '/')
         goto yy999;
-      goto yy1065;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1065;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1065;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1063:
+  yy1062:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1065;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1065;
+          goto yy1064;
         goto yy999;
       }
     } else {
@@ -10091,51 +9968,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1065;
+        goto yy1064;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1065;
+          goto yy1064;
         goto yy999;
       }
     }
-  yy1064:
+  yy1063:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1066;
+        goto yy1065;
       if (yych <= '/')
         goto yy999;
-      goto yy1067;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1067;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1067;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1065:
+  yy1064:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1067;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1067;
+          goto yy1066;
         goto yy999;
       }
     } else {
@@ -10144,51 +10019,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1067;
+        goto yy1066;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1067;
+          goto yy1066;
         goto yy999;
       }
     }
-  yy1066:
+  yy1065:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1068;
+        goto yy1067;
       if (yych <= '/')
         goto yy999;
-      goto yy1069;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1069;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1069;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1067:
+  yy1066:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1069;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1069;
+          goto yy1068;
         goto yy999;
       }
     } else {
@@ -10197,51 +10070,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1069;
+        goto yy1068;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1069;
+          goto yy1068;
         goto yy999;
       }
     }
-  yy1068:
+  yy1067:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1070;
+        goto yy1069;
       if (yych <= '/')
         goto yy999;
-      goto yy1071;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1071;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1071;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1069:
+  yy1068:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1071;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1071;
+          goto yy1070;
         goto yy999;
       }
     } else {
@@ -10250,51 +10121,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1071;
+        goto yy1070;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1071;
+          goto yy1070;
         goto yy999;
       }
     }
-  yy1070:
+  yy1069:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1072;
+        goto yy1071;
       if (yych <= '/')
         goto yy999;
-      goto yy1073;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1073;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1073;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1071:
+  yy1070:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1073;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1073;
+          goto yy1072;
         goto yy999;
       }
     } else {
@@ -10303,51 +10172,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1073;
+        goto yy1072;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1073;
+          goto yy1072;
         goto yy999;
       }
     }
-  yy1072:
+  yy1071:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1074;
+        goto yy1073;
       if (yych <= '/')
         goto yy999;
-      goto yy1075;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1075;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1075;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1073:
+  yy1072:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1075;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1075;
+          goto yy1074;
         goto yy999;
       }
     } else {
@@ -10356,51 +10223,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1075;
+        goto yy1074;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1075;
+          goto yy1074;
         goto yy999;
       }
     }
-  yy1074:
+  yy1073:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1076;
+        goto yy1075;
       if (yych <= '/')
         goto yy999;
-      goto yy1077;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1077;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1077;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1075:
+  yy1074:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1077;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1077;
+          goto yy1076;
         goto yy999;
       }
     } else {
@@ -10409,51 +10274,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1077;
+        goto yy1076;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1077;
+          goto yy1076;
         goto yy999;
       }
     }
-  yy1076:
+  yy1075:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1078;
+        goto yy1077;
       if (yych <= '/')
         goto yy999;
-      goto yy1079;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1079;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1079;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1077:
+  yy1076:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1079;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1079;
+          goto yy1078;
         goto yy999;
       }
     } else {
@@ -10462,51 +10325,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1079;
+        goto yy1078;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1079;
+          goto yy1078;
         goto yy999;
       }
     }
-  yy1078:
+  yy1077:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1080;
+        goto yy1079;
       if (yych <= '/')
         goto yy999;
-      goto yy1081;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1081;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1081;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1079:
+  yy1078:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1081;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1081;
+          goto yy1080;
         goto yy999;
       }
     } else {
@@ -10515,51 +10376,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1081;
+        goto yy1080;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1081;
+          goto yy1080;
         goto yy999;
       }
     }
-  yy1080:
+  yy1079:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1082;
+        goto yy1081;
       if (yych <= '/')
         goto yy999;
-      goto yy1083;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1083;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1083;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1081:
+  yy1080:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1083;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1083;
+          goto yy1082;
         goto yy999;
       }
     } else {
@@ -10568,51 +10427,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1083;
+        goto yy1082;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1083;
+          goto yy1082;
         goto yy999;
       }
     }
-  yy1082:
+  yy1081:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1084;
+        goto yy1083;
       if (yych <= '/')
         goto yy999;
-      goto yy1085;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1085;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1085;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1083:
+  yy1082:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1085;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1085;
+          goto yy1084;
         goto yy999;
       }
     } else {
@@ -10621,51 +10478,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1085;
+        goto yy1084;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1085;
+          goto yy1084;
         goto yy999;
       }
     }
-  yy1084:
+  yy1083:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1086;
+        goto yy1085;
       if (yych <= '/')
         goto yy999;
-      goto yy1087;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1087;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1087;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1085:
+  yy1084:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1087;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1087;
+          goto yy1086;
         goto yy999;
       }
     } else {
@@ -10674,51 +10529,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1087;
+        goto yy1086;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1087;
+          goto yy1086;
         goto yy999;
       }
     }
-  yy1086:
+  yy1085:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1088;
+        goto yy1087;
       if (yych <= '/')
         goto yy999;
-      goto yy1089;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1089;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1089;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1087:
+  yy1086:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1089;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1089;
+          goto yy1088;
         goto yy999;
       }
     } else {
@@ -10727,51 +10580,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1089;
+        goto yy1088;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1089;
+          goto yy1088;
         goto yy999;
       }
     }
-  yy1088:
+  yy1087:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1090;
+        goto yy1089;
       if (yych <= '/')
         goto yy999;
-      goto yy1091;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1091;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1091;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1089:
+  yy1088:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1091;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1091;
+          goto yy1090;
         goto yy999;
       }
     } else {
@@ -10780,51 +10631,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1091;
+        goto yy1090;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1091;
+          goto yy1090;
         goto yy999;
       }
     }
-  yy1090:
+  yy1089:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1092;
+        goto yy1091;
       if (yych <= '/')
         goto yy999;
-      goto yy1093;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1093;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1093;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1091:
+  yy1090:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1093;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1093;
+          goto yy1092;
         goto yy999;
       }
     } else {
@@ -10833,51 +10682,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1093;
+        goto yy1092;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1093;
+          goto yy1092;
         goto yy999;
       }
     }
-  yy1092:
+  yy1091:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1094;
+        goto yy1093;
       if (yych <= '/')
         goto yy999;
-      goto yy1095;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1095;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1095;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1093:
+  yy1092:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1095;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1095;
+          goto yy1094;
         goto yy999;
       }
     } else {
@@ -10886,51 +10733,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1095;
+        goto yy1094;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1095;
+          goto yy1094;
         goto yy999;
       }
     }
-  yy1094:
+  yy1093:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1096;
+        goto yy1095;
       if (yych <= '/')
         goto yy999;
-      goto yy1097;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1097;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1097;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1095:
+  yy1094:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1097;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1097;
+          goto yy1096;
         goto yy999;
       }
     } else {
@@ -10939,51 +10784,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1097;
+        goto yy1096;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1097;
+          goto yy1096;
         goto yy999;
       }
     }
-  yy1096:
+  yy1095:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1098;
+        goto yy1097;
       if (yych <= '/')
         goto yy999;
-      goto yy1099;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1099;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1099;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1097:
+  yy1096:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1099;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1099;
+          goto yy1098;
         goto yy999;
       }
     } else {
@@ -10992,51 +10835,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1099;
+        goto yy1098;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1099;
+          goto yy1098;
         goto yy999;
       }
     }
-  yy1098:
+  yy1097:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1100;
+        goto yy1099;
       if (yych <= '/')
         goto yy999;
-      goto yy1101;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1101;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1101;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1099:
+  yy1098:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1101;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1101;
+          goto yy1100;
         goto yy999;
       }
     } else {
@@ -11045,51 +10886,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1101;
+        goto yy1100;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1101;
+          goto yy1100;
         goto yy999;
       }
     }
-  yy1100:
+  yy1099:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1102;
+        goto yy1101;
       if (yych <= '/')
         goto yy999;
-      goto yy1103;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1103;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1103;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1101:
+  yy1100:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1103;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1103;
+          goto yy1102;
         goto yy999;
       }
     } else {
@@ -11098,51 +10937,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1103;
+        goto yy1102;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1103;
+          goto yy1102;
         goto yy999;
       }
     }
-  yy1102:
+  yy1101:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1104;
+        goto yy1103;
       if (yych <= '/')
         goto yy999;
-      goto yy1105;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1105;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1105;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1103:
+  yy1102:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1105;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1105;
+          goto yy1104;
         goto yy999;
       }
     } else {
@@ -11151,51 +10988,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1105;
+        goto yy1104;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1105;
+          goto yy1104;
         goto yy999;
       }
     }
-  yy1104:
+  yy1103:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1106;
+        goto yy1105;
       if (yych <= '/')
         goto yy999;
-      goto yy1107;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1107;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1107;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1105:
+  yy1104:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1107;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1107;
+          goto yy1106;
         goto yy999;
       }
     } else {
@@ -11204,51 +11039,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1107;
+        goto yy1106;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1107;
+          goto yy1106;
         goto yy999;
       }
     }
-  yy1106:
+  yy1105:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1108;
+        goto yy1107;
       if (yych <= '/')
         goto yy999;
-      goto yy1109;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1109;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1109;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1107:
+  yy1106:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1109;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1109;
+          goto yy1108;
         goto yy999;
       }
     } else {
@@ -11257,51 +11090,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1109;
+        goto yy1108;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1109;
+          goto yy1108;
         goto yy999;
       }
     }
-  yy1108:
+  yy1107:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1110;
+        goto yy1109;
       if (yych <= '/')
         goto yy999;
-      goto yy1111;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1111;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1111;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1109:
+  yy1108:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1111;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1111;
+          goto yy1110;
         goto yy999;
       }
     } else {
@@ -11310,51 +11141,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1111;
+        goto yy1110;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1111;
+          goto yy1110;
         goto yy999;
       }
     }
-  yy1110:
+  yy1109:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1112;
+        goto yy1111;
       if (yych <= '/')
         goto yy999;
-      goto yy1113;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1113;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1113;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1111:
+  yy1110:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1113;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1113;
+          goto yy1112;
         goto yy999;
       }
     } else {
@@ -11363,51 +11192,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1113;
+        goto yy1112;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1113;
+          goto yy1112;
         goto yy999;
       }
     }
-  yy1112:
+  yy1111:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1114;
+        goto yy1113;
       if (yych <= '/')
         goto yy999;
-      goto yy1115;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1115;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1115;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1113:
+  yy1112:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1115;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1115;
+          goto yy1114;
         goto yy999;
       }
     } else {
@@ -11416,51 +11243,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1115;
+        goto yy1114;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1115;
+          goto yy1114;
         goto yy999;
       }
     }
-  yy1114:
+  yy1113:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1116;
+        goto yy1115;
       if (yych <= '/')
         goto yy999;
-      goto yy1117;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1117;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1117;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1115:
+  yy1114:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1117;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1117;
+          goto yy1116;
         goto yy999;
       }
     } else {
@@ -11469,51 +11294,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1117;
+        goto yy1116;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1117;
+          goto yy1116;
         goto yy999;
       }
     }
-  yy1116:
+  yy1115:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1118;
+        goto yy1117;
       if (yych <= '/')
         goto yy999;
-      goto yy1119;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1119;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1119;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1117:
+  yy1116:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1119;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1119;
+          goto yy1118;
         goto yy999;
       }
     } else {
@@ -11522,51 +11345,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1119;
+        goto yy1118;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1119;
+          goto yy1118;
         goto yy999;
       }
     }
-  yy1118:
+  yy1117:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1120;
+        goto yy1119;
       if (yych <= '/')
         goto yy999;
-      goto yy1121;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1121;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1121;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1119:
+  yy1118:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1121;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1121;
+          goto yy1120;
         goto yy999;
       }
     } else {
@@ -11575,51 +11396,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1121;
+        goto yy1120;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1121;
+          goto yy1120;
         goto yy999;
       }
     }
-  yy1120:
+  yy1119:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1122;
+        goto yy1121;
       if (yych <= '/')
         goto yy999;
-      goto yy1123;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1123;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1123;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1121:
+  yy1120:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1123;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1123;
+          goto yy1122;
         goto yy999;
       }
     } else {
@@ -11628,51 +11447,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1123;
+        goto yy1122;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1123;
+          goto yy1122;
         goto yy999;
       }
     }
-  yy1122:
+  yy1121:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1124;
+        goto yy1123;
       if (yych <= '/')
         goto yy999;
-      goto yy1125;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1125;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1125;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1123:
+  yy1122:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1125;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1125;
+          goto yy1124;
         goto yy999;
       }
     } else {
@@ -11681,51 +11498,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1125;
+        goto yy1124;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1125;
+          goto yy1124;
         goto yy999;
       }
     }
-  yy1124:
+  yy1123:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1126;
+        goto yy1125;
       if (yych <= '/')
         goto yy999;
-      goto yy1127;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1127;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1127;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1125:
+  yy1124:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1127;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1127;
+          goto yy1126;
         goto yy999;
       }
     } else {
@@ -11734,51 +11549,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1127;
+        goto yy1126;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1127;
+          goto yy1126;
         goto yy999;
       }
     }
-  yy1126:
+  yy1125:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1128;
+        goto yy1127;
       if (yych <= '/')
         goto yy999;
-      goto yy1129;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1129;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1129;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1127:
+  yy1126:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1129;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1129;
+          goto yy1128;
         goto yy999;
       }
     } else {
@@ -11787,51 +11600,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1129;
+        goto yy1128;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1129;
+          goto yy1128;
         goto yy999;
       }
     }
-  yy1128:
+  yy1127:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1130;
+        goto yy1129;
       if (yych <= '/')
         goto yy999;
-      goto yy1131;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1131;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1131;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1129:
+  yy1128:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1131;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1131;
+          goto yy1130;
         goto yy999;
       }
     } else {
@@ -11840,51 +11651,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1131;
+        goto yy1130;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1131;
+          goto yy1130;
         goto yy999;
       }
     }
-  yy1130:
+  yy1129:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1132;
+        goto yy1131;
       if (yych <= '/')
         goto yy999;
-      goto yy1133;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1133;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1133;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1131:
+  yy1130:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1133;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1133;
+          goto yy1132;
         goto yy999;
       }
     } else {
@@ -11893,51 +11702,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1133;
+        goto yy1132;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1133;
+          goto yy1132;
         goto yy999;
       }
     }
-  yy1132:
+  yy1131:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1134;
+        goto yy1133;
       if (yych <= '/')
         goto yy999;
-      goto yy1135;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1135;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1135;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1133:
+  yy1132:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1135;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1135;
+          goto yy1134;
         goto yy999;
       }
     } else {
@@ -11946,51 +11753,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1135;
+        goto yy1134;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1135;
+          goto yy1134;
         goto yy999;
       }
     }
-  yy1134:
+  yy1133:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1136;
+        goto yy1135;
       if (yych <= '/')
         goto yy999;
-      goto yy1137;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1137;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1137;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1135:
+  yy1134:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1137;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1137;
+          goto yy1136;
         goto yy999;
       }
     } else {
@@ -11999,34 +11804,35 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1137;
+        goto yy1136;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1137;
+          goto yy1136;
         goto yy999;
       }
     }
-  yy1136:
+  yy1135:
     ++p;
     yych = *p;
-    if (yych <= '@') {
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1137;
       if (yych <= '/')
         goto yy999;
-      if (yych <= '9')
-        goto yy1138;
-      goto yy999;
     } else {
-      if (yych <= 'Z')
-        goto yy1138;
-      if (yych <= '`')
-        goto yy999;
-      if (yych <= 'z')
-        goto yy1138;
-      goto yy999;
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
     }
-  yy1137:
+  yy1136:
     ++p;
     yych = *p;
     if (yych <= '=') {
@@ -12037,8 +11843,9 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       } else {
         if (yych <= '/')
           goto yy999;
-        if (yych >= ':')
-          goto yy999;
+        if (yych <= '9')
+          goto yy1138;
+        goto yy999;
       }
     } else {
       if (yych <= 'Z') {
@@ -12046,13 +11853,31 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
+        goto yy1138;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych >= '{')
-          goto yy999;
+        if (yych <= 'z')
+          goto yy1138;
+        goto yy999;
       }
     }
+  yy1137:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy999;
+      if (yych >= ':')
+        goto yy999;
+    } else {
+      if (yych <= 'Z')
+        goto yy1138;
+      if (yych <= '`')
+        goto yy999;
+      if (yych >= '{')
+        goto yy999;
+    }
   yy1138:
     ++p;
     yych = *p;
@@ -12063,38 +11888,18 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
     goto yy999;
   yy1139:
     yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1141;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1142;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1142;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1142;
-        goto yy999;
-      }
-    }
-  yy1140:
-    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1142;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1142;
+          goto yy1141;
         goto yy999;
       }
     } else {
@@ -12103,49 +11908,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1142;
+        goto yy1141;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1142;
+          goto yy1141;
         goto yy999;
       }
     }
-  yy1141:
+  yy1140:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1143;
+        goto yy1142;
       if (yych <= '/')
         goto yy999;
-      goto yy1144;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1144;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1144;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1142:
+  yy1141:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1144;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1144;
+          goto yy1143;
         goto yy999;
       }
     } else {
@@ -12154,49 +11957,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1144;
+        goto yy1143;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1144;
+          goto yy1143;
         goto yy999;
       }
     }
-  yy1143:
+  yy1142:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1145;
+        goto yy1144;
       if (yych <= '/')
         goto yy999;
-      goto yy1146;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1146;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1146;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1144:
+  yy1143:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1146;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1146;
+          goto yy1145;
         goto yy999;
       }
     } else {
@@ -12205,49 +12006,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1146;
+        goto yy1145;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1146;
+          goto yy1145;
         goto yy999;
       }
     }
-  yy1145:
+  yy1144:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1147;
+        goto yy1146;
       if (yych <= '/')
         goto yy999;
-      goto yy1148;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1148;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1148;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1146:
+  yy1145:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1148;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1148;
+          goto yy1147;
         goto yy999;
       }
     } else {
@@ -12256,49 +12055,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1148;
+        goto yy1147;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1148;
+          goto yy1147;
         goto yy999;
       }
     }
-  yy1147:
+  yy1146:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1149;
+        goto yy1148;
       if (yych <= '/')
         goto yy999;
-      goto yy1150;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1150;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1150;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1148:
+  yy1147:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1150;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1150;
+          goto yy1149;
         goto yy999;
       }
     } else {
@@ -12307,49 +12104,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1150;
+        goto yy1149;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1150;
+          goto yy1149;
         goto yy999;
       }
     }
-  yy1149:
+  yy1148:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1151;
+        goto yy1150;
       if (yych <= '/')
         goto yy999;
-      goto yy1152;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1152;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1152;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1150:
+  yy1149:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1152;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1152;
+          goto yy1151;
         goto yy999;
       }
     } else {
@@ -12358,49 +12153,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1152;
+        goto yy1151;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1152;
+          goto yy1151;
         goto yy999;
       }
     }
-  yy1151:
+  yy1150:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1153;
+        goto yy1152;
       if (yych <= '/')
         goto yy999;
-      goto yy1154;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1154;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1154;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1152:
+  yy1151:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1154;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1154;
+          goto yy1153;
         goto yy999;
       }
     } else {
@@ -12409,49 +12202,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1154;
+        goto yy1153;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1154;
+          goto yy1153;
         goto yy999;
       }
     }
-  yy1153:
+  yy1152:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1155;
+        goto yy1154;
       if (yych <= '/')
         goto yy999;
-      goto yy1156;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1156;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1156;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1154:
+  yy1153:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1156;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1156;
+          goto yy1155;
         goto yy999;
       }
     } else {
@@ -12460,49 +12251,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1156;
+        goto yy1155;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1156;
+          goto yy1155;
         goto yy999;
       }
     }
-  yy1155:
+  yy1154:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1157;
+        goto yy1156;
       if (yych <= '/')
         goto yy999;
-      goto yy1158;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1158;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1158;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1156:
+  yy1155:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1158;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1158;
+          goto yy1157;
         goto yy999;
       }
     } else {
@@ -12511,49 +12300,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1158;
+        goto yy1157;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1158;
+          goto yy1157;
         goto yy999;
       }
     }
-  yy1157:
+  yy1156:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1159;
+        goto yy1158;
       if (yych <= '/')
         goto yy999;
-      goto yy1160;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1160;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1160;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1158:
+  yy1157:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1160;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1160;
+          goto yy1159;
         goto yy999;
       }
     } else {
@@ -12562,49 +12349,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1160;
+        goto yy1159;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1160;
+          goto yy1159;
         goto yy999;
       }
     }
-  yy1159:
+  yy1158:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1161;
+        goto yy1160;
       if (yych <= '/')
         goto yy999;
-      goto yy1162;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1162;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1162;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1160:
+  yy1159:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1162;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1162;
+          goto yy1161;
         goto yy999;
       }
     } else {
@@ -12613,49 +12398,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1162;
+        goto yy1161;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1162;
+          goto yy1161;
         goto yy999;
       }
     }
-  yy1161:
+  yy1160:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1163;
+        goto yy1162;
       if (yych <= '/')
         goto yy999;
-      goto yy1164;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1164;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1164;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1162:
+  yy1161:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1164;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1164;
+          goto yy1163;
         goto yy999;
       }
     } else {
@@ -12664,49 +12447,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1164;
+        goto yy1163;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1164;
+          goto yy1163;
         goto yy999;
       }
     }
-  yy1163:
+  yy1162:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1165;
+        goto yy1164;
       if (yych <= '/')
         goto yy999;
-      goto yy1166;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1166;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1166;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1164:
+  yy1163:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1166;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1166;
+          goto yy1165;
         goto yy999;
       }
     } else {
@@ -12715,49 +12496,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1166;
+        goto yy1165;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1166;
+          goto yy1165;
         goto yy999;
       }
     }
-  yy1165:
+  yy1164:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1167;
+        goto yy1166;
       if (yych <= '/')
         goto yy999;
-      goto yy1168;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1168;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1168;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1166:
+  yy1165:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1168;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1168;
+          goto yy1167;
         goto yy999;
       }
     } else {
@@ -12766,49 +12545,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1168;
+        goto yy1167;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1168;
+          goto yy1167;
         goto yy999;
       }
     }
-  yy1167:
+  yy1166:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1169;
+        goto yy1168;
       if (yych <= '/')
         goto yy999;
-      goto yy1170;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1170;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1170;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1168:
+  yy1167:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1170;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1170;
+          goto yy1169;
         goto yy999;
       }
     } else {
@@ -12817,49 +12594,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1170;
+        goto yy1169;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1170;
+          goto yy1169;
         goto yy999;
       }
     }
-  yy1169:
+  yy1168:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1171;
+        goto yy1170;
       if (yych <= '/')
         goto yy999;
-      goto yy1172;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1172;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1172;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1170:
+  yy1169:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1172;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1172;
+          goto yy1171;
         goto yy999;
       }
     } else {
@@ -12868,49 +12643,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1172;
+        goto yy1171;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1172;
+          goto yy1171;
         goto yy999;
       }
     }
-  yy1171:
+  yy1170:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1173;
+        goto yy1172;
       if (yych <= '/')
         goto yy999;
-      goto yy1174;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1174;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1174;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1172:
+  yy1171:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1174;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1174;
+          goto yy1173;
         goto yy999;
       }
     } else {
@@ -12919,49 +12692,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1174;
+        goto yy1173;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1174;
+          goto yy1173;
         goto yy999;
       }
     }
-  yy1173:
+  yy1172:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1175;
+        goto yy1174;
       if (yych <= '/')
         goto yy999;
-      goto yy1176;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1176;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1176;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1174:
+  yy1173:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1176;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1176;
+          goto yy1175;
         goto yy999;
       }
     } else {
@@ -12970,49 +12741,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1176;
+        goto yy1175;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1176;
+          goto yy1175;
         goto yy999;
       }
     }
-  yy1175:
+  yy1174:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1177;
+        goto yy1176;
       if (yych <= '/')
         goto yy999;
-      goto yy1178;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1178;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1178;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1176:
+  yy1175:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1178;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1178;
+          goto yy1177;
         goto yy999;
       }
     } else {
@@ -13021,49 +12790,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1178;
+        goto yy1177;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1178;
+          goto yy1177;
         goto yy999;
       }
     }
-  yy1177:
+  yy1176:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1179;
+        goto yy1178;
       if (yych <= '/')
         goto yy999;
-      goto yy1180;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1180;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1180;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1178:
+  yy1177:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1180;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1180;
+          goto yy1179;
         goto yy999;
       }
     } else {
@@ -13072,49 +12839,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1180;
+        goto yy1179;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1180;
+          goto yy1179;
         goto yy999;
       }
     }
-  yy1179:
+  yy1178:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1181;
+        goto yy1180;
       if (yych <= '/')
         goto yy999;
-      goto yy1182;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1182;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1182;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1180:
+  yy1179:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1182;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1182;
+          goto yy1181;
         goto yy999;
       }
     } else {
@@ -13123,49 +12888,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1182;
+        goto yy1181;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1182;
+          goto yy1181;
         goto yy999;
       }
     }
-  yy1181:
+  yy1180:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1183;
+        goto yy1182;
       if (yych <= '/')
         goto yy999;
-      goto yy1184;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1184;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1184;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1182:
+  yy1181:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1184;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1184;
+          goto yy1183;
         goto yy999;
       }
     } else {
@@ -13174,49 +12937,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1184;
+        goto yy1183;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1184;
+          goto yy1183;
         goto yy999;
       }
     }
-  yy1183:
+  yy1182:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1185;
+        goto yy1184;
       if (yych <= '/')
         goto yy999;
-      goto yy1186;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1186;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1186;
-        goto yy999;
-      }
+        if (yych >= '{')
+          goto yy999;
+      }
     }
-  yy1184:
+  yy1183:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1186;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1186;
+          goto yy1185;
         goto yy999;
       }
     } else {
@@ -13225,49 +12986,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1186;
+        goto yy1185;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1186;
+          goto yy1185;
         goto yy999;
       }
     }
-  yy1185:
+  yy1184:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1187;
+        goto yy1186;
       if (yych <= '/')
         goto yy999;
-      goto yy1188;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1188;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1188;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1186:
+  yy1185:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1188;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1188;
+          goto yy1187;
         goto yy999;
       }
     } else {
@@ -13276,49 +13035,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1188;
+        goto yy1187;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1188;
+          goto yy1187;
         goto yy999;
       }
     }
-  yy1187:
+  yy1186:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1189;
+        goto yy1188;
       if (yych <= '/')
         goto yy999;
-      goto yy1190;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1190;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1190;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1188:
+  yy1187:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1190;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1190;
+          goto yy1189;
         goto yy999;
       }
     } else {
@@ -13327,49 +13084,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1190;
+        goto yy1189;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1190;
+          goto yy1189;
         goto yy999;
       }
     }
-  yy1189:
+  yy1188:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1191;
+        goto yy1190;
       if (yych <= '/')
         goto yy999;
-      goto yy1192;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1192;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1192;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1190:
+  yy1189:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1192;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1192;
+          goto yy1191;
         goto yy999;
       }
     } else {
@@ -13378,49 +13133,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1192;
+        goto yy1191;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1192;
+          goto yy1191;
         goto yy999;
       }
     }
-  yy1191:
+  yy1190:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1193;
+        goto yy1192;
       if (yych <= '/')
         goto yy999;
-      goto yy1194;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1194;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1194;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1192:
+  yy1191:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1194;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1194;
+          goto yy1193;
         goto yy999;
       }
     } else {
@@ -13429,49 +13182,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1194;
+        goto yy1193;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1194;
+          goto yy1193;
         goto yy999;
       }
     }
-  yy1193:
+  yy1192:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1195;
+        goto yy1194;
       if (yych <= '/')
         goto yy999;
-      goto yy1196;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1196;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1196;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1194:
+  yy1193:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1196;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1196;
+          goto yy1195;
         goto yy999;
       }
     } else {
@@ -13480,49 +13231,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1196;
+        goto yy1195;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1196;
+          goto yy1195;
         goto yy999;
       }
     }
-  yy1195:
+  yy1194:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1197;
+        goto yy1196;
       if (yych <= '/')
         goto yy999;
-      goto yy1198;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1198;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1198;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1196:
+  yy1195:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1198;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1198;
+          goto yy1197;
         goto yy999;
       }
     } else {
@@ -13531,49 +13280,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1198;
+        goto yy1197;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1198;
+          goto yy1197;
         goto yy999;
       }
     }
-  yy1197:
+  yy1196:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1199;
+        goto yy1198;
       if (yych <= '/')
         goto yy999;
-      goto yy1200;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1200;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1200;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1198:
+  yy1197:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1200;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1200;
+          goto yy1199;
         goto yy999;
       }
     } else {
@@ -13582,49 +13329,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1200;
+        goto yy1199;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1200;
+          goto yy1199;
         goto yy999;
       }
     }
-  yy1199:
+  yy1198:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1201;
+        goto yy1200;
       if (yych <= '/')
         goto yy999;
-      goto yy1202;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1202;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1202;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1200:
+  yy1199:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1202;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1202;
+          goto yy1201;
         goto yy999;
       }
     } else {
@@ -13633,49 +13378,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1202;
+        goto yy1201;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1202;
+          goto yy1201;
         goto yy999;
       }
     }
-  yy1201:
+  yy1200:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1203;
+        goto yy1202;
       if (yych <= '/')
         goto yy999;
-      goto yy1204;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1204;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1204;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1202:
+  yy1201:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1204;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1204;
+          goto yy1203;
         goto yy999;
       }
     } else {
@@ -13684,49 +13427,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1204;
+        goto yy1203;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1204;
+          goto yy1203;
         goto yy999;
       }
     }
-  yy1203:
+  yy1202:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1205;
+        goto yy1204;
       if (yych <= '/')
         goto yy999;
-      goto yy1206;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1206;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1206;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1204:
+  yy1203:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1206;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1206;
+          goto yy1205;
         goto yy999;
       }
     } else {
@@ -13735,49 +13476,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1206;
+        goto yy1205;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1206;
+          goto yy1205;
         goto yy999;
       }
     }
-  yy1205:
+  yy1204:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1207;
+        goto yy1206;
       if (yych <= '/')
         goto yy999;
-      goto yy1208;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1208;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1208;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1206:
+  yy1205:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1208;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1208;
+          goto yy1207;
         goto yy999;
       }
     } else {
@@ -13786,49 +13525,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1208;
+        goto yy1207;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1208;
+          goto yy1207;
         goto yy999;
       }
     }
-  yy1207:
+  yy1206:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1209;
+        goto yy1208;
       if (yych <= '/')
         goto yy999;
-      goto yy1210;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1210;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1210;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1208:
+  yy1207:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1210;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1210;
+          goto yy1209;
         goto yy999;
       }
     } else {
@@ -13837,49 +13574,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1210;
+        goto yy1209;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1210;
+          goto yy1209;
         goto yy999;
       }
     }
-  yy1209:
+  yy1208:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1211;
+        goto yy1210;
       if (yych <= '/')
         goto yy999;
-      goto yy1212;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1212;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1212;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1210:
+  yy1209:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1212;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1212;
+          goto yy1211;
         goto yy999;
       }
     } else {
@@ -13888,49 +13623,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1212;
+        goto yy1211;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1212;
+          goto yy1211;
         goto yy999;
       }
     }
-  yy1211:
+  yy1210:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1213;
+        goto yy1212;
       if (yych <= '/')
         goto yy999;
-      goto yy1214;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1214;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1214;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1212:
+  yy1211:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1214;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1214;
+          goto yy1213;
         goto yy999;
       }
     } else {
@@ -13939,49 +13672,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1214;
+        goto yy1213;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1214;
+          goto yy1213;
         goto yy999;
       }
     }
-  yy1213:
+  yy1212:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1215;
+        goto yy1214;
       if (yych <= '/')
         goto yy999;
-      goto yy1216;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1216;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1216;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1214:
+  yy1213:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1216;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1216;
+          goto yy1215;
         goto yy999;
       }
     } else {
@@ -13990,49 +13721,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1216;
+        goto yy1215;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1216;
+          goto yy1215;
         goto yy999;
       }
     }
-  yy1215:
+  yy1214:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1217;
+        goto yy1216;
       if (yych <= '/')
         goto yy999;
-      goto yy1218;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1218;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1218;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1216:
+  yy1215:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1218;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1218;
+          goto yy1217;
         goto yy999;
       }
     } else {
@@ -14041,49 +13770,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1218;
+        goto yy1217;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1218;
+          goto yy1217;
         goto yy999;
       }
     }
-  yy1217:
+  yy1216:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1219;
+        goto yy1218;
       if (yych <= '/')
         goto yy999;
-      goto yy1220;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1220;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1220;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1218:
+  yy1217:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1220;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1220;
+          goto yy1219;
         goto yy999;
       }
     } else {
@@ -14092,49 +13819,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1220;
+        goto yy1219;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1220;
+          goto yy1219;
         goto yy999;
       }
     }
-  yy1219:
+  yy1218:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1221;
+        goto yy1220;
       if (yych <= '/')
         goto yy999;
-      goto yy1222;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1222;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1222;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1220:
+  yy1219:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1222;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1222;
+          goto yy1221;
         goto yy999;
       }
     } else {
@@ -14143,49 +13868,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1222;
+        goto yy1221;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1222;
+          goto yy1221;
         goto yy999;
       }
     }
-  yy1221:
+  yy1220:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1223;
+        goto yy1222;
       if (yych <= '/')
         goto yy999;
-      goto yy1224;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1224;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1224;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1222:
+  yy1221:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1224;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1224;
+          goto yy1223;
         goto yy999;
       }
     } else {
@@ -14194,49 +13917,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1224;
+        goto yy1223;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1224;
+          goto yy1223;
         goto yy999;
       }
     }
-  yy1223:
+  yy1222:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1225;
+        goto yy1224;
       if (yych <= '/')
         goto yy999;
-      goto yy1226;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1226;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1226;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1224:
+  yy1223:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1226;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1226;
+          goto yy1225;
         goto yy999;
       }
     } else {
@@ -14245,49 +13966,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1226;
+        goto yy1225;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1226;
+          goto yy1225;
         goto yy999;
       }
     }
-  yy1225:
+  yy1224:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1227;
+        goto yy1226;
       if (yych <= '/')
         goto yy999;
-      goto yy1228;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1228;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1228;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1226:
+  yy1225:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1228;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1228;
+          goto yy1227;
         goto yy999;
       }
     } else {
@@ -14296,49 +14015,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1228;
+        goto yy1227;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1228;
+          goto yy1227;
         goto yy999;
       }
     }
-  yy1227:
+  yy1226:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1229;
+        goto yy1228;
       if (yych <= '/')
         goto yy999;
-      goto yy1230;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1230;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1230;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1228:
+  yy1227:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1230;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1230;
+          goto yy1229;
         goto yy999;
       }
     } else {
@@ -14347,49 +14064,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1230;
+        goto yy1229;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1230;
+          goto yy1229;
         goto yy999;
       }
     }
-  yy1229:
+  yy1228:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1231;
+        goto yy1230;
       if (yych <= '/')
         goto yy999;
-      goto yy1232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1232;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1232;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1230:
+  yy1229:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1232;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1232;
+          goto yy1231;
         goto yy999;
       }
     } else {
@@ -14398,49 +14113,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1232;
+        goto yy1231;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1232;
+          goto yy1231;
         goto yy999;
       }
     }
-  yy1231:
+  yy1230:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1233;
+        goto yy1232;
       if (yych <= '/')
         goto yy999;
-      goto yy1234;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1234;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1234;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1232:
+  yy1231:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1234;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1234;
+          goto yy1233;
         goto yy999;
       }
     } else {
@@ -14449,49 +14162,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1234;
+        goto yy1233;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1234;
+          goto yy1233;
         goto yy999;
       }
     }
-  yy1233:
+  yy1232:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1235;
+        goto yy1234;
       if (yych <= '/')
         goto yy999;
-      goto yy1236;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1236;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1236;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1234:
+  yy1233:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1236;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1236;
+          goto yy1235;
         goto yy999;
       }
     } else {
@@ -14500,49 +14211,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1236;
+        goto yy1235;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1236;
+          goto yy1235;
         goto yy999;
       }
     }
-  yy1235:
+  yy1234:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1237;
+        goto yy1236;
       if (yych <= '/')
         goto yy999;
-      goto yy1238;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1238;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1238;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1236:
+  yy1235:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1238;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1238;
+          goto yy1237;
         goto yy999;
       }
     } else {
@@ -14551,49 +14260,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1238;
+        goto yy1237;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1238;
+          goto yy1237;
         goto yy999;
       }
     }
-  yy1237:
+  yy1236:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1239;
+        goto yy1238;
       if (yych <= '/')
         goto yy999;
-      goto yy1240;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1240;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1240;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1238:
+  yy1237:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1240;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1240;
+          goto yy1239;
         goto yy999;
       }
     } else {
@@ -14602,49 +14309,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1240;
+        goto yy1239;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1240;
+          goto yy1239;
         goto yy999;
       }
     }
-  yy1239:
+  yy1238:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1241;
+        goto yy1240;
       if (yych <= '/')
         goto yy999;
-      goto yy1242;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1242;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1242;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1240:
+  yy1239:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1242;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1242;
+          goto yy1241;
         goto yy999;
       }
     } else {
@@ -14653,49 +14358,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1242;
+        goto yy1241;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1242;
+          goto yy1241;
         goto yy999;
       }
     }
-  yy1241:
+  yy1240:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1243;
+        goto yy1242;
       if (yych <= '/')
         goto yy999;
-      goto yy1244;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1244;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1244;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1242:
+  yy1241:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1244;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1244;
+          goto yy1243;
         goto yy999;
       }
     } else {
@@ -14704,49 +14407,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1244;
+        goto yy1243;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1244;
+          goto yy1243;
         goto yy999;
       }
     }
-  yy1243:
+  yy1242:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1245;
+        goto yy1244;
       if (yych <= '/')
         goto yy999;
-      goto yy1246;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1246;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1246;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1244:
+  yy1243:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1246;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1246;
+          goto yy1245;
         goto yy999;
       }
     } else {
@@ -14755,49 +14456,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1246;
+        goto yy1245;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1246;
+          goto yy1245;
         goto yy999;
       }
     }
-  yy1245:
+  yy1244:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1247;
+        goto yy1246;
       if (yych <= '/')
         goto yy999;
-      goto yy1248;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1248;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1248;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1246:
+  yy1245:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1248;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1248;
+          goto yy1247;
         goto yy999;
       }
     } else {
@@ -14806,49 +14505,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1248;
+        goto yy1247;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1248;
+          goto yy1247;
         goto yy999;
       }
     }
-  yy1247:
+  yy1246:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1249;
+        goto yy1248;
       if (yych <= '/')
         goto yy999;
-      goto yy1250;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1250;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1250;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1248:
+  yy1247:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1250;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1250;
+          goto yy1249;
         goto yy999;
       }
     } else {
@@ -14857,49 +14554,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1250;
+        goto yy1249;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1250;
+          goto yy1249;
         goto yy999;
       }
     }
-  yy1249:
+  yy1248:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1251;
+        goto yy1250;
       if (yych <= '/')
         goto yy999;
-      goto yy1252;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1252;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1252;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1250:
+  yy1249:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1252;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1252;
+          goto yy1251;
         goto yy999;
       }
     } else {
@@ -14908,49 +14603,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1252;
+        goto yy1251;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1252;
+          goto yy1251;
         goto yy999;
       }
     }
-  yy1251:
+  yy1250:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1253;
+        goto yy1252;
       if (yych <= '/')
         goto yy999;
-      goto yy1254;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1254;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1254;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1252:
+  yy1251:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1254;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1254;
+          goto yy1253;
         goto yy999;
       }
     } else {
@@ -14959,49 +14652,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1254;
+        goto yy1253;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1254;
+          goto yy1253;
         goto yy999;
       }
     }
-  yy1253:
+  yy1252:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1255;
+        goto yy1254;
       if (yych <= '/')
         goto yy999;
-      goto yy1256;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1256;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1256;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1254:
+  yy1253:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1256;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1256;
+          goto yy1255;
         goto yy999;
       }
     } else {
@@ -15010,49 +14701,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1256;
+        goto yy1255;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1256;
+          goto yy1255;
         goto yy999;
       }
     }
-  yy1255:
+  yy1254:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy1257;
+        goto yy1256;
       if (yych <= '/')
         goto yy999;
-      goto yy1258;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy999;
-        goto yy1258;
       } else {
         if (yych <= '`')
           goto yy999;
-        if (yych <= 'z')
-          goto yy1258;
-        goto yy999;
+        if (yych >= '{')
+          goto yy999;
       }
     }
-  yy1256:
+  yy1255:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy999;
-        if (yych >= '.')
-          goto yy1012;
+        if (yych <= '-')
+          goto yy1258;
+        goto yy1012;
       } else {
         if (yych <= '/')
           goto yy999;
         if (yych <= '9')
-          goto yy1258;
+          goto yy1257;
         goto yy999;
       }
     } else {
@@ -15061,35 +14750,36 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy1013;
         if (yych <= '@')
           goto yy999;
-        goto yy1258;
+        goto yy1257;
       } else {
         if (yych <= '`')
           goto yy999;
         if (yych <= 'z')
-          goto yy1258;
+          goto yy1257;
         goto yy999;
       }
     }
-  yy1257:
+  yy1256:
     yych = *++p;
-    if (yych <= '@') {
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1258;
       if (yych <= '/')
         goto yy999;
-      if (yych <= '9')
-        goto yy1138;
-      goto yy999;
     } else {
-      if (yych <= 'Z')
-        goto yy1138;
-      if (yych <= '`')
-        goto yy999;
-      if (yych <= 'z')
-        goto yy1138;
-      goto yy999;
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
     }
-  yy1258:
-    ++p;
-    if ((yych = *p) <= '=') {
+  yy1257:
+    yych = *++p;
+    if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= '-')
           goto yy999;
@@ -15116,6 +14806,23 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
         goto yy999;
       }
     }
+  yy1258:
+    ++p;
+    if ((yych = *p) <= '@') {
+      if (yych <= '/')
+        goto yy999;
+      if (yych <= '9')
+        goto yy1138;
+      goto yy999;
+    } else {
+      if (yych <= 'Z')
+        goto yy1138;
+      if (yych <= '`')
+        goto yy999;
+      if (yych <= 'z')
+        goto yy1138;
+      goto yy999;
+    }
   }
 }
 
@@ -17562,50 +17269,24 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     }
   yy1437:
     yych = *++p;
-    if (yych <= 'U') {
-      if (yych <= 'E') {
-        if (yych == 'C')
-          goto yy1479;
-        if (yych <= 'D')
-          goto yy1417;
-        goto yy1482;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy1417;
-          goto yy1481;
-        } else {
-          if (yych <= 'S')
-            goto yy1417;
-          if (yych <= 'T')
-            goto yy1478;
-          goto yy1480;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'c') {
-          if (yych <= 'b')
-            goto yy1417;
-          goto yy1479;
-        } else {
-          if (yych == 'e')
-            goto yy1482;
-          goto yy1417;
-        }
-      } else {
-        if (yych <= 's') {
-          if (yych <= 'o')
-            goto yy1481;
-          goto yy1417;
-        } else {
-          if (yych <= 't')
-            goto yy1478;
-          if (yych <= 'u')
-            goto yy1480;
-          goto yy1417;
-        }
-      }
+    switch (yych) {
+    case 'C':
+    case 'c':
+      goto yy1479;
+    case 'E':
+    case 'e':
+      goto yy1482;
+    case 'O':
+    case 'o':
+      goto yy1481;
+    case 'T':
+    case 't':
+      goto yy1478;
+    case 'U':
+    case 'u':
+      goto yy1480;
+    default:
+      goto yy1417;
     }
   yy1438:
     yych = *++p;
@@ -25505,9 +25186,9 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   {
     unsigned char yych;
     static const unsigned char yybm[] = {
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 32, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 16, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
         0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,
-        0, 16, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 32, 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, 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,
@@ -25566,16 +25247,16 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy2098:
     yych = *(marker = ++p);
     if (yych == ' ')
-      goto yy2130;
+      goto yy2134;
     if (yych == '*')
-      goto yy2132;
+      goto yy2136;
     goto yy2097;
   yy2099:
     yych = *(marker = ++p);
     if (yych == ' ')
-      goto yy2120;
-    if (yych == '_')
       goto yy2122;
+    if (yych == '_')
+      goto yy2124;
     goto yy2097;
   yy2100:
     yych = *(marker = ++p);
@@ -25657,23 +25338,32 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy2114:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy2114;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych >= '\n')
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy2103;
+      } else {
+        if (yych <= '\n')
+          goto yy2118;
+        if (yych <= '\f')
+          goto yy2103;
         goto yy2118;
+      }
     } else {
-      if (yych == '\r')
-        goto yy2118;
-      goto yy2103;
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy2103;
+        goto yy2114;
+      } else {
+        if (yych == '-')
+          goto yy2120;
+        goto yy2103;
+      }
     }
   yy2116:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 32) {
+    if (yybm[0 + yych] & 16) {
       goto yy2116;
     }
     if (yych <= 0x08)
@@ -25688,10 +25378,20 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy2120:
     ++p;
     yych = *p;
-    if (yych == ' ')
+    if (yybm[0 + yych] & 32) {
       goto yy2120;
-    if (yych != '_')
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy2103;
+      if (yych <= '\t')
+        goto yy2116;
+      goto yy2118;
+    } else {
+      if (yych == '\r')
+        goto yy2118;
       goto yy2103;
+    }
   yy2122:
     ++p;
     yych = *p;
@@ -25702,89 +25402,148 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy2124:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 64) {
+    if (yych == ' ')
       goto yy2124;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych >= '\n')
-        goto yy2128;
-    } else {
-      if (yych == '\r')
-        goto yy2128;
+    if (yych != '_')
       goto yy2103;
-    }
   yy2126:
     ++p;
     yych = *p;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy2103;
+      } else {
+        if (yych <= '\n')
+          goto yy2130;
+        if (yych <= '\f')
+          goto yy2103;
+        goto yy2130;
+      }
+    } else {
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy2103;
+        goto yy2126;
+      } else {
+        if (yych == '_')
+          goto yy2132;
+        goto yy2103;
+      }
+    }
+  yy2128:
+    ++p;
+    yych = *p;
     if (yych <= '\f') {
       if (yych <= 0x08)
         goto yy2103;
       if (yych <= '\t')
-        goto yy2126;
+        goto yy2128;
       if (yych >= '\v')
         goto yy2103;
     } else {
       if (yych <= '\r')
-        goto yy2128;
+        goto yy2130;
       if (yych == ' ')
-        goto yy2126;
+        goto yy2128;
       goto yy2103;
     }
-  yy2128:
+  yy2130:
     ++p;
     { return (bufsize_t)(p - start); }
-  yy2130:
+  yy2132:
     ++p;
     yych = *p;
-    if (yych == ' ')
+    if (yybm[0 + yych] & 64) {
+      goto yy2132;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy2103;
+      if (yych <= '\t')
+        goto yy2128;
       goto yy2130;
+    } else {
+      if (yych == '\r')
+        goto yy2130;
+      goto yy2103;
+    }
+  yy2134:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy2134;
     if (yych != '*')
       goto yy2103;
-  yy2132:
+  yy2136:
     ++p;
     yych = *p;
     if (yych == ' ')
-      goto yy2132;
+      goto yy2136;
     if (yych != '*')
       goto yy2103;
-  yy2134:
+  yy2138:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2134;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych >= '\n')
-        goto yy2138;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy2103;
+      } else {
+        if (yych <= '\n')
+          goto yy2142;
+        if (yych <= '\f')
+          goto yy2103;
+        goto yy2142;
+      }
     } else {
-      if (yych == '\r')
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy2103;
         goto yy2138;
-      goto yy2103;
+      } else {
+        if (yych == '*')
+          goto yy2144;
+        goto yy2103;
+      }
     }
-  yy2136:
+  yy2140:
     ++p;
     yych = *p;
     if (yych <= '\f') {
       if (yych <= 0x08)
         goto yy2103;
       if (yych <= '\t')
-        goto yy2136;
+        goto yy2140;
       if (yych >= '\v')
         goto yy2103;
     } else {
       if (yych <= '\r')
-        goto yy2138;
+        goto yy2142;
       if (yych == ' ')
-        goto yy2136;
+        goto yy2140;
       goto yy2103;
     }
-  yy2138:
+  yy2142:
     ++p;
     { return (bufsize_t)(p - start); }
+  yy2144:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2144;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy2103;
+      if (yych <= '\t')
+        goto yy2140;
+      goto yy2142;
+    } else {
+      if (yych == '\r')
+        goto yy2142;
+      goto yy2103;
+    }
   }
 }
 
@@ -25820,374 +25579,374 @@ bufsize_t _scan_open_code_fence(const unsigned char *p) {
     if (yych <= 0xC1) {
       if (yych <= '`') {
         if (yych == '\n')
-          goto yy2142;
+          goto yy2148;
         if (yych <= '_')
-          goto yy2145;
-        goto yy2143;
+          goto yy2151;
+        goto yy2149;
       } else {
         if (yych == '~')
-          goto yy2144;
+          goto yy2150;
         if (yych <= 0x7F)
-          goto yy2145;
+          goto yy2151;
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy2146;
+          goto yy2152;
         if (yych <= 0xE0)
-          goto yy2148;
+          goto yy2154;
         if (yych <= 0xEC)
-          goto yy2149;
-        goto yy2153;
+          goto yy2155;
+        goto yy2159;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy2149;
-          goto yy2150;
+            goto yy2155;
+          goto yy2156;
         } else {
           if (yych <= 0xF3)
-            goto yy2151;
+            goto yy2157;
           if (yych <= 0xF4)
-            goto yy2152;
+            goto yy2158;
         }
       }
     }
-  yy2142 : { return 0; }
-  yy2143:
+  yy2148 : { return 0; }
+  yy2149:
     yych = *(marker = ++p);
     if (yych == '`')
-      goto yy2168;
-    goto yy2142;
-  yy2144:
+      goto yy2174;
+    goto yy2148;
+  yy2150:
     yych = *(marker = ++p);
     if (yych == '~')
-      goto yy2154;
-    goto yy2142;
-  yy2145:
+      goto yy2160;
+    goto yy2148;
+  yy2151:
     yych = *++p;
-    goto yy2142;
-  yy2146:
+    goto yy2148;
+  yy2152:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2145;
-  yy2147:
+      goto yy2151;
+  yy2153:
     p = marker;
-    goto yy2142;
-  yy2148:
+    goto yy2148;
+  yy2154:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2146;
-    goto yy2147;
-  yy2149:
+      goto yy2152;
+    goto yy2153;
+  yy2155:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2146;
-    goto yy2147;
-  yy2150:
+      goto yy2152;
+    goto yy2153;
+  yy2156:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2149;
-    goto yy2147;
-  yy2151:
+      goto yy2155;
+    goto yy2153;
+  yy2157:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2149;
-    goto yy2147;
-  yy2152:
+      goto yy2155;
+    goto yy2153;
+  yy2158:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0x8F)
-      goto yy2149;
-    goto yy2147;
-  yy2153:
+      goto yy2155;
+    goto yy2153;
+  yy2159:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0x9F)
-      goto yy2146;
-    goto yy2147;
-  yy2154:
+      goto yy2152;
+    goto yy2153;
+  yy2160:
     yych = *++p;
     if (yybm[0 + yych] & 16) {
-      goto yy2155;
+      goto yy2161;
     }
-    goto yy2147;
-  yy2155:
-    marker = p + 1;
+    goto yy2153;
+  yy2161:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 32) {
-      goto yy2157;
+      goto yy2163;
     }
     if (yych <= 0xE0) {
       if (yych <= '~') {
         if (yych <= 0x00)
-          goto yy2147;
+          goto yy2153;
         if (yych <= '\r')
-          goto yy2166;
-        goto yy2155;
+          goto yy2172;
+        goto yy2161;
       } else {
         if (yych <= 0xC1)
-          goto yy2147;
+          goto yy2153;
         if (yych <= 0xDF)
-          goto yy2159;
-        goto yy2160;
+          goto yy2165;
+        goto yy2166;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy2165;
-        goto yy2161;
+          goto yy2171;
+        goto yy2167;
       } else {
         if (yych <= 0xF0)
-          goto yy2162;
+          goto yy2168;
         if (yych <= 0xF3)
-          goto yy2163;
+          goto yy2169;
         if (yych <= 0xF4)
-          goto yy2164;
-        goto yy2147;
+          goto yy2170;
+        goto yy2153;
       }
     }
-  yy2157:
+  yy2163:
     ++p;
     yych = *p;
     if (yybm[0 + yych] & 32) {
-      goto yy2157;
+      goto yy2163;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy2147;
+          goto yy2153;
         if (yych <= '\r')
-          goto yy2166;
-        goto yy2147;
+          goto yy2172;
+        goto yy2153;
       } else {
         if (yych <= 0xDF)
-          goto yy2159;
+          goto yy2165;
         if (yych <= 0xE0)
-          goto yy2160;
-        goto yy2161;
+          goto yy2166;
+        goto yy2167;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy2165;
+          goto yy2171;
         if (yych <= 0xEF)
-          goto yy2161;
-        goto yy2162;
+          goto yy2167;
+        goto yy2168;
       } else {
         if (yych <= 0xF3)
-          goto yy2163;
+          goto yy2169;
         if (yych <= 0xF4)
-          goto yy2164;
-        goto yy2147;
+          goto yy2170;
+        goto yy2153;
       }
     }
-  yy2159:
+  yy2165:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2157;
-    goto yy2147;
-  yy2160:
+      goto yy2163;
+    goto yy2153;
+  yy2166:
     ++p;
     yych = *p;
     if (yych <= 0x9F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2159;
-    goto yy2147;
-  yy2161:
+      goto yy2165;
+    goto yy2153;
+  yy2167:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2159;
-    goto yy2147;
-  yy2162:
+      goto yy2165;
+    goto yy2153;
+  yy2168:
     ++p;
     yych = *p;
     if (yych <= 0x8F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2161;
-    goto yy2147;
-  yy2163:
+      goto yy2167;
+    goto yy2153;
+  yy2169:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2161;
-    goto yy2147;
-  yy2164:
+      goto yy2167;
+    goto yy2153;
+  yy2170:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0x8F)
-      goto yy2161;
-    goto yy2147;
-  yy2165:
+      goto yy2167;
+    goto yy2153;
+  yy2171:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0x9F)
-      goto yy2159;
-    goto yy2147;
-  yy2166:
+      goto yy2165;
+    goto yy2153;
+  yy2172:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy2168:
+  yy2174:
     yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy2169;
+      goto yy2175;
     }
-    goto yy2147;
-  yy2169:
-    marker = p + 1;
+    goto yy2153;
+  yy2175:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 128) {
-      goto yy2171;
+      goto yy2177;
     }
     if (yych <= 0xE0) {
       if (yych <= '`') {
         if (yych <= 0x00)
-          goto yy2147;
+          goto yy2153;
         if (yych <= '\r')
-          goto yy2180;
-        goto yy2169;
+          goto yy2186;
+        goto yy2175;
       } else {
         if (yych <= 0xC1)
-          goto yy2147;
+          goto yy2153;
         if (yych <= 0xDF)
-          goto yy2173;
-        goto yy2174;
+          goto yy2179;
+        goto yy2180;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy2179;
-        goto yy2175;
+          goto yy2185;
+        goto yy2181;
       } else {
         if (yych <= 0xF0)
-          goto yy2176;
+          goto yy2182;
         if (yych <= 0xF3)
-          goto yy2177;
+          goto yy2183;
         if (yych <= 0xF4)
-          goto yy2178;
-        goto yy2147;
+          goto yy2184;
+        goto yy2153;
       }
     }
-  yy2171:
+  yy2177:
     ++p;
     yych = *p;
     if (yybm[0 + yych] & 128) {
-      goto yy2171;
+      goto yy2177;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy2147;
+          goto yy2153;
         if (yych <= '\r')
-          goto yy2180;
-        goto yy2147;
+          goto yy2186;
+        goto yy2153;
       } else {
         if (yych <= 0xDF)
-          goto yy2173;
+          goto yy2179;
         if (yych <= 0xE0)
-          goto yy2174;
-        goto yy2175;
+          goto yy2180;
+        goto yy2181;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy2179;
+          goto yy2185;
         if (yych <= 0xEF)
-          goto yy2175;
-        goto yy2176;
+          goto yy2181;
+        goto yy2182;
       } else {
         if (yych <= 0xF3)
-          goto yy2177;
+          goto yy2183;
         if (yych <= 0xF4)
-          goto yy2178;
-        goto yy2147;
+          goto yy2184;
+        goto yy2153;
       }
     }
-  yy2173:
+  yy2179:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2171;
-    goto yy2147;
-  yy2174:
+      goto yy2177;
+    goto yy2153;
+  yy2180:
     ++p;
     yych = *p;
     if (yych <= 0x9F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2173;
-    goto yy2147;
-  yy2175:
+      goto yy2179;
+    goto yy2153;
+  yy2181:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2173;
-    goto yy2147;
-  yy2176:
+      goto yy2179;
+    goto yy2153;
+  yy2182:
     ++p;
     yych = *p;
     if (yych <= 0x8F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2175;
-    goto yy2147;
-  yy2177:
+      goto yy2181;
+    goto yy2153;
+  yy2183:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0xBF)
-      goto yy2175;
-    goto yy2147;
-  yy2178:
+      goto yy2181;
+    goto yy2153;
+  yy2184:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0x8F)
-      goto yy2175;
-    goto yy2147;
-  yy2179:
+      goto yy2181;
+    goto yy2153;
+  yy2185:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy2147;
+      goto yy2153;
     if (yych <= 0x9F)
-      goto yy2173;
-    goto yy2147;
-  yy2180:
+      goto yy2179;
+    goto yy2153;
+  yy2186:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
@@ -26219,190 +25978,190 @@ bufsize_t _scan_close_code_fence(const unsigned char *p) {
     if (yych <= 0xC1) {
       if (yych <= '`') {
         if (yych == '\n')
-          goto yy2184;
+          goto yy2190;
         if (yych <= '_')
-          goto yy2187;
-        goto yy2185;
+          goto yy2193;
+        goto yy2191;
       } else {
         if (yych == '~')
-          goto yy2186;
+          goto yy2192;
         if (yych <= 0x7F)
-          goto yy2187;
+          goto yy2193;
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy2188;
+          goto yy2194;
         if (yych <= 0xE0)
-          goto yy2190;
+          goto yy2196;
         if (yych <= 0xEC)
-          goto yy2191;
-        goto yy2195;
+          goto yy2197;
+        goto yy2201;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy2191;
-          goto yy2192;
+            goto yy2197;
+          goto yy2198;
         } else {
           if (yych <= 0xF3)
-            goto yy2193;
+            goto yy2199;
           if (yych <= 0xF4)
-            goto yy2194;
+            goto yy2200;
         }
       }
     }
-  yy2184 : { return 0; }
-  yy2185:
+  yy2190 : { return 0; }
+  yy2191:
     yych = *(marker = ++p);
     if (yych == '`')
-      goto yy2203;
-    goto yy2184;
-  yy2186:
+      goto yy2209;
+    goto yy2190;
+  yy2192:
     yych = *(marker = ++p);
     if (yych == '~')
-      goto yy2196;
-    goto yy2184;
-  yy2187:
+      goto yy2202;
+    goto yy2190;
+  yy2193:
     yych = *++p;
-    goto yy2184;
-  yy2188:
+    goto yy2190;
+  yy2194:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0xBF)
-      goto yy2187;
-  yy2189:
+      goto yy2193;
+  yy2195:
     p = marker;
-    goto yy2184;
-  yy2190:
+    goto yy2190;
+  yy2196:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0xBF)
-      goto yy2188;
-    goto yy2189;
-  yy2191:
+      goto yy2194;
+    goto yy2195;
+  yy2197:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0xBF)
-      goto yy2188;
-    goto yy2189;
-  yy2192:
+      goto yy2194;
+    goto yy2195;
+  yy2198:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0xBF)
-      goto yy2191;
-    goto yy2189;
-  yy2193:
+      goto yy2197;
+    goto yy2195;
+  yy2199:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0xBF)
-      goto yy2191;
-    goto yy2189;
-  yy2194:
+      goto yy2197;
+    goto yy2195;
+  yy2200:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0x8F)
-      goto yy2191;
-    goto yy2189;
-  yy2195:
+      goto yy2197;
+    goto yy2195;
+  yy2201:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2189;
+      goto yy2195;
     if (yych <= 0x9F)
-      goto yy2188;
-    goto yy2189;
-  yy2196:
+      goto yy2194;
+    goto yy2195;
+  yy2202:
     yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy2197;
+      goto yy2203;
     }
-    goto yy2189;
-  yy2197:
-    marker = p + 1;
+    goto yy2195;
+  yy2203:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 64) {
-      goto yy2199;
+      goto yy2205;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy2189;
+        goto yy2195;
       if (yych <= '\n')
-        goto yy2201;
-      goto yy2189;
+        goto yy2207;
+      goto yy2195;
     } else {
       if (yych <= '\r')
-        goto yy2201;
+        goto yy2207;
       if (yych == '~')
-        goto yy2197;
-      goto yy2189;
+        goto yy2203;
+      goto yy2195;
     }
-  yy2199:
+  yy2205:
     ++p;
     yych = *p;
     if (yybm[0 + yych] & 64) {
-      goto yy2199;
+      goto yy2205;
     }
     if (yych <= 0x08)
-      goto yy2189;
+      goto yy2195;
     if (yych <= '\n')
-      goto yy2201;
+      goto yy2207;
     if (yych != '\r')
-      goto yy2189;
-  yy2201:
+      goto yy2195;
+  yy2207:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy2203:
+  yy2209:
     yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy2204;
+      goto yy2210;
     }
-    goto yy2189;
-  yy2204:
-    marker = p + 1;
+    goto yy2195;
+  yy2210:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 128) {
-      goto yy2204;
+      goto yy2210;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy2189;
+        goto yy2195;
       if (yych <= '\t')
-        goto yy2206;
+        goto yy2212;
       if (yych <= '\n')
-        goto yy2208;
-      goto yy2189;
+        goto yy2214;
+      goto yy2195;
     } else {
       if (yych <= '\r')
-        goto yy2208;
+        goto yy2214;
       if (yych != ' ')
-        goto yy2189;
+        goto yy2195;
     }
-  yy2206:
+  yy2212:
     ++p;
     yych = *p;
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy2189;
+        goto yy2195;
       if (yych <= '\t')
-        goto yy2206;
+        goto yy2212;
       if (yych >= '\v')
-        goto yy2189;
+        goto yy2195;
     } else {
       if (yych <= '\r')
-        goto yy2208;
+        goto yy2214;
       if (yych == ' ')
-        goto yy2206;
-      goto yy2189;
+        goto yy2212;
+      goto yy2195;
     }
-  yy2208:
+  yy2214:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
@@ -26421,997 +26180,997 @@ bufsize_t _scan_entity(const unsigned char *p) {
     if (yych <= 0xDF) {
       if (yych <= '%') {
         if (yych != '\n')
-          goto yy2214;
+          goto yy2220;
       } else {
         if (yych <= '&')
-          goto yy2213;
+          goto yy2219;
         if (yych <= 0x7F)
-          goto yy2214;
+          goto yy2220;
         if (yych >= 0xC2)
-          goto yy2215;
+          goto yy2221;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy2217;
+          goto yy2223;
         if (yych == 0xED)
-          goto yy2222;
-        goto yy2218;
+          goto yy2228;
+        goto yy2224;
       } else {
         if (yych <= 0xF0)
-          goto yy2219;
+          goto yy2225;
         if (yych <= 0xF3)
-          goto yy2220;
+          goto yy2226;
         if (yych <= 0xF4)
-          goto yy2221;
+          goto yy2227;
       }
     }
-  yy2212 : { return 0; }
-  yy2213:
+  yy2218 : { return 0; }
+  yy2219:
     yych = *(marker = ++p);
     if (yych <= '@') {
       if (yych == '#')
-        goto yy2223;
-      goto yy2212;
+        goto yy2229;
+      goto yy2218;
     } else {
       if (yych <= 'Z')
-        goto yy2224;
+        goto yy2230;
       if (yych <= '`')
-        goto yy2212;
+        goto yy2218;
       if (yych <= 'z')
-        goto yy2224;
-      goto yy2212;
+        goto yy2230;
+      goto yy2218;
     }
-  yy2214:
+  yy2220:
     yych = *++p;
-    goto yy2212;
-  yy2215:
+    goto yy2218;
+  yy2221:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0xBF)
-      goto yy2214;
-  yy2216:
+      goto yy2220;
+  yy2222:
     p = marker;
-    goto yy2212;
-  yy2217:
+    goto yy2218;
+  yy2223:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0xBF)
-      goto yy2215;
-    goto yy2216;
-  yy2218:
+      goto yy2221;
+    goto yy2222;
+  yy2224:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0xBF)
-      goto yy2215;
-    goto yy2216;
-  yy2219:
+      goto yy2221;
+    goto yy2222;
+  yy2225:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0xBF)
-      goto yy2218;
-    goto yy2216;
-  yy2220:
+      goto yy2224;
+    goto yy2222;
+  yy2226:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0xBF)
-      goto yy2218;
-    goto yy2216;
-  yy2221:
+      goto yy2224;
+    goto yy2222;
+  yy2227:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0x8F)
-      goto yy2218;
-    goto yy2216;
-  yy2222:
+      goto yy2224;
+    goto yy2222;
+  yy2228:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2216;
+      goto yy2222;
     if (yych <= 0x9F)
-      goto yy2215;
-    goto yy2216;
-  yy2223:
+      goto yy2221;
+    goto yy2222;
+  yy2229:
     yych = *++p;
     if (yych <= 'W') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2259;
-      goto yy2216;
+        goto yy2265;
+      goto yy2222;
     } else {
       if (yych <= 'X')
-        goto yy2258;
+        goto yy2264;
       if (yych == 'x')
-        goto yy2258;
-      goto yy2216;
+        goto yy2264;
+      goto yy2222;
     }
-  yy2224:
+  yy2230:
     yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych >= ':')
-        goto yy2216;
+        goto yy2222;
     } else {
       if (yych <= 'Z')
-        goto yy2225;
+        goto yy2231;
       if (yych <= '`')
-        goto yy2216;
+        goto yy2222;
       if (yych >= '{')
-        goto yy2216;
+        goto yy2222;
     }
-  yy2225:
+  yy2231:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2228;
+        goto yy2234;
       if (yych <= ':')
-        goto yy2216;
+        goto yy2222;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
-        goto yy2228;
+          goto yy2222;
+        goto yy2234;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych <= 'z')
-          goto yy2228;
-        goto yy2216;
+          goto yy2234;
+        goto yy2222;
       }
     }
-  yy2226:
+  yy2232:
     ++p;
     { return (bufsize_t)(p - start); }
-  yy2228:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2229;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2229:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2230;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2230:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2231;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2231:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2232;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2232:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2233;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2233:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2234;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
   yy2234:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2235;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2235:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2236;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2236:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2237;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2237:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2238;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2238:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2239;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2239:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2240;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2240:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2241;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2241:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2242;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2242:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2243;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2243:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2244;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2244:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2245;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2245:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2246;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2246:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2247;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2247:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2248;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2248:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2249;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2249:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2250;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2250:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2251;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2251:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2252;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2252:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2253;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2253:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2254;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2254:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2255;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2255:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2256;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2256:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
         goto yy2257;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= '{')
-          goto yy2216;
+          goto yy2222;
       }
     }
   yy2257:
     yych = *++p;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2258:
-    yych = *++p;
-    if (yych <= '@') {
+    if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2266;
-      goto yy2216;
+        goto yy2258;
+      if (yych <= ':')
+        goto yy2222;
+      goto yy2232;
     } else {
-      if (yych <= 'F')
-        goto yy2266;
-      if (yych <= '`')
-        goto yy2216;
-      if (yych <= 'f')
-        goto yy2266;
-      goto yy2216;
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2222;
+      } else {
+        if (yych <= '`')
+          goto yy2222;
+        if (yych >= '{')
+          goto yy2222;
+      }
+    }
+  yy2258:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2222;
+      if (yych <= '9')
+        goto yy2259;
+      if (yych <= ':')
+        goto yy2222;
+      goto yy2232;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2222;
+      } else {
+        if (yych <= '`')
+          goto yy2222;
+        if (yych >= '{')
+          goto yy2222;
+      }
     }
   yy2259:
     yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2222;
+      if (yych <= '9')
+        goto yy2260;
+      if (yych <= ':')
+        goto yy2222;
+      goto yy2232;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2222;
+      } else {
+        if (yych <= '`')
+          goto yy2222;
+        if (yych >= '{')
+          goto yy2222;
+      }
+    }
+  yy2260:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2222;
+      if (yych <= '9')
+        goto yy2261;
+      if (yych <= ':')
+        goto yy2222;
+      goto yy2232;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2222;
+      } else {
+        if (yych <= '`')
+          goto yy2222;
+        if (yych >= '{')
+          goto yy2222;
+      }
+    }
+  yy2261:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2222;
+      if (yych <= '9')
+        goto yy2262;
+      if (yych <= ':')
+        goto yy2222;
+      goto yy2232;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2222;
+      } else {
+        if (yych <= '`')
+          goto yy2222;
+        if (yych >= '{')
+          goto yy2222;
+      }
+    }
+  yy2262:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2222;
+      if (yych <= '9')
+        goto yy2263;
+      if (yych <= ':')
+        goto yy2222;
+      goto yy2232;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2222;
+      } else {
+        if (yych <= '`')
+          goto yy2222;
+        if (yych >= '{')
+          goto yy2222;
+      }
+    }
+  yy2263:
+    yych = *++p;
+    if (yych == ';')
+      goto yy2232;
+    goto yy2222;
+  yy2264:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy2222;
+      if (yych <= '9')
+        goto yy2272;
+      goto yy2222;
+    } else {
+      if (yych <= 'F')
+        goto yy2272;
+      if (yych <= '`')
+        goto yy2222;
+      if (yych <= 'f')
+        goto yy2272;
+      goto yy2222;
+    }
+  yy2265:
+    yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2260;
+      goto yy2266;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2260:
+      goto yy2232;
+    goto yy2222;
+  yy2266:
     yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2261;
+      goto yy2267;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2261:
+      goto yy2232;
+    goto yy2222;
+  yy2267:
     yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2262;
+      goto yy2268;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2262:
+      goto yy2232;
+    goto yy2222;
+  yy2268:
     yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2263;
+      goto yy2269;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2263:
+      goto yy2232;
+    goto yy2222;
+  yy2269:
     yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2264;
+      goto yy2270;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2264:
+      goto yy2232;
+    goto yy2222;
+  yy2270:
     yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2265;
+      goto yy2271;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2265:
+      goto yy2232;
+    goto yy2222;
+  yy2271:
     yych = *++p;
     if (yych <= '/')
-      goto yy2216;
+      goto yy2222;
     if (yych <= '9')
-      goto yy2257;
+      goto yy2263;
     if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2266:
+      goto yy2232;
+    goto yy2222;
+  yy2272:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2267;
+        goto yy2273;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= 'g')
-          goto yy2216;
+          goto yy2222;
       }
     }
-  yy2267:
+  yy2273:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2268;
+        goto yy2274;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= 'g')
-          goto yy2216;
+          goto yy2222;
       }
     }
-  yy2268:
+  yy2274:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2269;
+        goto yy2275;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= 'g')
-          goto yy2216;
+          goto yy2222;
       }
     }
-  yy2269:
+  yy2275:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2270;
+        goto yy2276;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= 'g')
-          goto yy2216;
+          goto yy2222;
       }
     }
-  yy2270:
+  yy2276:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2271;
+        goto yy2277;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= 'g')
-          goto yy2216;
+          goto yy2222;
       }
     }
-  yy2271:
+  yy2277:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2272;
+        goto yy2278;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
+          goto yy2222;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych >= 'g')
-          goto yy2216;
+          goto yy2222;
       }
     }
-  yy2272:
+  yy2278:
     ++p;
     if ((yych = *p) <= ';') {
       if (yych <= '/')
-        goto yy2216;
+        goto yy2222;
       if (yych <= '9')
-        goto yy2257;
+        goto yy2263;
       if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
+        goto yy2222;
+      goto yy2232;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy2216;
-        goto yy2257;
+          goto yy2222;
+        goto yy2263;
       } else {
         if (yych <= '`')
-          goto yy2216;
+          goto yy2222;
         if (yych <= 'f')
-          goto yy2257;
-        goto yy2216;
+          goto yy2263;
+        goto yy2222;
       }
     }
   }
@@ -27431,415 +27190,415 @@ bufsize_t _scan_dangerous_url(const unsigned char *p) {
       if (yych <= 'I') {
         if (yych <= 'C') {
           if (yych != '\n')
-            goto yy2280;
+            goto yy2286;
         } else {
           if (yych <= 'D')
-            goto yy2276;
+            goto yy2282;
           if (yych == 'F')
-            goto yy2279;
-          goto yy2280;
+            goto yy2285;
+          goto yy2286;
         }
       } else {
         if (yych <= 'V') {
           if (yych <= 'J')
-            goto yy2277;
+            goto yy2283;
           if (yych <= 'U')
-            goto yy2280;
-          goto yy2278;
+            goto yy2286;
+          goto yy2284;
         } else {
           if (yych == 'd')
-            goto yy2276;
+            goto yy2282;
           if (yych <= 'e')
-            goto yy2280;
-          goto yy2279;
+            goto yy2286;
+          goto yy2285;
         }
       }
     } else {
       if (yych <= 0xDF) {
         if (yych <= 'u') {
           if (yych == 'j')
-            goto yy2277;
-          goto yy2280;
+            goto yy2283;
+          goto yy2286;
         } else {
           if (yych <= 'v')
-            goto yy2278;
+            goto yy2284;
           if (yych <= 0x7F)
-            goto yy2280;
+            goto yy2286;
           if (yych >= 0xC2)
-            goto yy2281;
+            goto yy2287;
         }
       } else {
         if (yych <= 0xEF) {
           if (yych <= 0xE0)
-            goto yy2283;
+            goto yy2289;
           if (yych == 0xED)
-            goto yy2288;
-          goto yy2284;
+            goto yy2294;
+          goto yy2290;
         } else {
           if (yych <= 0xF0)
-            goto yy2285;
+            goto yy2291;
           if (yych <= 0xF3)
-            goto yy2286;
+            goto yy2292;
           if (yych <= 0xF4)
-            goto yy2287;
+            goto yy2293;
         }
       }
     }
-  yy2275 : { return 0; }
-  yy2276:
+  yy2281 : { return 0; }
+  yy2282:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'A')
-      goto yy2310;
+      goto yy2316;
     if (yych == 'a')
-      goto yy2310;
-    goto yy2275;
-  yy2277:
+      goto yy2316;
+    goto yy2281;
+  yy2283:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'A')
-      goto yy2301;
+      goto yy2307;
     if (yych == 'a')
-      goto yy2301;
-    goto yy2275;
-  yy2278:
+      goto yy2307;
+    goto yy2281;
+  yy2284:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'B')
-      goto yy2294;
+      goto yy2300;
     if (yych == 'b')
-      goto yy2294;
-    goto yy2275;
-  yy2279:
+      goto yy2300;
+    goto yy2281;
+  yy2285:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'I')
-      goto yy2289;
+      goto yy2295;
     if (yych == 'i')
-      goto yy2289;
-    goto yy2275;
-  yy2280:
+      goto yy2295;
+    goto yy2281;
+  yy2286:
     yych = *++p;
-    goto yy2275;
-  yy2281:
+    goto yy2281;
+  yy2287:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0xBF)
-      goto yy2280;
-  yy2282:
+      goto yy2286;
+  yy2288:
     p = marker;
     if (yyaccept == 0) {
-      goto yy2275;
+      goto yy2281;
     } else {
-      goto yy2293;
+      goto yy2299;
     }
-  yy2283:
+  yy2289:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0xBF)
-      goto yy2281;
-    goto yy2282;
-  yy2284:
+      goto yy2287;
+    goto yy2288;
+  yy2290:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0xBF)
-      goto yy2281;
-    goto yy2282;
-  yy2285:
+      goto yy2287;
+    goto yy2288;
+  yy2291:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0xBF)
-      goto yy2284;
-    goto yy2282;
-  yy2286:
+      goto yy2290;
+    goto yy2288;
+  yy2292:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0xBF)
-      goto yy2284;
-    goto yy2282;
-  yy2287:
+      goto yy2290;
+    goto yy2288;
+  yy2293:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0x8F)
-      goto yy2284;
-    goto yy2282;
-  yy2288:
+      goto yy2290;
+    goto yy2288;
+  yy2294:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy2282;
+      goto yy2288;
     if (yych <= 0x9F)
-      goto yy2281;
-    goto yy2282;
-  yy2289:
+      goto yy2287;
+    goto yy2288;
+  yy2295:
     yych = *++p;
     if (yych == 'L')
-      goto yy2290;
+      goto yy2296;
     if (yych != 'l')
-      goto yy2282;
-  yy2290:
+      goto yy2288;
+  yy2296:
     yych = *++p;
     if (yych == 'E')
-      goto yy2291;
+      goto yy2297;
     if (yych != 'e')
-      goto yy2282;
-  yy2291:
+      goto yy2288;
+  yy2297:
     yych = *++p;
     if (yych != ':')
-      goto yy2282;
-  yy2292:
+      goto yy2288;
+  yy2298:
     ++p;
-  yy2293 : { return (bufsize_t)(p - start); }
-  yy2294:
+  yy2299 : { return (bufsize_t)(p - start); }
+  yy2300:
     yych = *++p;
     if (yych == 'S')
-      goto yy2295;
+      goto yy2301;
     if (yych != 's')
-      goto yy2282;
-  yy2295:
+      goto yy2288;
+  yy2301:
     yych = *++p;
     if (yych == 'C')
-      goto yy2296;
+      goto yy2302;
     if (yych != 'c')
-      goto yy2282;
-  yy2296:
+      goto yy2288;
+  yy2302:
     yych = *++p;
     if (yych == 'R')
-      goto yy2297;
+      goto yy2303;
     if (yych != 'r')
-      goto yy2282;
-  yy2297:
+      goto yy2288;
+  yy2303:
     yych = *++p;
     if (yych == 'I')
-      goto yy2298;
+      goto yy2304;
     if (yych != 'i')
-      goto yy2282;
-  yy2298:
+      goto yy2288;
+  yy2304:
     yych = *++p;
     if (yych == 'P')
-      goto yy2299;
+      goto yy2305;
     if (yych != 'p')
-      goto yy2282;
-  yy2299:
+      goto yy2288;
+  yy2305:
     yych = *++p;
     if (yych == 'T')
-      goto yy2300;
+      goto yy2306;
     if (yych != 't')
-      goto yy2282;
-  yy2300:
+      goto yy2288;
+  yy2306:
     yych = *++p;
     if (yych == ':')
-      goto yy2292;
-    goto yy2282;
-  yy2301:
+      goto yy2298;
+    goto yy2288;
+  yy2307:
     yych = *++p;
     if (yych == 'V')
-      goto yy2302;
+      goto yy2308;
     if (yych != 'v')
-      goto yy2282;
-  yy2302:
+      goto yy2288;
+  yy2308:
     yych = *++p;
     if (yych == 'A')
-      goto yy2303;
+      goto yy2309;
     if (yych != 'a')
-      goto yy2282;
-  yy2303:
+      goto yy2288;
+  yy2309:
     yych = *++p;
     if (yych == 'S')
-      goto yy2304;
+      goto yy2310;
     if (yych != 's')
-      goto yy2282;
-  yy2304:
+      goto yy2288;
+  yy2310:
     yych = *++p;
     if (yych == 'C')
-      goto yy2305;
+      goto yy2311;
     if (yych != 'c')
-      goto yy2282;
-  yy2305:
+      goto yy2288;
+  yy2311:
     yych = *++p;
     if (yych == 'R')
-      goto yy2306;
+      goto yy2312;
     if (yych != 'r')
-      goto yy2282;
-  yy2306:
+      goto yy2288;
+  yy2312:
     yych = *++p;
     if (yych == 'I')
-      goto yy2307;
+      goto yy2313;
     if (yych != 'i')
-      goto yy2282;
-  yy2307:
+      goto yy2288;
+  yy2313:
     yych = *++p;
     if (yych == 'P')
-      goto yy2308;
+      goto yy2314;
     if (yych != 'p')
-      goto yy2282;
-  yy2308:
+      goto yy2288;
+  yy2314:
     yych = *++p;
     if (yych == 'T')
-      goto yy2309;
+      goto yy2315;
     if (yych != 't')
-      goto yy2282;
-  yy2309:
+      goto yy2288;
+  yy2315:
     yych = *++p;
     if (yych == ':')
-      goto yy2292;
-    goto yy2282;
-  yy2310:
+      goto yy2298;
+    goto yy2288;
+  yy2316:
     yych = *++p;
     if (yych == 'T')
-      goto yy2311;
+      goto yy2317;
     if (yych != 't')
-      goto yy2282;
-  yy2311:
+      goto yy2288;
+  yy2317:
     yych = *++p;
     if (yych == 'A')
-      goto yy2312;
+      goto yy2318;
     if (yych != 'a')
-      goto yy2282;
-  yy2312:
+      goto yy2288;
+  yy2318:
     yych = *++p;
     if (yych != ':')
-      goto yy2282;
+      goto yy2288;
     yyaccept = 1;
     yych = *(marker = ++p);
     if (yych == 'I')
-      goto yy2314;
+      goto yy2320;
     if (yych != 'i')
-      goto yy2293;
-  yy2314:
+      goto yy2299;
+  yy2320:
     yych = *++p;
     if (yych == 'M')
-      goto yy2315;
+      goto yy2321;
     if (yych != 'm')
-      goto yy2282;
-  yy2315:
+      goto yy2288;
+  yy2321:
     yych = *++p;
     if (yych == 'A')
-      goto yy2316;
+      goto yy2322;
     if (yych != 'a')
-      goto yy2282;
-  yy2316:
+      goto yy2288;
+  yy2322:
     yych = *++p;
     if (yych == 'G')
-      goto yy2317;
+      goto yy2323;
     if (yych != 'g')
-      goto yy2282;
-  yy2317:
+      goto yy2288;
+  yy2323:
     yych = *++p;
     if (yych == 'E')
-      goto yy2318;
+      goto yy2324;
     if (yych != 'e')
-      goto yy2282;
-  yy2318:
+      goto yy2288;
+  yy2324:
     yych = *++p;
     if (yych != '/')
-      goto yy2282;
+      goto yy2288;
     yych = *++p;
     if (yych <= 'W') {
       if (yych <= 'J') {
         if (yych == 'G')
-          goto yy2321;
+          goto yy2327;
         if (yych <= 'I')
-          goto yy2282;
-        goto yy2322;
+          goto yy2288;
+        goto yy2328;
       } else {
         if (yych == 'P')
-          goto yy2320;
+          goto yy2326;
         if (yych <= 'V')
-          goto yy2282;
-        goto yy2323;
+          goto yy2288;
+        goto yy2329;
       }
     } else {
       if (yych <= 'j') {
         if (yych == 'g')
-          goto yy2321;
+          goto yy2327;
         if (yych <= 'i')
-          goto yy2282;
-        goto yy2322;
+          goto yy2288;
+        goto yy2328;
       } else {
         if (yych <= 'p') {
           if (yych <= 'o')
-            goto yy2282;
+            goto yy2288;
         } else {
           if (yych == 'w')
-            goto yy2323;
-          goto yy2282;
+            goto yy2329;
+          goto yy2288;
         }
       }
     }
-  yy2320:
+  yy2326:
     yych = *++p;
     if (yych == 'N')
-      goto yy2331;
+      goto yy2337;
     if (yych == 'n')
-      goto yy2331;
-    goto yy2282;
-  yy2321:
+      goto yy2337;
+    goto yy2288;
+  yy2327:
     yych = *++p;
     if (yych == 'I')
-      goto yy2330;
+      goto yy2336;
     if (yych == 'i')
-      goto yy2330;
-    goto yy2282;
-  yy2322:
+      goto yy2336;
+    goto yy2288;
+  yy2328:
     yych = *++p;
     if (yych == 'P')
-      goto yy2328;
+      goto yy2334;
     if (yych == 'p')
-      goto yy2328;
-    goto yy2282;
-  yy2323:
+      goto yy2334;
+    goto yy2288;
+  yy2329:
     yych = *++p;
     if (yych == 'E')
-      goto yy2324;
+      goto yy2330;
     if (yych != 'e')
-      goto yy2282;
-  yy2324:
+      goto yy2288;
+  yy2330:
     yych = *++p;
     if (yych == 'B')
-      goto yy2325;
+      goto yy2331;
     if (yych != 'b')
-      goto yy2282;
-  yy2325:
+      goto yy2288;
+  yy2331:
     yych = *++p;
     if (yych == 'P')
-      goto yy2326;
+      goto yy2332;
     if (yych != 'p')
-      goto yy2282;
-  yy2326:
+      goto yy2288;
+  yy2332:
     ++p;
     { return 0; }
-  yy2328:
+  yy2334:
     yych = *++p;
     if (yych == 'E')
-      goto yy2329;
+      goto yy2335;
     if (yych != 'e')
-      goto yy2282;
-  yy2329:
+      goto yy2288;
+  yy2335:
     yych = *++p;
     if (yych == 'G')
-      goto yy2326;
+      goto yy2332;
     if (yych == 'g')
-      goto yy2326;
-    goto yy2282;
-  yy2330:
+      goto yy2332;
+    goto yy2288;
+  yy2336:
     yych = *++p;
     if (yych == 'F')
-      goto yy2326;
+      goto yy2332;
     if (yych == 'f')
-      goto yy2326;
-    goto yy2282;
-  yy2331:
+      goto yy2332;
+    goto yy2288;
+  yy2337:
     ++p;
     if ((yych = *p) == 'G')
-      goto yy2326;
+      goto yy2332;
     if (yych == 'g')
-      goto yy2326;
-    goto yy2282;
+      goto yy2332;
+    goto yy2288;
   }
 }