aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch')
-rw-r--r--meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch5241
1 files changed, 5241 insertions, 0 deletions
diff --git a/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch b/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
new file mode 100644
index 0000000000..41d2a0f612
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
@@ -0,0 +1,5241 @@
+From f2f90767311355cafabff604a7a857ca60ee3f01 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.zhou@windriver.com>
+Date: Wed, 22 Nov 2017 21:14:59 -0800
+Subject: [PATCH] Fixed bug #75055 Out-Of-Bounds Read in timelib_meridian()
+
+Upstream-Status: Backport
+CVE: CVE-2017-16642
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+---
+ ext/date/lib/parse_date.c | 1544 +++++++++++++++++++++----------------
+ ext/date/lib/parse_date.re | 4 +-
+ ext/date/tests/bug53437_var3.phpt | 2 +-
+ ext/wddx/tests/bug75055.phpt | 20 +
+ ext/wddx/tests/bug75055.wddx | 13 +
+ 5 files changed, 911 insertions(+), 672 deletions(-)
+ create mode 100644 ext/wddx/tests/bug75055.phpt
+ create mode 100644 ext/wddx/tests/bug75055.wddx
+
+diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
+index f929619..6b11418 100644
+--- a/ext/date/lib/parse_date.c
++++ b/ext/date/lib/parse_date.c
+@@ -1,4 +1,5 @@
+-/* Generated by re2c 0.15.3 on Tue Jul 4 21:15:17 2017 */
++/* Generated by re2c 0.15.3 on Wed Nov 22 21:14:47 2017 */
++#line 1 "ext/date/lib/parse_date.re"
+ /*
+ * The MIT License (MIT)
+ *
+@@ -837,9 +838,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
+ std:
+ s->tok = cursor;
+ s->len = 0;
++#line 965 "ext/date/lib/parse_date.re"
+
+
+
++#line 846 "ext/date/lib/parse_date.c"
+ {
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+@@ -962,18 +965,19 @@ yy2:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1521;
++ goto yy1523;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= 'Z') goto yy165;
+ if (yych >= 'a') goto yy170;
+ } else {
+- if (yych <= 'e') goto yy1530;
++ if (yych <= 'e') goto yy1532;
+ if (yych <= 'z') goto yy170;
+ }
+ }
+ yy3:
++#line 1673 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("tzcorrection | tz");
+@@ -986,6 +990,7 @@ yy3:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIMEZONE;
+ }
++#line 994 "ext/date/lib/parse_date.c"
+ yy4:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+@@ -995,7 +1000,7 @@ yy4:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1521;
++ goto yy1523;
+ }
+ } else {
+ if (yych <= 'd') {
+@@ -1003,7 +1008,7 @@ yy4:
+ if (yych <= '`') goto yy3;
+ goto yy165;
+ } else {
+- if (yych <= 'e') goto yy1521;
++ if (yych <= 'e') goto yy1523;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1017,12 +1022,12 @@ yy5:
+ goto yy165;
+ } else {
+ if (yych <= 'H') {
+- if (yych <= 'E') goto yy1492;
++ if (yych <= 'E') goto yy1494;
+ goto yy165;
+ } else {
+- if (yych <= 'I') goto yy1493;
++ if (yych <= 'I') goto yy1495;
+ if (yych <= 'N') goto yy165;
+- goto yy1491;
++ goto yy1493;
+ }
+ }
+ } else {
+@@ -1031,15 +1036,15 @@ yy5:
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych == 'e') goto yy1508;
++ if (yych == 'e') goto yy1510;
+ goto yy170;
+ }
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1509;
++ if (yych <= 'i') goto yy1511;
+ goto yy170;
+ } else {
+- if (yych <= 'o') goto yy1507;
++ if (yych <= 'o') goto yy1509;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1054,12 +1059,12 @@ yy6:
+ goto yy165;
+ } else {
+ if (yych <= 'H') {
+- if (yych <= 'E') goto yy1492;
++ if (yych <= 'E') goto yy1494;
+ goto yy165;
+ } else {
+- if (yych <= 'I') goto yy1493;
++ if (yych <= 'I') goto yy1495;
+ if (yych <= 'N') goto yy165;
+- goto yy1491;
++ goto yy1493;
+ }
+ }
+ } else {
+@@ -1068,15 +1073,15 @@ yy6:
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych == 'e') goto yy1492;
++ if (yych == 'e') goto yy1494;
+ goto yy165;
+ }
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1493;
++ if (yych <= 'i') goto yy1495;
+ goto yy165;
+ } else {
+- if (yych <= 'o') goto yy1491;
++ if (yych <= 'o') goto yy1493;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1088,24 +1093,24 @@ yy7:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1461;
++ goto yy1463;
+ } else {
+- if (yych == 'I') goto yy1462;
++ if (yych == 'I') goto yy1464;
+ if (yych <= 'N') goto yy165;
+- goto yy1463;
++ goto yy1465;
+ }
+ } else {
+ if (yych <= 'h') {
+ if (yych <= 'Z') goto yy165;
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1476;
++ if (yych <= 'a') goto yy1478;
+ goto yy170;
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1477;
++ if (yych <= 'i') goto yy1479;
+ goto yy170;
+ } else {
+- if (yych <= 'o') goto yy1478;
++ if (yych <= 'o') goto yy1480;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1117,24 +1122,24 @@ yy8:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1461;
++ goto yy1463;
+ } else {
+- if (yych == 'I') goto yy1462;
++ if (yych == 'I') goto yy1464;
+ if (yych <= 'N') goto yy165;
+- goto yy1463;
++ goto yy1465;
+ }
+ } else {
+ if (yych <= 'h') {
+ if (yych <= 'Z') goto yy165;
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1461;
++ if (yych <= 'a') goto yy1463;
+ goto yy165;
+ } else {
+ if (yych <= 'n') {
+- if (yych <= 'i') goto yy1462;
++ if (yych <= 'i') goto yy1464;
+ goto yy165;
+ } else {
+- if (yych <= 'o') goto yy1463;
++ if (yych <= 'o') goto yy1465;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1146,15 +1151,15 @@ yy9:
+ switch (yych) {
+ case ')': goto yy164;
+ case '0':
+- case '1': goto yy1391;
+- case '2': goto yy1392;
++ case '1': goto yy1393;
++ case '2': goto yy1394;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+- case '9': goto yy1393;
++ case '9': goto yy1395;
+ case 'A':
+ case 'B':
+ case 'C':
+@@ -1176,11 +1181,11 @@ yy9:
+ case 'X':
+ case 'Y':
+ case 'Z': goto yy165;
+- case 'E': goto yy1386;
+- case 'H': goto yy1387;
+- case 'O': goto yy1388;
+- case 'U': goto yy1389;
+- case 'W': goto yy1390;
++ case 'E': goto yy1388;
++ case 'H': goto yy1389;
++ case 'O': goto yy1390;
++ case 'U': goto yy1391;
++ case 'W': goto yy1392;
+ case 'a':
+ case 'b':
+ case 'c':
+@@ -1202,11 +1207,11 @@ yy9:
+ case 'x':
+ case 'y':
+ case 'z': goto yy170;
+- case 'e': goto yy1429;
+- case 'h': goto yy1430;
+- case 'o': goto yy1431;
+- case 'u': goto yy1432;
+- case 'w': goto yy1433;
++ case 'e': goto yy1431;
++ case 'h': goto yy1432;
++ case 'o': goto yy1433;
++ case 'u': goto yy1434;
++ case 'w': goto yy1435;
+ default: goto yy3;
+ }
+ yy10:
+@@ -1215,15 +1220,15 @@ yy10:
+ switch (yych) {
+ case ')': goto yy164;
+ case '0':
+- case '1': goto yy1391;
+- case '2': goto yy1392;
++ case '1': goto yy1393;
++ case '2': goto yy1394;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+- case '9': goto yy1393;
++ case '9': goto yy1395;
+ case 'A':
+ case 'B':
+ case 'C':
+@@ -1267,28 +1272,30 @@ yy10:
+ case 'y':
+ case 'z': goto yy165;
+ case 'E':
+- case 'e': goto yy1386;
++ case 'e': goto yy1388;
+ case 'H':
+- case 'h': goto yy1387;
++ case 'h': goto yy1389;
+ case 'O':
+- case 'o': goto yy1388;
++ case 'o': goto yy1390;
+ case 'U':
+- case 'u': goto yy1389;
++ case 'u': goto yy1391;
+ case 'W':
+- case 'w': goto yy1390;
++ case 'w': goto yy1392;
+ default: goto yy3;
+ }
+ yy11:
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych == '-') goto yy1374;
++ if (yych == '-') goto yy1376;
+ if (yych <= '/') goto yy12;
+- if (yych <= '9') goto yy1375;
++ if (yych <= '9') goto yy1377;
+ yy12:
++#line 1768 "ext/date/lib/parse_date.re"
+ {
+ add_error(s, "Unexpected character");
+ goto std;
+ }
++#line 1299 "ext/date/lib/parse_date.c"
+ yy13:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+@@ -1299,16 +1306,16 @@ yy13:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1310;
++ goto yy1311;
+ }
+ } else {
+ if (yych <= 'N') {
+- if (yych == 'I') goto yy1311;
++ if (yych == 'I') goto yy1312;
+ goto yy165;
+ } else {
+- if (yych <= 'O') goto yy1312;
++ if (yych <= 'O') goto yy1313;
+ if (yych <= 'Q') goto yy165;
+- goto yy1313;
++ goto yy1314;
+ }
+ }
+ } else {
+@@ -1318,16 +1325,16 @@ yy13:
+ if (yych <= '`') goto yy3;
+ goto yy170;
+ } else {
+- if (yych <= 'e') goto yy1351;
++ if (yych <= 'e') goto yy1353;
+ if (yych <= 'h') goto yy170;
+- goto yy1352;
++ goto yy1354;
+ }
+ } else {
+ if (yych <= 'q') {
+- if (yych == 'o') goto yy1353;
++ if (yych == 'o') goto yy1355;
+ goto yy170;
+ } else {
+- if (yych <= 'r') goto yy1354;
++ if (yych <= 'r') goto yy1356;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1343,16 +1350,16 @@ yy14:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy165;
+- goto yy1310;
++ goto yy1311;
+ }
+ } else {
+ if (yych <= 'N') {
+- if (yych == 'I') goto yy1311;
++ if (yych == 'I') goto yy1312;
+ goto yy165;
+ } else {
+- if (yych <= 'O') goto yy1312;
++ if (yych <= 'O') goto yy1313;
+ if (yych <= 'Q') goto yy165;
+- goto yy1313;
++ goto yy1314;
+ }
+ }
+ } else {
+@@ -1362,16 +1369,16 @@ yy14:
+ if (yych <= '`') goto yy3;
+ goto yy165;
+ } else {
+- if (yych <= 'e') goto yy1310;
++ if (yych <= 'e') goto yy1311;
+ if (yych <= 'h') goto yy165;
+- goto yy1311;
++ goto yy1312;
+ }
+ } else {
+ if (yych <= 'q') {
+- if (yych == 'o') goto yy1312;
++ if (yych == 'o') goto yy1313;
+ goto yy165;
+ } else {
+- if (yych <= 'r') goto yy1313;
++ if (yych <= 'r') goto yy1314;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1382,13 +1389,13 @@ yy15:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1296;
++ goto yy1297;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1307;
++ if (yych <= 'a') goto yy1308;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -1398,13 +1405,13 @@ yy16:
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1296;
++ goto yy1297;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1296;
++ if (yych <= 'a') goto yy1297;
+ if (yych <= 'z') goto yy165;
+ goto yy3;
+ }
+@@ -1420,7 +1427,7 @@ yy17:
+ if (yych <= 'Z') goto yy165;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1293;
++ if (yych <= 'a') goto yy1294;
+ if (yych <= 'z') goto yy170;
+ goto yy3;
+ }
+@@ -2495,18 +2502,22 @@ yy48:
+ if (yych <= '/') goto yy49;
+ if (yych <= '9') goto yy54;
+ yy49:
++#line 1757 "ext/date/lib/parse_date.re"
+ {
+ goto std;
+ }
++#line 2510 "ext/date/lib/parse_date.c"
+ yy50:
+ yych = *++YYCURSOR;
+ goto yy49;
+ yy51:
+ ++YYCURSOR;
++#line 1762 "ext/date/lib/parse_date.re"
+ {
+ s->pos = cursor; s->line++;
+ goto std;
+ }
++#line 2521 "ext/date/lib/parse_date.c"
+ yy53:
+ yych = *++YYCURSOR;
+ goto yy12;
+@@ -2693,23 +2704,23 @@ yy56:
+ }
+ } else {
+ if (yyaccept == 28) {
+- goto yy1377;
++ goto yy1379;
+ } else {
+- goto yy1415;
++ goto yy1417;
+ }
+ }
+ } else {
+ if (yyaccept <= 31) {
+ if (yyaccept == 30) {
+- goto yy1418;
++ goto yy1420;
+ } else {
+- goto yy1498;
++ goto yy1500;
+ }
+ } else {
+ if (yyaccept == 32) {
+- goto yy1506;
++ goto yy1508;
+ } else {
+- goto yy1529;
++ goto yy1531;
+ }
+ }
+ }
+@@ -2920,6 +2931,7 @@ yy73:
+ if (yych == 'S') goto yy75;
+ if (yych == 's') goto yy75;
+ yy74:
++#line 1741 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i;
+ DEBUG_OUTPUT("relative");
+@@ -2934,6 +2946,7 @@ yy74:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
++#line 2950 "ext/date/lib/parse_date.c"
+ yy75:
+ yych = *++YYCURSOR;
+ if (yych == 'D') goto yy76;
+@@ -3719,6 +3732,7 @@ yy190:
+ }
+ }
+ yy191:
++#line 1604 "ext/date/lib/parse_date.re"
+ {
+ const timelib_relunit* relunit;
+ DEBUG_OUTPUT("daytext");
+@@ -3735,6 +3749,7 @@ yy191:
+ TIMELIB_DEINIT;
+ return TIMELIB_WEEKDAY;
+ }
++#line 3753 "ext/date/lib/parse_date.c"
+ yy192:
+ yych = *++YYCURSOR;
+ if (yych <= 'K') {
+@@ -4227,6 +4242,7 @@ yy217:
+ }
+ }
+ yy218:
++#line 1663 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("monthtext");
+ TIMELIB_INIT;
+@@ -4235,6 +4251,7 @@ yy218:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_TEXT;
+ }
++#line 4255 "ext/date/lib/parse_date.c"
+ yy219:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 23) YYFILL(23);
+@@ -4469,6 +4486,7 @@ yy231:
+ if (yych == 't') goto yy319;
+ goto yy237;
+ yy232:
++#line 1409 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datetextual | datenoyear");
+@@ -4481,6 +4499,7 @@ yy232:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_TEXT;
+ }
++#line 4503 "ext/date/lib/parse_date.c"
+ yy233:
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -4593,6 +4612,7 @@ yy245:
+ if (yych <= ':') goto yy248;
+ }
+ yy246:
++#line 1711 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
+@@ -4621,6 +4641,7 @@ yy246:
+ TIMELIB_DEINIT;
+ return TIMELIB_SHORTDATE_WITH_TIME;
+ }
++#line 4645 "ext/date/lib/parse_date.c"
+ yy247:
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -4893,6 +4914,7 @@ yy269:
+ }
+ yy270:
+ ++YYCURSOR;
++#line 1687 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
+ TIMELIB_INIT;
+@@ -4915,6 +4937,7 @@ yy270:
+ TIMELIB_DEINIT;
+ return TIMELIB_SHORTDATE_WITH_TIME;
+ }
++#line 4941 "ext/date/lib/parse_date.c"
+ yy272:
+ yych = *++YYCURSOR;
+ if (yych <= 0x1F) {
+@@ -5470,6 +5493,7 @@ yy320:
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
++#line 1381 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datenoday");
+@@ -5482,6 +5506,7 @@ yy320:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_NO_DAY;
+ }
++#line 5510 "ext/date/lib/parse_date.c"
+ yy323:
+ yych = *++YYCURSOR;
+ if (yych <= '9') {
+@@ -5704,6 +5729,7 @@ yy327:
+ if ((yych = *YYCURSOR) <= '/') goto yy330;
+ if (yych <= '9') goto yy331;
+ yy330:
++#line 1525 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pgtextshort");
+@@ -5716,6 +5742,7 @@ yy330:
+ TIMELIB_DEINIT;
+ return TIMELIB_PG_TEXT;
+ }
++#line 5746 "ext/date/lib/parse_date.c"
+ yy331:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy330;
+@@ -6270,6 +6297,7 @@ yy356:
+ if (yych <= 'z') goto yy167;
+ }
+ yy357:
++#line 1583 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("ago");
+ TIMELIB_INIT;
+@@ -6289,6 +6317,7 @@ yy357:
+ TIMELIB_DEINIT;
+ return TIMELIB_AGO;
+ }
++#line 6321 "ext/date/lib/parse_date.c"
+ yy358:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8009,6 +8038,7 @@ yy417:
+ yy418:
+ ++YYCURSOR;
+ yy419:
++#line 1286 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
+ TIMELIB_INIT;
+@@ -8019,6 +8049,7 @@ yy419:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 8053 "ext/date/lib/parse_date.c"
+ yy420:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8641,6 +8672,7 @@ yy439:
+ }
+ }
+ yy440:
++#line 1423 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("datenoyearrev");
+ TIMELIB_INIT;
+@@ -8651,6 +8683,7 @@ yy440:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_TEXT;
+ }
++#line 8687 "ext/date/lib/parse_date.c"
+ yy441:
+ yyaccept = 9;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8778,6 +8811,7 @@ yy450:
+ }
+ yy452:
+ ++YYCURSOR;
++#line 1141 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
+ TIMELIB_INIT;
+@@ -8793,6 +8827,7 @@ yy452:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIME12;
+ }
++#line 8831 "ext/date/lib/parse_date.c"
+ yy454:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -8803,6 +8838,7 @@ yy454:
+ if (yych <= ':') goto yy457;
+ }
+ yy455:
++#line 1178 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
+@@ -8827,6 +8863,7 @@ yy455:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIME24_WITH_ZONE;
+ }
++#line 8867 "ext/date/lib/parse_date.c"
+ yy456:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -9103,6 +9140,7 @@ yy485:
+ }
+ yy487:
+ ++YYCURSOR;
++#line 1158 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("mssqltime");
+ TIMELIB_INIT;
+@@ -9121,6 +9159,7 @@ yy487:
+ TIMELIB_DEINIT;
+ return TIMELIB_TIME24_WITH_ZONE;
+ }
++#line 9163 "ext/date/lib/parse_date.c"
+ yy489:
+ yyaccept = 10;
+ YYMARKER = ++YYCURSOR;
+@@ -9215,6 +9254,7 @@ yy498:
+ if ((yych = *YYCURSOR) <= '/') goto yy499;
+ if (yych <= '9') goto yy505;
+ yy499:
++#line 1340 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datefull");
+@@ -9228,6 +9268,7 @@ yy499:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_FULL;
+ }
++#line 9272 "ext/date/lib/parse_date.c"
+ yy500:
+ yych = *++YYCURSOR;
+ if (yych == 'M') goto yy501;
+@@ -9891,6 +9932,7 @@ yy569:
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
++#line 1355 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("pointed date YYYY");
+ TIMELIB_INIT;
+@@ -9901,6 +9943,7 @@ yy569:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_FULL_POINTED;
+ }
++#line 9947 "ext/date/lib/parse_date.c"
+ yy572:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -9931,6 +9974,7 @@ yy575:
+ if (yych <= '/') goto yy576;
+ if (yych <= '9') goto yy569;
+ yy576:
++#line 1367 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pointed date YY");
+@@ -9943,6 +9987,7 @@ yy576:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_FULL_POINTED;
+ }
++#line 9991 "ext/date/lib/parse_date.c"
+ yy577:
+ yyaccept = 10;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -10538,6 +10583,7 @@ yy620:
+ }
+ }
+ yy621:
++#line 1326 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("gnudateshort");
+@@ -10550,6 +10596,7 @@ yy621:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 10600 "ext/date/lib/parse_date.c"
+ yy622:
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -10645,6 +10692,7 @@ yy630:
+ }
+ }
+ yy631:
++#line 1270 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("americanshort | american");
+@@ -10659,6 +10707,7 @@ yy631:
+ TIMELIB_DEINIT;
+ return TIMELIB_AMERICAN;
+ }
++#line 10711 "ext/date/lib/parse_date.c"
+ yy632:
+ yyaccept = 13;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -10857,6 +10906,7 @@ yy664:
+ if (yych <= '9') goto yy667;
+ if (yych <= ':') goto yy668;
+ yy665:
++#line 1553 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("clf");
+@@ -10876,6 +10926,7 @@ yy665:
+ TIMELIB_DEINIT;
+ return TIMELIB_CLF;
+ }
++#line 10930 "ext/date/lib/parse_date.c"
+ yy666:
+ yych = *++YYCURSOR;
+ if (yych <= '5') {
+@@ -11362,6 +11413,7 @@ yy727:
+ if (yych <= 't') goto yy627;
+ }
+ yy728:
++#line 1298 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("iso8601date2");
+@@ -11374,6 +11426,7 @@ yy728:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 11430 "ext/date/lib/parse_date.c"
+ yy729:
+ yych = *++YYCURSOR;
+ if (yych == 'C') goto yy730;
+@@ -11404,6 +11457,7 @@ yy734:
+ if (yych >= '2') goto yy56;
+ yy735:
+ ++YYCURSOR;
++#line 1539 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pgtextreverse");
+@@ -11416,6 +11470,7 @@ yy735:
+ TIMELIB_DEINIT;
+ return TIMELIB_PG_TEXT;
+ }
++#line 11474 "ext/date/lib/parse_date.c"
+ yy737:
+ yych = *++YYCURSOR;
+ if (yych == 'V') goto yy730;
+@@ -11568,6 +11623,7 @@ yy747:
+ }
+ }
+ yy748:
++#line 1574 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("year4");
+ TIMELIB_INIT;
+@@ -11575,6 +11631,7 @@ yy748:
+ TIMELIB_DEINIT;
+ return TIMELIB_CLF;
+ }
++#line 11635 "ext/date/lib/parse_date.c"
+ yy749:
+ yych = *++YYCURSOR;
+ switch (yych) {
+@@ -11769,6 +11826,7 @@ yy757:
+ if (yych <= 'X') goto yy848;
+ }
+ yy758:
++#line 1395 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("datenodayrev");
+@@ -11781,6 +11839,7 @@ yy758:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_NO_DAY;
+ }
++#line 11843 "ext/date/lib/parse_date.c"
+ yy759:
+ yych = *++YYCURSOR;
+ if (yych == 'I') goto yy892;
+@@ -11980,6 +12039,7 @@ yy778:
+ if (yych <= '/') goto yy779;
+ if (yych <= '7') goto yy781;
+ yy779:
++#line 1506 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll w, d;
+ DEBUG_OUTPUT("isoweek");
+@@ -11997,12 +12057,14 @@ yy779:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_WEEK;
+ }
++#line 12061 "ext/date/lib/parse_date.c"
+ yy780:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= '8') goto yy56;
+ yy781:
+ ++YYCURSOR;
++#line 1487 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll w, d;
+ DEBUG_OUTPUT("isoweekday");
+@@ -12020,6 +12082,7 @@ yy781:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_WEEK;
+ }
++#line 12086 "ext/date/lib/parse_date.c"
+ yy783:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy60;
+@@ -12085,6 +12148,7 @@ yy785:
+ }
+ }
+ yy786:
++#line 1473 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("pgydotd");
+@@ -12097,6 +12161,7 @@ yy786:
+ TIMELIB_DEINIT;
+ return TIMELIB_PG_YEARDAY;
+ }
++#line 12165 "ext/date/lib/parse_date.c"
+ yy787:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy60;
+@@ -12178,6 +12243,7 @@ yy805:
+ yy806:
+ ++YYCURSOR;
+ yy807:
++#line 1447 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
+@@ -12202,6 +12268,7 @@ yy807:
+ TIMELIB_DEINIT;
+ return TIMELIB_XMLRPC_SOAP;
+ }
++#line 12272 "ext/date/lib/parse_date.c"
+ yy808:
+ yych = *++YYCURSOR;
+ if (yych <= '2') {
+@@ -12490,6 +12557,7 @@ yy812:
+ }
+ }
+ yy813:
++#line 1435 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("datenocolon");
+ TIMELIB_INIT;
+@@ -12500,6 +12568,7 @@ yy813:
+ TIMELIB_DEINIT;
+ return TIMELIB_DATE_NOCOLON;
+ }
++#line 12572 "ext/date/lib/parse_date.c"
+ yy814:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+@@ -13293,6 +13362,7 @@ yy937:
+ if (yych <= '/') goto yy938;
+ if (yych <= '9') goto yy960;
+ yy938:
++#line 1312 "ext/date/lib/parse_date.re"
+ {
+ int length = 0;
+ DEBUG_OUTPUT("gnudateshorter");
+@@ -13305,6 +13375,7 @@ yy938:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_DATE;
+ }
++#line 13379 "ext/date/lib/parse_date.c"
+ yy939:
+ yyaccept = 21;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -14303,6 +14374,7 @@ yy1030:
+ }
+ }
+ yy1032:
++#line 1204 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("gnunocolon");
+ TIMELIB_INIT;
+@@ -14324,6 +14396,7 @@ yy1032:
+ TIMELIB_DEINIT;
+ return TIMELIB_GNU_NOCOLON;
+ }
++#line 14400 "ext/date/lib/parse_date.c"
+ yy1033:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy60;
+@@ -14413,6 +14486,7 @@ yy1039:
+ }
+ }
+ yy1040:
++#line 1250 "ext/date/lib/parse_date.re"
+ {
+ int tz_not_found;
+ DEBUG_OUTPUT("iso8601nocolon");
+@@ -14431,6 +14505,7 @@ yy1040:
+ TIMELIB_DEINIT;
+ return TIMELIB_ISO_NOCOLON;
+ }
++#line 14509 "ext/date/lib/parse_date.c"
+ yy1041:
+ yyaccept = 24;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -15362,6 +15437,7 @@ yy1083:
+ }
+ }
+ yy1084:
++#line 1646 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll i;
+ int behavior = 0;
+@@ -15377,6 +15453,7 @@ yy1084:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
++#line 15457 "ext/date/lib/parse_date.c"
+ yy1085:
+ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+@@ -15418,6 +15495,7 @@ yy1091:
+ if (yych != 'f') goto yy56;
+ yy1092:
+ ++YYCURSOR;
++#line 1119 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll i;
+ int behavior = 0;
+@@ -15438,6 +15516,7 @@ yy1092:
+ TIMELIB_DEINIT;
+ return TIMELIB_WEEK_DAY_OF_MONTH;
+ }
++#line 15520 "ext/date/lib/parse_date.c"
+ yy1094:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -15530,6 +15609,7 @@ yy1107:
+ }
+ }
+ yy1108:
++#line 1622 "ext/date/lib/parse_date.re"
+ {
+ timelib_sll i;
+ int behavior = 0;
+@@ -15552,6 +15632,7 @@ yy1108:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
++#line 15636 "ext/date/lib/parse_date.c"
+ yy1109:
+ yych = *++YYCURSOR;
+ goto yy1084;
+@@ -18206,10 +18287,25 @@ yy1281:
+ yy1283:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1287;
+- if (yych <= '9') goto yy1286;
+- goto yy1287;
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1287;
++ } else {
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '/') goto yy1284;
++ if (yych <= '9') goto yy1286;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1289;
++ if (yych == 'P') goto yy1289;
++ } else {
++ if (yych <= 'a') goto yy1289;
++ if (yych == 'p') goto yy1289;
++ }
++ }
+ yy1284:
++#line 1096 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("backof | frontof");
+ TIMELIB_INIT;
+@@ -18231,66 +18327,104 @@ yy1284:
+ TIMELIB_DEINIT;
+ return TIMELIB_LF_DAY_OF_MONTH;
+ }
++#line 18331 "ext/date/lib/parse_date.c"
+ yy1285:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1287;
+- if (yych >= '5') goto yy1287;
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1287;
++ goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '/') goto yy1284;
++ if (yych >= '5') goto yy1284;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1289;
++ if (yych == 'P') goto yy1289;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1289;
++ if (yych == 'p') goto yy1289;
++ goto yy1284;
++ }
++ }
+ yy1286:
+ yyaccept = 27;
+- YYMARKER = ++YYCURSOR;
++ yych = *(YYMARKER = ++YYCURSOR);
++ if (yych <= 'A') {
++ if (yych <= 0x1F) {
++ if (yych != '\t') goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '@') goto yy1284;
++ goto yy1289;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych == 'P') goto yy1289;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1289;
++ if (yych == 'p') goto yy1289;
++ goto yy1284;
++ }
++ }
++yy1287:
++ ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+ yych = *YYCURSOR;
+-yy1287:
+ if (yych <= 'A') {
+ if (yych <= 0x1F) {
+- if (yych == '\t') goto yy1286;
+- goto yy1284;
++ if (yych == '\t') goto yy1287;
++ goto yy56;
+ } else {
+- if (yych <= ' ') goto yy1286;
+- if (yych <= '@') goto yy1284;
++ if (yych <= ' ') goto yy1287;
++ if (yych <= '@') goto yy56;
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych != 'P') goto yy1284;
++ if (yych != 'P') goto yy56;
+ } else {
+- if (yych <= 'a') goto yy1288;
+- if (yych != 'p') goto yy1284;
++ if (yych <= 'a') goto yy1289;
++ if (yych != 'p') goto yy56;
+ }
+ }
+-yy1288:
++yy1289:
+ yych = *++YYCURSOR;
+ if (yych <= 'L') {
+ if (yych != '.') goto yy56;
+ } else {
+- if (yych <= 'M') goto yy1290;
+- if (yych == 'm') goto yy1290;
++ if (yych <= 'M') goto yy1291;
++ if (yych == 'm') goto yy1291;
+ goto yy56;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'M') goto yy1290;
++ if (yych == 'M') goto yy1291;
+ if (yych != 'm') goto yy56;
+-yy1290:
++yy1291:
+ yych = *++YYCURSOR;
+ if (yych <= 0x1F) {
+- if (yych <= 0x00) goto yy1292;
+- if (yych == '\t') goto yy1292;
++ if (yych <= 0x00) goto yy1293;
++ if (yych == '\t') goto yy1293;
+ goto yy56;
+ } else {
+- if (yych <= ' ') goto yy1292;
++ if (yych <= ' ') goto yy1293;
+ if (yych != '.') goto yy56;
+ }
+ yych = *++YYCURSOR;
+ if (yych <= '\t') {
+- if (yych <= 0x00) goto yy1292;
++ if (yych <= 0x00) goto yy1293;
+ if (yych <= 0x08) goto yy56;
+ } else {
+ if (yych != ' ') goto yy56;
+ }
+-yy1292:
++yy1293:
+ yych = *++YYCURSOR;
+ goto yy1284;
+-yy1293:
++yy1294:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'B') {
+@@ -18314,13 +18448,13 @@ yy1293:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'c') goto yy1294;
++ if (yych <= 'c') goto yy1295;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1294:
++yy1295:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'J') {
+@@ -18344,13 +18478,13 @@ yy1294:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'k') goto yy1295;
++ if (yych <= 'k') goto yy1296;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1295:
++yy1296:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '.') {
+@@ -18375,7 +18509,7 @@ yy1295:
+ goto yy3;
+ }
+ }
+-yy1296:
++yy1297:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -18391,12 +18525,12 @@ yy1296:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 's') goto yy1297;
++ if (yych <= 's') goto yy1298;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1297:
++yy1298:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18412,12 +18546,12 @@ yy1297:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1298;
++ if (yych <= 't') goto yy1299;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1298:
++yy1299:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '(') {
+@@ -18438,19 +18572,19 @@ yy1298:
+ goto yy3;
+ }
+ }
+-yy1299:
++yy1300:
+ yych = *++YYCURSOR;
+- if (yych == 'D') goto yy1300;
++ if (yych == 'D') goto yy1301;
+ if (yych != 'd') goto yy1070;
+-yy1300:
++yy1301:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1301;
++ if (yych == 'A') goto yy1302;
+ if (yych != 'a') goto yy56;
+-yy1301:
++yy1302:
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1302;
++ if (yych == 'Y') goto yy1303;
+ if (yych != 'y') goto yy56;
+-yy1302:
++yy1303:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -18461,14 +18595,15 @@ yy1302:
+ goto yy1084;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'O') goto yy1304;
++ if (yych == 'O') goto yy1305;
+ if (yych != 'o') goto yy56;
+-yy1304:
++yy1305:
+ yych = *++YYCURSOR;
+- if (yych == 'F') goto yy1305;
++ if (yych == 'F') goto yy1306;
+ if (yych != 'f') goto yy56;
+-yy1305:
++yy1306:
+ ++YYCURSOR;
++#line 1079 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("firstdayof | lastdayof");
+ TIMELIB_INIT;
+@@ -18484,7 +18619,8 @@ yy1305:
+ TIMELIB_DEINIT;
+ return TIMELIB_LF_DAY_OF_MONTH;
+ }
+-yy1307:
++#line 18623 "ext/date/lib/parse_date.c"
++yy1308:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -18499,7 +18635,7 @@ yy1307:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1297;
++ if (yych <= 'S') goto yy1298;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -18508,13 +18644,13 @@ yy1307:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 's') goto yy1308;
++ if (yych <= 's') goto yy1309;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1308:
++yy1309:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -18529,7 +18665,7 @@ yy1308:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1298;
++ if (yych <= 'T') goto yy1299;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -18538,20 +18674,20 @@ yy1308:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1309;
++ if (yych <= 't') goto yy1310;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1309:
++yy1310:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy1069;
+ if (yych <= 0x1F) goto yy3;
+- goto yy1299;
++ goto yy1300;
+ } else {
+ if (yych == ')') goto yy164;
+ if (yych <= ',') goto yy3;
+@@ -18573,7 +18709,7 @@ yy1309:
+ }
+ }
+ }
+-yy1310:
++yy1311:
+ yych = *++YYCURSOR;
+ if (yych <= 'B') {
+ if (yych <= ')') {
+@@ -18582,7 +18718,7 @@ yy1310:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'A') goto yy166;
+- goto yy1346;
++ goto yy1348;
+ }
+ } else {
+ if (yych <= 'a') {
+@@ -18590,35 +18726,35 @@ yy1310:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'b') goto yy1346;
++ if (yych <= 'b') goto yy1348;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1311:
++yy1312:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'F') goto yy1336;
++ if (yych == 'F') goto yy1338;
+ if (yych <= 'Q') goto yy166;
+- goto yy1335;
++ goto yy1337;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'e') goto yy166;
+- goto yy1336;
++ goto yy1338;
+ } else {
+- if (yych == 'r') goto yy1335;
++ if (yych == 'r') goto yy1337;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1312:
++yy1313:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= ')') {
+@@ -18627,7 +18763,7 @@ yy1312:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'T') goto yy166;
+- goto yy1332;
++ goto yy1334;
+ }
+ } else {
+ if (yych <= 't') {
+@@ -18635,19 +18771,19 @@ yy1312:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'u') goto yy1332;
++ if (yych <= 'u') goto yy1334;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1313:
++yy1314:
+ yych = *++YYCURSOR;
+ if (yych <= 'O') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1315;
++ if (yych == 'I') goto yy1316;
+ if (yych <= 'N') goto yy166;
+ }
+ } else {
+@@ -18655,14 +18791,14 @@ yy1313:
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'h') goto yy166;
+- goto yy1315;
++ goto yy1316;
+ } else {
+- if (yych == 'o') goto yy1314;
++ if (yych == 'o') goto yy1315;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1314:
++yy1315:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -18671,7 +18807,7 @@ yy1314:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'M') goto yy167;
+- goto yy1318;
++ goto yy1319;
+ }
+ } else {
+ if (yych <= 'm') {
+@@ -18679,12 +18815,12 @@ yy1314:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'n') goto yy1318;
++ if (yych <= 'n') goto yy1319;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1315:
++yy1316:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -18700,12 +18836,12 @@ yy1315:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 'd') goto yy1316;
++ if (yych <= 'd') goto yy1317;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1316:
++yy1317:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -18715,12 +18851,12 @@ yy1316:
+ if (yych <= 'Z') goto yy168;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1317;
++ if (yych <= 'a') goto yy1318;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1317:
++yy1318:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= ')') {
+@@ -18742,7 +18878,7 @@ yy1317:
+ goto yy3;
+ }
+ }
+-yy1318:
++yy1319:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18758,16 +18894,16 @@ yy1318:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 't') goto yy1319;
++ if (yych <= 't') goto yy1320;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1319:
++yy1320:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= ')') {
+- if (yych == ' ') goto yy1320;
++ if (yych == ' ') goto yy1321;
+ if (yych <= '(') goto yy3;
+ goto yy164;
+ } else {
+@@ -18780,88 +18916,143 @@ yy1319:
+ goto yy3;
+ }
+ }
+-yy1320:
++yy1321:
+ yych = *++YYCURSOR;
+- if (yych == 'O') goto yy1321;
++ if (yych == 'O') goto yy1322;
+ if (yych != 'o') goto yy56;
+-yy1321:
++yy1322:
+ yych = *++YYCURSOR;
+- if (yych == 'F') goto yy1322;
++ if (yych == 'F') goto yy1323;
+ if (yych != 'f') goto yy56;
+-yy1322:
++yy1323:
+ yych = *++YYCURSOR;
+ if (yych != ' ') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+- if (yych <= '1') goto yy1324;
+- if (yych <= '2') goto yy1325;
+- if (yych <= '9') goto yy1326;
++ if (yych <= '1') goto yy1325;
++ if (yych <= '2') goto yy1326;
++ if (yych <= '9') goto yy1327;
+ goto yy56;
+-yy1324:
+- yyaccept = 27;
+- yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1327;
+- if (yych <= '9') goto yy1326;
+- goto yy1327;
+ yy1325:
+ yyaccept = 27;
+ yych = *(YYMARKER = ++YYCURSOR);
+- if (yych <= '/') goto yy1327;
+- if (yych >= '5') goto yy1327;
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1328;
++ goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1328;
++ if (yych <= '/') goto yy1284;
++ if (yych <= '9') goto yy1327;
++ goto yy1284;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1330;
++ if (yych == 'P') goto yy1330;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1330;
++ if (yych == 'p') goto yy1330;
++ goto yy1284;
++ }
++ }
+ yy1326:
+ yyaccept = 27;
+- YYMARKER = ++YYCURSOR;
+- if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+- yych = *YYCURSOR;
++ yych = *(YYMARKER = ++YYCURSOR);
++ if (yych <= '@') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1328;
++ goto yy1284;
++ } else {
++ if (yych <= ' ') goto yy1328;
++ if (yych <= '/') goto yy1284;
++ if (yych >= '5') goto yy1284;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych <= 'A') goto yy1330;
++ if (yych == 'P') goto yy1330;
++ goto yy1284;
++ } else {
++ if (yych <= 'a') goto yy1330;
++ if (yych == 'p') goto yy1330;
++ goto yy1284;
++ }
++ }
+ yy1327:
++ yyaccept = 27;
++ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'A') {
+ if (yych <= 0x1F) {
+- if (yych == '\t') goto yy1326;
+- goto yy1284;
++ if (yych != '\t') goto yy1284;
+ } else {
+- if (yych <= ' ') goto yy1326;
++ if (yych <= ' ') goto yy1328;
+ if (yych <= '@') goto yy1284;
++ goto yy1330;
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych != 'P') goto yy1284;
++ if (yych == 'P') goto yy1330;
++ goto yy1284;
+ } else {
+- if (yych <= 'a') goto yy1328;
+- if (yych != 'p') goto yy1284;
++ if (yych <= 'a') goto yy1330;
++ if (yych == 'p') goto yy1330;
++ goto yy1284;
+ }
+ }
+ yy1328:
++ ++YYCURSOR;
++ if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
++ yych = *YYCURSOR;
++ if (yych <= 'A') {
++ if (yych <= 0x1F) {
++ if (yych == '\t') goto yy1328;
++ goto yy56;
++ } else {
++ if (yych <= ' ') goto yy1328;
++ if (yych <= '@') goto yy56;
++ }
++ } else {
++ if (yych <= '`') {
++ if (yych != 'P') goto yy56;
++ } else {
++ if (yych <= 'a') goto yy1330;
++ if (yych != 'p') goto yy56;
++ }
++ }
++yy1330:
+ yych = *++YYCURSOR;
+ if (yych <= 'L') {
+ if (yych != '.') goto yy56;
+ } else {
+- if (yych <= 'M') goto yy1330;
+- if (yych == 'm') goto yy1330;
++ if (yych <= 'M') goto yy1332;
++ if (yych == 'm') goto yy1332;
+ goto yy56;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'M') goto yy1330;
++ if (yych == 'M') goto yy1332;
+ if (yych != 'm') goto yy56;
+-yy1330:
++yy1332:
+ yych = *++YYCURSOR;
+ if (yych <= 0x1F) {
+- if (yych <= 0x00) goto yy1292;
+- if (yych == '\t') goto yy1292;
++ if (yych <= 0x00) goto yy1293;
++ if (yych == '\t') goto yy1293;
+ goto yy56;
+ } else {
+- if (yych <= ' ') goto yy1292;
++ if (yych <= ' ') goto yy1293;
+ if (yych != '.') goto yy56;
+ }
+ yych = *++YYCURSOR;
+ if (yych <= '\t') {
+- if (yych <= 0x00) goto yy1292;
++ if (yych <= 0x00) goto yy1293;
+ if (yych <= 0x08) goto yy56;
+- goto yy1292;
++ goto yy1293;
+ } else {
+- if (yych == ' ') goto yy1292;
++ if (yych == ' ') goto yy1293;
+ goto yy56;
+ }
+-yy1332:
++yy1334:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -18877,12 +19068,12 @@ yy1332:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1333;
++ if (yych <= 'r') goto yy1335;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1333:
++yy1335:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18898,12 +19089,12 @@ yy1333:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 't') goto yy1334;
++ if (yych <= 't') goto yy1336;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1334:
++yy1336:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -18925,7 +19116,7 @@ yy1334:
+ goto yy3;
+ }
+ }
+-yy1335:
++yy1337:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -18934,7 +19125,7 @@ yy1335:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'R') goto yy167;
+- goto yy1338;
++ goto yy1340;
+ }
+ } else {
+ if (yych <= 'r') {
+@@ -18942,12 +19133,12 @@ yy1335:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 's') goto yy1338;
++ if (yych <= 's') goto yy1340;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1336:
++yy1338:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -18963,12 +19154,12 @@ yy1336:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1337;
++ if (yych <= 't') goto yy1339;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1337:
++yy1339:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -18990,7 +19181,7 @@ yy1337:
+ goto yy3;
+ }
+ }
+-yy1338:
++yy1340:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -19006,12 +19197,12 @@ yy1338:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 't') goto yy1339;
++ if (yych <= 't') goto yy1341;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1339:
++yy1341:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '(') {
+@@ -19032,19 +19223,19 @@ yy1339:
+ goto yy3;
+ }
+ }
+-yy1340:
++yy1342:
+ yych = *++YYCURSOR;
+- if (yych == 'D') goto yy1341;
++ if (yych == 'D') goto yy1343;
+ if (yych != 'd') goto yy1197;
+-yy1341:
++yy1343:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1342;
++ if (yych == 'A') goto yy1344;
+ if (yych != 'a') goto yy56;
+-yy1342:
++yy1344:
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1343;
++ if (yych == 'Y') goto yy1345;
+ if (yych != 'y') goto yy56;
+-yy1343:
++yy1345:
+ yyaccept = 25;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -19055,14 +19246,14 @@ yy1343:
+ goto yy1084;
+ }
+ yych = *++YYCURSOR;
+- if (yych == 'O') goto yy1345;
++ if (yych == 'O') goto yy1347;
+ if (yych != 'o') goto yy56;
+-yy1345:
++yy1347:
+ yych = *++YYCURSOR;
+- if (yych == 'F') goto yy1305;
+- if (yych == 'f') goto yy1305;
++ if (yych == 'F') goto yy1306;
++ if (yych == 'f') goto yy1306;
+ goto yy56;
+-yy1346:
++yy1348:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+@@ -19097,13 +19288,13 @@ yy1346:
+ if (yych <= '`') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1347;
++ if (yych <= 'r') goto yy1349;
+ if (yych <= 'z') goto yy167;
+ goto yy218;
+ }
+ }
+ }
+-yy1347:
++yy1349:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= ')') {
+@@ -19119,12 +19310,12 @@ yy1347:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'u') goto yy1348;
++ if (yych <= 'u') goto yy1350;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1348:
++yy1350:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -19134,27 +19325,27 @@ yy1348:
+ if (yych <= 'Z') goto yy169;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1349;
++ if (yych <= 'a') goto yy1351;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1349:
++yy1351:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'R') goto yy1350;
++ if (yych <= 'R') goto yy1352;
+ if (yych != 'r') goto yy3;
+ }
+-yy1350:
++yy1352:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy229;
+ if (yych == 'y') goto yy229;
+ goto yy56;
+-yy1351:
++yy1353:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'A') {
+@@ -19169,7 +19360,7 @@ yy1351:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'B') goto yy1346;
++ if (yych <= 'B') goto yy1348;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19178,13 +19369,13 @@ yy1351:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'b') goto yy1369;
++ if (yych <= 'b') goto yy1371;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1352:
++yy1354:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -19201,14 +19392,14 @@ yy1352:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'F') goto yy1336;
++ if (yych == 'F') goto yy1338;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'R') goto yy1335;
++ if (yych <= 'R') goto yy1337;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -19216,16 +19407,16 @@ yy1352:
+ }
+ } else {
+ if (yych <= 'q') {
+- if (yych == 'f') goto yy1365;
++ if (yych == 'f') goto yy1367;
+ goto yy171;
+ } else {
+- if (yych <= 'r') goto yy1364;
++ if (yych <= 'r') goto yy1366;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1353:
++yy1355:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'T') {
+@@ -19240,7 +19431,7 @@ yy1353:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'U') goto yy1332;
++ if (yych <= 'U') goto yy1334;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19249,13 +19440,13 @@ yy1353:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'u') goto yy1361;
++ if (yych <= 'u') goto yy1363;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1354:
++yy1356:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+@@ -19272,14 +19463,14 @@ yy1354:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1315;
++ if (yych == 'I') goto yy1316;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'O') goto yy1314;
++ if (yych <= 'O') goto yy1315;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -19287,16 +19478,16 @@ yy1354:
+ }
+ } else {
+ if (yych <= 'n') {
+- if (yych == 'i') goto yy1356;
++ if (yych == 'i') goto yy1358;
+ goto yy171;
+ } else {
+- if (yych <= 'o') goto yy1355;
++ if (yych <= 'o') goto yy1357;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1355:
++yy1357:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -19311,7 +19502,7 @@ yy1355:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1318;
++ if (yych <= 'N') goto yy1319;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19320,13 +19511,13 @@ yy1355:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'n') goto yy1359;
++ if (yych <= 'n') goto yy1361;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1356:
++yy1358:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -19341,7 +19532,7 @@ yy1356:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1316;
++ if (yych <= 'D') goto yy1317;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -19350,13 +19541,13 @@ yy1356:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 'd') goto yy1357;
++ if (yych <= 'd') goto yy1359;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1357:
++yy1359:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -19370,18 +19561,18 @@ yy1357:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1317;
++ if (yych <= 'A') goto yy1318;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1358;
++ if (yych <= 'a') goto yy1360;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+-yy1358:
++yy1360:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -19411,7 +19602,7 @@ yy1358:
+ }
+ }
+ }
+-yy1359:
++yy1361:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19426,7 +19617,7 @@ yy1359:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1319;
++ if (yych <= 'T') goto yy1320;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19435,18 +19626,18 @@ yy1359:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 't') goto yy1360;
++ if (yych <= 't') goto yy1362;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1360:
++yy1362:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '.') {
+ if (yych <= '(') {
+- if (yych == ' ') goto yy1320;
++ if (yych == ' ') goto yy1321;
+ goto yy3;
+ } else {
+ if (yych <= ')') goto yy164;
+@@ -19466,7 +19657,7 @@ yy1360:
+ goto yy3;
+ }
+ }
+-yy1361:
++yy1363:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -19481,7 +19672,7 @@ yy1361:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1333;
++ if (yych <= 'R') goto yy1335;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19490,13 +19681,13 @@ yy1361:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'r') goto yy1362;
++ if (yych <= 'r') goto yy1364;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1362:
++yy1364:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19511,7 +19702,7 @@ yy1362:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1334;
++ if (yych <= 'T') goto yy1336;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19520,13 +19711,13 @@ yy1362:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 't') goto yy1363;
++ if (yych <= 't') goto yy1365;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1363:
++yy1365:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -19556,7 +19747,7 @@ yy1363:
+ }
+ }
+ }
+-yy1364:
++yy1366:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -19571,7 +19762,7 @@ yy1364:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1338;
++ if (yych <= 'S') goto yy1340;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19580,13 +19771,13 @@ yy1364:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 's') goto yy1367;
++ if (yych <= 's') goto yy1369;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1365:
++yy1367:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19601,7 +19792,7 @@ yy1365:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1337;
++ if (yych <= 'T') goto yy1339;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19610,13 +19801,13 @@ yy1365:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1366;
++ if (yych <= 't') goto yy1368;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1366:
++yy1368:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -19646,7 +19837,7 @@ yy1366:
+ }
+ }
+ }
+-yy1367:
++yy1369:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -19661,7 +19852,7 @@ yy1367:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1339;
++ if (yych <= 'T') goto yy1341;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19670,20 +19861,20 @@ yy1367:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 't') goto yy1368;
++ if (yych <= 't') goto yy1370;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1368:
++yy1370:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+ if (yych <= ' ') {
+ if (yych == '\t') goto yy1196;
+ if (yych <= 0x1F) goto yy3;
+- goto yy1340;
++ goto yy1342;
+ } else {
+ if (yych == ')') goto yy164;
+ if (yych <= ',') goto yy3;
+@@ -19705,7 +19896,7 @@ yy1368:
+ }
+ }
+ }
+-yy1369:
++yy1371:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+@@ -19733,7 +19924,7 @@ yy1369:
+ if (yych <= '@') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'R') goto yy1347;
++ if (yych <= 'R') goto yy1349;
+ if (yych <= 'Z') goto yy167;
+ goto yy218;
+ }
+@@ -19743,13 +19934,13 @@ yy1369:
+ if (yych <= '`') goto yy218;
+ goto yy175;
+ } else {
+- if (yych <= 'r') goto yy1370;
++ if (yych <= 'r') goto yy1372;
+ if (yych <= 'z') goto yy175;
+ goto yy218;
+ }
+ }
+ }
+-yy1370:
++yy1372:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'T') {
+@@ -19764,7 +19955,7 @@ yy1370:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'U') goto yy1348;
++ if (yych <= 'U') goto yy1350;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -19773,13 +19964,13 @@ yy1370:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'u') goto yy1371;
++ if (yych <= 'u') goto yy1373;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1371:
++yy1373:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -19793,18 +19984,18 @@ yy1371:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1349;
++ if (yych <= 'A') goto yy1351;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1372;
++ if (yych <= 'a') goto yy1374;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+-yy1372:
++yy1374:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -19818,33 +20009,34 @@ yy1372:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'R') goto yy1350;
++ if (yych <= 'R') goto yy1352;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'r') goto yy1373;
++ if (yych == 'r') goto yy1375;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1373:
++yy1375:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy229;
+ if (yych == 'y') goto yy341;
+ goto yy179;
+-yy1374:
++yy1376:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+-yy1375:
++yy1377:
+ yyaccept = 28;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+ yych = *YYCURSOR;
+- if (yych == '.') goto yy1378;
+- if (yych <= '/') goto yy1377;
+- if (yych <= '9') goto yy1375;
+-yy1377:
++ if (yych == '.') goto yy1380;
++ if (yych <= '/') goto yy1379;
++ if (yych <= '9') goto yy1377;
++yy1379:
++#line 1025 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i;
+
+@@ -19869,7 +20061,8 @@ yy1377:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1378:
++#line 20065 "ext/date/lib/parse_date.c"
++yy1380:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+@@ -19889,6 +20082,7 @@ yy1378:
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
++#line 1051 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i, ms;
+
+@@ -19915,7 +20109,8 @@ yy1378:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1386:
++#line 20113 "ext/date/lib/parse_date.c"
++yy1388:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -19924,7 +20119,7 @@ yy1386:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'M') goto yy166;
+- goto yy1427;
++ goto yy1429;
+ }
+ } else {
+ if (yych <= 'm') {
+@@ -19932,58 +20127,58 @@ yy1386:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'n') goto yy1427;
++ if (yych <= 'n') goto yy1429;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1387:
++yy1389:
+ yych = *++YYCURSOR;
+ if (yych <= 'U') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1419;
++ if (yych == 'I') goto yy1421;
+ if (yych <= 'T') goto yy166;
+- goto yy1420;
++ goto yy1422;
+ }
+ } else {
+ if (yych <= 'i') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'h') goto yy166;
+- goto yy1419;
++ goto yy1421;
+ } else {
+- if (yych == 'u') goto yy1420;
++ if (yych == 'u') goto yy1422;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1388:
++yy1390:
+ yych = *++YYCURSOR;
+ if (yych <= 'M') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'D') goto yy1408;
++ if (yych == 'D') goto yy1410;
+ if (yych <= 'L') goto yy166;
+- goto yy1409;
++ goto yy1411;
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'c') goto yy166;
+- goto yy1408;
++ goto yy1410;
+ } else {
+- if (yych == 'm') goto yy1409;
++ if (yych == 'm') goto yy1411;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1389:
++yy1391:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych <= ')') {
+@@ -19992,7 +20187,7 @@ yy1389:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy166;
+- goto yy1404;
++ goto yy1406;
+ }
+ } else {
+ if (yych <= 'd') {
+@@ -20000,12 +20195,12 @@ yy1389:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'e') goto yy1404;
++ if (yych <= 'e') goto yy1406;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1390:
++yy1392:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych <= ')') {
+@@ -20014,7 +20209,7 @@ yy1390:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'D') goto yy166;
+- goto yy1400;
++ goto yy1402;
+ }
+ } else {
+ if (yych <= 'd') {
+@@ -20022,68 +20217,68 @@ yy1390:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'e') goto yy1400;
++ if (yych <= 'e') goto yy1402;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1391:
++yy1393:
+ yych = *++YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1029;
+ goto yy56;
+ } else {
+- if (yych <= '9') goto yy1394;
++ if (yych <= '9') goto yy1396;
+ if (yych <= ':') goto yy1029;
+ goto yy56;
+ }
+-yy1392:
++yy1394:
+ yych = *++YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1029;
+ goto yy56;
+ } else {
+- if (yych <= '4') goto yy1394;
++ if (yych <= '4') goto yy1396;
+ if (yych == ':') goto yy1029;
+ goto yy56;
+ }
+-yy1393:
++yy1395:
+ yych = *++YYCURSOR;
+ if (yych == '.') goto yy1029;
+ if (yych == ':') goto yy1029;
+ goto yy56;
+-yy1394:
++yy1396:
+ yych = *++YYCURSOR;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1029;
+ goto yy56;
+ } else {
+- if (yych <= '5') goto yy1395;
++ if (yych <= '5') goto yy1397;
+ if (yych == ':') goto yy1029;
+ goto yy56;
+ }
+-yy1395:
++yy1397:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy1032;
+- if (yych <= '5') goto yy1397;
+- if (yych <= '6') goto yy1398;
++ if (yych <= '5') goto yy1399;
++ if (yych <= '6') goto yy1400;
+ goto yy1032;
+-yy1397:
++yy1399:
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+- if (yych <= '9') goto yy1399;
++ if (yych <= '9') goto yy1401;
+ goto yy56;
+-yy1398:
++yy1400:
+ yych = *++YYCURSOR;
+ if (yych != '0') goto yy56;
+-yy1399:
++yy1401:
+ yych = *++YYCURSOR;
+ goto yy1040;
+-yy1400:
++yy1402:
+ yych = *++YYCURSOR;
+ if (yych <= 'L') {
+ if (yych <= ')') {
+@@ -20099,12 +20294,12 @@ yy1400:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'l') goto yy1401;
++ if (yych <= 'l') goto yy1403;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1401:
++yy1403:
+ yych = *++YYCURSOR;
+ if (yych <= 'F') {
+ if (yych <= ')') {
+@@ -20120,12 +20315,12 @@ yy1401:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'f') goto yy1402;
++ if (yych <= 'f') goto yy1404;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1402:
++yy1404:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -20141,12 +20336,12 @@ yy1402:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 't') goto yy1403;
++ if (yych <= 't') goto yy1405;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1403:
++yy1405:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -20157,7 +20352,7 @@ yy1403:
+ if (yych == 'h') goto yy1195;
+ goto yy3;
+ }
+-yy1404:
++yy1406:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -20173,12 +20368,12 @@ yy1404:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 's') goto yy1405;
++ if (yych <= 's') goto yy1407;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1405:
++yy1407:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -20194,12 +20389,12 @@ yy1405:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'd') goto yy1406;
++ if (yych <= 'd') goto yy1408;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1406:
++yy1408:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -20209,12 +20404,12 @@ yy1406:
+ if (yych <= 'Z') goto yy169;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1407;
++ if (yych <= 'a') goto yy1409;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1407:
++yy1409:
+ yych = *++YYCURSOR;
+ if (yych <= 'X') {
+ if (yych == ')') goto yy164;
+@@ -20224,23 +20419,23 @@ yy1407:
+ if (yych == 'y') goto yy197;
+ goto yy3;
+ }
+-yy1408:
++yy1410:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+ if (yych <= '@') goto yy3;
+- goto yy1416;
++ goto yy1418;
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') goto yy167;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1416;
++ if (yych <= 'a') goto yy1418;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1409:
++yy1411:
+ yych = *++YYCURSOR;
+ if (yych <= 'O') {
+ if (yych <= ')') {
+@@ -20256,12 +20451,12 @@ yy1409:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'o') goto yy1410;
++ if (yych <= 'o') goto yy1412;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1410:
++yy1412:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -20277,12 +20472,12 @@ yy1410:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'r') goto yy1411;
++ if (yych <= 'r') goto yy1413;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1411:
++yy1413:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -20298,28 +20493,29 @@ yy1411:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'r') goto yy1412;
++ if (yych <= 'r') goto yy1414;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1412:
++yy1414:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'O') goto yy1413;
++ if (yych <= 'O') goto yy1415;
+ if (yych != 'o') goto yy3;
+ }
+-yy1413:
++yy1415:
+ yych = *++YYCURSOR;
+- if (yych == 'W') goto yy1414;
++ if (yych == 'W') goto yy1416;
+ if (yych != 'w') goto yy56;
+-yy1414:
++yy1416:
+ ++YYCURSOR;
+-yy1415:
++yy1417:
++#line 1013 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("tomorrow");
+ TIMELIB_INIT;
+@@ -20330,7 +20526,8 @@ yy1415:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1416:
++#line 20530 "ext/date/lib/parse_date.c"
++yy1418:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= ')') {
+@@ -20346,21 +20543,22 @@ yy1416:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'y') goto yy1417;
++ if (yych <= 'y') goto yy1419;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1417:
++yy1419:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '@') {
+ if (yych == ')') goto yy164;
+ } else {
+ if (yych <= 'Z') goto yy169;
+- if (yych <= '`') goto yy1418;
++ if (yych <= '`') goto yy1420;
+ if (yych <= 'z') goto yy169;
+ }
+-yy1418:
++yy1420:
++#line 1003 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("midnight | today");
+ TIMELIB_INIT;
+@@ -20369,7 +20567,8 @@ yy1418:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1419:
++#line 20571 "ext/date/lib/parse_date.c"
++yy1421:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= '@') {
+@@ -20377,8 +20576,8 @@ yy1419:
+ goto yy3;
+ } else {
+ if (yych <= 'Q') goto yy167;
+- if (yych <= 'R') goto yy1425;
+- goto yy1426;
++ if (yych <= 'R') goto yy1427;
++ goto yy1428;
+ }
+ } else {
+ if (yych <= 'q') {
+@@ -20386,13 +20585,13 @@ yy1419:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1425;
+- if (yych <= 's') goto yy1426;
++ if (yych <= 'r') goto yy1427;
++ if (yych <= 's') goto yy1428;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1420:
++yy1422:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -20408,12 +20607,12 @@ yy1420:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 'r') goto yy1421;
++ if (yych <= 'r') goto yy1423;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1421:
++yy1423:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -20429,12 +20628,12 @@ yy1421:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 's') goto yy1422;
++ if (yych <= 's') goto yy1424;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1422:
++yy1424:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -20450,27 +20649,27 @@ yy1422:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'd') goto yy1423;
++ if (yych <= 'd') goto yy1425;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1423:
++yy1425:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'A') goto yy1424;
++ if (yych <= 'A') goto yy1426;
+ if (yych != 'a') goto yy3;
+ }
+-yy1424:
++yy1426:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy197;
+ if (yych == 'y') goto yy197;
+ goto yy56;
+-yy1425:
++yy1427:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -20492,7 +20691,7 @@ yy1425:
+ goto yy3;
+ }
+ }
+-yy1426:
++yy1428:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '(') {
+@@ -20514,7 +20713,7 @@ yy1426:
+ goto yy3;
+ }
+ }
+-yy1427:
++yy1429:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -20530,12 +20729,12 @@ yy1427:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1428;
++ if (yych <= 't') goto yy1430;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1428:
++yy1430:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -20557,7 +20756,7 @@ yy1428:
+ goto yy3;
+ }
+ }
+-yy1429:
++yy1431:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -20572,7 +20771,7 @@ yy1429:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1427;
++ if (yych <= 'N') goto yy1429;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20581,13 +20780,13 @@ yy1429:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'n') goto yy1459;
++ if (yych <= 'n') goto yy1461;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1430:
++yy1432:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'T') {
+@@ -20604,14 +20803,14 @@ yy1430:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'I') goto yy1419;
++ if (yych == 'I') goto yy1421;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'U') goto yy1420;
++ if (yych <= 'U') goto yy1422;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -20619,16 +20818,16 @@ yy1430:
+ }
+ } else {
+ if (yych <= 't') {
+- if (yych == 'i') goto yy1451;
++ if (yych == 'i') goto yy1453;
+ goto yy171;
+ } else {
+- if (yych <= 'u') goto yy1452;
++ if (yych <= 'u') goto yy1454;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1431:
++yy1433:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'L') {
+@@ -20645,14 +20844,14 @@ yy1431:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'D') goto yy1408;
++ if (yych == 'D') goto yy1410;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'M') goto yy1409;
++ if (yych <= 'M') goto yy1411;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -20660,16 +20859,16 @@ yy1431:
+ }
+ } else {
+ if (yych <= 'l') {
+- if (yych == 'd') goto yy1442;
++ if (yych == 'd') goto yy1444;
+ goto yy171;
+ } else {
+- if (yych <= 'm') goto yy1443;
++ if (yych <= 'm') goto yy1445;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1432:
++yy1434:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -20684,7 +20883,7 @@ yy1432:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'E') goto yy1404;
++ if (yych <= 'E') goto yy1406;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20693,13 +20892,13 @@ yy1432:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'e') goto yy1438;
++ if (yych <= 'e') goto yy1440;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1433:
++yy1435:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -20714,7 +20913,7 @@ yy1433:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'E') goto yy1400;
++ if (yych <= 'E') goto yy1402;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20723,13 +20922,13 @@ yy1433:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'e') goto yy1434;
++ if (yych <= 'e') goto yy1436;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1434:
++yy1436:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'K') {
+@@ -20744,7 +20943,7 @@ yy1434:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'L') goto yy1401;
++ if (yych <= 'L') goto yy1403;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20753,13 +20952,13 @@ yy1434:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'l') goto yy1435;
++ if (yych <= 'l') goto yy1437;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1435:
++yy1437:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'E') {
+@@ -20774,7 +20973,7 @@ yy1435:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'F') goto yy1402;
++ if (yych <= 'F') goto yy1404;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20783,13 +20982,13 @@ yy1435:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'f') goto yy1436;
++ if (yych <= 'f') goto yy1438;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1436:
++yy1438:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -20804,7 +21003,7 @@ yy1436:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1403;
++ if (yych <= 'T') goto yy1405;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20813,13 +21012,13 @@ yy1436:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 't') goto yy1437;
++ if (yych <= 't') goto yy1439;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1437:
++yy1439:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -20842,7 +21041,7 @@ yy1437:
+ goto yy3;
+ }
+ }
+-yy1438:
++yy1440:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -20857,7 +21056,7 @@ yy1438:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1405;
++ if (yych <= 'S') goto yy1407;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -20866,13 +21065,13 @@ yy1438:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 's') goto yy1439;
++ if (yych <= 's') goto yy1441;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1439:
++yy1441:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -20887,7 +21086,7 @@ yy1439:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1406;
++ if (yych <= 'D') goto yy1408;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20896,13 +21095,13 @@ yy1439:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'd') goto yy1440;
++ if (yych <= 'd') goto yy1442;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1440:
++yy1442:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -20916,18 +21115,18 @@ yy1440:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1407;
++ if (yych <= 'A') goto yy1409;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1441;
++ if (yych <= 'a') goto yy1443;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+-yy1441:
++yy1443:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -20950,7 +21149,7 @@ yy1441:
+ goto yy3;
+ }
+ }
+-yy1442:
++yy1444:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -20964,18 +21163,18 @@ yy1442:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1416;
++ if (yych <= 'A') goto yy1418;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1449;
++ if (yych <= 'a') goto yy1451;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+-yy1443:
++yy1445:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+@@ -20990,7 +21189,7 @@ yy1443:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'O') goto yy1410;
++ if (yych <= 'O') goto yy1412;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -20999,13 +21198,13 @@ yy1443:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'o') goto yy1444;
++ if (yych <= 'o') goto yy1446;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1444:
++yy1446:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -21020,7 +21219,7 @@ yy1444:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1411;
++ if (yych <= 'R') goto yy1413;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21029,13 +21228,13 @@ yy1444:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'r') goto yy1445;
++ if (yych <= 'r') goto yy1447;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1445:
++yy1447:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -21050,7 +21249,7 @@ yy1445:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1412;
++ if (yych <= 'R') goto yy1414;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21059,13 +21258,13 @@ yy1445:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'r') goto yy1446;
++ if (yych <= 'r') goto yy1448;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1446:
++yy1448:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'N') {
+@@ -21079,18 +21278,18 @@ yy1446:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'O') goto yy1413;
++ if (yych <= 'O') goto yy1415;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'o') goto yy1447;
++ if (yych == 'o') goto yy1449;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1447:
++yy1449:
+ yych = *++YYCURSOR;
+- if (yych == 'W') goto yy1414;
++ if (yych == 'W') goto yy1416;
+ if (yych != 'w') goto yy179;
+ yyaccept = 29;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -21099,13 +21298,13 @@ yy1447:
+ }
+ if (yych <= '.') {
+ if (yych == '-') goto yy172;
+- goto yy1415;
++ goto yy1417;
+ } else {
+ if (yych <= '/') goto yy172;
+ if (yych == '_') goto yy172;
+- goto yy1415;
++ goto yy1417;
+ }
+-yy1449:
++yy1451:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -21120,7 +21319,7 @@ yy1449:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'Y') goto yy1417;
++ if (yych <= 'Y') goto yy1419;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21129,36 +21328,36 @@ yy1449:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'y') goto yy1450;
++ if (yych <= 'y') goto yy1452;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1450:
++yy1452:
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= ',') {
+ if (yych == ')') goto yy164;
+- goto yy1418;
++ goto yy1420;
+ } else {
+- if (yych == '.') goto yy1418;
++ if (yych == '.') goto yy1420;
+ goto yy172;
+ }
+ } else {
+ if (yych <= '^') {
+- if (yych <= '@') goto yy1418;
++ if (yych <= '@') goto yy1420;
+ if (yych <= 'Z') goto yy169;
+- goto yy1418;
++ goto yy1420;
+ } else {
+ if (yych <= '_') goto yy172;
+- if (yych <= '`') goto yy1418;
++ if (yych <= '`') goto yy1420;
+ if (yych <= 'z') goto yy177;
+- goto yy1418;
++ goto yy1420;
+ }
+ }
+-yy1451:
++yy1453:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -21173,13 +21372,13 @@ yy1451:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'Q') goto yy167;
+- goto yy1425;
++ goto yy1427;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'S') goto yy1426;
++ if (yych <= 'S') goto yy1428;
+ goto yy167;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -21188,15 +21387,15 @@ yy1451:
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'q') goto yy175;
+- goto yy1457;
++ goto yy1459;
+ } else {
+- if (yych <= 's') goto yy1458;
++ if (yych <= 's') goto yy1460;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1452:
++yy1454:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -21211,7 +21410,7 @@ yy1452:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1421;
++ if (yych <= 'R') goto yy1423;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -21220,13 +21419,13 @@ yy1452:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 'r') goto yy1453;
++ if (yych <= 'r') goto yy1455;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1453:
++yy1455:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -21241,7 +21440,7 @@ yy1453:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1422;
++ if (yych <= 'S') goto yy1424;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21250,13 +21449,13 @@ yy1453:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 's') goto yy1454;
++ if (yych <= 's') goto yy1456;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1454:
++yy1456:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21271,7 +21470,7 @@ yy1454:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1423;
++ if (yych <= 'D') goto yy1425;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21280,13 +21479,13 @@ yy1454:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'd') goto yy1455;
++ if (yych <= 'd') goto yy1457;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1455:
++yy1457:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -21300,22 +21499,22 @@ yy1455:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1424;
++ if (yych <= 'A') goto yy1426;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1456;
++ if (yych <= 'a') goto yy1458;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1456:
++yy1458:
+ yych = *++YYCURSOR;
+ if (yych == 'Y') goto yy197;
+ if (yych == 'y') goto yy210;
+ goto yy179;
+-yy1457:
++yy1459:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21345,7 +21544,7 @@ yy1457:
+ }
+ }
+ }
+-yy1458:
++yy1460:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+@@ -21374,7 +21573,7 @@ yy1458:
+ }
+ }
+ }
+-yy1459:
++yy1461:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -21389,7 +21588,7 @@ yy1459:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1428;
++ if (yych <= 'T') goto yy1430;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21398,13 +21597,13 @@ yy1459:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1460;
++ if (yych <= 't') goto yy1462;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1460:
++yy1462:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -21434,30 +21633,30 @@ yy1460:
+ }
+ }
+ }
+-yy1461:
++yy1463:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= '@') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych == 'R') goto yy1473;
++ if (yych == 'R') goto yy1475;
+ if (yych <= 'X') goto yy166;
+- goto yy1474;
++ goto yy1476;
+ }
+ } else {
+ if (yych <= 'r') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'q') goto yy166;
+- goto yy1473;
++ goto yy1475;
+ } else {
+- if (yych == 'y') goto yy1474;
++ if (yych == 'y') goto yy1476;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1462:
++yy1464:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -21466,7 +21665,7 @@ yy1462:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'C') goto yy166;
+- goto yy1467;
++ goto yy1469;
+ }
+ } else {
+ if (yych <= 'c') {
+@@ -21474,12 +21673,12 @@ yy1462:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'd') goto yy1467;
++ if (yych <= 'd') goto yy1469;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1463:
++yy1465:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -21495,12 +21694,12 @@ yy1463:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'n') goto yy1464;
++ if (yych <= 'n') goto yy1466;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1464:
++yy1466:
+ yych = *++YYCURSOR;
+ if (yych <= 'D') {
+ if (yych <= ')') {
+@@ -21516,12 +21715,12 @@ yy1464:
+ if (yych <= '`') goto yy191;
+ goto yy167;
+ } else {
+- if (yych <= 'd') goto yy1465;
++ if (yych <= 'd') goto yy1467;
+ if (yych <= 'z') goto yy167;
+ goto yy191;
+ }
+ }
+-yy1465:
++yy1467:
+ yych = *++YYCURSOR;
+ if (yych <= 'A') {
+ if (yych == ')') goto yy164;
+@@ -21531,12 +21730,12 @@ yy1465:
+ if (yych <= 'Z') goto yy168;
+ goto yy3;
+ } else {
+- if (yych <= 'a') goto yy1466;
++ if (yych <= 'a') goto yy1468;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1466:
++yy1468:
+ yych = *++YYCURSOR;
+ if (yych <= 'Y') {
+ if (yych <= ')') {
+@@ -21558,7 +21757,7 @@ yy1466:
+ goto yy3;
+ }
+ }
+-yy1467:
++yy1469:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -21574,12 +21773,12 @@ yy1467:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'n') goto yy1468;
++ if (yych <= 'n') goto yy1470;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1468:
++yy1470:
+ yych = *++YYCURSOR;
+ if (yych <= 'I') {
+ if (yych <= ')') {
+@@ -21595,12 +21794,12 @@ yy1468:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'i') goto yy1469;
++ if (yych <= 'i') goto yy1471;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1469:
++yy1471:
+ yych = *++YYCURSOR;
+ if (yych <= 'G') {
+ if (yych <= ')') {
+@@ -21616,29 +21815,29 @@ yy1469:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'g') goto yy1470;
++ if (yych <= 'g') goto yy1472;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1470:
++yy1472:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'H') goto yy1471;
++ if (yych <= 'H') goto yy1473;
+ if (yych != 'h') goto yy3;
+ }
+-yy1471:
++yy1473:
+ yych = *++YYCURSOR;
+- if (yych == 'T') goto yy1472;
++ if (yych == 'T') goto yy1474;
+ if (yych != 't') goto yy56;
+-yy1472:
++yy1474:
+ yych = *++YYCURSOR;
+- goto yy1418;
+-yy1473:
++ goto yy1420;
++yy1475:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+@@ -21666,7 +21865,7 @@ yy1473:
+ if (yych <= '9') goto yy220;
+ goto yy218;
+ } else {
+- if (yych == 'C') goto yy1475;
++ if (yych == 'C') goto yy1477;
+ goto yy167;
+ }
+ } else {
+@@ -21674,13 +21873,13 @@ yy1473:
+ if (yych <= '`') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'c') goto yy1475;
++ if (yych <= 'c') goto yy1477;
+ if (yych <= 'z') goto yy167;
+ goto yy218;
+ }
+ }
+ }
+-yy1474:
++yy1476:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '-') {
+@@ -21705,7 +21904,7 @@ yy1474:
+ goto yy218;
+ }
+ }
+-yy1475:
++yy1477:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -21727,7 +21926,7 @@ yy1475:
+ goto yy3;
+ }
+ }
+-yy1476:
++yy1478:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -21744,14 +21943,14 @@ yy1476:
+ if (yych <= '/') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'R') goto yy1473;
++ if (yych == 'R') goto yy1475;
+ goto yy166;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= 'Z') {
+- if (yych <= 'Y') goto yy1474;
++ if (yych <= 'Y') goto yy1476;
+ goto yy166;
+ } else {
+ if (yych == '_') goto yy172;
+@@ -21759,16 +21958,16 @@ yy1476:
+ }
+ } else {
+ if (yych <= 'x') {
+- if (yych == 'r') goto yy1488;
++ if (yych == 'r') goto yy1490;
+ goto yy171;
+ } else {
+- if (yych <= 'y') goto yy1489;
++ if (yych <= 'y') goto yy1491;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1477:
++yy1479:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21783,7 +21982,7 @@ yy1477:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1467;
++ if (yych <= 'D') goto yy1469;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21792,13 +21991,13 @@ yy1477:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'd') goto yy1482;
++ if (yych <= 'd') goto yy1484;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1478:
++yy1480:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -21813,7 +22012,7 @@ yy1478:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1464;
++ if (yych <= 'N') goto yy1466;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21822,13 +22021,13 @@ yy1478:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'n') goto yy1479;
++ if (yych <= 'n') goto yy1481;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1479:
++yy1481:
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -21843,7 +22042,7 @@ yy1479:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'D') goto yy1465;
++ if (yych <= 'D') goto yy1467;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy191;
+ goto yy172;
+@@ -21852,13 +22051,13 @@ yy1479:
+ if (yych <= '`') goto yy191;
+ goto yy175;
+ } else {
+- if (yych <= 'd') goto yy1480;
++ if (yych <= 'd') goto yy1482;
+ if (yych <= 'z') goto yy175;
+ goto yy191;
+ }
+ }
+ }
+-yy1480:
++yy1482:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '@') {
+@@ -21872,18 +22071,18 @@ yy1480:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'A') goto yy1466;
++ if (yych <= 'A') goto yy1468;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+ } else {
+ if (yych <= '`') goto yy3;
+- if (yych <= 'a') goto yy1481;
++ if (yych <= 'a') goto yy1483;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+-yy1481:
++yy1483:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'X') {
+@@ -21913,7 +22112,7 @@ yy1481:
+ }
+ }
+ }
+-yy1482:
++yy1484:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -21928,7 +22127,7 @@ yy1482:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1468;
++ if (yych <= 'N') goto yy1470;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21937,13 +22136,13 @@ yy1482:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'n') goto yy1483;
++ if (yych <= 'n') goto yy1485;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1483:
++yy1485:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'H') {
+@@ -21958,7 +22157,7 @@ yy1483:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'I') goto yy1469;
++ if (yych <= 'I') goto yy1471;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21967,13 +22166,13 @@ yy1483:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'i') goto yy1484;
++ if (yych <= 'i') goto yy1486;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1484:
++yy1486:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'F') {
+@@ -21988,7 +22187,7 @@ yy1484:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'G') goto yy1470;
++ if (yych <= 'G') goto yy1472;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -21997,13 +22196,13 @@ yy1484:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'g') goto yy1485;
++ if (yych <= 'g') goto yy1487;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1485:
++yy1487:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -22017,18 +22216,18 @@ yy1485:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'H') goto yy1471;
++ if (yych <= 'H') goto yy1473;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'h') goto yy1486;
++ if (yych == 'h') goto yy1488;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1486:
++yy1488:
+ yych = *++YYCURSOR;
+- if (yych == 'T') goto yy1472;
++ if (yych == 'T') goto yy1474;
+ if (yych != 't') goto yy179;
+ yyaccept = 30;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -22037,13 +22236,13 @@ yy1486:
+ }
+ if (yych <= '.') {
+ if (yych == '-') goto yy172;
+- goto yy1418;
++ goto yy1420;
+ } else {
+ if (yych <= '/') goto yy172;
+ if (yych == '_') goto yy172;
+- goto yy1418;
++ goto yy1420;
+ }
+-yy1488:
++yy1490:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+@@ -22071,7 +22270,7 @@ yy1488:
+ if (yych <= '@') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'C') goto yy1475;
++ if (yych <= 'C') goto yy1477;
+ if (yych <= 'Z') goto yy167;
+ goto yy218;
+ }
+@@ -22081,13 +22280,13 @@ yy1488:
+ if (yych <= '`') goto yy218;
+ goto yy175;
+ } else {
+- if (yych <= 'c') goto yy1490;
++ if (yych <= 'c') goto yy1492;
+ if (yych <= 'z') goto yy175;
+ goto yy218;
+ }
+ }
+ }
+-yy1489:
++yy1491:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '.') {
+@@ -22122,7 +22321,7 @@ yy1489:
+ }
+ }
+ }
+-yy1490:
++yy1492:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -22152,7 +22351,7 @@ yy1490:
+ }
+ }
+ }
+-yy1491:
++yy1493:
+ yych = *++YYCURSOR;
+ if (yych <= 'W') {
+ if (yych <= 'N') {
+@@ -22160,29 +22359,29 @@ yy1491:
+ if (yych <= '@') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'O') goto yy1499;
++ if (yych <= 'O') goto yy1501;
+ if (yych <= 'U') goto yy166;
+- if (yych <= 'V') goto yy1500;
+- goto yy1497;
++ if (yych <= 'V') goto yy1502;
++ goto yy1499;
+ }
+ } else {
+ if (yych <= 'o') {
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '`') goto yy3;
+ if (yych <= 'n') goto yy166;
+- goto yy1499;
++ goto yy1501;
+ } else {
+ if (yych <= 'v') {
+ if (yych <= 'u') goto yy166;
+- goto yy1500;
++ goto yy1502;
+ } else {
+- if (yych <= 'w') goto yy1497;
++ if (yych <= 'w') goto yy1499;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+ }
+-yy1492:
++yy1494:
+ yych = *++YYCURSOR;
+ if (yych <= 'X') {
+ if (yych <= ')') {
+@@ -22191,7 +22390,7 @@ yy1492:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'W') goto yy166;
+- goto yy1496;
++ goto yy1498;
+ }
+ } else {
+ if (yych <= 'w') {
+@@ -22199,12 +22398,12 @@ yy1492:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'x') goto yy1496;
++ if (yych <= 'x') goto yy1498;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1493:
++yy1495:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -22220,12 +22419,12 @@ yy1493:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'n') goto yy1494;
++ if (yych <= 'n') goto yy1496;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1494:
++yy1496:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -22241,12 +22440,12 @@ yy1494:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1495;
++ if (yych <= 't') goto yy1497;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1495:
++yy1497:
+ yych = *++YYCURSOR;
+ if (yych <= 'H') {
+ if (yych <= ')') {
+@@ -22268,7 +22467,7 @@ yy1495:
+ goto yy3;
+ }
+ }
+-yy1496:
++yy1498:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -22277,7 +22476,7 @@ yy1496:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'S') goto yy167;
+- goto yy1426;
++ goto yy1428;
+ }
+ } else {
+ if (yych <= 's') {
+@@ -22285,21 +22484,22 @@ yy1496:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1426;
++ if (yych <= 't') goto yy1428;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1497:
++yy1499:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '@') {
+ if (yych == ')') goto yy164;
+ } else {
+ if (yych <= 'Z') goto yy167;
+- if (yych <= '`') goto yy1498;
++ if (yych <= '`') goto yy1500;
+ if (yych <= 'z') goto yy167;
+ }
+-yy1498:
++yy1500:
++#line 982 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("now");
+ TIMELIB_INIT;
+@@ -22307,7 +22507,8 @@ yy1498:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1499:
++#line 22511 "ext/date/lib/parse_date.c"
++yy1501:
+ yych = *++YYCURSOR;
+ if (yych <= 'N') {
+ if (yych <= ')') {
+@@ -22316,7 +22517,7 @@ yy1499:
+ } else {
+ if (yych <= '@') goto yy3;
+ if (yych <= 'M') goto yy167;
+- goto yy1505;
++ goto yy1507;
+ }
+ } else {
+ if (yych <= 'm') {
+@@ -22324,12 +22525,12 @@ yy1499:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 'n') goto yy1505;
++ if (yych <= 'n') goto yy1507;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1500:
++yy1502:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+@@ -22364,13 +22565,13 @@ yy1500:
+ if (yych <= '`') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'e') goto yy1501;
++ if (yych <= 'e') goto yy1503;
+ if (yych <= 'z') goto yy167;
+ goto yy218;
+ }
+ }
+ }
+-yy1501:
++yy1503:
+ yych = *++YYCURSOR;
+ if (yych <= 'M') {
+ if (yych <= ')') {
+@@ -22386,12 +22587,12 @@ yy1501:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'm') goto yy1502;
++ if (yych <= 'm') goto yy1504;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1502:
++yy1504:
+ yych = *++YYCURSOR;
+ if (yych <= 'B') {
+ if (yych <= ')') {
+@@ -22407,36 +22608,37 @@ yy1502:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'b') goto yy1503;
++ if (yych <= 'b') goto yy1505;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1503:
++yy1505:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'E') goto yy1504;
++ if (yych <= 'E') goto yy1506;
+ if (yych != 'e') goto yy3;
+ }
+-yy1504:
++yy1506:
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy229;
+ if (yych == 'r') goto yy229;
+ goto yy56;
+-yy1505:
++yy1507:
+ ++YYCURSOR;
+ if ((yych = *YYCURSOR) <= '@') {
+ if (yych == ')') goto yy164;
+ } else {
+ if (yych <= 'Z') goto yy168;
+- if (yych <= '`') goto yy1506;
++ if (yych <= '`') goto yy1508;
+ if (yych <= 'z') goto yy168;
+ }
+-yy1506:
++yy1508:
++#line 991 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("noon");
+ TIMELIB_INIT;
+@@ -22447,7 +22649,8 @@ yy1506:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1507:
++#line 22653 "ext/date/lib/parse_date.c"
++yy1509:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'V') {
+@@ -22465,15 +22668,15 @@ yy1507:
+ if (yych <= '@') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 'O') goto yy1499;
++ if (yych <= 'O') goto yy1501;
+ if (yych <= 'U') goto yy166;
+- goto yy1500;
++ goto yy1502;
+ }
+ }
+ } else {
+ if (yych <= 'n') {
+ if (yych <= '^') {
+- if (yych <= 'W') goto yy1497;
++ if (yych <= 'W') goto yy1499;
+ if (yych <= 'Z') goto yy166;
+ goto yy3;
+ } else {
+@@ -22483,17 +22686,17 @@ yy1507:
+ }
+ } else {
+ if (yych <= 'v') {
+- if (yych <= 'o') goto yy1514;
++ if (yych <= 'o') goto yy1516;
+ if (yych <= 'u') goto yy171;
+- goto yy1515;
++ goto yy1517;
+ } else {
+- if (yych <= 'w') goto yy1513;
++ if (yych <= 'w') goto yy1515;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1508:
++yy1510:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'W') {
+@@ -22508,7 +22711,7 @@ yy1508:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'X') goto yy1496;
++ if (yych <= 'X') goto yy1498;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22517,13 +22720,13 @@ yy1508:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'x') goto yy1512;
++ if (yych <= 'x') goto yy1514;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1509:
++yy1511:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -22538,7 +22741,7 @@ yy1509:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1494;
++ if (yych <= 'N') goto yy1496;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22547,13 +22750,13 @@ yy1509:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 'n') goto yy1510;
++ if (yych <= 'n') goto yy1512;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1510:
++yy1512:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -22568,7 +22771,7 @@ yy1510:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1495;
++ if (yych <= 'T') goto yy1497;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22577,13 +22780,13 @@ yy1510:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1511;
++ if (yych <= 't') goto yy1513;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1511:
++yy1513:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'G') {
+@@ -22613,7 +22816,7 @@ yy1511:
+ }
+ }
+ }
+-yy1512:
++yy1514:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -22628,7 +22831,7 @@ yy1512:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1426;
++ if (yych <= 'T') goto yy1428;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22637,36 +22840,36 @@ yy1512:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1458;
++ if (yych <= 't') goto yy1460;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1513:
++yy1515:
+ yyaccept = 31;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= ',') {
+ if (yych == ')') goto yy164;
+- goto yy1498;
++ goto yy1500;
+ } else {
+- if (yych == '.') goto yy1498;
++ if (yych == '.') goto yy1500;
+ goto yy172;
+ }
+ } else {
+ if (yych <= '^') {
+- if (yych <= '@') goto yy1498;
++ if (yych <= '@') goto yy1500;
+ if (yych <= 'Z') goto yy167;
+- goto yy1498;
++ goto yy1500;
+ } else {
+ if (yych <= '_') goto yy172;
+- if (yych <= '`') goto yy1498;
++ if (yych <= '`') goto yy1500;
+ if (yych <= 'z') goto yy175;
+- goto yy1498;
++ goto yy1500;
+ }
+ }
+-yy1514:
++yy1516:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'M') {
+@@ -22681,7 +22884,7 @@ yy1514:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'N') goto yy1505;
++ if (yych <= 'N') goto yy1507;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22690,13 +22893,13 @@ yy1514:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 'n') goto yy1520;
++ if (yych <= 'n') goto yy1522;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1515:
++yy1517:
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '9') {
+@@ -22724,7 +22927,7 @@ yy1515:
+ if (yych <= '@') goto yy218;
+ goto yy167;
+ } else {
+- if (yych <= 'E') goto yy1501;
++ if (yych <= 'E') goto yy1503;
+ if (yych <= 'Z') goto yy167;
+ goto yy218;
+ }
+@@ -22734,13 +22937,13 @@ yy1515:
+ if (yych <= '`') goto yy218;
+ goto yy175;
+ } else {
+- if (yych <= 'e') goto yy1516;
++ if (yych <= 'e') goto yy1518;
+ if (yych <= 'z') goto yy175;
+ goto yy218;
+ }
+ }
+ }
+-yy1516:
++yy1518:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'L') {
+@@ -22755,7 +22958,7 @@ yy1516:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'M') goto yy1502;
++ if (yych <= 'M') goto yy1504;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22764,13 +22967,13 @@ yy1516:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'm') goto yy1517;
++ if (yych <= 'm') goto yy1519;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1517:
++yy1519:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'A') {
+@@ -22785,7 +22988,7 @@ yy1517:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'B') goto yy1503;
++ if (yych <= 'B') goto yy1505;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22794,13 +22997,13 @@ yy1517:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'b') goto yy1518;
++ if (yych <= 'b') goto yy1520;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1518:
++yy1520:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -22814,44 +23017,44 @@ yy1518:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'E') goto yy1504;
++ if (yych <= 'E') goto yy1506;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'e') goto yy1519;
++ if (yych == 'e') goto yy1521;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1519:
++yy1521:
+ yych = *++YYCURSOR;
+ if (yych == 'R') goto yy229;
+ if (yych == 'r') goto yy341;
+ goto yy179;
+-yy1520:
++yy1522:
+ yyaccept = 32;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') {
+ if (yych <= ',') {
+ if (yych == ')') goto yy164;
+- goto yy1506;
++ goto yy1508;
+ } else {
+- if (yych == '.') goto yy1506;
++ if (yych == '.') goto yy1508;
+ goto yy172;
+ }
+ } else {
+ if (yych <= '^') {
+- if (yych <= '@') goto yy1506;
++ if (yych <= '@') goto yy1508;
+ if (yych <= 'Z') goto yy168;
+- goto yy1506;
++ goto yy1508;
+ } else {
+ if (yych <= '_') goto yy172;
+- if (yych <= '`') goto yy1506;
++ if (yych <= '`') goto yy1508;
+ if (yych <= 'z') goto yy176;
+- goto yy1506;
++ goto yy1508;
+ }
+ }
+-yy1521:
++yy1523:
+ yych = *++YYCURSOR;
+ if (yych <= 'S') {
+ if (yych <= ')') {
+@@ -22867,12 +23070,12 @@ yy1521:
+ if (yych <= '`') goto yy3;
+ goto yy166;
+ } else {
+- if (yych <= 's') goto yy1522;
++ if (yych <= 's') goto yy1524;
+ if (yych <= 'z') goto yy166;
+ goto yy3;
+ }
+ }
+-yy1522:
++yy1524:
+ yych = *++YYCURSOR;
+ if (yych <= 'T') {
+ if (yych <= ')') {
+@@ -22888,12 +23091,12 @@ yy1522:
+ if (yych <= '`') goto yy3;
+ goto yy167;
+ } else {
+- if (yych <= 't') goto yy1523;
++ if (yych <= 't') goto yy1525;
+ if (yych <= 'z') goto yy167;
+ goto yy3;
+ }
+ }
+-yy1523:
++yy1525:
+ yych = *++YYCURSOR;
+ if (yych <= 'E') {
+ if (yych <= ')') {
+@@ -22909,12 +23112,12 @@ yy1523:
+ if (yych <= '`') goto yy3;
+ goto yy168;
+ } else {
+- if (yych <= 'e') goto yy1524;
++ if (yych <= 'e') goto yy1526;
+ if (yych <= 'z') goto yy168;
+ goto yy3;
+ }
+ }
+-yy1524:
++yy1526:
+ yych = *++YYCURSOR;
+ if (yych <= 'R') {
+ if (yych <= ')') {
+@@ -22930,32 +23133,33 @@ yy1524:
+ if (yych <= '`') goto yy3;
+ goto yy169;
+ } else {
+- if (yych <= 'r') goto yy1525;
++ if (yych <= 'r') goto yy1527;
+ if (yych <= 'z') goto yy169;
+ goto yy3;
+ }
+ }
+-yy1525:
++yy1527:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+ if (yych == ')') goto yy164;
+ goto yy3;
+ } else {
+- if (yych <= 'D') goto yy1526;
++ if (yych <= 'D') goto yy1528;
+ if (yych != 'd') goto yy3;
+ }
+-yy1526:
++yy1528:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1527;
++ if (yych == 'A') goto yy1529;
+ if (yych != 'a') goto yy56;
+-yy1527:
++yy1529:
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1528;
++ if (yych == 'Y') goto yy1530;
+ if (yych != 'y') goto yy56;
+-yy1528:
++yy1530:
+ ++YYCURSOR;
+-yy1529:
++yy1531:
++#line 970 "ext/date/lib/parse_date.re"
+ {
+ DEBUG_OUTPUT("yesterday");
+ TIMELIB_INIT;
+@@ -22966,7 +23170,8 @@ yy1529:
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+-yy1530:
++#line 23174 "ext/date/lib/parse_date.c"
++yy1532:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'R') {
+@@ -22981,7 +23186,7 @@ yy1530:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'S') goto yy1522;
++ if (yych <= 'S') goto yy1524;
+ if (yych <= 'Z') goto yy166;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -22990,13 +23195,13 @@ yy1530:
+ if (yych <= '`') goto yy3;
+ goto yy171;
+ } else {
+- if (yych <= 's') goto yy1531;
++ if (yych <= 's') goto yy1533;
+ if (yych <= 'z') goto yy171;
+ goto yy3;
+ }
+ }
+ }
+-yy1531:
++yy1533:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'S') {
+@@ -23011,7 +23216,7 @@ yy1531:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'T') goto yy1523;
++ if (yych <= 'T') goto yy1525;
+ if (yych <= 'Z') goto yy167;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -23020,13 +23225,13 @@ yy1531:
+ if (yych <= '`') goto yy3;
+ goto yy175;
+ } else {
+- if (yych <= 't') goto yy1532;
++ if (yych <= 't') goto yy1534;
+ if (yych <= 'z') goto yy175;
+ goto yy3;
+ }
+ }
+ }
+-yy1532:
++yy1534:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'D') {
+@@ -23041,7 +23246,7 @@ yy1532:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'E') goto yy1524;
++ if (yych <= 'E') goto yy1526;
+ if (yych <= 'Z') goto yy168;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -23050,13 +23255,13 @@ yy1532:
+ if (yych <= '`') goto yy3;
+ goto yy176;
+ } else {
+- if (yych <= 'e') goto yy1533;
++ if (yych <= 'e') goto yy1535;
+ if (yych <= 'z') goto yy176;
+ goto yy3;
+ }
+ }
+ }
+-yy1533:
++yy1535:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'Q') {
+@@ -23071,7 +23276,7 @@ yy1533:
+ }
+ } else {
+ if (yych <= '_') {
+- if (yych <= 'R') goto yy1525;
++ if (yych <= 'R') goto yy1527;
+ if (yych <= 'Z') goto yy169;
+ if (yych <= '^') goto yy3;
+ goto yy172;
+@@ -23080,13 +23285,13 @@ yy1533:
+ if (yych <= '`') goto yy3;
+ goto yy177;
+ } else {
+- if (yych <= 'r') goto yy1534;
++ if (yych <= 'r') goto yy1536;
+ if (yych <= 'z') goto yy177;
+ goto yy3;
+ }
+ }
+ }
+-yy1534:
++yy1536:
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= 'C') {
+@@ -23100,21 +23305,21 @@ yy1534:
+ }
+ } else {
+ if (yych <= '`') {
+- if (yych <= 'D') goto yy1526;
++ if (yych <= 'D') goto yy1528;
+ if (yych == '_') goto yy172;
+ goto yy3;
+ } else {
+- if (yych == 'd') goto yy1535;
++ if (yych == 'd') goto yy1537;
+ if (yych <= 'z') goto yy178;
+ goto yy3;
+ }
+ }
+-yy1535:
++yy1537:
+ yych = *++YYCURSOR;
+- if (yych == 'A') goto yy1527;
++ if (yych == 'A') goto yy1529;
+ if (yych != 'a') goto yy179;
+ yych = *++YYCURSOR;
+- if (yych == 'Y') goto yy1528;
++ if (yych == 'Y') goto yy1530;
+ if (yych != 'y') goto yy179;
+ yyaccept = 33;
+ yych = *(YYMARKER = ++YYCURSOR);
+@@ -23123,13 +23328,14 @@ yy1535:
+ }
+ if (yych <= '.') {
+ if (yych == '-') goto yy172;
+- goto yy1529;
++ goto yy1531;
+ } else {
+ if (yych <= '/') goto yy172;
+ if (yych == '_') goto yy172;
+- goto yy1529;
++ goto yy1531;
+ }
+ }
++#line 1772 "ext/date/lib/parse_date.re"
+
+ }
+
+diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
+index 74d9ea3..f26e276 100644
+--- a/ext/date/lib/parse_date.re
++++ b/ext/date/lib/parse_date.re
+@@ -931,8 +931,8 @@ isoweek = year4 "-"? "W" weekofyear;
+ exif = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
+ firstdayof = 'first day of';
+ lastdayof = 'last day of';
+-backof = 'back of ' hour24 space? meridian?;
+-frontof = 'front of ' hour24 space? meridian?;
++backof = 'back of ' hour24 (space? meridian)?;
++frontof = 'front of ' hour24 (space? meridian)?;
+
+ /* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
+ clf = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
+diff --git a/ext/date/tests/bug53437_var3.phpt b/ext/date/tests/bug53437_var3.phpt
+index 8f48b1b..8dcd4c8 100644
+--- a/ext/date/tests/bug53437_var3.phpt
++++ b/ext/date/tests/bug53437_var3.phpt
+@@ -40,7 +40,7 @@ object(DateInterval)#%d (16) {
+ ["special_amount"]=>
+ int(-1)
+ ["have_weekday_relative"]=>
+- int(9)
++ int(0)
+ ["have_special_relative"]=>
+ int(0)
+ ["f"]=>
+diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
+new file mode 100644
+index 0000000..2956284
+--- /dev/null
++++ b/ext/wddx/tests/bug75055.phpt
+@@ -0,0 +1,20 @@
++--TEST--
++Bug #75055 Out-Of-Bounds Read in timelib_meridian()
++--SKIPIF--
++<?php if (!extension_loaded("wddx")) print "skip"; ?>
++--FILE--
++<?php
++
++$file_str = dirname(__FILE__) . "/bug75055.wddx";
++
++$wddx_str = file_get_contents($file_str);
++print strlen($wddx_str) . " bytes read.\n";
++
++var_dump(wddx_deserialize($wddx_str));
++?>
++--EXPECT--
++323 bytes read.
++array(1) {
++ ["aDateTime"]=>
++ string(12) "frONt of 0 0"
++}
+diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
+new file mode 100644
+index 0000000..6493352
+--- /dev/null
++++ b/ext/wddx/tests/bug75055.wddx
+@@ -0,0 +1,13 @@
++<?xml version='1.0'?>
++<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
++<wddxPacket version='1.0'>
++<header/>
++ <data>
++ <struct>
++ <var name='aDateTime'>
++ <dateTime>frONt of 0 0</dateTime>
++ </var>
++ </struct>
++ </data>
++</wddxPacket>
++
+--
+2.11.0
+