]> granicus.if.org Git - postgresql/commitdiff
Sync our Snowball stemmer dictionaries with current upstream
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 4 Jul 2019 11:10:41 +0000 (13:10 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 4 Jul 2019 11:26:48 +0000 (13:26 +0200)
The main change is a new stemmer for Greek.  There are minor changes
in the Danish and French stemmers.

Author: Panagiotis Mavrogiorgos <pmav99@gmail.com>

14 files changed:
doc/src/sgml/textsearch.sgml
src/backend/snowball/Makefile
src/backend/snowball/README
src/backend/snowball/dict_snowball.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c
src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c
src/backend/snowball/libstemmer/stem_UTF_8_danish.c
src/backend/snowball/libstemmer/stem_UTF_8_french.c
src/backend/snowball/libstemmer/stem_UTF_8_greek.c [new file with mode: 0644]
src/backend/snowball/libstemmer/utilities.c
src/bin/initdb/initdb.c
src/include/catalog/catversion.h
src/include/snowball/libstemmer/api.h
src/include/snowball/libstemmer/stem_UTF_8_greek.h [new file with mode: 0644]

index 40888a4d207500b4e28d7851df36d58cc0cac25f..196558b4404ccef7e1ac585ead423b4141966d0c 100644 (file)
@@ -3810,6 +3810,7 @@ Parser: "pg_catalog.default"
  pg_catalog | finnish_stem    | snowball stemmer for finnish language
  pg_catalog | french_stem     | snowball stemmer for french language
  pg_catalog | german_stem     | snowball stemmer for german language
+ pg_catalog | greek_stem      | snowball stemmer for greek language
  pg_catalog | hungarian_stem  | snowball stemmer for hungarian language
  pg_catalog | indonesian_stem | snowball stemmer for indonesian language
  pg_catalog | irish_stem      | snowball stemmer for irish language
index f792b6a9e5d5310f7cdb0719cfd8e13f0d4a7ec0..bf55b192347079e1334006a35f44fe344f0ba390 100644 (file)
@@ -41,6 +41,7 @@ OBJS= $(WIN32RES) dict_snowball.o api.o utilities.o \
        stem_UTF_8_finnish.o \
        stem_UTF_8_french.o \
        stem_UTF_8_german.o \
+       stem_UTF_8_greek.o \
        stem_UTF_8_hungarian.o \
        stem_UTF_8_indonesian.o \
        stem_UTF_8_irish.o \
@@ -69,6 +70,7 @@ LANGUAGES=  \
        finnish         finnish         \
        french          french          \
        german          german          \
+       greek           greek           \
        hungarian       hungarian       \
        indonesian      indonesian      \
        irish           irish           \
index bada9d96cae583c5c147487772d70b9481b52091..3463289f1c4b27f65067f9b179b42e7f0b1a35a5 100644 (file)
@@ -29,8 +29,8 @@ We choose to include the derived files in the PostgreSQL distribution
 because most installations will not have the Snowball compiler available.
 
 We are currently synced with the Snowball git commit
-1964ce688cbeca505263c8f77e16ed923296ce7a
-of 2018-06-29.
+4456b82c26c02493e8807a66f30593a98c5d2888
+of 2019-06-24.
 
 To update the PostgreSQL sources from a new Snowball version:
 
@@ -57,7 +57,7 @@ do not require any changes.
 4. Check whether any stemmer modules have been added or removed.  If so, edit
 the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the
 stemmer_modules[] table in dict_snowball.c.  You might also need to change
-the LANGUAGES list in Makefile.
+the LANGUAGES list in Makefile and tsearch_config_languages in initdb.c.
 
 5. The various stopword files in stopwords/ must be downloaded
 individually from pages on the snowballstem.org website.
index 5166738310816d8af9c197dfc14c2f445bfb51c7..1d32b7d356d124b32d240e37879e3a120a7e57e6 100644 (file)
@@ -50,6 +50,7 @@
 #include "snowball/libstemmer/stem_UTF_8_finnish.h"
 #include "snowball/libstemmer/stem_UTF_8_french.h"
 #include "snowball/libstemmer/stem_UTF_8_german.h"
+#include "snowball/libstemmer/stem_UTF_8_greek.h"
 #include "snowball/libstemmer/stem_UTF_8_hungarian.h"
 #include "snowball/libstemmer/stem_UTF_8_indonesian.h"
 #include "snowball/libstemmer/stem_UTF_8_irish.h"
@@ -115,6 +116,7 @@ static const stemmer_module stemmer_modules[] =
        STEMMER_MODULE(finnish, PG_UTF8, UTF_8),
        STEMMER_MODULE(french, PG_UTF8, UTF_8),
        STEMMER_MODULE(german, PG_UTF8, UTF_8),
+       STEMMER_MODULE(greek, PG_UTF8, UTF_8),
        STEMMER_MODULE(hungarian, PG_UTF8, UTF_8),
        STEMMER_MODULE(indonesian, PG_UTF8, UTF_8),
        STEMMER_MODULE(irish, PG_UTF8, UTF_8),
index 263c226e340932c2cf2754c203a820a141fcf37d..0ecbbb76a8f2f9fed53bc18df3c8c7d3c8d39c2e 100644 (file)
@@ -124,6 +124,8 @@ static const struct among a_2[5] =
 /*  4 */ { 4, s_2_4, -1, 2, 0}
 };
 
+static const unsigned char g_c[] = { 119, 223, 119, 1 };
+
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
 
 static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
@@ -133,25 +135,25 @@ static const symbol s_1[] = { 'i', 'g' };
 static const symbol s_2[] = { 'l', 0xF8, 's' };
 
 static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 31 */
-    {   int c_test1 = z->c; /* test, line 33 */
-        {   int ret = z->c + 3; /* hop, line 33 */
+    z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
+    {   int c_test1 = z->c; /* test, line 35 */
+        {   int ret = z->c + 3; /* hop, line 35 */
             if (0 > ret || ret > z->l) return 0;
             z->c = ret;
         }
-        z->I[1] = z->c; /* setmark x, line 33 */
+        z->I[1] = z->c; /* setmark x, line 35 */
         z->c = c_test1;
     }
-    if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
-    {    /* gopast */ /* non v, line 34 */
+    if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */
+    {    /* gopast */ /* non v, line 36 */
         int ret = in_grouping(z, g_v, 97, 248, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c; /* setmark p1, line 34 */
-    /* try, line 35 */
-    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 35 */
-    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 35 */
+    z->I[0] = z->c; /* setmark p1, line 36 */
+    /* try, line 37 */
+    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */
+    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */
 lab0:
     return 1;
 }
@@ -159,25 +161,25 @@ lab0:
 static int r_main_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 41 */
+    {   int mlimit1; /* setlimit, line 43 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 41 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 41 */
+        z->ket = z->c; /* [, line 43 */
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */
         among_var = find_among_b(z, a_0, 32);
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 41 */
+        z->bra = z->c; /* ], line 43 */
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 42 */
+    switch (among_var) { /* among, line 44 */
         case 1:
-            {   int ret = slice_del(z); /* delete, line 48 */
+            {   int ret = slice_del(z); /* delete, line 50 */
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 50 */
-            {   int ret = slice_del(z); /* delete, line 50 */
+            if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */
+            {   int ret = slice_del(z); /* delete, line 52 */
                 if (ret < 0) return ret;
             }
             break;
@@ -186,23 +188,23 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
 }
 
 static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 55 */
+    {   int m_test1 = z->l - z->c; /* test, line 57 */
 
-        {   int mlimit2; /* setlimit, line 56 */
+        {   int mlimit2; /* setlimit, line 58 */
             if (z->c < z->I[0]) return 0;
             mlimit2 = z->lb; z->lb = z->I[0];
-            z->ket = z->c; /* [, line 56 */
-            if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 56 */
+            z->ket = z->c; /* [, line 58 */
+            if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */
             if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
-            z->bra = z->c; /* ], line 56 */
+            z->bra = z->c; /* ], line 58 */
             z->lb = mlimit2;
         }
         z->c = z->l - m_test1;
     }
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 62 */
-    z->bra = z->c; /* ], line 62 */
-    {   int ret = slice_del(z); /* delete, line 62 */
+    z->c--; /* next, line 64 */
+    z->bra = z->c; /* ], line 64 */
+    {   int ret = slice_del(z); /* delete, line 64 */
         if (ret < 0) return ret;
     }
     return 1;
@@ -210,35 +212,35 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
 
 static int r_other_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 66 */
-        z->ket = z->c; /* [, line 66 */
-        if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 66 */
-        z->bra = z->c; /* ], line 66 */
-        if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 66 */
-        {   int ret = slice_del(z); /* delete, line 66 */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 68 */
+        z->ket = z->c; /* [, line 68 */
+        if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */
+        z->bra = z->c; /* ], line 68 */
+        if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */
+        {   int ret = slice_del(z); /* delete, line 68 */
             if (ret < 0) return ret;
         }
     lab0:
         z->c = z->l - m1;
     }
 
-    {   int mlimit2; /* setlimit, line 67 */
+    {   int mlimit2; /* setlimit, line 69 */
         if (z->c < z->I[0]) return 0;
         mlimit2 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 67 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 67 */
+        z->ket = z->c; /* [, line 69 */
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */
         among_var = find_among_b(z, a_2, 5);
         if (!(among_var)) { z->lb = mlimit2; return 0; }
-        z->bra = z->c; /* ], line 67 */
+        z->bra = z->c; /* ], line 69 */
         z->lb = mlimit2;
     }
-    switch (among_var) { /* among, line 68 */
+    switch (among_var) { /* among, line 70 */
         case 1:
-            {   int ret = slice_del(z); /* delete, line 70 */
+            {   int ret = slice_del(z); /* delete, line 72 */
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* do, line 70 */
-                {   int ret = r_consonant_pair(z); /* call consonant_pair, line 70 */
+            {   int m3 = z->l - z->c; (void)m3; /* do, line 72 */
+                {   int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */
                     if (ret == 0) goto lab1;
                     if (ret < 0) return ret;
                 }
@@ -247,7 +249,7 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 3, s_2); /* <-, line 72 */
+            {   int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */
                 if (ret < 0) return ret;
             }
             break;
@@ -257,60 +259,60 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
 
 static int r_undouble(struct SN_env * z) { /* backwardmode */
 
-    {   int mlimit1; /* setlimit, line 76 */
+    {   int mlimit1; /* setlimit, line 78 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 76 */
-        if (out_grouping_b(z, g_v, 97, 248, 0)) { z->lb = mlimit1; return 0; } /* non v, line 76 */
-        z->bra = z->c; /* ], line 76 */
-        z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
-        if (z->S[0] == 0) return -1; /* -> ch, line 76 */
+        z->ket = z->c; /* [, line 78 */
+        if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */
+        z->bra = z->c; /* ], line 78 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */
+        if (z->S[0] == 0) return -1; /* -> ch, line 78 */
         z->lb = mlimit1;
     }
-    if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
-    {   int ret = slice_del(z); /* delete, line 78 */
+    if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */
+    {   int ret = slice_del(z); /* delete, line 80 */
         if (ret < 0) return ret;
     }
     return 1;
 }
 
 extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 84 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 84 */
+    {   int c1 = z->c; /* do, line 86 */
+        {   int ret = r_mark_regions(z); /* call mark_regions, line 86 */
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
     lab0:
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 85 */
+    z->lb = z->c; z->c = z->l; /* backwards, line 87 */
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 86 */
-        {   int ret = r_main_suffix(z); /* call main_suffix, line 86 */
+    {   int m2 = z->l - z->c; (void)m2; /* do, line 88 */
+        {   int ret = r_main_suffix(z); /* call main_suffix, line 88 */
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
     lab1:
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 87 */
-        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 87 */
+    {   int m3 = z->l - z->c; (void)m3; /* do, line 89 */
+        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */
             if (ret == 0) goto lab2;
             if (ret < 0) return ret;
         }
     lab2:
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 88 */
-        {   int ret = r_other_suffix(z); /* call other_suffix, line 88 */
+    {   int m4 = z->l - z->c; (void)m4; /* do, line 90 */
+        {   int ret = r_other_suffix(z); /* call other_suffix, line 90 */
             if (ret == 0) goto lab3;
             if (ret < 0) return ret;
         }
     lab3:
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 89 */
-        {   int ret = r_undouble(z); /* call undouble, line 89 */
+    {   int m5 = z->l - z->c; (void)m5; /* do, line 91 */
+        {   int ret = r_undouble(z); /* call undouble, line 91 */
             if (ret == 0) goto lab4;
             if (ret < 0) return ret;
         }
index 1a1732b216188d34eba5f2aab08873fc5a057d62..4e9f76cd9a4134bcca2014a98e38e6aa7263581b 100644 (file)
@@ -45,16 +45,22 @@ static const struct among a_0[3] =
 /*  2 */ { 3, s_0_2, -1, -1, 0}
 };
 
-static const symbol s_1_1[1] = { 'I' };
-static const symbol s_1_2[1] = { 'U' };
-static const symbol s_1_3[1] = { 'Y' };
+static const symbol s_1_1[1] = { 'H' };
+static const symbol s_1_2[2] = { 'H', 'e' };
+static const symbol s_1_3[2] = { 'H', 'i' };
+static const symbol s_1_4[1] = { 'I' };
+static const symbol s_1_5[1] = { 'U' };
+static const symbol s_1_6[1] = { 'Y' };
 
-static const struct among a_1[4] =
+static const struct among a_1[7] =
 {
-/*  0 */ { 0, 0, -1, 4, 0},
-/*  1 */ { 1, s_1_1, 0, 1, 0},
-/*  2 */ { 1, s_1_2, 0, 2, 0},
-/*  3 */ { 1, s_1_3, 0, 3, 0}
+/*  0 */ { 0, 0, -1, 7, 0},
+/*  1 */ { 1, s_1_1, 0, 6, 0},
+/*  2 */ { 2, s_1_2, 1, 4, 0},
+/*  3 */ { 2, s_1_3, 1, 5, 0},
+/*  4 */ { 1, s_1_4, 0, 1, 0},
+/*  5 */ { 1, s_1_5, 0, 2, 0},
+/*  6 */ { 1, s_1_6, 0, 3, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'q', 'U' };
@@ -338,17 +344,15 @@ static const symbol s_7_2[4] = { 'i', 0xE8, 'r', 'e' };
 static const symbol s_7_3[3] = { 'i', 'o', 'n' };
 static const symbol s_7_4[3] = { 'I', 'e', 'r' };
 static const symbol s_7_5[3] = { 'i', 'e', 'r' };
-static const symbol s_7_6[1] = { 0xEB };
 
-static const struct among a_7[7] =
+static const struct among a_7[6] =
 {
 /*  0 */ { 1, s_7_0, -1, 3, 0},
 /*  1 */ { 4, s_7_1, 0, 2, 0},
 /*  2 */ { 4, s_7_2, 0, 2, 0},
 /*  3 */ { 3, s_7_3, -1, 1, 0},
 /*  4 */ { 3, s_7_4, -1, 2, 0},
-/*  5 */ { 3, s_7_5, -1, 2, 0},
-/*  6 */ { 1, s_7_6, -1, 4, 0}
+/*  5 */ { 3, s_7_5, -1, 2, 0}
 };
 
 static const symbol s_8_0[3] = { 'e', 'l', 'l' };
@@ -373,34 +377,38 @@ static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0
 static const symbol s_0[] = { 'U' };
 static const symbol s_1[] = { 'I' };
 static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 'Y' };
-static const symbol s_4[] = { 'U' };
-static const symbol s_5[] = { 'i' };
-static const symbol s_6[] = { 'u' };
-static const symbol s_7[] = { 'y' };
-static const symbol s_8[] = { 'i', 'c' };
-static const symbol s_9[] = { 'i', 'q', 'U' };
-static const symbol s_10[] = { 'l', 'o', 'g' };
-static const symbol s_11[] = { 'u' };
-static const symbol s_12[] = { 'e', 'n', 't' };
-static const symbol s_13[] = { 'a', 't' };
-static const symbol s_14[] = { 'e', 'u', 'x' };
-static const symbol s_15[] = { 'i' };
-static const symbol s_16[] = { 'a', 'b', 'l' };
-static const symbol s_17[] = { 'i', 'q', 'U' };
-static const symbol s_18[] = { 'a', 't' };
-static const symbol s_19[] = { 'i', 'c' };
-static const symbol s_20[] = { 'i', 'q', 'U' };
-static const symbol s_21[] = { 'e', 'a', 'u' };
-static const symbol s_22[] = { 'a', 'l' };
-static const symbol s_23[] = { 'e', 'u', 'x' };
-static const symbol s_24[] = { 'a', 'n', 't' };
-static const symbol s_25[] = { 'e', 'n', 't' };
-static const symbol s_26[] = { 'i' };
-static const symbol s_27[] = { 'g', 'u' };
-static const symbol s_28[] = { 'e' };
-static const symbol s_29[] = { 'i' };
-static const symbol s_30[] = { 'c' };
+static const symbol s_3[] = { 'H', 'e' };
+static const symbol s_4[] = { 'H', 'i' };
+static const symbol s_5[] = { 'Y' };
+static const symbol s_6[] = { 'U' };
+static const symbol s_7[] = { 'i' };
+static const symbol s_8[] = { 'u' };
+static const symbol s_9[] = { 'y' };
+static const symbol s_10[] = { 0xEB };
+static const symbol s_11[] = { 0xEF };
+static const symbol s_12[] = { 'i', 'c' };
+static const symbol s_13[] = { 'i', 'q', 'U' };
+static const symbol s_14[] = { 'l', 'o', 'g' };
+static const symbol s_15[] = { 'u' };
+static const symbol s_16[] = { 'e', 'n', 't' };
+static const symbol s_17[] = { 'a', 't' };
+static const symbol s_18[] = { 'e', 'u', 'x' };
+static const symbol s_19[] = { 'i' };
+static const symbol s_20[] = { 'a', 'b', 'l' };
+static const symbol s_21[] = { 'i', 'q', 'U' };
+static const symbol s_22[] = { 'a', 't' };
+static const symbol s_23[] = { 'i', 'c' };
+static const symbol s_24[] = { 'i', 'q', 'U' };
+static const symbol s_25[] = { 'e', 'a', 'u' };
+static const symbol s_26[] = { 'a', 'l' };
+static const symbol s_27[] = { 'e', 'u', 'x' };
+static const symbol s_28[] = { 'a', 'n', 't' };
+static const symbol s_29[] = { 'e', 'n', 't' };
+static const symbol s_30[] = { 'H', 'i' };
+static const symbol s_31[] = { 'i' };
+static const symbol s_32[] = { 'e' };
+static const symbol s_33[] = { 'i' };
+static const symbol s_34[] = { 'c' };
 
 static int r_prelude(struct SN_env * z) { /* forwardmode */
     while(1) { /* repeat, line 38 */
@@ -443,23 +451,43 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
             lab3:
                 z->c = c3;
                 z->bra = z->c; /* [, line 45 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab7; /* literal, line 45 */
+                if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7; /* literal, line 45 */
                 z->c++;
                 z->ket = z->c; /* ], line 45 */
-                if (in_grouping(z, g_v, 97, 251, 0)) goto lab7; /* grouping v, line 45 */
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 45 */
+                {   int ret = slice_from_s(z, 2, s_3); /* <-, line 45 */
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab7:
                 z->c = c3;
-                if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 47 */
-                z->c++;
                 z->bra = z->c; /* [, line 47 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 47 */
+                if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8; /* literal, line 47 */
                 z->c++;
                 z->ket = z->c; /* ], line 47 */
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 47 */
+                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 47 */
+                    if (ret < 0) return ret;
+                }
+                goto lab2;
+            lab8:
+                z->c = c3;
+                z->bra = z->c; /* [, line 49 */
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */
+                z->c++;
+                z->ket = z->c; /* ], line 49 */
+                if (in_grouping(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */
+                {   int ret = slice_from_s(z, 1, s_5); /* <-, line 49 */
+                    if (ret < 0) return ret;
+                }
+                goto lab2;
+            lab9:
+                z->c = c3;
+                if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */
+                z->c++;
+                z->bra = z->c; /* [, line 51 */
+                if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */
+                z->c++;
+                z->ket = z->c; /* ], line 51 */
+                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 51 */
                     if (ret < 0) return ret;
                 }
             }
@@ -480,59 +508,59 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
 }
 
 static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 52 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 53 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 54 */
-    {   int c1 = z->c; /* do, line 56 */
-        {   int c2 = z->c; /* or, line 58 */
-            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
-            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
+    z->I[0] = z->l; /* $pV = <integer expression>, line 56 */
+    z->I[1] = z->l; /* $p1 = <integer expression>, line 57 */
+    z->I[2] = z->l; /* $p2 = <integer expression>, line 58 */
+    {   int c1 = z->c; /* do, line 60 */
+        {   int c2 = z->c; /* or, line 62 */
+            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
+            if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
             if (z->c >= z->l) goto lab2;
-            z->c++; /* next, line 57 */
+            z->c++; /* next, line 61 */
             goto lab1;
         lab2:
             z->c = c2;
-            if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 59 */
+            if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 63 */
             if (!(find_among(z, a_0, 3))) goto lab3;
             goto lab1;
         lab3:
             z->c = c2;
             if (z->c >= z->l) goto lab0;
-            z->c++; /* next, line 66 */
-            {    /* gopast */ /* grouping v, line 66 */
+            z->c++; /* next, line 70 */
+            {    /* gopast */ /* grouping v, line 70 */
                 int ret = out_grouping(z, g_v, 97, 251, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 67 */
+        z->I[0] = z->c; /* setmark pV, line 71 */
     lab0:
         z->c = c1;
     }
-    {   int c3 = z->c; /* do, line 69 */
-        {    /* gopast */ /* grouping v, line 70 */
+    {   int c3 = z->c; /* do, line 73 */
+        {    /* gopast */ /* grouping v, line 74 */
             int ret = out_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 70 */
+        {    /* gopast */ /* non v, line 74 */
             int ret = in_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 70 */
-        {    /* gopast */ /* grouping v, line 71 */
+        z->I[1] = z->c; /* setmark p1, line 74 */
+        {    /* gopast */ /* grouping v, line 75 */
             int ret = out_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 71 */
+        {    /* gopast */ /* non v, line 75 */
             int ret = in_grouping(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 71 */
+        z->I[2] = z->c; /* setmark p2, line 75 */
     lab4:
         z->c = c3;
     }
@@ -541,32 +569,47 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
 
 static int r_postlude(struct SN_env * z) { /* forwardmode */
     int among_var;
-    while(1) { /* repeat, line 75 */
+    while(1) { /* repeat, line 79 */
         int c1 = z->c;
-        z->bra = z->c; /* [, line 77 */
-        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else /* substring, line 77 */
-        among_var = find_among(z, a_1, 4);
+        z->bra = z->c; /* [, line 81 */
+        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */
+        among_var = find_among(z, a_1, 7);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 77 */
-        switch (among_var) { /* among, line 77 */
+        z->ket = z->c; /* ], line 81 */
+        switch (among_var) { /* among, line 81 */
             case 1:
-                {   int ret = slice_from_s(z, 1, s_5); /* <-, line 78 */
+                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 82 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 79 */
+                {   int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 80 */
+                {   int ret = slice_from_s(z, 1, s_9); /* <-, line 84 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
+                {   int ret = slice_from_s(z, 1, s_10); /* <-, line 85 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                {   int ret = slice_from_s(z, 1, s_11); /* <-, line 86 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 6:
+                {   int ret = slice_del(z); /* delete, line 87 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 7:
                 if (z->c >= z->l) goto lab0;
-                z->c++; /* next, line 81 */
+                z->c++; /* next, line 88 */
                 break;
         }
         continue;
@@ -578,58 +621,58 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
 }
 
 static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
+    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 94 */
     return 1;
 }
 
 static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
+    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 95 */
     return 1;
 }
 
 static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 89 */
+    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 96 */
     return 1;
 }
 
 static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
-    z->ket = z->c; /* [, line 92 */
-    among_var = find_among_b(z, a_4, 43); /* substring, line 92 */
+    z->ket = z->c; /* [, line 99 */
+    among_var = find_among_b(z, a_4, 43); /* substring, line 99 */
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 92 */
-    switch (among_var) { /* among, line 92 */
+    z->bra = z->c; /* ], line 99 */
+    switch (among_var) { /* among, line 99 */
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 96 */
+            {   int ret = r_R2(z); /* call R2, line 103 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 96 */
+            {   int ret = slice_del(z); /* delete, line 103 */
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 99 */
+            {   int ret = r_R2(z); /* call R2, line 106 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 99 */
+            {   int ret = slice_del(z); /* delete, line 106 */
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 100 */
-                z->ket = z->c; /* [, line 100 */
-                if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m1; goto lab0; } /* literal, line 100 */
-                z->bra = z->c; /* ], line 100 */
-                {   int m2 = z->l - z->c; (void)m2; /* or, line 100 */
-                    {   int ret = r_R2(z); /* call R2, line 100 */
+            {   int m1 = z->l - z->c; (void)m1; /* try, line 107 */
+                z->ket = z->c; /* [, line 107 */
+                if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */
+                z->bra = z->c; /* ], line 107 */
+                {   int m2 = z->l - z->c; (void)m2; /* or, line 107 */
+                    {   int ret = r_R2(z); /* call R2, line 107 */
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 100 */
+                    {   int ret = slice_del(z); /* delete, line 107 */
                         if (ret < 0) return ret;
                     }
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    {   int ret = slice_from_s(z, 3, s_9); /* <-, line 100 */
+                    {   int ret = slice_from_s(z, 3, s_13); /* <-, line 107 */
                         if (ret < 0) return ret;
                     }
                 }
@@ -639,98 +682,98 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 104 */
+            {   int ret = r_R2(z); /* call R2, line 111 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_10); /* <-, line 104 */
+            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 111 */
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 107 */
+            {   int ret = r_R2(z); /* call R2, line 114 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_11); /* <-, line 107 */
+            {   int ret = slice_from_s(z, 1, s_15); /* <-, line 114 */
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R2(z); /* call R2, line 110 */
+            {   int ret = r_R2(z); /* call R2, line 117 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_12); /* <-, line 110 */
+            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 117 */
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_RV(z); /* call RV, line 114 */
+            {   int ret = r_RV(z); /* call RV, line 121 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 114 */
+            {   int ret = slice_del(z); /* delete, line 121 */
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 115 */
-                z->ket = z->c; /* [, line 116 */
-                among_var = find_among_b(z, a_2, 6); /* substring, line 116 */
+            {   int m3 = z->l - z->c; (void)m3; /* try, line 122 */
+                z->ket = z->c; /* [, line 123 */
+                among_var = find_among_b(z, a_2, 6); /* substring, line 123 */
                 if (!(among_var)) { z->c = z->l - m3; goto lab3; }
-                z->bra = z->c; /* ], line 116 */
-                switch (among_var) { /* among, line 116 */
+                z->bra = z->c; /* ], line 123 */
+                switch (among_var) { /* among, line 123 */
                     case 1:
-                        {   int ret = r_R2(z); /* call R2, line 117 */
+                        {   int ret = r_R2(z); /* call R2, line 124 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 117 */
+                        {   int ret = slice_del(z); /* delete, line 124 */
                             if (ret < 0) return ret;
                         }
-                        z->ket = z->c; /* [, line 117 */
-                        if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m3; goto lab3; } /* literal, line 117 */
-                        z->bra = z->c; /* ], line 117 */
-                        {   int ret = r_R2(z); /* call R2, line 117 */
+                        z->ket = z->c; /* [, line 124 */
+                        if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */
+                        z->bra = z->c; /* ], line 124 */
+                        {   int ret = r_R2(z); /* call R2, line 124 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 117 */
+                        {   int ret = slice_del(z); /* delete, line 124 */
                             if (ret < 0) return ret;
                         }
                         break;
                     case 2:
-                        {   int m4 = z->l - z->c; (void)m4; /* or, line 118 */
-                            {   int ret = r_R2(z); /* call R2, line 118 */
+                        {   int m4 = z->l - z->c; (void)m4; /* or, line 125 */
+                            {   int ret = r_R2(z); /* call R2, line 125 */
                                 if (ret == 0) goto lab5;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 118 */
+                            {   int ret = slice_del(z); /* delete, line 125 */
                                 if (ret < 0) return ret;
                             }
                             goto lab4;
                         lab5:
                             z->c = z->l - m4;
-                            {   int ret = r_R1(z); /* call R1, line 118 */
+                            {   int ret = r_R1(z); /* call R1, line 125 */
                                 if (ret == 0) { z->c = z->l - m3; goto lab3; }
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 118 */
+                            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 125 */
                                 if (ret < 0) return ret;
                             }
                         }
                     lab4:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 120 */
+                        {   int ret = r_R2(z); /* call R2, line 127 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 120 */
+                        {   int ret = slice_del(z); /* delete, line 127 */
                             if (ret < 0) return ret;
                         }
                         break;
                     case 4:
-                        {   int ret = r_RV(z); /* call RV, line 122 */
+                        {   int ret = r_RV(z); /* call RV, line 129 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_from_s(z, 1, s_15); /* <-, line 122 */
+                        {   int ret = slice_from_s(z, 1, s_19); /* <-, line 129 */
                             if (ret < 0) return ret;
                         }
                         break;
@@ -740,61 +783,61 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 7:
-            {   int ret = r_R2(z); /* call R2, line 129 */
+            {   int ret = r_R2(z); /* call R2, line 136 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 129 */
+            {   int ret = slice_del(z); /* delete, line 136 */
                 if (ret < 0) return ret;
             }
-            {   int m5 = z->l - z->c; (void)m5; /* try, line 130 */
-                z->ket = z->c; /* [, line 131 */
-                if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 131 */
+            {   int m5 = z->l - z->c; (void)m5; /* try, line 137 */
+                z->ket = z->c; /* [, line 138 */
+                if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 138 */
                 among_var = find_among_b(z, a_3, 3);
                 if (!(among_var)) { z->c = z->l - m5; goto lab6; }
-                z->bra = z->c; /* ], line 131 */
-                switch (among_var) { /* among, line 131 */
+                z->bra = z->c; /* ], line 138 */
+                switch (among_var) { /* among, line 138 */
                     case 1:
-                        {   int m6 = z->l - z->c; (void)m6; /* or, line 132 */
-                            {   int ret = r_R2(z); /* call R2, line 132 */
+                        {   int m6 = z->l - z->c; (void)m6; /* or, line 139 */
+                            {   int ret = r_R2(z); /* call R2, line 139 */
                                 if (ret == 0) goto lab8;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 132 */
+                            {   int ret = slice_del(z); /* delete, line 139 */
                                 if (ret < 0) return ret;
                             }
                             goto lab7;
                         lab8:
                             z->c = z->l - m6;
-                            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 132 */
+                            {   int ret = slice_from_s(z, 3, s_20); /* <-, line 139 */
                                 if (ret < 0) return ret;
                             }
                         }
                     lab7:
                         break;
                     case 2:
-                        {   int m7 = z->l - z->c; (void)m7; /* or, line 133 */
-                            {   int ret = r_R2(z); /* call R2, line 133 */
+                        {   int m7 = z->l - z->c; (void)m7; /* or, line 140 */
+                            {   int ret = r_R2(z); /* call R2, line 140 */
                                 if (ret == 0) goto lab10;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 133 */
+                            {   int ret = slice_del(z); /* delete, line 140 */
                                 if (ret < 0) return ret;
                             }
                             goto lab9;
                         lab10:
                             z->c = z->l - m7;
-                            {   int ret = slice_from_s(z, 3, s_17); /* <-, line 133 */
+                            {   int ret = slice_from_s(z, 3, s_21); /* <-, line 140 */
                                 if (ret < 0) return ret;
                             }
                         }
                     lab9:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 134 */
+                        {   int ret = r_R2(z); /* call R2, line 141 */
                             if (ret == 0) { z->c = z->l - m5; goto lab6; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 134 */
+                        {   int ret = slice_del(z); /* delete, line 141 */
                             if (ret < 0) return ret;
                         }
                         break;
@@ -804,38 +847,38 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 141 */
+            {   int ret = r_R2(z); /* call R2, line 148 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 141 */
+            {   int ret = slice_del(z); /* delete, line 148 */
                 if (ret < 0) return ret;
             }
-            {   int m8 = z->l - z->c; (void)m8; /* try, line 142 */
-                z->ket = z->c; /* [, line 142 */
-                if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m8; goto lab11; } /* literal, line 142 */
-                z->bra = z->c; /* ], line 142 */
-                {   int ret = r_R2(z); /* call R2, line 142 */
+            {   int m8 = z->l - z->c; (void)m8; /* try, line 149 */
+                z->ket = z->c; /* [, line 149 */
+                if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
+                z->bra = z->c; /* ], line 149 */
+                {   int ret = r_R2(z); /* call R2, line 149 */
                     if (ret == 0) { z->c = z->l - m8; goto lab11; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 142 */
+                {   int ret = slice_del(z); /* delete, line 149 */
                     if (ret < 0) return ret;
                 }
-                z->ket = z->c; /* [, line 142 */
-                if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m8; goto lab11; } /* literal, line 142 */
-                z->bra = z->c; /* ], line 142 */
-                {   int m9 = z->l - z->c; (void)m9; /* or, line 142 */
-                    {   int ret = r_R2(z); /* call R2, line 142 */
+                z->ket = z->c; /* [, line 149 */
+                if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
+                z->bra = z->c; /* ], line 149 */
+                {   int m9 = z->l - z->c; (void)m9; /* or, line 149 */
+                    {   int ret = r_R2(z); /* call R2, line 149 */
                         if (ret == 0) goto lab13;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 142 */
+                    {   int ret = slice_del(z); /* delete, line 149 */
                         if (ret < 0) return ret;
                     }
                     goto lab12;
                 lab13:
                     z->c = z->l - m9;
-                    {   int ret = slice_from_s(z, 3, s_20); /* <-, line 142 */
+                    {   int ret = slice_from_s(z, 3, s_24); /* <-, line 149 */
                         if (ret < 0) return ret;
                     }
                 }
@@ -845,78 +888,78 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_21); /* <-, line 144 */
+            {   int ret = slice_from_s(z, 3, s_25); /* <-, line 151 */
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = r_R1(z); /* call R1, line 145 */
+            {   int ret = r_R1(z); /* call R1, line 152 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_22); /* <-, line 145 */
+            {   int ret = slice_from_s(z, 2, s_26); /* <-, line 152 */
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int m10 = z->l - z->c; (void)m10; /* or, line 147 */
-                {   int ret = r_R2(z); /* call R2, line 147 */
+            {   int m10 = z->l - z->c; (void)m10; /* or, line 154 */
+                {   int ret = r_R2(z); /* call R2, line 154 */
                     if (ret == 0) goto lab15;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 147 */
+                {   int ret = slice_del(z); /* delete, line 154 */
                     if (ret < 0) return ret;
                 }
                 goto lab14;
             lab15:
                 z->c = z->l - m10;
-                {   int ret = r_R1(z); /* call R1, line 147 */
+                {   int ret = r_R1(z); /* call R1, line 154 */
                     if (ret <= 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 3, s_23); /* <-, line 147 */
+                {   int ret = slice_from_s(z, 3, s_27); /* <-, line 154 */
                     if (ret < 0) return ret;
                 }
             }
         lab14:
             break;
         case 12:
-            {   int ret = r_R1(z); /* call R1, line 150 */
+            {   int ret = r_R1(z); /* call R1, line 157 */
                 if (ret <= 0) return ret;
             }
-            if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; /* non v, line 150 */
-            {   int ret = slice_del(z); /* delete, line 150 */
+            if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */
+            {   int ret = slice_del(z); /* delete, line 157 */
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            {   int ret = r_RV(z); /* call RV, line 155 */
+            {   int ret = r_RV(z); /* call RV, line 162 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_24); /* <-, line 155 */
+            {   int ret = slice_from_s(z, 3, s_28); /* <-, line 162 */
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 155 */
+            return 0; /* fail, line 162 */
             break;
         case 14:
-            {   int ret = r_RV(z); /* call RV, line 156 */
+            {   int ret = r_RV(z); /* call RV, line 163 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_25); /* <-, line 156 */
+            {   int ret = slice_from_s(z, 3, s_29); /* <-, line 163 */
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 156 */
+            return 0; /* fail, line 163 */
             break;
         case 15:
-            {   int m_test11 = z->l - z->c; /* test, line 158 */
-                if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 158 */
-                {   int ret = r_RV(z); /* call RV, line 158 */
+            {   int m_test11 = z->l - z->c; /* test, line 165 */
+                if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */
+                {   int ret = r_RV(z); /* call RV, line 165 */
                     if (ret <= 0) return ret;
                 }
                 z->c = z->l - m_test11;
             }
-            {   int ret = slice_del(z); /* delete, line 158 */
+            {   int ret = slice_del(z); /* delete, line 165 */
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 158 */
+            return 0; /* fail, line 165 */
             break;
     }
     return 1;
@@ -924,15 +967,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
 
 static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
 
-    {   int mlimit1; /* setlimit, line 163 */
+    {   int mlimit1; /* setlimit, line 170 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 164 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 164 */
+        z->ket = z->c; /* [, line 171 */
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 171 */
         if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 164 */
-        if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 170 */
-        {   int ret = slice_del(z); /* delete, line 170 */
+        z->bra = z->c; /* ], line 171 */
+        {   int m2 = z->l - z->c; (void)m2; /* not, line 177 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */
+            z->c--;
+            { z->lb = mlimit1; return 0; }
+        lab0:
+            z->c = z->l - m2;
+        }
+        if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */
+        {   int ret = slice_del(z); /* delete, line 177 */
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
@@ -943,38 +993,38 @@ static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
 static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 174 */
+    {   int mlimit1; /* setlimit, line 181 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 175 */
-        among_var = find_among_b(z, a_6, 38); /* substring, line 175 */
+        z->ket = z->c; /* [, line 182 */
+        among_var = find_among_b(z, a_6, 38); /* substring, line 182 */
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 175 */
-        switch (among_var) { /* among, line 175 */
+        z->bra = z->c; /* ], line 182 */
+        switch (among_var) { /* among, line 182 */
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 177 */
+                {   int ret = r_R2(z); /* call R2, line 184 */
                     if (ret == 0) { z->lb = mlimit1; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 177 */
+                {   int ret = slice_del(z); /* delete, line 184 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 185 */
+                {   int ret = slice_del(z); /* delete, line 192 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 190 */
+                {   int ret = slice_del(z); /* delete, line 197 */
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* try, line 191 */
-                    z->ket = z->c; /* [, line 191 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 191 */
+                {   int m2 = z->l - z->c; (void)m2; /* try, line 198 */
+                    z->ket = z->c; /* [, line 198 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */
                     z->c--;
-                    z->bra = z->c; /* ], line 191 */
-                    {   int ret = slice_del(z); /* delete, line 191 */
+                    z->bra = z->c; /* ], line 198 */
+                    {   int ret = slice_del(z); /* delete, line 198 */
                         if (ret < 0) return ret;
                     }
                 lab0:
@@ -989,82 +1039,84 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
 
 static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 199 */
-        z->ket = z->c; /* [, line 199 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 199 */
+    {   int m1 = z->l - z->c; (void)m1; /* try, line 206 */
+        z->ket = z->c; /* [, line 206 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */
         z->c--;
-        z->bra = z->c; /* ], line 199 */
-        {   int m_test2 = z->l - z->c; /* test, line 199 */
-            if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 199 */
+        z->bra = z->c; /* ], line 206 */
+        {   int m_test2 = z->l - z->c; /* test, line 206 */
+            {   int m3 = z->l - z->c; (void)m3; /* or, line 206 */
+                if (!(eq_s_b(z, 2, s_30))) goto lab2; /* literal, line 206 */
+                goto lab1;
+            lab2:
+                z->c = z->l - m3;
+                if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */
+            }
+        lab1:
             z->c = z->l - m_test2;
         }
-        {   int ret = slice_del(z); /* delete, line 199 */
+        {   int ret = slice_del(z); /* delete, line 206 */
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
 
-    {   int mlimit3; /* setlimit, line 200 */
+    {   int mlimit4; /* setlimit, line 207 */
         if (z->c < z->I[0]) return 0;
-        mlimit3 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 201 */
-        among_var = find_among_b(z, a_7, 7); /* substring, line 201 */
-        if (!(among_var)) { z->lb = mlimit3; return 0; }
-        z->bra = z->c; /* ], line 201 */
-        switch (among_var) { /* among, line 201 */
+        mlimit4 = z->lb; z->lb = z->I[0];
+        z->ket = z->c; /* [, line 208 */
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } /* substring, line 208 */
+        among_var = find_among_b(z, a_7, 6);
+        if (!(among_var)) { z->lb = mlimit4; return 0; }
+        z->bra = z->c; /* ], line 208 */
+        switch (among_var) { /* among, line 208 */
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 202 */
-                    if (ret == 0) { z->lb = mlimit3; return 0; }
+                {   int ret = r_R2(z); /* call R2, line 209 */
+                    if (ret == 0) { z->lb = mlimit4; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int m4 = z->l - z->c; (void)m4; /* or, line 202 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; /* literal, line 202 */
+                {   int m5 = z->l - z->c; (void)m5; /* or, line 209 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */
                     z->c--;
-                    goto lab1;
-                lab2:
-                    z->c = z->l - m4;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit3; return 0; } /* literal, line 202 */
+                    goto lab3;
+                lab4:
+                    z->c = z->l - m5;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */
                     z->c--;
                 }
-            lab1:
-                {   int ret = slice_del(z); /* delete, line 202 */
+            lab3:
+                {   int ret = slice_del(z); /* delete, line 209 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_26); /* <-, line 204 */
+                {   int ret = slice_from_s(z, 1, s_31); /* <-, line 211 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 205 */
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 4:
-                if (!(eq_s_b(z, 2, s_27))) { z->lb = mlimit3; return 0; } /* literal, line 206 */
-                {   int ret = slice_del(z); /* delete, line 206 */
+                {   int ret = slice_del(z); /* delete, line 212 */
                     if (ret < 0) return ret;
                 }
                 break;
         }
-        z->lb = mlimit3;
+        z->lb = mlimit4;
     }
     return 1;
 }
 
 static int r_un_double(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 212 */
-        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 212 */
+    {   int m_test1 = z->l - z->c; /* test, line 218 */
+        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */
         if (!(find_among_b(z, a_8, 5))) return 0;
         z->c = z->l - m_test1;
     }
-    z->ket = z->c; /* [, line 212 */
+    z->ket = z->c; /* [, line 218 */
     if (z->c <= z->lb) return 0;
-    z->c--; /* next, line 212 */
-    z->bra = z->c; /* ], line 212 */
-    {   int ret = slice_del(z); /* delete, line 212 */
+    z->c--; /* next, line 218 */
+    z->bra = z->c; /* ], line 218 */
+    {   int ret = slice_del(z); /* delete, line 218 */
         if (ret < 0) return ret;
     }
     return 1;
@@ -1072,8 +1124,8 @@ static int r_un_double(struct SN_env * z) { /* backwardmode */
 
 static int r_un_accent(struct SN_env * z) { /* backwardmode */
     {   int i = 1;
-        while(1) { /* atleast, line 216 */
-            if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 216 */
+        while(1) { /* atleast, line 222 */
+            if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */
             i--;
             continue;
         lab0:
@@ -1081,82 +1133,82 @@ static int r_un_accent(struct SN_env * z) { /* backwardmode */
         }
         if (i > 0) return 0;
     }
-    z->ket = z->c; /* [, line 217 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 217 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; /* literal, line 217 */
+    z->ket = z->c; /* [, line 223 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 223 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; /* literal, line 223 */
         z->c--;
         goto lab1;
     lab2:
         z->c = z->l - m1;
-        if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; /* literal, line 217 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; /* literal, line 223 */
         z->c--;
     }
 lab1:
-    z->bra = z->c; /* ], line 217 */
-    {   int ret = slice_from_s(z, 1, s_28); /* <-, line 217 */
+    z->bra = z->c; /* ], line 223 */
+    {   int ret = slice_from_s(z, 1, s_32); /* <-, line 223 */
         if (ret < 0) return ret;
     }
     return 1;
 }
 
 extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 223 */
-        {   int ret = r_prelude(z); /* call prelude, line 223 */
+    {   int c1 = z->c; /* do, line 229 */
+        {   int ret = r_prelude(z); /* call prelude, line 229 */
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
     lab0:
         z->c = c1;
     }
-    /* do, line 224 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 224 */
+    /* do, line 230 */
+    {   int ret = r_mark_regions(z); /* call mark_regions, line 230 */
         if (ret == 0) goto lab1;
         if (ret < 0) return ret;
     }
 lab1:
-    z->lb = z->c; z->c = z->l; /* backwards, line 225 */
+    z->lb = z->c; z->c = z->l; /* backwards, line 231 */
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 227 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 237 */
-            {   int m4 = z->l - z->c; (void)m4; /* and, line 233 */
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 229 */
-                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 229 */
+    {   int m2 = z->l - z->c; (void)m2; /* do, line 233 */
+        {   int m3 = z->l - z->c; (void)m3; /* or, line 243 */
+            {   int m4 = z->l - z->c; (void)m4; /* and, line 239 */
+                {   int m5 = z->l - z->c; (void)m5; /* or, line 235 */
+                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */
                         if (ret == 0) goto lab6;
                         if (ret < 0) return ret;
                     }
                     goto lab5;
                 lab6:
                     z->c = z->l - m5;
-                    {   int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 230 */
+                    {   int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 236 */
                         if (ret == 0) goto lab7;
                         if (ret < 0) return ret;
                     }
                     goto lab5;
                 lab7:
                     z->c = z->l - m5;
-                    {   int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */
+                    {   int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */
                         if (ret == 0) goto lab4;
                         if (ret < 0) return ret;
                     }
                 }
             lab5:
                 z->c = z->l - m4;
-                {   int m6 = z->l - z->c; (void)m6; /* try, line 234 */
-                    z->ket = z->c; /* [, line 234 */
-                    {   int m7 = z->l - z->c; (void)m7; /* or, line 234 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 234 */
+                {   int m6 = z->l - z->c; (void)m6; /* try, line 240 */
+                    z->ket = z->c; /* [, line 240 */
+                    {   int m7 = z->l - z->c; (void)m7; /* or, line 240 */
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 240 */
                         z->c--;
-                        z->bra = z->c; /* ], line 234 */
-                        {   int ret = slice_from_s(z, 1, s_29); /* <-, line 234 */
+                        z->bra = z->c; /* ], line 240 */
+                        {   int ret = slice_from_s(z, 1, s_33); /* <-, line 240 */
                             if (ret < 0) return ret;
                         }
                         goto lab9;
                     lab10:
                         z->c = z->l - m7;
-                        if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab8; } /* literal, line 235 */
+                        if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab8; } /* literal, line 241 */
                         z->c--;
-                        z->bra = z->c; /* ], line 235 */
-                        {   int ret = slice_from_s(z, 1, s_30); /* <-, line 235 */
+                        z->bra = z->c; /* ], line 241 */
+                        {   int ret = slice_from_s(z, 1, s_34); /* <-, line 241 */
                             if (ret < 0) return ret;
                         }
                     }
@@ -1168,7 +1220,7 @@ lab1:
             goto lab3;
         lab4:
             z->c = z->l - m3;
-            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 238 */
+            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */
                 if (ret == 0) goto lab2;
                 if (ret < 0) return ret;
             }
@@ -1177,16 +1229,16 @@ lab1:
     lab2:
         z->c = z->l - m2;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 243 */
-        {   int ret = r_un_double(z); /* call un_double, line 243 */
+    {   int m8 = z->l - z->c; (void)m8; /* do, line 249 */
+        {   int ret = r_un_double(z); /* call un_double, line 249 */
             if (ret == 0) goto lab11;
             if (ret < 0) return ret;
         }
     lab11:
         z->c = z->l - m8;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 244 */
-        {   int ret = r_un_accent(z); /* call un_accent, line 244 */
+    {   int m9 = z->l - z->c; (void)m9; /* do, line 250 */
+        {   int ret = r_un_accent(z); /* call un_accent, line 250 */
             if (ret == 0) goto lab12;
             if (ret < 0) return ret;
         }
@@ -1194,8 +1246,8 @@ lab1:
         z->c = z->l - m9;
     }
     z->c = z->lb;
-    {   int c10 = z->c; /* do, line 246 */
-        {   int ret = r_postlude(z); /* call postlude, line 246 */
+    {   int c10 = z->c; /* do, line 252 */
+        {   int ret = r_postlude(z); /* call postlude, line 252 */
             if (ret == 0) goto lab13;
             if (ret < 0) return ret;
         }
index 4f7e3016bb2afa7a32eaaaf5f8f991ec1bd9c916..901491c7b6e30f1c4d395e906b29ba17bbd0a4f3 100644 (file)
@@ -124,6 +124,8 @@ static const struct among a_2[5] =
 /*  4 */ { 5, s_2_4, -1, 2, 0}
 };
 
+static const unsigned char g_c[] = { 119, 223, 119, 1 };
+
 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
 
 static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
@@ -133,25 +135,25 @@ static const symbol s_1[] = { 'i', 'g' };
 static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' };
 
 static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $p1 = <integer expression>, line 31 */
-    {   int c_test1 = z->c; /* test, line 33 */
-        {   int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 33 */
+    z->I[0] = z->l; /* $p1 = <integer expression>, line 33 */
+    {   int c_test1 = z->c; /* test, line 35 */
+        {   int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 35 */
             if (ret < 0) return 0;
             z->c = ret;
         }
-        z->I[1] = z->c; /* setmark x, line 33 */
+        z->I[1] = z->c; /* setmark x, line 35 */
         z->c = c_test1;
     }
-    if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 34 */
-    {    /* gopast */ /* non v, line 34 */
+    if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */
+    {    /* gopast */ /* non v, line 36 */
         int ret = in_grouping_U(z, g_v, 97, 248, 1);
         if (ret < 0) return 0;
         z->c += ret;
     }
-    z->I[0] = z->c; /* setmark p1, line 34 */
-    /* try, line 35 */
-    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 35 */
-    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 35 */
+    z->I[0] = z->c; /* setmark p1, line 36 */
+    /* try, line 37 */
+    if (!(z->I[0] < z->I[1])) goto lab0; /* $(<integer expression> < <integer expression>), line 37 */
+    z->I[0] = z->I[1]; /* $p1 = <integer expression>, line 37 */
 lab0:
     return 1;
 }
@@ -159,25 +161,25 @@ lab0:
 static int r_main_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 41 */
+    {   int mlimit1; /* setlimit, line 43 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 41 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 41 */
+        z->ket = z->c; /* [, line 43 */
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */
         among_var = find_among_b(z, a_0, 32);
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 41 */
+        z->bra = z->c; /* ], line 43 */
         z->lb = mlimit1;
     }
-    switch (among_var) { /* among, line 42 */
+    switch (among_var) { /* among, line 44 */
         case 1:
-            {   int ret = slice_del(z); /* delete, line 48 */
+            {   int ret = slice_del(z); /* delete, line 50 */
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 50 */
-            {   int ret = slice_del(z); /* delete, line 50 */
+            if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */
+            {   int ret = slice_del(z); /* delete, line 52 */
                 if (ret < 0) return ret;
             }
             break;
@@ -186,25 +188,25 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */
 }
 
 static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 55 */
+    {   int m_test1 = z->l - z->c; /* test, line 57 */
 
-        {   int mlimit2; /* setlimit, line 56 */
+        {   int mlimit2; /* setlimit, line 58 */
             if (z->c < z->I[0]) return 0;
             mlimit2 = z->lb; z->lb = z->I[0];
-            z->ket = z->c; /* [, line 56 */
-            if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 56 */
+            z->ket = z->c; /* [, line 58 */
+            if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */
             if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; }
-            z->bra = z->c; /* ], line 56 */
+            z->bra = z->c; /* ], line 58 */
             z->lb = mlimit2;
         }
         z->c = z->l - m_test1;
     }
     {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
         if (ret < 0) return 0;
-        z->c = ret; /* next, line 62 */
+        z->c = ret; /* next, line 64 */
     }
-    z->bra = z->c; /* ], line 62 */
-    {   int ret = slice_del(z); /* delete, line 62 */
+    z->bra = z->c; /* ], line 64 */
+    {   int ret = slice_del(z); /* delete, line 64 */
         if (ret < 0) return ret;
     }
     return 1;
@@ -212,35 +214,35 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */
 
 static int r_other_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* do, line 66 */
-        z->ket = z->c; /* [, line 66 */
-        if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 66 */
-        z->bra = z->c; /* ], line 66 */
-        if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 66 */
-        {   int ret = slice_del(z); /* delete, line 66 */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 68 */
+        z->ket = z->c; /* [, line 68 */
+        if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */
+        z->bra = z->c; /* ], line 68 */
+        if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */
+        {   int ret = slice_del(z); /* delete, line 68 */
             if (ret < 0) return ret;
         }
     lab0:
         z->c = z->l - m1;
     }
 
-    {   int mlimit2; /* setlimit, line 67 */
+    {   int mlimit2; /* setlimit, line 69 */
         if (z->c < z->I[0]) return 0;
         mlimit2 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 67 */
-        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 67 */
+        z->ket = z->c; /* [, line 69 */
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */
         among_var = find_among_b(z, a_2, 5);
         if (!(among_var)) { z->lb = mlimit2; return 0; }
-        z->bra = z->c; /* ], line 67 */
+        z->bra = z->c; /* ], line 69 */
         z->lb = mlimit2;
     }
-    switch (among_var) { /* among, line 68 */
+    switch (among_var) { /* among, line 70 */
         case 1:
-            {   int ret = slice_del(z); /* delete, line 70 */
+            {   int ret = slice_del(z); /* delete, line 72 */
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* do, line 70 */
-                {   int ret = r_consonant_pair(z); /* call consonant_pair, line 70 */
+            {   int m3 = z->l - z->c; (void)m3; /* do, line 72 */
+                {   int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */
                     if (ret == 0) goto lab1;
                     if (ret < 0) return ret;
                 }
@@ -249,7 +251,7 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 2:
-            {   int ret = slice_from_s(z, 4, s_2); /* <-, line 72 */
+            {   int ret = slice_from_s(z, 4, s_2); /* <-, line 74 */
                 if (ret < 0) return ret;
             }
             break;
@@ -259,60 +261,60 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */
 
 static int r_undouble(struct SN_env * z) { /* backwardmode */
 
-    {   int mlimit1; /* setlimit, line 76 */
+    {   int mlimit1; /* setlimit, line 78 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 76 */
-        if (out_grouping_b_U(z, g_v, 97, 248, 0)) { z->lb = mlimit1; return 0; } /* non v, line 76 */
-        z->bra = z->c; /* ], line 76 */
-        z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 76 */
-        if (z->S[0] == 0) return -1; /* -> ch, line 76 */
+        z->ket = z->c; /* [, line 78 */
+        if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */
+        z->bra = z->c; /* ], line 78 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */
+        if (z->S[0] == 0) return -1; /* -> ch, line 78 */
         z->lb = mlimit1;
     }
-    if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 77 */
-    {   int ret = slice_del(z); /* delete, line 78 */
+    if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */
+    {   int ret = slice_del(z); /* delete, line 80 */
         if (ret < 0) return ret;
     }
     return 1;
 }
 
 extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 84 */
-        {   int ret = r_mark_regions(z); /* call mark_regions, line 84 */
+    {   int c1 = z->c; /* do, line 86 */
+        {   int ret = r_mark_regions(z); /* call mark_regions, line 86 */
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
     lab0:
         z->c = c1;
     }
-    z->lb = z->c; z->c = z->l; /* backwards, line 85 */
+    z->lb = z->c; z->c = z->l; /* backwards, line 87 */
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 86 */
-        {   int ret = r_main_suffix(z); /* call main_suffix, line 86 */
+    {   int m2 = z->l - z->c; (void)m2; /* do, line 88 */
+        {   int ret = r_main_suffix(z); /* call main_suffix, line 88 */
             if (ret == 0) goto lab1;
             if (ret < 0) return ret;
         }
     lab1:
         z->c = z->l - m2;
     }
-    {   int m3 = z->l - z->c; (void)m3; /* do, line 87 */
-        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 87 */
+    {   int m3 = z->l - z->c; (void)m3; /* do, line 89 */
+        {   int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */
             if (ret == 0) goto lab2;
             if (ret < 0) return ret;
         }
     lab2:
         z->c = z->l - m3;
     }
-    {   int m4 = z->l - z->c; (void)m4; /* do, line 88 */
-        {   int ret = r_other_suffix(z); /* call other_suffix, line 88 */
+    {   int m4 = z->l - z->c; (void)m4; /* do, line 90 */
+        {   int ret = r_other_suffix(z); /* call other_suffix, line 90 */
             if (ret == 0) goto lab3;
             if (ret < 0) return ret;
         }
     lab3:
         z->c = z->l - m4;
     }
-    {   int m5 = z->l - z->c; (void)m5; /* do, line 89 */
-        {   int ret = r_undouble(z); /* call undouble, line 89 */
+    {   int m5 = z->l - z->c; (void)m5; /* do, line 91 */
+        {   int ret = r_undouble(z); /* call undouble, line 91 */
             if (ret == 0) goto lab4;
             if (ret < 0) return ret;
         }
index 80564a8e36f422dee3c9b56390f02f6f80eaf4b9..9e12865c678925e9d41779a1205f73b230340b56 100644 (file)
@@ -45,16 +45,22 @@ static const struct among a_0[3] =
 /*  2 */ { 3, s_0_2, -1, -1, 0}
 };
 
-static const symbol s_1_1[1] = { 'I' };
-static const symbol s_1_2[1] = { 'U' };
-static const symbol s_1_3[1] = { 'Y' };
+static const symbol s_1_1[1] = { 'H' };
+static const symbol s_1_2[2] = { 'H', 'e' };
+static const symbol s_1_3[2] = { 'H', 'i' };
+static const symbol s_1_4[1] = { 'I' };
+static const symbol s_1_5[1] = { 'U' };
+static const symbol s_1_6[1] = { 'Y' };
 
-static const struct among a_1[4] =
+static const struct among a_1[7] =
 {
-/*  0 */ { 0, 0, -1, 4, 0},
-/*  1 */ { 1, s_1_1, 0, 1, 0},
-/*  2 */ { 1, s_1_2, 0, 2, 0},
-/*  3 */ { 1, s_1_3, 0, 3, 0}
+/*  0 */ { 0, 0, -1, 7, 0},
+/*  1 */ { 1, s_1_1, 0, 6, 0},
+/*  2 */ { 2, s_1_2, 1, 4, 0},
+/*  3 */ { 2, s_1_3, 1, 5, 0},
+/*  4 */ { 1, s_1_4, 0, 1, 0},
+/*  5 */ { 1, s_1_5, 0, 2, 0},
+/*  6 */ { 1, s_1_6, 0, 3, 0}
 };
 
 static const symbol s_2_0[3] = { 'i', 'q', 'U' };
@@ -338,17 +344,15 @@ static const symbol s_7_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
 static const symbol s_7_3[3] = { 'i', 'o', 'n' };
 static const symbol s_7_4[3] = { 'I', 'e', 'r' };
 static const symbol s_7_5[3] = { 'i', 'e', 'r' };
-static const symbol s_7_6[2] = { 0xC3, 0xAB };
 
-static const struct among a_7[7] =
+static const struct among a_7[6] =
 {
 /*  0 */ { 1, s_7_0, -1, 3, 0},
 /*  1 */ { 5, s_7_1, 0, 2, 0},
 /*  2 */ { 5, s_7_2, 0, 2, 0},
 /*  3 */ { 3, s_7_3, -1, 1, 0},
 /*  4 */ { 3, s_7_4, -1, 2, 0},
-/*  5 */ { 3, s_7_5, -1, 2, 0},
-/*  6 */ { 2, s_7_6, -1, 4, 0}
+/*  5 */ { 3, s_7_5, -1, 2, 0}
 };
 
 static const symbol s_8_0[3] = { 'e', 'l', 'l' };
@@ -373,37 +377,43 @@ static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0
 static const symbol s_0[] = { 'U' };
 static const symbol s_1[] = { 'I' };
 static const symbol s_2[] = { 'Y' };
-static const symbol s_3[] = { 'Y' };
-static const symbol s_4[] = { 'U' };
-static const symbol s_5[] = { 'i' };
-static const symbol s_6[] = { 'u' };
-static const symbol s_7[] = { 'y' };
-static const symbol s_8[] = { 'i', 'c' };
-static const symbol s_9[] = { 'i', 'q', 'U' };
-static const symbol s_10[] = { 'l', 'o', 'g' };
-static const symbol s_11[] = { 'u' };
-static const symbol s_12[] = { 'e', 'n', 't' };
-static const symbol s_13[] = { 'a', 't' };
-static const symbol s_14[] = { 'e', 'u', 'x' };
-static const symbol s_15[] = { 'i' };
-static const symbol s_16[] = { 'a', 'b', 'l' };
-static const symbol s_17[] = { 'i', 'q', 'U' };
-static const symbol s_18[] = { 'a', 't' };
-static const symbol s_19[] = { 'i', 'c' };
-static const symbol s_20[] = { 'i', 'q', 'U' };
-static const symbol s_21[] = { 'e', 'a', 'u' };
-static const symbol s_22[] = { 'a', 'l' };
-static const symbol s_23[] = { 'e', 'u', 'x' };
-static const symbol s_24[] = { 'a', 'n', 't' };
-static const symbol s_25[] = { 'e', 'n', 't' };
-static const symbol s_26[] = { 'i' };
-static const symbol s_27[] = { 'g', 'u' };
-static const symbol s_28[] = { 0xC3, 0xA9 };
-static const symbol s_29[] = { 0xC3, 0xA8 };
-static const symbol s_30[] = { 'e' };
-static const symbol s_31[] = { 'i' };
-static const symbol s_32[] = { 0xC3, 0xA7 };
-static const symbol s_33[] = { 'c' };
+static const symbol s_3[] = { 0xC3, 0xAB };
+static const symbol s_4[] = { 'H', 'e' };
+static const symbol s_5[] = { 0xC3, 0xAF };
+static const symbol s_6[] = { 'H', 'i' };
+static const symbol s_7[] = { 'Y' };
+static const symbol s_8[] = { 'U' };
+static const symbol s_9[] = { 'i' };
+static const symbol s_10[] = { 'u' };
+static const symbol s_11[] = { 'y' };
+static const symbol s_12[] = { 0xC3, 0xAB };
+static const symbol s_13[] = { 0xC3, 0xAF };
+static const symbol s_14[] = { 'i', 'c' };
+static const symbol s_15[] = { 'i', 'q', 'U' };
+static const symbol s_16[] = { 'l', 'o', 'g' };
+static const symbol s_17[] = { 'u' };
+static const symbol s_18[] = { 'e', 'n', 't' };
+static const symbol s_19[] = { 'a', 't' };
+static const symbol s_20[] = { 'e', 'u', 'x' };
+static const symbol s_21[] = { 'i' };
+static const symbol s_22[] = { 'a', 'b', 'l' };
+static const symbol s_23[] = { 'i', 'q', 'U' };
+static const symbol s_24[] = { 'a', 't' };
+static const symbol s_25[] = { 'i', 'c' };
+static const symbol s_26[] = { 'i', 'q', 'U' };
+static const symbol s_27[] = { 'e', 'a', 'u' };
+static const symbol s_28[] = { 'a', 'l' };
+static const symbol s_29[] = { 'e', 'u', 'x' };
+static const symbol s_30[] = { 'a', 'n', 't' };
+static const symbol s_31[] = { 'e', 'n', 't' };
+static const symbol s_32[] = { 'H', 'i' };
+static const symbol s_33[] = { 'i' };
+static const symbol s_34[] = { 0xC3, 0xA9 };
+static const symbol s_35[] = { 0xC3, 0xA8 };
+static const symbol s_36[] = { 'e' };
+static const symbol s_37[] = { 'i' };
+static const symbol s_38[] = { 0xC3, 0xA7 };
+static const symbol s_39[] = { 'c' };
 
 static int r_prelude(struct SN_env * z) { /* forwardmode */
     while(1) { /* repeat, line 38 */
@@ -446,23 +456,41 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
             lab3:
                 z->c = c3;
                 z->bra = z->c; /* [, line 45 */
-                if (z->c == z->l || z->p[z->c] != 'y') goto lab7; /* literal, line 45 */
-                z->c++;
+                if (!(eq_s(z, 2, s_3))) goto lab7; /* literal, line 45 */
                 z->ket = z->c; /* ], line 45 */
-                if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab7; /* grouping v, line 45 */
-                {   int ret = slice_from_s(z, 1, s_3); /* <-, line 45 */
+                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 45 */
                     if (ret < 0) return ret;
                 }
                 goto lab2;
             lab7:
                 z->c = c3;
-                if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 47 */
-                z->c++;
                 z->bra = z->c; /* [, line 47 */
-                if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 47 */
-                z->c++;
+                if (!(eq_s(z, 2, s_5))) goto lab8; /* literal, line 47 */
                 z->ket = z->c; /* ], line 47 */
-                {   int ret = slice_from_s(z, 1, s_4); /* <-, line 47 */
+                {   int ret = slice_from_s(z, 2, s_6); /* <-, line 47 */
+                    if (ret < 0) return ret;
+                }
+                goto lab2;
+            lab8:
+                z->c = c3;
+                z->bra = z->c; /* [, line 49 */
+                if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */
+                z->c++;
+                z->ket = z->c; /* ], line 49 */
+                if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */
+                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 49 */
+                    if (ret < 0) return ret;
+                }
+                goto lab2;
+            lab9:
+                z->c = c3;
+                if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */
+                z->c++;
+                z->bra = z->c; /* [, line 51 */
+                if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */
+                z->c++;
+                z->ket = z->c; /* ], line 51 */
+                {   int ret = slice_from_s(z, 1, s_8); /* <-, line 51 */
                     if (ret < 0) return ret;
                 }
             }
@@ -485,63 +513,63 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */
 }
 
 static int r_mark_regions(struct SN_env * z) { /* forwardmode */
-    z->I[0] = z->l; /* $pV = <integer expression>, line 52 */
-    z->I[1] = z->l; /* $p1 = <integer expression>, line 53 */
-    z->I[2] = z->l; /* $p2 = <integer expression>, line 54 */
-    {   int c1 = z->c; /* do, line 56 */
-        {   int c2 = z->c; /* or, line 58 */
-            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
-            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 57 */
+    z->I[0] = z->l; /* $pV = <integer expression>, line 56 */
+    z->I[1] = z->l; /* $p1 = <integer expression>, line 57 */
+    z->I[2] = z->l; /* $p2 = <integer expression>, line 58 */
+    {   int c1 = z->c; /* do, line 60 */
+        {   int c2 = z->c; /* or, line 62 */
+            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
+            if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */
             {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
                 if (ret < 0) goto lab2;
-                z->c = ret; /* next, line 57 */
+                z->c = ret; /* next, line 61 */
             }
             goto lab1;
         lab2:
             z->c = c2;
-            if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 59 */
+            if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 63 */
             if (!(find_among(z, a_0, 3))) goto lab3;
             goto lab1;
         lab3:
             z->c = c2;
             {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
                 if (ret < 0) goto lab0;
-                z->c = ret; /* next, line 66 */
+                z->c = ret; /* next, line 70 */
             }
-            {    /* gopast */ /* grouping v, line 66 */
+            {    /* gopast */ /* grouping v, line 70 */
                 int ret = out_grouping_U(z, g_v, 97, 251, 1);
                 if (ret < 0) goto lab0;
                 z->c += ret;
             }
         }
     lab1:
-        z->I[0] = z->c; /* setmark pV, line 67 */
+        z->I[0] = z->c; /* setmark pV, line 71 */
     lab0:
         z->c = c1;
     }
-    {   int c3 = z->c; /* do, line 69 */
-        {    /* gopast */ /* grouping v, line 70 */
+    {   int c3 = z->c; /* do, line 73 */
+        {    /* gopast */ /* grouping v, line 74 */
             int ret = out_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 70 */
+        {    /* gopast */ /* non v, line 74 */
             int ret = in_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[1] = z->c; /* setmark p1, line 70 */
-        {    /* gopast */ /* grouping v, line 71 */
+        z->I[1] = z->c; /* setmark p1, line 74 */
+        {    /* gopast */ /* grouping v, line 75 */
             int ret = out_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        {    /* gopast */ /* non v, line 71 */
+        {    /* gopast */ /* non v, line 75 */
             int ret = in_grouping_U(z, g_v, 97, 251, 1);
             if (ret < 0) goto lab4;
             z->c += ret;
         }
-        z->I[2] = z->c; /* setmark p2, line 71 */
+        z->I[2] = z->c; /* setmark p2, line 75 */
     lab4:
         z->c = c3;
     }
@@ -550,33 +578,48 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */
 
 static int r_postlude(struct SN_env * z) { /* forwardmode */
     int among_var;
-    while(1) { /* repeat, line 75 */
+    while(1) { /* repeat, line 79 */
         int c1 = z->c;
-        z->bra = z->c; /* [, line 77 */
-        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else /* substring, line 77 */
-        among_var = find_among(z, a_1, 4);
+        z->bra = z->c; /* [, line 81 */
+        if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */
+        among_var = find_among(z, a_1, 7);
         if (!(among_var)) goto lab0;
-        z->ket = z->c; /* ], line 77 */
-        switch (among_var) { /* among, line 77 */
+        z->ket = z->c; /* ], line 81 */
+        switch (among_var) { /* among, line 81 */
             case 1:
-                {   int ret = slice_from_s(z, 1, s_5); /* <-, line 78 */
+                {   int ret = slice_from_s(z, 1, s_9); /* <-, line 82 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_6); /* <-, line 79 */
+                {   int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_from_s(z, 1, s_7); /* <-, line 80 */
+                {   int ret = slice_from_s(z, 1, s_11); /* <-, line 84 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 4:
+                {   int ret = slice_from_s(z, 2, s_12); /* <-, line 85 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                {   int ret = slice_from_s(z, 2, s_13); /* <-, line 86 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 6:
+                {   int ret = slice_del(z); /* delete, line 87 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 7:
                 {   int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
                     if (ret < 0) goto lab0;
-                    z->c = ret; /* next, line 81 */
+                    z->c = ret; /* next, line 88 */
                 }
                 break;
         }
@@ -589,58 +632,58 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */
 }
 
 static int r_RV(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 87 */
+    if (!(z->I[0] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 94 */
     return 1;
 }
 
 static int r_R1(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 88 */
+    if (!(z->I[1] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 95 */
     return 1;
 }
 
 static int r_R2(struct SN_env * z) { /* backwardmode */
-    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 89 */
+    if (!(z->I[2] <= z->c)) return 0; /* $(<integer expression> <= <integer expression>), line 96 */
     return 1;
 }
 
 static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
-    z->ket = z->c; /* [, line 92 */
-    among_var = find_among_b(z, a_4, 43); /* substring, line 92 */
+    z->ket = z->c; /* [, line 99 */
+    among_var = find_among_b(z, a_4, 43); /* substring, line 99 */
     if (!(among_var)) return 0;
-    z->bra = z->c; /* ], line 92 */
-    switch (among_var) { /* among, line 92 */
+    z->bra = z->c; /* ], line 99 */
+    switch (among_var) { /* among, line 99 */
         case 1:
-            {   int ret = r_R2(z); /* call R2, line 96 */
+            {   int ret = r_R2(z); /* call R2, line 103 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 96 */
+            {   int ret = slice_del(z); /* delete, line 103 */
                 if (ret < 0) return ret;
             }
             break;
         case 2:
-            {   int ret = r_R2(z); /* call R2, line 99 */
+            {   int ret = r_R2(z); /* call R2, line 106 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 99 */
+            {   int ret = slice_del(z); /* delete, line 106 */
                 if (ret < 0) return ret;
             }
-            {   int m1 = z->l - z->c; (void)m1; /* try, line 100 */
-                z->ket = z->c; /* [, line 100 */
-                if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m1; goto lab0; } /* literal, line 100 */
-                z->bra = z->c; /* ], line 100 */
-                {   int m2 = z->l - z->c; (void)m2; /* or, line 100 */
-                    {   int ret = r_R2(z); /* call R2, line 100 */
+            {   int m1 = z->l - z->c; (void)m1; /* try, line 107 */
+                z->ket = z->c; /* [, line 107 */
+                if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */
+                z->bra = z->c; /* ], line 107 */
+                {   int m2 = z->l - z->c; (void)m2; /* or, line 107 */
+                    {   int ret = r_R2(z); /* call R2, line 107 */
                         if (ret == 0) goto lab2;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 100 */
+                    {   int ret = slice_del(z); /* delete, line 107 */
                         if (ret < 0) return ret;
                     }
                     goto lab1;
                 lab2:
                     z->c = z->l - m2;
-                    {   int ret = slice_from_s(z, 3, s_9); /* <-, line 100 */
+                    {   int ret = slice_from_s(z, 3, s_15); /* <-, line 107 */
                         if (ret < 0) return ret;
                     }
                 }
@@ -650,98 +693,98 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 3:
-            {   int ret = r_R2(z); /* call R2, line 104 */
+            {   int ret = r_R2(z); /* call R2, line 111 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_10); /* <-, line 104 */
+            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 111 */
                 if (ret < 0) return ret;
             }
             break;
         case 4:
-            {   int ret = r_R2(z); /* call R2, line 107 */
+            {   int ret = r_R2(z); /* call R2, line 114 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 1, s_11); /* <-, line 107 */
+            {   int ret = slice_from_s(z, 1, s_17); /* <-, line 114 */
                 if (ret < 0) return ret;
             }
             break;
         case 5:
-            {   int ret = r_R2(z); /* call R2, line 110 */
+            {   int ret = r_R2(z); /* call R2, line 117 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_12); /* <-, line 110 */
+            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 117 */
                 if (ret < 0) return ret;
             }
             break;
         case 6:
-            {   int ret = r_RV(z); /* call RV, line 114 */
+            {   int ret = r_RV(z); /* call RV, line 121 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 114 */
+            {   int ret = slice_del(z); /* delete, line 121 */
                 if (ret < 0) return ret;
             }
-            {   int m3 = z->l - z->c; (void)m3; /* try, line 115 */
-                z->ket = z->c; /* [, line 116 */
-                among_var = find_among_b(z, a_2, 6); /* substring, line 116 */
+            {   int m3 = z->l - z->c; (void)m3; /* try, line 122 */
+                z->ket = z->c; /* [, line 123 */
+                among_var = find_among_b(z, a_2, 6); /* substring, line 123 */
                 if (!(among_var)) { z->c = z->l - m3; goto lab3; }
-                z->bra = z->c; /* ], line 116 */
-                switch (among_var) { /* among, line 116 */
+                z->bra = z->c; /* ], line 123 */
+                switch (among_var) { /* among, line 123 */
                     case 1:
-                        {   int ret = r_R2(z); /* call R2, line 117 */
+                        {   int ret = r_R2(z); /* call R2, line 124 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 117 */
+                        {   int ret = slice_del(z); /* delete, line 124 */
                             if (ret < 0) return ret;
                         }
-                        z->ket = z->c; /* [, line 117 */
-                        if (!(eq_s_b(z, 2, s_13))) { z->c = z->l - m3; goto lab3; } /* literal, line 117 */
-                        z->bra = z->c; /* ], line 117 */
-                        {   int ret = r_R2(z); /* call R2, line 117 */
+                        z->ket = z->c; /* [, line 124 */
+                        if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */
+                        z->bra = z->c; /* ], line 124 */
+                        {   int ret = r_R2(z); /* call R2, line 124 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 117 */
+                        {   int ret = slice_del(z); /* delete, line 124 */
                             if (ret < 0) return ret;
                         }
                         break;
                     case 2:
-                        {   int m4 = z->l - z->c; (void)m4; /* or, line 118 */
-                            {   int ret = r_R2(z); /* call R2, line 118 */
+                        {   int m4 = z->l - z->c; (void)m4; /* or, line 125 */
+                            {   int ret = r_R2(z); /* call R2, line 125 */
                                 if (ret == 0) goto lab5;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 118 */
+                            {   int ret = slice_del(z); /* delete, line 125 */
                                 if (ret < 0) return ret;
                             }
                             goto lab4;
                         lab5:
                             z->c = z->l - m4;
-                            {   int ret = r_R1(z); /* call R1, line 118 */
+                            {   int ret = r_R1(z); /* call R1, line 125 */
                                 if (ret == 0) { z->c = z->l - m3; goto lab3; }
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 118 */
+                            {   int ret = slice_from_s(z, 3, s_20); /* <-, line 125 */
                                 if (ret < 0) return ret;
                             }
                         }
                     lab4:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 120 */
+                        {   int ret = r_R2(z); /* call R2, line 127 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 120 */
+                        {   int ret = slice_del(z); /* delete, line 127 */
                             if (ret < 0) return ret;
                         }
                         break;
                     case 4:
-                        {   int ret = r_RV(z); /* call RV, line 122 */
+                        {   int ret = r_RV(z); /* call RV, line 129 */
                             if (ret == 0) { z->c = z->l - m3; goto lab3; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_from_s(z, 1, s_15); /* <-, line 122 */
+                        {   int ret = slice_from_s(z, 1, s_21); /* <-, line 129 */
                             if (ret < 0) return ret;
                         }
                         break;
@@ -751,61 +794,61 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 7:
-            {   int ret = r_R2(z); /* call R2, line 129 */
+            {   int ret = r_R2(z); /* call R2, line 136 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 129 */
+            {   int ret = slice_del(z); /* delete, line 136 */
                 if (ret < 0) return ret;
             }
-            {   int m5 = z->l - z->c; (void)m5; /* try, line 130 */
-                z->ket = z->c; /* [, line 131 */
-                if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 131 */
+            {   int m5 = z->l - z->c; (void)m5; /* try, line 137 */
+                z->ket = z->c; /* [, line 138 */
+                if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 138 */
                 among_var = find_among_b(z, a_3, 3);
                 if (!(among_var)) { z->c = z->l - m5; goto lab6; }
-                z->bra = z->c; /* ], line 131 */
-                switch (among_var) { /* among, line 131 */
+                z->bra = z->c; /* ], line 138 */
+                switch (among_var) { /* among, line 138 */
                     case 1:
-                        {   int m6 = z->l - z->c; (void)m6; /* or, line 132 */
-                            {   int ret = r_R2(z); /* call R2, line 132 */
+                        {   int m6 = z->l - z->c; (void)m6; /* or, line 139 */
+                            {   int ret = r_R2(z); /* call R2, line 139 */
                                 if (ret == 0) goto lab8;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 132 */
+                            {   int ret = slice_del(z); /* delete, line 139 */
                                 if (ret < 0) return ret;
                             }
                             goto lab7;
                         lab8:
                             z->c = z->l - m6;
-                            {   int ret = slice_from_s(z, 3, s_16); /* <-, line 132 */
+                            {   int ret = slice_from_s(z, 3, s_22); /* <-, line 139 */
                                 if (ret < 0) return ret;
                             }
                         }
                     lab7:
                         break;
                     case 2:
-                        {   int m7 = z->l - z->c; (void)m7; /* or, line 133 */
-                            {   int ret = r_R2(z); /* call R2, line 133 */
+                        {   int m7 = z->l - z->c; (void)m7; /* or, line 140 */
+                            {   int ret = r_R2(z); /* call R2, line 140 */
                                 if (ret == 0) goto lab10;
                                 if (ret < 0) return ret;
                             }
-                            {   int ret = slice_del(z); /* delete, line 133 */
+                            {   int ret = slice_del(z); /* delete, line 140 */
                                 if (ret < 0) return ret;
                             }
                             goto lab9;
                         lab10:
                             z->c = z->l - m7;
-                            {   int ret = slice_from_s(z, 3, s_17); /* <-, line 133 */
+                            {   int ret = slice_from_s(z, 3, s_23); /* <-, line 140 */
                                 if (ret < 0) return ret;
                             }
                         }
                     lab9:
                         break;
                     case 3:
-                        {   int ret = r_R2(z); /* call R2, line 134 */
+                        {   int ret = r_R2(z); /* call R2, line 141 */
                             if (ret == 0) { z->c = z->l - m5; goto lab6; }
                             if (ret < 0) return ret;
                         }
-                        {   int ret = slice_del(z); /* delete, line 134 */
+                        {   int ret = slice_del(z); /* delete, line 141 */
                             if (ret < 0) return ret;
                         }
                         break;
@@ -815,38 +858,38 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 8:
-            {   int ret = r_R2(z); /* call R2, line 141 */
+            {   int ret = r_R2(z); /* call R2, line 148 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_del(z); /* delete, line 141 */
+            {   int ret = slice_del(z); /* delete, line 148 */
                 if (ret < 0) return ret;
             }
-            {   int m8 = z->l - z->c; (void)m8; /* try, line 142 */
-                z->ket = z->c; /* [, line 142 */
-                if (!(eq_s_b(z, 2, s_18))) { z->c = z->l - m8; goto lab11; } /* literal, line 142 */
-                z->bra = z->c; /* ], line 142 */
-                {   int ret = r_R2(z); /* call R2, line 142 */
+            {   int m8 = z->l - z->c; (void)m8; /* try, line 149 */
+                z->ket = z->c; /* [, line 149 */
+                if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
+                z->bra = z->c; /* ], line 149 */
+                {   int ret = r_R2(z); /* call R2, line 149 */
                     if (ret == 0) { z->c = z->l - m8; goto lab11; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 142 */
+                {   int ret = slice_del(z); /* delete, line 149 */
                     if (ret < 0) return ret;
                 }
-                z->ket = z->c; /* [, line 142 */
-                if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m8; goto lab11; } /* literal, line 142 */
-                z->bra = z->c; /* ], line 142 */
-                {   int m9 = z->l - z->c; (void)m9; /* or, line 142 */
-                    {   int ret = r_R2(z); /* call R2, line 142 */
+                z->ket = z->c; /* [, line 149 */
+                if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */
+                z->bra = z->c; /* ], line 149 */
+                {   int m9 = z->l - z->c; (void)m9; /* or, line 149 */
+                    {   int ret = r_R2(z); /* call R2, line 149 */
                         if (ret == 0) goto lab13;
                         if (ret < 0) return ret;
                     }
-                    {   int ret = slice_del(z); /* delete, line 142 */
+                    {   int ret = slice_del(z); /* delete, line 149 */
                         if (ret < 0) return ret;
                     }
                     goto lab12;
                 lab13:
                     z->c = z->l - m9;
-                    {   int ret = slice_from_s(z, 3, s_20); /* <-, line 142 */
+                    {   int ret = slice_from_s(z, 3, s_26); /* <-, line 149 */
                         if (ret < 0) return ret;
                     }
                 }
@@ -856,78 +899,78 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
             }
             break;
         case 9:
-            {   int ret = slice_from_s(z, 3, s_21); /* <-, line 144 */
+            {   int ret = slice_from_s(z, 3, s_27); /* <-, line 151 */
                 if (ret < 0) return ret;
             }
             break;
         case 10:
-            {   int ret = r_R1(z); /* call R1, line 145 */
+            {   int ret = r_R1(z); /* call R1, line 152 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 2, s_22); /* <-, line 145 */
+            {   int ret = slice_from_s(z, 2, s_28); /* <-, line 152 */
                 if (ret < 0) return ret;
             }
             break;
         case 11:
-            {   int m10 = z->l - z->c; (void)m10; /* or, line 147 */
-                {   int ret = r_R2(z); /* call R2, line 147 */
+            {   int m10 = z->l - z->c; (void)m10; /* or, line 154 */
+                {   int ret = r_R2(z); /* call R2, line 154 */
                     if (ret == 0) goto lab15;
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 147 */
+                {   int ret = slice_del(z); /* delete, line 154 */
                     if (ret < 0) return ret;
                 }
                 goto lab14;
             lab15:
                 z->c = z->l - m10;
-                {   int ret = r_R1(z); /* call R1, line 147 */
+                {   int ret = r_R1(z); /* call R1, line 154 */
                     if (ret <= 0) return ret;
                 }
-                {   int ret = slice_from_s(z, 3, s_23); /* <-, line 147 */
+                {   int ret = slice_from_s(z, 3, s_29); /* <-, line 154 */
                     if (ret < 0) return ret;
                 }
             }
         lab14:
             break;
         case 12:
-            {   int ret = r_R1(z); /* call R1, line 150 */
+            {   int ret = r_R1(z); /* call R1, line 157 */
                 if (ret <= 0) return ret;
             }
-            if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* non v, line 150 */
-            {   int ret = slice_del(z); /* delete, line 150 */
+            if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */
+            {   int ret = slice_del(z); /* delete, line 157 */
                 if (ret < 0) return ret;
             }
             break;
         case 13:
-            {   int ret = r_RV(z); /* call RV, line 155 */
+            {   int ret = r_RV(z); /* call RV, line 162 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_24); /* <-, line 155 */
+            {   int ret = slice_from_s(z, 3, s_30); /* <-, line 162 */
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 155 */
+            return 0; /* fail, line 162 */
             break;
         case 14:
-            {   int ret = r_RV(z); /* call RV, line 156 */
+            {   int ret = r_RV(z); /* call RV, line 163 */
                 if (ret <= 0) return ret;
             }
-            {   int ret = slice_from_s(z, 3, s_25); /* <-, line 156 */
+            {   int ret = slice_from_s(z, 3, s_31); /* <-, line 163 */
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 156 */
+            return 0; /* fail, line 163 */
             break;
         case 15:
-            {   int m_test11 = z->l - z->c; /* test, line 158 */
-                if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 158 */
-                {   int ret = r_RV(z); /* call RV, line 158 */
+            {   int m_test11 = z->l - z->c; /* test, line 165 */
+                if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */
+                {   int ret = r_RV(z); /* call RV, line 165 */
                     if (ret <= 0) return ret;
                 }
                 z->c = z->l - m_test11;
             }
-            {   int ret = slice_del(z); /* delete, line 158 */
+            {   int ret = slice_del(z); /* delete, line 165 */
                 if (ret < 0) return ret;
             }
-            return 0; /* fail, line 158 */
+            return 0; /* fail, line 165 */
             break;
     }
     return 1;
@@ -935,15 +978,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */
 
 static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
 
-    {   int mlimit1; /* setlimit, line 163 */
+    {   int mlimit1; /* setlimit, line 170 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 164 */
-        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 164 */
+        z->ket = z->c; /* [, line 171 */
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 171 */
         if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 164 */
-        if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 170 */
-        {   int ret = slice_del(z); /* delete, line 170 */
+        z->bra = z->c; /* ], line 171 */
+        {   int m2 = z->l - z->c; (void)m2; /* not, line 177 */
+            if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */
+            z->c--;
+            { z->lb = mlimit1; return 0; }
+        lab0:
+            z->c = z->l - m2;
+        }
+        if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */
+        {   int ret = slice_del(z); /* delete, line 177 */
             if (ret < 0) return ret;
         }
         z->lb = mlimit1;
@@ -954,38 +1004,38 @@ static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */
 static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
 
-    {   int mlimit1; /* setlimit, line 174 */
+    {   int mlimit1; /* setlimit, line 181 */
         if (z->c < z->I[0]) return 0;
         mlimit1 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 175 */
-        among_var = find_among_b(z, a_6, 38); /* substring, line 175 */
+        z->ket = z->c; /* [, line 182 */
+        among_var = find_among_b(z, a_6, 38); /* substring, line 182 */
         if (!(among_var)) { z->lb = mlimit1; return 0; }
-        z->bra = z->c; /* ], line 175 */
-        switch (among_var) { /* among, line 175 */
+        z->bra = z->c; /* ], line 182 */
+        switch (among_var) { /* among, line 182 */
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 177 */
+                {   int ret = r_R2(z); /* call R2, line 184 */
                     if (ret == 0) { z->lb = mlimit1; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int ret = slice_del(z); /* delete, line 177 */
+                {   int ret = slice_del(z); /* delete, line 184 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_del(z); /* delete, line 185 */
+                {   int ret = slice_del(z); /* delete, line 192 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 190 */
+                {   int ret = slice_del(z); /* delete, line 197 */
                     if (ret < 0) return ret;
                 }
-                {   int m2 = z->l - z->c; (void)m2; /* try, line 191 */
-                    z->ket = z->c; /* [, line 191 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 191 */
+                {   int m2 = z->l - z->c; (void)m2; /* try, line 198 */
+                    z->ket = z->c; /* [, line 198 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */
                     z->c--;
-                    z->bra = z->c; /* ], line 191 */
-                    {   int ret = slice_del(z); /* delete, line 191 */
+                    z->bra = z->c; /* ], line 198 */
+                    {   int ret = slice_del(z); /* delete, line 198 */
                         if (ret < 0) return ret;
                     }
                 lab0:
@@ -1000,84 +1050,86 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */
 
 static int r_residual_suffix(struct SN_env * z) { /* backwardmode */
     int among_var;
-    {   int m1 = z->l - z->c; (void)m1; /* try, line 199 */
-        z->ket = z->c; /* [, line 199 */
-        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 199 */
+    {   int m1 = z->l - z->c; (void)m1; /* try, line 206 */
+        z->ket = z->c; /* [, line 206 */
+        if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */
         z->c--;
-        z->bra = z->c; /* ], line 199 */
-        {   int m_test2 = z->l - z->c; /* test, line 199 */
-            if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 199 */
+        z->bra = z->c; /* ], line 206 */
+        {   int m_test2 = z->l - z->c; /* test, line 206 */
+            {   int m3 = z->l - z->c; (void)m3; /* or, line 206 */
+                if (!(eq_s_b(z, 2, s_32))) goto lab2; /* literal, line 206 */
+                goto lab1;
+            lab2:
+                z->c = z->l - m3;
+                if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */
+            }
+        lab1:
             z->c = z->l - m_test2;
         }
-        {   int ret = slice_del(z); /* delete, line 199 */
+        {   int ret = slice_del(z); /* delete, line 206 */
             if (ret < 0) return ret;
         }
     lab0:
         ;
     }
 
-    {   int mlimit3; /* setlimit, line 200 */
+    {   int mlimit4; /* setlimit, line 207 */
         if (z->c < z->I[0]) return 0;
-        mlimit3 = z->lb; z->lb = z->I[0];
-        z->ket = z->c; /* [, line 201 */
-        among_var = find_among_b(z, a_7, 7); /* substring, line 201 */
-        if (!(among_var)) { z->lb = mlimit3; return 0; }
-        z->bra = z->c; /* ], line 201 */
-        switch (among_var) { /* among, line 201 */
+        mlimit4 = z->lb; z->lb = z->I[0];
+        z->ket = z->c; /* [, line 208 */
+        if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } /* substring, line 208 */
+        among_var = find_among_b(z, a_7, 6);
+        if (!(among_var)) { z->lb = mlimit4; return 0; }
+        z->bra = z->c; /* ], line 208 */
+        switch (among_var) { /* among, line 208 */
             case 1:
-                {   int ret = r_R2(z); /* call R2, line 202 */
-                    if (ret == 0) { z->lb = mlimit3; return 0; }
+                {   int ret = r_R2(z); /* call R2, line 209 */
+                    if (ret == 0) { z->lb = mlimit4; return 0; }
                     if (ret < 0) return ret;
                 }
-                {   int m4 = z->l - z->c; (void)m4; /* or, line 202 */
-                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; /* literal, line 202 */
+                {   int m5 = z->l - z->c; (void)m5; /* or, line 209 */
+                    if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */
                     z->c--;
-                    goto lab1;
-                lab2:
-                    z->c = z->l - m4;
-                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit3; return 0; } /* literal, line 202 */
+                    goto lab3;
+                lab4:
+                    z->c = z->l - m5;
+                    if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */
                     z->c--;
                 }
-            lab1:
-                {   int ret = slice_del(z); /* delete, line 202 */
+            lab3:
+                {   int ret = slice_del(z); /* delete, line 209 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 2:
-                {   int ret = slice_from_s(z, 1, s_26); /* <-, line 204 */
+                {   int ret = slice_from_s(z, 1, s_33); /* <-, line 211 */
                     if (ret < 0) return ret;
                 }
                 break;
             case 3:
-                {   int ret = slice_del(z); /* delete, line 205 */
-                    if (ret < 0) return ret;
-                }
-                break;
-            case 4:
-                if (!(eq_s_b(z, 2, s_27))) { z->lb = mlimit3; return 0; } /* literal, line 206 */
-                {   int ret = slice_del(z); /* delete, line 206 */
+                {   int ret = slice_del(z); /* delete, line 212 */
                     if (ret < 0) return ret;
                 }
                 break;
         }
-        z->lb = mlimit3;
+        z->lb = mlimit4;
     }
     return 1;
 }
 
 static int r_un_double(struct SN_env * z) { /* backwardmode */
-    {   int m_test1 = z->l - z->c; /* test, line 212 */
-        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 212 */
+    {   int m_test1 = z->l - z->c; /* test, line 218 */
+        if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */
         if (!(find_among_b(z, a_8, 5))) return 0;
         z->c = z->l - m_test1;
     }
-    z->ket = z->c; /* [, line 212 */
+    z->ket = z->c; /* [, line 218 */
     {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
         if (ret < 0) return 0;
-        z->c = ret; /* next, line 212 */
+        z->c = ret; /* next, line 218 */
     }
-    z->bra = z->c; /* ], line 212 */
-    {   int ret = slice_del(z); /* delete, line 212 */
+    z->bra = z->c; /* ], line 218 */
+    {   int ret = slice_del(z); /* delete, line 218 */
         if (ret < 0) return ret;
     }
     return 1;
@@ -1085,8 +1137,8 @@ static int r_un_double(struct SN_env * z) { /* backwardmode */
 
 static int r_un_accent(struct SN_env * z) { /* backwardmode */
     {   int i = 1;
-        while(1) { /* atleast, line 216 */
-            if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 216 */
+        while(1) { /* atleast, line 222 */
+            if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */
             i--;
             continue;
         lab0:
@@ -1094,79 +1146,79 @@ static int r_un_accent(struct SN_env * z) { /* backwardmode */
         }
         if (i > 0) return 0;
     }
-    z->ket = z->c; /* [, line 217 */
-    {   int m1 = z->l - z->c; (void)m1; /* or, line 217 */
-        if (!(eq_s_b(z, 2, s_28))) goto lab2; /* literal, line 217 */
+    z->ket = z->c; /* [, line 223 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 223 */
+        if (!(eq_s_b(z, 2, s_34))) goto lab2; /* literal, line 223 */
         goto lab1;
     lab2:
         z->c = z->l - m1;
-        if (!(eq_s_b(z, 2, s_29))) return 0; /* literal, line 217 */
+        if (!(eq_s_b(z, 2, s_35))) return 0; /* literal, line 223 */
     }
 lab1:
-    z->bra = z->c; /* ], line 217 */
-    {   int ret = slice_from_s(z, 1, s_30); /* <-, line 217 */
+    z->bra = z->c; /* ], line 223 */
+    {   int ret = slice_from_s(z, 1, s_36); /* <-, line 223 */
         if (ret < 0) return ret;
     }
     return 1;
 }
 
 extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */
-    {   int c1 = z->c; /* do, line 223 */
-        {   int ret = r_prelude(z); /* call prelude, line 223 */
+    {   int c1 = z->c; /* do, line 229 */
+        {   int ret = r_prelude(z); /* call prelude, line 229 */
             if (ret == 0) goto lab0;
             if (ret < 0) return ret;
         }
     lab0:
         z->c = c1;
     }
-    /* do, line 224 */
-    {   int ret = r_mark_regions(z); /* call mark_regions, line 224 */
+    /* do, line 230 */
+    {   int ret = r_mark_regions(z); /* call mark_regions, line 230 */
         if (ret == 0) goto lab1;
         if (ret < 0) return ret;
     }
 lab1:
-    z->lb = z->c; z->c = z->l; /* backwards, line 225 */
+    z->lb = z->c; z->c = z->l; /* backwards, line 231 */
 
-    {   int m2 = z->l - z->c; (void)m2; /* do, line 227 */
-        {   int m3 = z->l - z->c; (void)m3; /* or, line 237 */
-            {   int m4 = z->l - z->c; (void)m4; /* and, line 233 */
-                {   int m5 = z->l - z->c; (void)m5; /* or, line 229 */
-                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 229 */
+    {   int m2 = z->l - z->c; (void)m2; /* do, line 233 */
+        {   int m3 = z->l - z->c; (void)m3; /* or, line 243 */
+            {   int m4 = z->l - z->c; (void)m4; /* and, line 239 */
+                {   int m5 = z->l - z->c; (void)m5; /* or, line 235 */
+                    {   int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */
                         if (ret == 0) goto lab6;
                         if (ret < 0) return ret;
                     }
                     goto lab5;
                 lab6:
                     z->c = z->l - m5;
-                    {   int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 230 */
+                    {   int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 236 */
                         if (ret == 0) goto lab7;
                         if (ret < 0) return ret;
                     }
                     goto lab5;
                 lab7:
                     z->c = z->l - m5;
-                    {   int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */
+                    {   int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */
                         if (ret == 0) goto lab4;
                         if (ret < 0) return ret;
                     }
                 }
             lab5:
                 z->c = z->l - m4;
-                {   int m6 = z->l - z->c; (void)m6; /* try, line 234 */
-                    z->ket = z->c; /* [, line 234 */
-                    {   int m7 = z->l - z->c; (void)m7; /* or, line 234 */
-                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 234 */
+                {   int m6 = z->l - z->c; (void)m6; /* try, line 240 */
+                    z->ket = z->c; /* [, line 240 */
+                    {   int m7 = z->l - z->c; (void)m7; /* or, line 240 */
+                        if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab10; /* literal, line 240 */
                         z->c--;
-                        z->bra = z->c; /* ], line 234 */
-                        {   int ret = slice_from_s(z, 1, s_31); /* <-, line 234 */
+                        z->bra = z->c; /* ], line 240 */
+                        {   int ret = slice_from_s(z, 1, s_37); /* <-, line 240 */
                             if (ret < 0) return ret;
                         }
                         goto lab9;
                     lab10:
                         z->c = z->l - m7;
-                        if (!(eq_s_b(z, 2, s_32))) { z->c = z->l - m6; goto lab8; } /* literal, line 235 */
-                        z->bra = z->c; /* ], line 235 */
-                        {   int ret = slice_from_s(z, 1, s_33); /* <-, line 235 */
+                        if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab8; } /* literal, line 241 */
+                        z->bra = z->c; /* ], line 241 */
+                        {   int ret = slice_from_s(z, 1, s_39); /* <-, line 241 */
                             if (ret < 0) return ret;
                         }
                     }
@@ -1178,7 +1230,7 @@ lab1:
             goto lab3;
         lab4:
             z->c = z->l - m3;
-            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 238 */
+            {   int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */
                 if (ret == 0) goto lab2;
                 if (ret < 0) return ret;
             }
@@ -1187,16 +1239,16 @@ lab1:
     lab2:
         z->c = z->l - m2;
     }
-    {   int m8 = z->l - z->c; (void)m8; /* do, line 243 */
-        {   int ret = r_un_double(z); /* call un_double, line 243 */
+    {   int m8 = z->l - z->c; (void)m8; /* do, line 249 */
+        {   int ret = r_un_double(z); /* call un_double, line 249 */
             if (ret == 0) goto lab11;
             if (ret < 0) return ret;
         }
     lab11:
         z->c = z->l - m8;
     }
-    {   int m9 = z->l - z->c; (void)m9; /* do, line 244 */
-        {   int ret = r_un_accent(z); /* call un_accent, line 244 */
+    {   int m9 = z->l - z->c; (void)m9; /* do, line 250 */
+        {   int ret = r_un_accent(z); /* call un_accent, line 250 */
             if (ret == 0) goto lab12;
             if (ret < 0) return ret;
         }
@@ -1204,8 +1256,8 @@ lab1:
         z->c = z->l - m9;
     }
     z->c = z->lb;
-    {   int c10 = z->c; /* do, line 246 */
-        {   int ret = r_postlude(z); /* call postlude, line 246 */
+    {   int c10 = z->c; /* do, line 252 */
+        {   int ret = r_postlude(z); /* call postlude, line 252 */
             if (ret == 0) goto lab13;
             if (ret < 0) return ret;
         }
diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_greek.c b/src/backend/snowball/libstemmer/stem_UTF_8_greek.c
new file mode 100644 (file)
index 0000000..6566d9c
--- /dev/null
@@ -0,0 +1,4199 @@
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
+
+#include "header.h"
+
+static int r_step7(struct SN_env * z);
+static int r_step6(struct SN_env * z);
+static int r_step5m(struct SN_env * z);
+static int r_step5l(struct SN_env * z);
+static int r_step5k(struct SN_env * z);
+static int r_step5j(struct SN_env * z);
+static int r_step5i(struct SN_env * z);
+static int r_step5h(struct SN_env * z);
+static int r_step5g(struct SN_env * z);
+static int r_step5f(struct SN_env * z);
+static int r_step5e(struct SN_env * z);
+static int r_step5d(struct SN_env * z);
+static int r_step5c(struct SN_env * z);
+static int r_step5b(struct SN_env * z);
+static int r_step5a(struct SN_env * z);
+static int r_step4(struct SN_env * z);
+static int r_step3(struct SN_env * z);
+static int r_step2d(struct SN_env * z);
+static int r_step2c(struct SN_env * z);
+static int r_step2b(struct SN_env * z);
+static int r_step2a(struct SN_env * z);
+static int r_step1(struct SN_env * z);
+static int r_steps10(struct SN_env * z);
+static int r_steps9(struct SN_env * z);
+static int r_steps8(struct SN_env * z);
+static int r_steps7(struct SN_env * z);
+static int r_steps6(struct SN_env * z);
+static int r_steps5(struct SN_env * z);
+static int r_steps4(struct SN_env * z);
+static int r_steps3(struct SN_env * z);
+static int r_steps2(struct SN_env * z);
+static int r_steps1(struct SN_env * z);
+static int r_has_min_length(struct SN_env * z);
+static int r_tolower(struct SN_env * z);
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int greek_UTF_8_stem(struct SN_env * z);
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern struct SN_env * greek_UTF_8_create_env(void);
+extern void greek_UTF_8_close_env(struct SN_env * z);
+
+
+#ifdef __cplusplus
+}
+#endif
+static const symbol s_0_1[2] = { 0xCF, 0x82 };
+static const symbol s_0_2[2] = { 0xCE, 0x86 };
+static const symbol s_0_3[2] = { 0xCE, 0x88 };
+static const symbol s_0_4[2] = { 0xCE, 0x89 };
+static const symbol s_0_5[2] = { 0xCE, 0x8A };
+static const symbol s_0_6[2] = { 0xCF, 0x8A };
+static const symbol s_0_7[2] = { 0xCF, 0x8B };
+static const symbol s_0_8[2] = { 0xCE, 0x8C };
+static const symbol s_0_9[2] = { 0xCF, 0x8C };
+static const symbol s_0_10[2] = { 0xCF, 0x8D };
+static const symbol s_0_11[2] = { 0xCE, 0x8E };
+static const symbol s_0_12[2] = { 0xCF, 0x8E };
+static const symbol s_0_13[2] = { 0xCE, 0x8F };
+static const symbol s_0_14[2] = { 0xCE, 0x90 };
+static const symbol s_0_15[2] = { 0xCE, 0x91 };
+static const symbol s_0_16[2] = { 0xCE, 0x92 };
+static const symbol s_0_17[2] = { 0xCE, 0x93 };
+static const symbol s_0_18[2] = { 0xCE, 0x94 };
+static const symbol s_0_19[2] = { 0xCE, 0x95 };
+static const symbol s_0_20[2] = { 0xCE, 0x96 };
+static const symbol s_0_21[2] = { 0xCE, 0x97 };
+static const symbol s_0_22[2] = { 0xCE, 0x98 };
+static const symbol s_0_23[2] = { 0xCE, 0x99 };
+static const symbol s_0_24[2] = { 0xCE, 0x9A };
+static const symbol s_0_25[2] = { 0xCE, 0x9B };
+static const symbol s_0_26[2] = { 0xCE, 0x9C };
+static const symbol s_0_27[2] = { 0xCE, 0x9D };
+static const symbol s_0_28[2] = { 0xCE, 0x9E };
+static const symbol s_0_29[2] = { 0xCE, 0x9F };
+static const symbol s_0_30[2] = { 0xCE, 0xA0 };
+static const symbol s_0_31[2] = { 0xCE, 0xA1 };
+static const symbol s_0_32[2] = { 0xCE, 0xA3 };
+static const symbol s_0_33[2] = { 0xCE, 0xA4 };
+static const symbol s_0_34[2] = { 0xCE, 0xA5 };
+static const symbol s_0_35[2] = { 0xCE, 0xA6 };
+static const symbol s_0_36[2] = { 0xCE, 0xA7 };
+static const symbol s_0_37[2] = { 0xCE, 0xA8 };
+static const symbol s_0_38[2] = { 0xCE, 0xA9 };
+static const symbol s_0_39[2] = { 0xCE, 0xAA };
+static const symbol s_0_40[2] = { 0xCE, 0xAB };
+static const symbol s_0_41[2] = { 0xCE, 0xAC };
+static const symbol s_0_42[2] = { 0xCE, 0xAD };
+static const symbol s_0_43[2] = { 0xCE, 0xAE };
+static const symbol s_0_44[2] = { 0xCE, 0xAF };
+static const symbol s_0_45[2] = { 0xCE, 0xB0 };
+
+static const struct among a_0[46] =
+{
+/*  0 */ { 0, 0, -1, 25, 0},
+/*  1 */ { 2, s_0_1, 0, 18, 0},
+/*  2 */ { 2, s_0_2, 0, 1, 0},
+/*  3 */ { 2, s_0_3, 0, 5, 0},
+/*  4 */ { 2, s_0_4, 0, 7, 0},
+/*  5 */ { 2, s_0_5, 0, 9, 0},
+/*  6 */ { 2, s_0_6, 0, 7, 0},
+/*  7 */ { 2, s_0_7, 0, 20, 0},
+/*  8 */ { 2, s_0_8, 0, 15, 0},
+/*  9 */ { 2, s_0_9, 0, 15, 0},
+/* 10 */ { 2, s_0_10, 0, 20, 0},
+/* 11 */ { 2, s_0_11, 0, 20, 0},
+/* 12 */ { 2, s_0_12, 0, 24, 0},
+/* 13 */ { 2, s_0_13, 0, 24, 0},
+/* 14 */ { 2, s_0_14, 0, 7, 0},
+/* 15 */ { 2, s_0_15, 0, 1, 0},
+/* 16 */ { 2, s_0_16, 0, 2, 0},
+/* 17 */ { 2, s_0_17, 0, 3, 0},
+/* 18 */ { 2, s_0_18, 0, 4, 0},
+/* 19 */ { 2, s_0_19, 0, 5, 0},
+/* 20 */ { 2, s_0_20, 0, 6, 0},
+/* 21 */ { 2, s_0_21, 0, 7, 0},
+/* 22 */ { 2, s_0_22, 0, 8, 0},
+/* 23 */ { 2, s_0_23, 0, 9, 0},
+/* 24 */ { 2, s_0_24, 0, 10, 0},
+/* 25 */ { 2, s_0_25, 0, 11, 0},
+/* 26 */ { 2, s_0_26, 0, 12, 0},
+/* 27 */ { 2, s_0_27, 0, 13, 0},
+/* 28 */ { 2, s_0_28, 0, 14, 0},
+/* 29 */ { 2, s_0_29, 0, 15, 0},
+/* 30 */ { 2, s_0_30, 0, 16, 0},
+/* 31 */ { 2, s_0_31, 0, 17, 0},
+/* 32 */ { 2, s_0_32, 0, 18, 0},
+/* 33 */ { 2, s_0_33, 0, 19, 0},
+/* 34 */ { 2, s_0_34, 0, 20, 0},
+/* 35 */ { 2, s_0_35, 0, 21, 0},
+/* 36 */ { 2, s_0_36, 0, 22, 0},
+/* 37 */ { 2, s_0_37, 0, 23, 0},
+/* 38 */ { 2, s_0_38, 0, 24, 0},
+/* 39 */ { 2, s_0_39, 0, 9, 0},
+/* 40 */ { 2, s_0_40, 0, 20, 0},
+/* 41 */ { 2, s_0_41, 0, 1, 0},
+/* 42 */ { 2, s_0_42, 0, 5, 0},
+/* 43 */ { 2, s_0_43, 0, 7, 0},
+/* 44 */ { 2, s_0_44, 0, 9, 0},
+/* 45 */ { 2, s_0_45, 0, 20, 0}
+};
+
+static const symbol s_1_0[16] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x83 };
+static const symbol s_1_1[6] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x83 };
+static const symbol s_1_2[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_1_3[10] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_1_4[10] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_1_5[20] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_6[10] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_7[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_8[14] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_9[14] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_10[18] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_11[14] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_1_12[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_1_13[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_1_14[12] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_1_15[16] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_1_16[14] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_1_17[18] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_1_18[8] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_1_19[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_1_20[12] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_1_21[12] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_1_22[16] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_1_23[10] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_1_24[12] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_1_25[10] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_1_26[14] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_1_27[12] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_1_28[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB7 };
+static const symbol s_1_29[20] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_30[10] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_31[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_32[14] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_33[14] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_34[18] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_35[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_36[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_37[12] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_38[16] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_1_39[14] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_1[40] =
+{
+/*  0 */ { 16, s_1_0, -1, 10, 0},
+/*  1 */ { 6, s_1_1, -1, 9, 0},
+/*  2 */ { 10, s_1_2, -1, 7, 0},
+/*  3 */ { 10, s_1_3, -1, 8, 0},
+/*  4 */ { 10, s_1_4, -1, 6, 0},
+/*  5 */ { 20, s_1_5, -1, 10, 0},
+/*  6 */ { 10, s_1_6, -1, 9, 0},
+/*  7 */ { 14, s_1_7, -1, 7, 0},
+/*  8 */ { 14, s_1_8, -1, 8, 0},
+/*  9 */ { 14, s_1_9, -1, 6, 0},
+/* 10 */ { 18, s_1_10, -1, 11, 0},
+/* 11 */ { 14, s_1_11, -1, 11, 0},
+/* 12 */ { 12, s_1_12, -1, 1, 0},
+/* 13 */ { 14, s_1_13, -1, 2, 0},
+/* 14 */ { 12, s_1_14, -1, 4, 0},
+/* 15 */ { 16, s_1_15, -1, 5, 0},
+/* 16 */ { 14, s_1_16, -1, 3, 0},
+/* 17 */ { 18, s_1_17, -1, 10, 0},
+/* 18 */ { 8, s_1_18, -1, 9, 0},
+/* 19 */ { 12, s_1_19, -1, 7, 0},
+/* 20 */ { 12, s_1_20, -1, 8, 0},
+/* 21 */ { 12, s_1_21, -1, 6, 0},
+/* 22 */ { 16, s_1_22, -1, 11, 0},
+/* 23 */ { 10, s_1_23, -1, 1, 0},
+/* 24 */ { 12, s_1_24, -1, 2, 0},
+/* 25 */ { 10, s_1_25, -1, 4, 0},
+/* 26 */ { 14, s_1_26, -1, 5, 0},
+/* 27 */ { 12, s_1_27, -1, 3, 0},
+/* 28 */ { 12, s_1_28, -1, 7, 0},
+/* 29 */ { 20, s_1_29, -1, 10, 0},
+/* 30 */ { 10, s_1_30, -1, 9, 0},
+/* 31 */ { 14, s_1_31, -1, 7, 0},
+/* 32 */ { 14, s_1_32, -1, 8, 0},
+/* 33 */ { 14, s_1_33, -1, 6, 0},
+/* 34 */ { 18, s_1_34, -1, 11, 0},
+/* 35 */ { 12, s_1_35, -1, 1, 0},
+/* 36 */ { 14, s_1_36, -1, 2, 0},
+/* 37 */ { 12, s_1_37, -1, 4, 0},
+/* 38 */ { 16, s_1_38, -1, 5, 0},
+/* 39 */ { 14, s_1_39, -1, 3, 0}
+};
+
+static const symbol s_2_0[4] = { 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_1[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_2[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_3[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_4[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_5[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_2_6[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_2_7[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_2_8[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_2[9] =
+{
+/*  0 */ { 4, s_2_0, -1, 1, 0},
+/*  1 */ { 12, s_2_1, 0, 1, 0},
+/*  2 */ { 6, s_2_2, 0, 1, 0},
+/*  3 */ { 12, s_2_3, 0, 1, 0},
+/*  4 */ { 12, s_2_4, 0, 1, 0},
+/*  5 */ { 8, s_2_5, 0, 1, 0},
+/*  6 */ { 8, s_2_6, -1, 1, 0},
+/*  7 */ { 8, s_2_7, -1, 1, 0},
+/*  8 */ { 14, s_2_8, 7, 1, 0}
+};
+
+static const symbol s_3_0[2] = { 0xCF, 0x80 };
+static const symbol s_3_1[6] = { 0xCE, 0xB9, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_3_2[2] = { 0xCF, 0x81 };
+static const symbol s_3_3[4] = { 0xCF, 0x80, 0xCF, 0x81 };
+static const symbol s_3_4[6] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCF, 0x81 };
+static const symbol s_3_5[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 };
+static const symbol s_3_6[12] = { 0xCE, 0xB3, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_3_7[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_3_8[10] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_3_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_3_10[6] = { 0xCE, 0xB3, 0xCE, 0xBA, 0xCF, 0x81 };
+static const symbol s_3_11[14] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_3_12[12] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_3_13[12] = { 0xCE, 0xB3, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_3_14[6] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_3_15[2] = { 0xCE, 0xB2 };
+static const symbol s_3_16[12] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x85, 0xCF, 0x81, 0xCE, 0xB9 };
+static const symbol s_3_17[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_3_18[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_3_19[2] = { 0xCE, 0xBB };
+static const symbol s_3_20[2] = { 0xCE, 0xBC };
+static const symbol s_3_21[8] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBD };
+
+static const struct among a_3[22] =
+{
+/*  0 */ { 2, s_3_0, -1, 1, 0},
+/*  1 */ { 6, s_3_1, 0, 1, 0},
+/*  2 */ { 2, s_3_2, -1, 1, 0},
+/*  3 */ { 4, s_3_3, 2, 1, 0},
+/*  4 */ { 6, s_3_4, 3, 1, 0},
+/*  5 */ { 6, s_3_5, 2, 1, 0},
+/*  6 */ { 12, s_3_6, 2, 1, 0},
+/*  7 */ { 10, s_3_7, 2, 1, 0},
+/*  8 */ { 10, s_3_8, 2, 1, 0},
+/*  9 */ { 6, s_3_9, 2, 1, 0},
+/* 10 */ { 6, s_3_10, 2, 1, 0},
+/* 11 */ { 14, s_3_11, 2, 1, 0},
+/* 12 */ { 12, s_3_12, 2, 1, 0},
+/* 13 */ { 12, s_3_13, 2, 1, 0},
+/* 14 */ { 6, s_3_14, -1, 1, 0},
+/* 15 */ { 2, s_3_15, -1, 1, 0},
+/* 16 */ { 12, s_3_16, -1, 1, 0},
+/* 17 */ { 8, s_3_17, -1, 1, 0},
+/* 18 */ { 8, s_3_18, -1, 1, 0},
+/* 19 */ { 2, s_3_19, -1, 1, 0},
+/* 20 */ { 2, s_3_20, -1, 1, 0},
+/* 21 */ { 8, s_3_21, -1, 1, 0}
+};
+
+static const symbol s_4_0[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_4_1[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_4_2[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCF, 0x89 };
+static const symbol s_4_3[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1 };
+static const symbol s_4_4[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_4_5[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_4_6[6] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5 };
+static const symbol s_4_7[12] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_4_8[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_4_9[12] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_4_10[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_4_11[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_4_12[10] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_4_13[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_4[14] =
+{
+/*  0 */ { 8, s_4_0, -1, 1, 0},
+/*  1 */ { 10, s_4_1, -1, 1, 0},
+/*  2 */ { 6, s_4_2, -1, 1, 0},
+/*  3 */ { 6, s_4_3, -1, 1, 0},
+/*  4 */ { 10, s_4_4, -1, 1, 0},
+/*  5 */ { 10, s_4_5, -1, 1, 0},
+/*  6 */ { 6, s_4_6, -1, 1, 0},
+/*  7 */ { 12, s_4_7, -1, 1, 0},
+/*  8 */ { 10, s_4_8, -1, 1, 0},
+/*  9 */ { 12, s_4_9, -1, 1, 0},
+/* 10 */ { 10, s_4_10, -1, 1, 0},
+/* 11 */ { 8, s_4_11, -1, 1, 0},
+/* 12 */ { 10, s_4_12, -1, 1, 0},
+/* 13 */ { 8, s_4_13, -1, 1, 0}
+};
+
+static const symbol s_5_0[2] = { 0xCF, 0x83 };
+static const symbol s_5_1[2] = { 0xCF, 0x87 };
+static const symbol s_5_2[4] = { 0xCF, 0x85, 0xCF, 0x88 };
+static const symbol s_5_3[4] = { 0xCE, 0xB6, 0xCF, 0x89 };
+static const symbol s_5_4[4] = { 0xCE, 0xB2, 0xCE, 0xB9 };
+static const symbol s_5_5[4] = { 0xCE, 0xBB, 0xCE, 0xB9 };
+static const symbol s_5_6[4] = { 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_5_7[4] = { 0xCE, 0xB5, 0xCE, 0xBD };
+
+static const struct among a_5[8] =
+{
+/*  0 */ { 2, s_5_0, -1, 1, 0},
+/*  1 */ { 2, s_5_1, -1, 1, 0},
+/*  2 */ { 4, s_5_2, -1, 1, 0},
+/*  3 */ { 4, s_5_3, -1, 1, 0},
+/*  4 */ { 4, s_5_4, -1, 1, 0},
+/*  5 */ { 4, s_5_5, -1, 1, 0},
+/*  6 */ { 4, s_5_6, -1, 1, 0},
+/*  7 */ { 4, s_5_7, -1, 1, 0}
+};
+
+static const symbol s_6_0[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_6_1[10] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_6_2[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_6_3[10] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 };
+static const symbol s_6_4[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_6_5[14] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_6_6[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_6[7] =
+{
+/*  0 */ { 12, s_6_0, -1, 1, 0},
+/*  1 */ { 10, s_6_1, -1, 1, 0},
+/*  2 */ { 14, s_6_2, -1, 1, 0},
+/*  3 */ { 10, s_6_3, -1, 1, 0},
+/*  4 */ { 14, s_6_4, -1, 1, 0},
+/*  5 */ { 14, s_6_5, -1, 1, 0},
+/*  6 */ { 12, s_6_6, -1, 1, 0}
+};
+
+static const symbol s_7_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_7_1[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_7_2[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_7_3[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_7_4[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_7_5[14] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_7_6[12] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87, 0xCE, 0xB1 };
+static const symbol s_7_7[4] = { 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_7_8[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_7_9[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_7_10[6] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_7_11[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_7_12[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_7_13[8] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_7_14[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_7_15[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_7_16[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_7_17[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_7_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_7[19] =
+{
+/*  0 */ { 12, s_7_0, -1, 1, 0},
+/*  1 */ { 6, s_7_1, -1, 1, 0},
+/*  2 */ { 12, s_7_2, -1, 1, 0},
+/*  3 */ { 12, s_7_3, -1, 1, 0},
+/*  4 */ { 8, s_7_4, -1, 1, 0},
+/*  5 */ { 14, s_7_5, -1, 1, 0},
+/*  6 */ { 12, s_7_6, -1, 1, 0},
+/*  7 */ { 4, s_7_7, -1, 1, 0},
+/*  8 */ { 6, s_7_8, 7, 1, 0},
+/*  9 */ { 12, s_7_9, 8, 1, 0},
+/* 10 */ { 6, s_7_10, -1, 1, 0},
+/* 11 */ { 6, s_7_11, -1, 1, 0},
+/* 12 */ { 12, s_7_12, 11, 1, 0},
+/* 13 */ { 8, s_7_13, 11, 1, 0},
+/* 14 */ { 12, s_7_14, 13, 1, 0},
+/* 15 */ { 12, s_7_15, 11, 1, 0},
+/* 16 */ { 8, s_7_16, -1, 1, 0},
+/* 17 */ { 8, s_7_17, -1, 1, 0},
+/* 18 */ { 14, s_7_18, 17, 1, 0}
+};
+
+static const symbol s_8_0[2] = { 0xCF, 0x80 };
+static const symbol s_8_1[6] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_8_2[16] = { 0xCE, 0xB4, 0xCE, 0xB7, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_8_3[4] = { 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_8_4[18] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_8_5[4] = { 0xCE, 0xB3, 0xCE, 0xB5 };
+static const symbol s_8_6[6] = { 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xB5 };
+static const symbol s_8_7[4] = { 0xCE, 0xB3, 0xCE, 0xBA };
+static const symbol s_8_8[2] = { 0xCE, 0xBC };
+static const symbol s_8_9[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_8_10[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBC };
+static const symbol s_8_11[4] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_8_12[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF };
+
+static const struct among a_8[13] =
+{
+/*  0 */ { 2, s_8_0, -1, 1, 0},
+/*  1 */ { 6, s_8_1, -1, 1, 0},
+/*  2 */ { 16, s_8_2, -1, 1, 0},
+/*  3 */ { 4, s_8_3, -1, 1, 0},
+/*  4 */ { 18, s_8_4, 3, 1, 0},
+/*  5 */ { 4, s_8_5, -1, 1, 0},
+/*  6 */ { 6, s_8_6, -1, 1, 0},
+/*  7 */ { 4, s_8_7, -1, 1, 0},
+/*  8 */ { 2, s_8_8, -1, 1, 0},
+/*  9 */ { 12, s_8_9, 8, 1, 0},
+/* 10 */ { 6, s_8_10, 8, 1, 0},
+/* 11 */ { 4, s_8_11, -1, 1, 0},
+/* 12 */ { 6, s_8_12, -1, 1, 0}
+};
+
+static const symbol s_9_0[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_9_1[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_9_2[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_9_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_9_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_9_5[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_9_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_9[7] =
+{
+/*  0 */ { 8, s_9_0, -1, 1, 0},
+/*  1 */ { 6, s_9_1, -1, 1, 0},
+/*  2 */ { 6, s_9_2, -1, 1, 0},
+/*  3 */ { 10, s_9_3, -1, 1, 0},
+/*  4 */ { 10, s_9_4, -1, 1, 0},
+/*  5 */ { 10, s_9_5, -1, 1, 0},
+/*  6 */ { 8, s_9_6, -1, 1, 0}
+};
+
+static const symbol s_10_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_10_1[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_10_2[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_10_3[12] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_10_4[8] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_10_5[14] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB1 };
+static const symbol s_10_6[12] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87, 0xCE, 0xB1 };
+static const symbol s_10_7[4] = { 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_10_8[6] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_10_9[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB5 };
+static const symbol s_10_10[6] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_10_11[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_12[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_13[8] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_14[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_15[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_10_16[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_10_17[8] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+static const symbol s_10_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_10[19] =
+{
+/*  0 */ { 12, s_10_0, -1, 1, 0},
+/*  1 */ { 6, s_10_1, -1, 1, 0},
+/*  2 */ { 12, s_10_2, -1, 1, 0},
+/*  3 */ { 12, s_10_3, -1, 1, 0},
+/*  4 */ { 8, s_10_4, -1, 1, 0},
+/*  5 */ { 14, s_10_5, -1, 1, 0},
+/*  6 */ { 12, s_10_6, -1, 1, 0},
+/*  7 */ { 4, s_10_7, -1, 1, 0},
+/*  8 */ { 6, s_10_8, 7, 1, 0},
+/*  9 */ { 12, s_10_9, 8, 1, 0},
+/* 10 */ { 6, s_10_10, -1, 1, 0},
+/* 11 */ { 6, s_10_11, -1, 1, 0},
+/* 12 */ { 12, s_10_12, 11, 1, 0},
+/* 13 */ { 8, s_10_13, 11, 1, 0},
+/* 14 */ { 12, s_10_14, 13, 1, 0},
+/* 15 */ { 12, s_10_15, 11, 1, 0},
+/* 16 */ { 8, s_10_16, -1, 1, 0},
+/* 17 */ { 8, s_10_17, -1, 1, 0},
+/* 18 */ { 14, s_10_18, 17, 1, 0}
+};
+
+static const symbol s_11_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_11_1[6] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x89 };
+static const symbol s_11_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_11_3[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_11_4[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_11_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_11_6[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+
+static const struct among a_11[7] =
+{
+/*  0 */ { 10, s_11_0, -1, 1, 0},
+/*  1 */ { 6, s_11_1, -1, 1, 0},
+/*  2 */ { 10, s_11_2, -1, 1, 0},
+/*  3 */ { 12, s_11_3, -1, 1, 0},
+/*  4 */ { 12, s_11_4, -1, 1, 0},
+/*  5 */ { 8, s_11_5, -1, 1, 0},
+/*  6 */ { 10, s_11_6, -1, 1, 0}
+};
+
+static const symbol s_12_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_12_1[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_12_2[6] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_12_3[6] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_12_4[12] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_12_5[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_12_6[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_12[7] =
+{
+/*  0 */ { 4, s_12_0, -1, 1, 0},
+/*  1 */ { 6, s_12_1, 0, 1, 0},
+/*  2 */ { 6, s_12_2, -1, 1, 0},
+/*  3 */ { 6, s_12_3, -1, 1, 0},
+/*  4 */ { 12, s_12_4, 3, 1, 0},
+/*  5 */ { 8, s_12_5, -1, 1, 0},
+/*  6 */ { 14, s_12_6, -1, 1, 0}
+};
+
+static const symbol s_13_0[2] = { 0xCF, 0x80 };
+static const symbol s_13_1[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x80 };
+static const symbol s_13_2[4] = { 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_13_3[6] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_13_4[6] = { 0xCE, 0xB3, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_13_5[4] = { 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_13_6[6] = { 0xCF, 0x87, 0xCF, 0x89, 0xCF, 0x81 };
+static const symbol s_13_7[4] = { 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_13_8[6] = { 0xCE, 0xB1, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_13_9[4] = { 0xCF, 0x87, 0xCF, 0x84 };
+static const symbol s_13_10[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x84 };
+static const symbol s_13_11[4] = { 0xCE, 0xBA, 0xCF, 0x84 };
+static const symbol s_13_12[6] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCF, 0x84 };
+static const symbol s_13_13[4] = { 0xCF, 0x83, 0xCF, 0x87 };
+static const symbol s_13_14[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x87 };
+static const symbol s_13_15[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x87 };
+static const symbol s_13_16[4] = { 0xCF, 0x85, 0xCF, 0x88 };
+static const symbol s_13_17[6] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_13_18[4] = { 0xCF, 0x86, 0xCE, 0xB1 };
+static const symbol s_13_19[6] = { 0xCE, 0xB7, 0xCF, 0x86, 0xCE, 0xB1 };
+static const symbol s_13_20[6] = { 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xB3 };
+static const symbol s_13_21[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3 };
+static const symbol s_13_22[4] = { 0xCE, 0xB7, 0xCE, 0xB4 };
+static const symbol s_13_23[6] = { 0xCE, 0xB5, 0xCF, 0x87, 0xCE, 0xB8 };
+static const symbol s_13_24[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_13_25[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_13_26[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_13_27[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_13_28[6] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_13_29[6] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB };
+static const symbol s_13_30[2] = { 0xCE, 0xBC };
+static const symbol s_13_31[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xBC };
+static const symbol s_13_32[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBD };
+
+static const struct among a_13[33] =
+{
+/*  0 */ { 2, s_13_0, -1, 1, 0},
+/*  1 */ { 6, s_13_1, 0, 1, 0},
+/*  2 */ { 4, s_13_2, 0, 1, 0},
+/*  3 */ { 6, s_13_3, 0, 1, 0},
+/*  4 */ { 6, s_13_4, -1, 1, 0},
+/*  5 */ { 4, s_13_5, -1, 1, 0},
+/*  6 */ { 6, s_13_6, -1, 1, 0},
+/*  7 */ { 4, s_13_7, -1, 1, 0},
+/*  8 */ { 6, s_13_8, -1, 1, 0},
+/*  9 */ { 4, s_13_9, -1, 1, 0},
+/* 10 */ { 6, s_13_10, 9, 1, 0},
+/* 11 */ { 4, s_13_11, -1, 1, 0},
+/* 12 */ { 6, s_13_12, 11, 1, 0},
+/* 13 */ { 4, s_13_13, -1, 1, 0},
+/* 14 */ { 6, s_13_14, 13, 1, 0},
+/* 15 */ { 6, s_13_15, -1, 1, 0},
+/* 16 */ { 4, s_13_16, -1, 1, 0},
+/* 17 */ { 6, s_13_17, -1, 1, 0},
+/* 18 */ { 4, s_13_18, -1, 1, 0},
+/* 19 */ { 6, s_13_19, 18, 1, 0},
+/* 20 */ { 6, s_13_20, -1, 1, 0},
+/* 21 */ { 6, s_13_21, -1, 1, 0},
+/* 22 */ { 4, s_13_22, -1, 1, 0},
+/* 23 */ { 6, s_13_23, -1, 1, 0},
+/* 24 */ { 6, s_13_24, -1, 1, 0},
+/* 25 */ { 4, s_13_25, -1, 1, 0},
+/* 26 */ { 6, s_13_26, -1, 1, 0},
+/* 27 */ { 6, s_13_27, -1, 1, 0},
+/* 28 */ { 6, s_13_28, -1, 1, 0},
+/* 29 */ { 6, s_13_29, -1, 1, 0},
+/* 30 */ { 2, s_13_30, -1, 1, 0},
+/* 31 */ { 6, s_13_31, 30, 1, 0},
+/* 32 */ { 6, s_13_32, -1, 1, 0}
+};
+
+static const symbol s_14_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_14_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_14_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB7, 0xCF, 0x83 };
+static const symbol s_14_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_14_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_14_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_14_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_14_7[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB7 };
+static const symbol s_14_8[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB9 };
+static const symbol s_14_9[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_14_10[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF };
+
+static const struct among a_14[11] =
+{
+/*  0 */ { 12, s_14_0, -1, 1, 0},
+/*  1 */ { 10, s_14_1, -1, 1, 0},
+/*  2 */ { 10, s_14_2, -1, 1, 0},
+/*  3 */ { 10, s_14_3, -1, 1, 0},
+/*  4 */ { 10, s_14_4, -1, 1, 0},
+/*  5 */ { 8, s_14_5, -1, 1, 0},
+/*  6 */ { 8, s_14_6, -1, 1, 0},
+/*  7 */ { 8, s_14_7, -1, 1, 0},
+/*  8 */ { 10, s_14_8, -1, 1, 0},
+/*  9 */ { 10, s_14_9, -1, 1, 0},
+/* 10 */ { 8, s_14_10, -1, 1, 0}
+};
+
+static const symbol s_15_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_15_1[12] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_15_2[14] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB5 };
+static const symbol s_15_3[10] = { 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_15_4[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5 };
+
+static const struct among a_15[5] =
+{
+/*  0 */ { 4, s_15_0, -1, 1, 0},
+/*  1 */ { 12, s_15_1, 0, 1, 0},
+/*  2 */ { 14, s_15_2, 0, 1, 0},
+/*  3 */ { 10, s_15_3, -1, 1, 0},
+/*  4 */ { 12, s_15_4, -1, 1, 0}
+};
+
+static const symbol s_16_0[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_16_1[16] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+
+static const struct among a_16[2] =
+{
+/*  0 */ { 8, s_16_0, -1, 1, 0},
+/*  1 */ { 16, s_16_1, 0, 1, 0}
+};
+
+static const symbol s_17_0[10] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_1[14] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_2[14] = { 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_3[16] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_4[16] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_5[12] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_6[10] = { 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBD, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_17_7[14] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_17_8[20] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_17_9[16] = { 0xCE, 0xB2, 0xCF, 0x85, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBD };
+
+static const struct among a_17[10] =
+{
+/*  0 */ { 10, s_17_0, -1, 7, 0},
+/*  1 */ { 14, s_17_1, -1, 6, 0},
+/*  2 */ { 14, s_17_2, -1, 3, 0},
+/*  3 */ { 16, s_17_3, 2, 1, 0},
+/*  4 */ { 16, s_17_4, -1, 5, 0},
+/*  5 */ { 12, s_17_5, -1, 2, 0},
+/*  6 */ { 10, s_17_6, -1, 4, 0},
+/*  7 */ { 14, s_17_7, -1, 10, 0},
+/*  8 */ { 20, s_17_8, -1, 8, 0},
+/*  9 */ { 16, s_17_9, -1, 9, 0}
+};
+
+static const symbol s_18_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_18_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_18_2[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_18_3[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xB9 };
+static const symbol s_18_4[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_18_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF };
+
+static const struct among a_18[6] =
+{
+/*  0 */ { 12, s_18_0, -1, 1, 0},
+/*  1 */ { 10, s_18_1, -1, 1, 0},
+/*  2 */ { 10, s_18_2, -1, 1, 0},
+/*  3 */ { 10, s_18_3, -1, 1, 0},
+/*  4 */ { 10, s_18_4, -1, 1, 0},
+/*  5 */ { 8, s_18_5, -1, 1, 0}
+};
+
+static const symbol s_19_0[2] = { 0xCF, 0x83 };
+static const symbol s_19_1[2] = { 0xCF, 0x87 };
+
+static const struct among a_19[2] =
+{
+/*  0 */ { 2, s_19_0, -1, 1, 0},
+/*  1 */ { 2, s_19_1, -1, 1, 0}
+};
+
+static const symbol s_20_0[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_20_1[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_20_2[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+static const symbol s_20_3[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+
+static const struct among a_20[4] =
+{
+/*  0 */ { 12, s_20_0, -1, 1, 0},
+/*  1 */ { 14, s_20_1, -1, 1, 0},
+/*  2 */ { 10, s_20_2, -1, 1, 0},
+/*  3 */ { 12, s_20_3, -1, 1, 0}
+};
+
+static const symbol s_21_0[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_21_1[2] = { 0xCF, 0x81 };
+static const symbol s_21_2[4] = { 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_21_3[8] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_21_4[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_21_5[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_21_6[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB8, 0xCF, 0x81 };
+static const symbol s_21_7[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_21_8[2] = { 0xCF, 0x83 };
+static const symbol s_21_9[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_21_10[10] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_21_11[4] = { 0xCF, 0x81, 0xCF, 0x85 };
+static const symbol s_21_12[2] = { 0xCF, 0x86 };
+static const symbol s_21_13[4] = { 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_21_14[10] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_21_15[2] = { 0xCF, 0x87 };
+static const symbol s_21_16[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB2 };
+static const symbol s_21_17[8] = { 0xCF, 0x83, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2 };
+static const symbol s_21_18[18] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2 };
+static const symbol s_21_19[4] = { 0xCF, 0x84, 0xCE, 0xB6 };
+static const symbol s_21_20[2] = { 0xCE, 0xBA };
+static const symbol s_21_21[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_21_22[10] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_21_23[6] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_21_24[4] = { 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_21_25[6] = { 0xCF, 0x86, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_21_26[8] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_21_27[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_21_28[8] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBC };
+static const symbol s_21_29[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBC };
+static const symbol s_21_30[8] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBC };
+static const symbol s_21_31[8] = { 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_21_32[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_21[33] =
+{
+/*  0 */ { 12, s_21_0, -1, 1, 0},
+/*  1 */ { 2, s_21_1, -1, 1, 0},
+/*  2 */ { 4, s_21_2, 1, 1, 0},
+/*  3 */ { 8, s_21_3, 2, 1, 0},
+/*  4 */ { 8, s_21_4, 2, 1, 0},
+/*  5 */ { 6, s_21_5, 1, 1, 0},
+/*  6 */ { 8, s_21_6, 1, 1, 0},
+/*  7 */ { 6, s_21_7, 1, 1, 0},
+/*  8 */ { 2, s_21_8, -1, 1, 0},
+/*  9 */ { 12, s_21_9, 8, 1, 0},
+/* 10 */ { 10, s_21_10, -1, 1, 0},
+/* 11 */ { 4, s_21_11, -1, 1, 0},
+/* 12 */ { 2, s_21_12, -1, 1, 0},
+/* 13 */ { 4, s_21_13, 12, 1, 0},
+/* 14 */ { 10, s_21_14, 13, 1, 0},
+/* 15 */ { 2, s_21_15, -1, 1, 0},
+/* 16 */ { 8, s_21_16, -1, 1, 0},
+/* 17 */ { 8, s_21_17, -1, 1, 0},
+/* 18 */ { 18, s_21_18, 17, 1, 0},
+/* 19 */ { 4, s_21_19, -1, 1, 0},
+/* 20 */ { 2, s_21_20, -1, 1, 0},
+/* 21 */ { 4, s_21_21, 20, 1, 0},
+/* 22 */ { 10, s_21_22, 20, 1, 0},
+/* 23 */ { 6, s_21_23, 20, 1, 0},
+/* 24 */ { 4, s_21_24, -1, 1, 0},
+/* 25 */ { 6, s_21_25, -1, 1, 0},
+/* 26 */ { 8, s_21_26, -1, 1, 0},
+/* 27 */ { 6, s_21_27, -1, 1, 0},
+/* 28 */ { 8, s_21_28, -1, 1, 0},
+/* 29 */ { 8, s_21_29, -1, 1, 0},
+/* 30 */ { 8, s_21_30, -1, 1, 0},
+/* 31 */ { 8, s_21_31, -1, 1, 0},
+/* 32 */ { 6, s_21_32, -1, 1, 0}
+};
+
+static const symbol s_22_0[2] = { 0xCF, 0x80 };
+static const symbol s_22_1[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_22_2[6] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_22_3[6] = { 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x86 };
+static const symbol s_22_4[2] = { 0xCE, 0xB2 };
+static const symbol s_22_5[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB4 };
+static const symbol s_22_6[2] = { 0xCE, 0xB6 };
+static const symbol s_22_7[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_22_8[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_22_9[4] = { 0xCE, 0xB3, 0xCE, 0xBB };
+static const symbol s_22_10[12] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_22_11[12] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA, 0xCF, 0x81, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_22_12[8] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_22_13[14] = { 0xCE, 0xB7, 0xCE, 0xB3, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xBD };
+static const symbol s_22_14[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_22[15] =
+{
+/*  0 */ { 2, s_22_0, -1, 1, 0},
+/*  1 */ { 10, s_22_1, -1, 1, 0},
+/*  2 */ { 6, s_22_2, -1, 1, 0},
+/*  3 */ { 6, s_22_3, -1, 1, 0},
+/*  4 */ { 2, s_22_4, -1, 1, 0},
+/*  5 */ { 8, s_22_5, -1, 1, 0},
+/*  6 */ { 2, s_22_6, -1, 1, 0},
+/*  7 */ { 4, s_22_7, -1, 1, 0},
+/*  8 */ { 6, s_22_8, -1, 1, 0},
+/*  9 */ { 4, s_22_9, -1, 1, 0},
+/* 10 */ { 12, s_22_10, -1, 1, 0},
+/* 11 */ { 12, s_22_11, -1, 1, 0},
+/* 12 */ { 8, s_22_12, -1, 1, 0},
+/* 13 */ { 14, s_22_13, -1, 1, 0},
+/* 14 */ { 6, s_22_14, -1, 1, 0}
+};
+
+static const symbol s_23_0[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_23_1[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_23_2[8] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_23_3[8] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_23_4[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_23_5[6] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+static const symbol s_23_6[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9 };
+static const symbol s_23_7[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_23[8] =
+{
+/*  0 */ { 10, s_23_0, -1, 1, 0},
+/*  1 */ { 10, s_23_1, -1, 1, 0},
+/*  2 */ { 8, s_23_2, -1, 1, 0},
+/*  3 */ { 8, s_23_3, -1, 1, 0},
+/*  4 */ { 12, s_23_4, 3, 1, 0},
+/*  5 */ { 6, s_23_5, -1, 1, 0},
+/*  6 */ { 10, s_23_6, 5, 1, 0},
+/*  7 */ { 10, s_23_7, -1, 1, 0}
+};
+
+static const symbol s_24_0[4] = { 0xCE, 0xB9, 0xCF, 0x81 };
+static const symbol s_24_1[6] = { 0xCF, 0x88, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_24_2[8] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x86, 0xCE, 0xBD };
+static const symbol s_24_3[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF };
+
+static const struct among a_24[4] =
+{
+/*  0 */ { 4, s_24_0, -1, 1, 0},
+/*  1 */ { 6, s_24_1, -1, 1, 0},
+/*  2 */ { 8, s_24_2, -1, 1, 0},
+/*  3 */ { 6, s_24_3, -1, 1, 0}
+};
+
+static const symbol s_25_0[2] = { 0xCE, 0xB5 };
+static const symbol s_25_1[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x87, 0xCE, 0xBD };
+
+static const struct among a_25[2] =
+{
+/*  0 */ { 2, s_25_0, -1, 1, 0},
+/*  1 */ { 10, s_25_1, -1, 1, 0}
+};
+
+static const symbol s_26_0[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_26_1[10] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_26_2[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xBF };
+
+static const struct among a_26[3] =
+{
+/*  0 */ { 8, s_26_0, -1, 1, 0},
+/*  1 */ { 10, s_26_1, -1, 1, 0},
+/*  2 */ { 8, s_26_2, -1, 1, 0}
+};
+
+static const symbol s_27_0[2] = { 0xCF, 0x81 };
+static const symbol s_27_1[4] = { 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_27_2[2] = { 0xCE, 0xB4 };
+static const symbol s_27_3[6] = { 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBA };
+static const symbol s_27_4[10] = { 0xCF, 0x86, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA };
+static const symbol s_27_5[8] = { 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_27_6[6] = { 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD };
+
+static const struct among a_27[7] =
+{
+/*  0 */ { 2, s_27_0, -1, 1, 0},
+/*  1 */ { 4, s_27_1, -1, 1, 0},
+/*  2 */ { 2, s_27_2, -1, 1, 0},
+/*  3 */ { 6, s_27_3, -1, 1, 0},
+/*  4 */ { 10, s_27_4, -1, 1, 0},
+/*  5 */ { 8, s_27_5, -1, 1, 0},
+/*  6 */ { 6, s_27_6, -1, 1, 0}
+};
+
+static const symbol s_28_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_28_1[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_28_2[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5 };
+static const symbol s_28_3[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF };
+
+static const struct among a_28[4] =
+{
+/*  0 */ { 10, s_28_0, -1, 1, 0},
+/*  1 */ { 10, s_28_1, -1, 1, 0},
+/*  2 */ { 8, s_28_2, -1, 1, 0},
+/*  3 */ { 8, s_28_3, -1, 1, 0}
+};
+
+static const symbol s_29_0[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_29_1[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_29[2] =
+{
+/*  0 */ { 8, s_29_0, -1, 1, 0},
+/*  1 */ { 8, s_29_1, -1, 1, 0}
+};
+
+static const symbol s_30_0[10] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_30_1[6] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_30_2[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_30_3[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_30_4[10] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_30_5[10] = { 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9 };
+static const symbol s_30_6[6] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_30_7[4] = { 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_30_8[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_30_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_30[10] =
+{
+/*  0 */ { 10, s_30_0, -1, -1, 0},
+/*  1 */ { 6, s_30_1, -1, -1, 0},
+/*  2 */ { 10, s_30_2, -1, -1, 0},
+/*  3 */ { 10, s_30_3, -1, -1, 0},
+/*  4 */ { 10, s_30_4, -1, -1, 0},
+/*  5 */ { 10, s_30_5, -1, -1, 0},
+/*  6 */ { 6, s_30_6, -1, -1, 0},
+/*  7 */ { 4, s_30_7, -1, -1, 0},
+/*  8 */ { 6, s_30_8, -1, -1, 0},
+/*  9 */ { 6, s_30_9, -1, -1, 0}
+};
+
+static const symbol s_31_0[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_31_1[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_31[2] =
+{
+/*  0 */ { 8, s_31_0, -1, 1, 0},
+/*  1 */ { 8, s_31_1, -1, 1, 0}
+};
+
+static const symbol s_32_0[10] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_32_1[4] = { 0xCF, 0x85, 0xCF, 0x80 };
+static const symbol s_32_2[6] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_32_3[6] = { 0xCE, 0xB3, 0xCE, 0xB7, 0xCF, 0x80 };
+static const symbol s_32_4[4] = { 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_32_5[6] = { 0xCE, 0xB5, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_32_6[4] = { 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_32_7[6] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBB };
+
+static const struct among a_32[8] =
+{
+/*  0 */ { 10, s_32_0, -1, 1, 0},
+/*  1 */ { 4, s_32_1, -1, 1, 0},
+/*  2 */ { 6, s_32_2, -1, 1, 0},
+/*  3 */ { 6, s_32_3, -1, 1, 0},
+/*  4 */ { 4, s_32_4, -1, 1, 0},
+/*  5 */ { 6, s_32_5, -1, 1, 0},
+/*  6 */ { 4, s_32_6, -1, 1, 0},
+/*  7 */ { 6, s_32_7, -1, 1, 0}
+};
+
+static const symbol s_33_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_33_1[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_33[2] =
+{
+/*  0 */ { 10, s_33_0, -1, 1, 0},
+/*  1 */ { 10, s_33_1, -1, 1, 0}
+};
+
+static const symbol s_34_0[4] = { 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_34_1[4] = { 0xCF, 0x86, 0xCF, 0x81 };
+static const symbol s_34_2[2] = { 0xCF, 0x83 };
+static const symbol s_34_3[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x87 };
+static const symbol s_34_4[8] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_34_5[4] = { 0xCF, 0x86, 0xCE, 0xB5 };
+static const symbol s_34_6[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_34_7[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_34_8[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_34_9[8] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_34_10[4] = { 0xCF, 0x86, 0xCE, 0xBB };
+static const symbol s_34_11[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_34_12[6] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_34_13[4] = { 0xCF, 0x87, 0xCE, 0xBD };
+static const symbol s_34_14[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE };
+
+static const struct among a_34[15] =
+{
+/*  0 */ { 4, s_34_0, -1, 1, 0},
+/*  1 */ { 4, s_34_1, -1, 1, 0},
+/*  2 */ { 2, s_34_2, -1, 1, 0},
+/*  3 */ { 6, s_34_3, -1, 1, 0},
+/*  4 */ { 8, s_34_4, -1, 1, 0},
+/*  5 */ { 4, s_34_5, -1, 1, 0},
+/*  6 */ { 6, s_34_6, -1, 1, 0},
+/*  7 */ { 4, s_34_7, -1, 1, 0},
+/*  8 */ { 12, s_34_8, -1, 1, 0},
+/*  9 */ { 8, s_34_9, -1, 1, 0},
+/* 10 */ { 4, s_34_10, -1, 1, 0},
+/* 11 */ { 10, s_34_11, -1, 1, 0},
+/* 12 */ { 6, s_34_12, -1, 1, 0},
+/* 13 */ { 4, s_34_13, -1, 1, 0},
+/* 14 */ { 8, s_34_14, -1, 1, 0}
+};
+
+static const symbol s_35_0[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCF, 0x83 };
+static const symbol s_35_1[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_35[2] =
+{
+/*  0 */ { 6, s_35_0, -1, 1, 0},
+/*  1 */ { 6, s_35_1, -1, 1, 0}
+};
+
+static const symbol s_36_0[2] = { 0xCF, 0x80 };
+static const symbol s_36_1[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_36_2[2] = { 0xCE, 0xB4 };
+static const symbol s_36_3[4] = { 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_36_4[2] = { 0xCE, 0xB8 };
+static const symbol s_36_5[6] = { 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_36_6[4] = { 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_36_7[2] = { 0xCE, 0xBD };
+
+static const struct among a_36[8] =
+{
+/*  0 */ { 2, s_36_0, -1, 1, 0},
+/*  1 */ { 6, s_36_1, -1, 1, 0},
+/*  2 */ { 2, s_36_2, -1, 1, 0},
+/*  3 */ { 4, s_36_3, 2, 1, 0},
+/*  4 */ { 2, s_36_4, -1, 1, 0},
+/*  5 */ { 6, s_36_5, -1, 1, 0},
+/*  6 */ { 4, s_36_6, -1, 1, 0},
+/*  7 */ { 2, s_36_7, -1, 1, 0}
+};
+
+static const symbol s_37_0[6] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_37_1[4] = { 0xCE, 0xB9, 0xCE, 0xB1 };
+static const symbol s_37_2[6] = { 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_37[3] =
+{
+/*  0 */ { 6, s_37_0, -1, 1, 0},
+/*  1 */ { 4, s_37_1, -1, 1, 0},
+/*  2 */ { 6, s_37_2, -1, 1, 0}
+};
+
+static const symbol s_38_0[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_38_1[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_38_2[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_38_3[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF };
+
+static const struct among a_38[4] =
+{
+/*  0 */ { 8, s_38_0, -1, 1, 0},
+/*  1 */ { 6, s_38_1, -1, 1, 0},
+/*  2 */ { 8, s_38_2, -1, 1, 0},
+/*  3 */ { 6, s_38_3, -1, 1, 0}
+};
+
+static const symbol s_39_0[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80 };
+static const symbol s_39_1[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_39_2[12] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_39_3[8] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_39_4[8] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_39_5[6] = { 0xCF, 0x86, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_39_6[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_39_7[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_39_8[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x84 };
+static const symbol s_39_9[14] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_39_10[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x84 };
+static const symbol s_39_11[12] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_39_12[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xB4 };
+static const symbol s_39_13[4] = { 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_39_14[10] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_39_15[10] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_39_16[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_39_17[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4 };
+static const symbol s_39_18[8] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_39_19[12] = { 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_39_20[10] = { 0xCF, 0x86, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_39_21[4] = { 0xCE, 0xB7, 0xCE, 0xB8 };
+static const symbol s_39_22[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB7, 0xCE, 0xB8 };
+static const symbol s_39_23[6] = { 0xCE, 0xBE, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_39_24[8] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_39_25[4] = { 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_39_26[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_39_27[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBB };
+static const symbol s_39_28[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_39_29[8] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCF, 0x89, 0xCE, 0xBC };
+static const symbol s_39_30[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_39_31[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_39_32[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_39_33[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_39_34[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB, 0xCE, 0xBD };
+static const symbol s_39_35[10] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_39[36] =
+{
+/*  0 */ { 8, s_39_0, -1, 1, 0},
+/*  1 */ { 6, s_39_1, -1, 1, 0},
+/*  2 */ { 12, s_39_2, -1, 1, 0},
+/*  3 */ { 8, s_39_3, -1, 1, 0},
+/*  4 */ { 8, s_39_4, -1, 1, 0},
+/*  5 */ { 6, s_39_5, -1, 1, 0},
+/*  6 */ { 6, s_39_6, -1, 1, 0},
+/*  7 */ { 8, s_39_7, -1, 1, 0},
+/*  8 */ { 8, s_39_8, -1, 1, 0},
+/*  9 */ { 14, s_39_9, -1, 1, 0},
+/* 10 */ { 6, s_39_10, -1, 1, 0},
+/* 11 */ { 12, s_39_11, -1, 1, 0},
+/* 12 */ { 8, s_39_12, -1, 1, 0},
+/* 13 */ { 4, s_39_13, -1, 1, 0},
+/* 14 */ { 10, s_39_14, 13, 1, 0},
+/* 15 */ { 10, s_39_15, 13, 1, 0},
+/* 16 */ { 10, s_39_16, -1, 1, 0},
+/* 17 */ { 6, s_39_17, -1, 1, 0},
+/* 18 */ { 8, s_39_18, -1, 1, 0},
+/* 19 */ { 12, s_39_19, -1, 1, 0},
+/* 20 */ { 10, s_39_20, -1, 1, 0},
+/* 21 */ { 4, s_39_21, -1, 1, 0},
+/* 22 */ { 8, s_39_22, 21, 1, 0},
+/* 23 */ { 6, s_39_23, -1, 1, 0},
+/* 24 */ { 8, s_39_24, -1, 1, 0},
+/* 25 */ { 4, s_39_25, -1, 1, 0},
+/* 26 */ { 14, s_39_26, 25, 1, 0},
+/* 27 */ { 14, s_39_27, -1, 1, 0},
+/* 28 */ { 8, s_39_28, -1, 1, 0},
+/* 29 */ { 8, s_39_29, -1, 1, 0},
+/* 30 */ { 8, s_39_30, -1, 1, 0},
+/* 31 */ { 8, s_39_31, -1, 1, 0},
+/* 32 */ { 8, s_39_32, -1, 1, 0},
+/* 33 */ { 12, s_39_33, -1, 1, 0},
+/* 34 */ { 14, s_39_34, -1, 1, 0},
+/* 35 */ { 10, s_39_35, -1, 1, 0}
+};
+
+static const symbol s_40_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_40_1[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_40_2[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_40_3[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_40_4[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+
+static const struct among a_40[5] =
+{
+/*  0 */ { 12, s_40_0, -1, 1, 0},
+/*  1 */ { 10, s_40_1, -1, 1, 0},
+/*  2 */ { 10, s_40_2, -1, 1, 0},
+/*  3 */ { 10, s_40_3, -1, 1, 0},
+/*  4 */ { 14, s_40_4, 3, 1, 0}
+};
+
+static const symbol s_41_0[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_41_1[8] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81 };
+static const symbol s_41_2[10] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_41_3[6] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_41_4[2] = { 0xCF, 0x87 };
+static const symbol s_41_5[6] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCF, 0x87 };
+static const symbol s_41_6[8] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB2 };
+static const symbol s_41_7[6] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xB8 };
+static const symbol s_41_8[6] = { 0xCE, 0xBE, 0xCE, 0xB5, 0xCE, 0xB8 };
+static const symbol s_41_9[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB8 };
+static const symbol s_41_10[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_41_11[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+
+static const struct among a_41[12] =
+{
+/*  0 */ { 8, s_41_0, -1, 1, 0},
+/*  1 */ { 8, s_41_1, -1, 1, 0},
+/*  2 */ { 10, s_41_2, -1, 1, 0},
+/*  3 */ { 6, s_41_3, -1, 1, 0},
+/*  4 */ { 2, s_41_4, -1, 1, 0},
+/*  5 */ { 6, s_41_5, 4, 1, 0},
+/*  6 */ { 8, s_41_6, -1, 1, 0},
+/*  7 */ { 6, s_41_7, -1, 1, 0},
+/*  8 */ { 6, s_41_8, -1, 1, 0},
+/*  9 */ { 8, s_41_9, -1, 1, 0},
+/* 10 */ { 8, s_41_10, -1, 1, 0},
+/* 11 */ { 6, s_41_11, -1, 1, 0}
+};
+
+static const symbol s_42_0[4] = { 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_42_1[4] = { 0xCF, 0x84, 0xCF, 0x83 };
+
+static const struct among a_42[2] =
+{
+/*  0 */ { 4, s_42_0, -1, 1, 0},
+/*  1 */ { 4, s_42_1, -1, 1, 0}
+};
+
+static const symbol s_43_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_1[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_2[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_3[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_4[12] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_5[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_6[10] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_7[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_8[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_9[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_43_10[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+
+static const struct among a_43[11] =
+{
+/*  0 */ { 12, s_43_0, -1, 1, 0},
+/*  1 */ { 10, s_43_1, -1, 1, 0},
+/*  2 */ { 14, s_43_2, -1, 1, 0},
+/*  3 */ { 16, s_43_3, 2, 1, 0},
+/*  4 */ { 12, s_43_4, -1, 1, 0},
+/*  5 */ { 14, s_43_5, 4, 1, 0},
+/*  6 */ { 10, s_43_6, -1, 1, 0},
+/*  7 */ { 12, s_43_7, 6, 1, 0},
+/*  8 */ { 10, s_43_8, -1, 1, 0},
+/*  9 */ { 10, s_43_9, -1, 1, 0},
+/* 10 */ { 14, s_43_10, 9, 1, 0}
+};
+
+static const symbol s_44_0[2] = { 0xCF, 0x80 };
+static const symbol s_44_1[4] = { 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_44_2[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_44_3[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_44_4[18] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_44_5[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_44_6[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_44_7[12] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_44_8[12] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_44_9[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_44_10[4] = { 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_44_11[10] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_44_12[6] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_44_13[12] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB8, 0xCE, 0xB7, 0xCF, 0x81 };
+static const symbol s_44_14[12] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_44_15[2] = { 0xCF, 0x83 };
+static const symbol s_44_16[16] = { 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_44_17[6] = { 0xCE, 0xB8, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_44_18[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_44_19[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_44_20[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_44_21[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_44_22[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_44_23[14] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_44_24[6] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_44_25[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x84 };
+static const symbol s_44_26[10] = { 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCF, 0x84 };
+static const symbol s_44_27[8] = { 0xCE, 0xB6, 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_44_28[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_44_29[2] = { 0xCF, 0x86 };
+static const symbol s_44_30[14] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_44_31[14] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_44_32[6] = { 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_44_33[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_44_34[8] = { 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x86 };
+static const symbol s_44_35[16] = { 0xCF, 0x86, 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x86 };
+static const symbol s_44_36[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCF, 0x86 };
+static const symbol s_44_37[12] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCF, 0x86 };
+static const symbol s_44_38[2] = { 0xCF, 0x87 };
+static const symbol s_44_39[14] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_44_40[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_44_41[12] = { 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_44_42[22] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_44_43[22] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_44_44[22] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xB2, 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB7, 0xCF, 0x87 };
+static const symbol s_44_45[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x87 };
+static const symbol s_44_46[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 };
+static const symbol s_44_47[8] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 };
+static const symbol s_44_48[14] = { 0xCF, 0x88, 0xCE, 0xB7, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB2 };
+static const symbol s_44_49[6] = { 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_44_50[8] = { 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_44_51[16] = { 0xCE, 0xBE, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB2 };
+static const symbol s_44_52[2] = { 0xCE, 0xB3 };
+static const symbol s_44_53[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xB3 };
+static const symbol s_44_54[10] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xB3 };
+static const symbol s_44_55[4] = { 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_44_56[8] = { 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_44_57[8] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_44_58[10] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 };
+static const symbol s_44_59[12] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 };
+static const symbol s_44_60[10] = { 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xB3 };
+static const symbol s_44_61[8] = { 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xB3 };
+static const symbol s_44_62[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB7, 0xCE, 0xB3 };
+static const symbol s_44_63[6] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB3 };
+static const symbol s_44_64[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB6 };
+static const symbol s_44_65[2] = { 0xCE, 0xB8 };
+static const symbol s_44_66[12] = { 0xCE, 0xBC, 0xCF, 0x89, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB8 };
+static const symbol s_44_67[6] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_44_68[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_44_69[8] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_44_70[12] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x85, 0xCE, 0xBA };
+static const symbol s_44_71[6] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xBA };
+static const symbol s_44_72[10] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA };
+static const symbol s_44_73[4] = { 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_44_74[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_44_75[10] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBA };
+static const symbol s_44_76[4] = { 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_44_77[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_44_78[12] = { 0xCF, 0x88, 0xCF, 0x85, 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_44_79[10] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_44_80[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_44_81[6] = { 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_44_82[14] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCE, 0xB8, 0xCF, 0x85, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_44_83[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_44_84[12] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_44_85[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_44_86[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_44_87[12] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_44_88[2] = { 0xCE, 0xBC };
+static const symbol s_44_89[14] = { 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC };
+static const symbol s_44_90[10] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBC };
+static const symbol s_44_91[16] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_44_92[16] = { 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBC };
+static const symbol s_44_93[2] = { 0xCE, 0xBD };
+static const symbol s_44_94[16] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+
+static const struct among a_44[95] =
+{
+/*  0 */ { 2, s_44_0, -1, 1, 0},
+/*  1 */ { 4, s_44_1, 0, 1, 0},
+/*  2 */ { 14, s_44_2, 0, 1, 0},
+/*  3 */ { 8, s_44_3, 0, 1, 0},
+/*  4 */ { 18, s_44_4, 0, 1, 0},
+/*  5 */ { 8, s_44_5, 0, 1, 0},
+/*  6 */ { 6, s_44_6, 0, 1, 0},
+/*  7 */ { 12, s_44_7, 6, 1, 0},
+/*  8 */ { 12, s_44_8, -1, 1, 0},
+/*  9 */ { 6, s_44_9, -1, 1, 0},
+/* 10 */ { 4, s_44_10, -1, 1, 0},
+/* 11 */ { 10, s_44_11, 10, 1, 0},
+/* 12 */ { 6, s_44_12, 10, 1, 0},
+/* 13 */ { 12, s_44_13, -1, 1, 0},
+/* 14 */ { 12, s_44_14, -1, 1, 0},
+/* 15 */ { 2, s_44_15, -1, 1, 0},
+/* 16 */ { 16, s_44_16, 15, 1, 0},
+/* 17 */ { 6, s_44_17, 15, 1, 0},
+/* 18 */ { 6, s_44_18, 15, 1, 0},
+/* 19 */ { 10, s_44_19, 15, 1, 0},
+/* 20 */ { 8, s_44_20, -1, 1, 0},
+/* 21 */ { 8, s_44_21, -1, 1, 0},
+/* 22 */ { 8, s_44_22, -1, 1, 0},
+/* 23 */ { 14, s_44_23, -1, 1, 0},
+/* 24 */ { 6, s_44_24, -1, 1, 0},
+/* 25 */ { 12, s_44_25, -1, 1, 0},
+/* 26 */ { 10, s_44_26, -1, 1, 0},
+/* 27 */ { 8, s_44_27, -1, 1, 0},
+/* 28 */ { 10, s_44_28, -1, 1, 0},
+/* 29 */ { 2, s_44_29, -1, 1, 0},
+/* 30 */ { 14, s_44_30, 29, 1, 0},
+/* 31 */ { 14, s_44_31, 29, 1, 0},
+/* 32 */ { 6, s_44_32, 29, 1, 0},
+/* 33 */ { 8, s_44_33, 29, 1, 0},
+/* 34 */ { 8, s_44_34, 29, 1, 0},
+/* 35 */ { 16, s_44_35, 34, 1, 0},
+/* 36 */ { 10, s_44_36, 29, 1, 0},
+/* 37 */ { 12, s_44_37, 36, 1, 0},
+/* 38 */ { 2, s_44_38, -1, 1, 0},
+/* 39 */ { 14, s_44_39, 38, 1, 0},
+/* 40 */ { 8, s_44_40, 38, 1, 0},
+/* 41 */ { 12, s_44_41, 38, 1, 0},
+/* 42 */ { 22, s_44_42, 41, 1, 0},
+/* 43 */ { 22, s_44_43, 41, 1, 0},
+/* 44 */ { 22, s_44_44, 41, 1, 0},
+/* 45 */ { 6, s_44_45, 38, 1, 0},
+/* 46 */ { 6, s_44_46, -1, 1, 0},
+/* 47 */ { 8, s_44_47, 46, 1, 0},
+/* 48 */ { 14, s_44_48, 46, 1, 0},
+/* 49 */ { 6, s_44_49, -1, 1, 0},
+/* 50 */ { 8, s_44_50, 49, 1, 0},
+/* 51 */ { 16, s_44_51, 50, 1, 0},
+/* 52 */ { 2, s_44_52, -1, 1, 0},
+/* 53 */ { 10, s_44_53, 52, 1, 0},
+/* 54 */ { 10, s_44_54, 52, 1, 0},
+/* 55 */ { 4, s_44_55, 52, 1, 0},
+/* 56 */ { 8, s_44_56, 55, 1, 0},
+/* 57 */ { 8, s_44_57, 55, 1, 0},
+/* 58 */ { 10, s_44_58, 52, 1, 0},
+/* 59 */ { 12, s_44_59, 58, 1, 0},
+/* 60 */ { 10, s_44_60, 52, 1, 0},
+/* 61 */ { 8, s_44_61, 52, 1, 0},
+/* 62 */ { 8, s_44_62, 52, 1, 0},
+/* 63 */ { 6, s_44_63, 52, 1, 0},
+/* 64 */ { 14, s_44_64, -1, 1, 0},
+/* 65 */ { 2, s_44_65, -1, 1, 0},
+/* 66 */ { 12, s_44_66, 65, 1, 0},
+/* 67 */ { 6, s_44_67, 65, 1, 0},
+/* 68 */ { 8, s_44_68, 67, 1, 0},
+/* 69 */ { 8, s_44_69, -1, 1, 0},
+/* 70 */ { 12, s_44_70, -1, 1, 0},
+/* 71 */ { 6, s_44_71, -1, 1, 0},
+/* 72 */ { 10, s_44_72, -1, 1, 0},
+/* 73 */ { 4, s_44_73, -1, 1, 0},
+/* 74 */ { 8, s_44_74, 73, 1, 0},
+/* 75 */ { 10, s_44_75, -1, 1, 0},
+/* 76 */ { 4, s_44_76, -1, 1, 0},
+/* 77 */ { 8, s_44_77, 76, 1, 0},
+/* 78 */ { 12, s_44_78, 76, 1, 0},
+/* 79 */ { 10, s_44_79, 76, 1, 0},
+/* 80 */ { 6, s_44_80, -1, 1, 0},
+/* 81 */ { 6, s_44_81, -1, 1, 0},
+/* 82 */ { 14, s_44_82, 81, 1, 0},
+/* 83 */ { 14, s_44_83, 81, 1, 0},
+/* 84 */ { 12, s_44_84, 81, 1, 0},
+/* 85 */ { 12, s_44_85, -1, 1, 0},
+/* 86 */ { 6, s_44_86, -1, 1, 0},
+/* 87 */ { 12, s_44_87, -1, 1, 0},
+/* 88 */ { 2, s_44_88, -1, 1, 0},
+/* 89 */ { 14, s_44_89, 88, 1, 0},
+/* 90 */ { 10, s_44_90, 88, 1, 0},
+/* 91 */ { 16, s_44_91, 88, 1, 0},
+/* 92 */ { 16, s_44_92, 88, 1, 0},
+/* 93 */ { 2, s_44_93, -1, 1, 0},
+/* 94 */ { 16, s_44_94, 93, 1, 0}
+};
+
+static const symbol s_45_0[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+
+static const struct among a_45[1] =
+{
+/*  0 */ { 10, s_45_0, -1, 1, 0}
+};
+
+static const symbol s_46_0[6] = { 0xCF, 0x80, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_46_1[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_46_2[6] = { 0xCF, 0x87, 0xCF, 0x89, 0xCF, 0x81 };
+static const symbol s_46_3[6] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_46_4[4] = { 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_46_5[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x81 };
+static const symbol s_46_6[6] = { 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_46_7[6] = { 0xCE, 0xBD, 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_46_8[4] = { 0xCF, 0x83, 0xCF, 0x87 };
+static const symbol s_46_9[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB4 };
+static const symbol s_46_10[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4 };
+static const symbol s_46_11[4] = { 0xCE, 0xBF, 0xCE, 0xB4 };
+static const symbol s_46_12[10] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB8 };
+static const symbol s_46_13[4] = { 0xCF, 0x83, 0xCE, 0xB8 };
+static const symbol s_46_14[6] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCE, 0xB8 };
+static const symbol s_46_15[6] = { 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_46_16[6] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_46_17[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_46_18[6] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_46_19[6] = { 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_46_20[6] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xB8 };
+static const symbol s_46_21[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 };
+static const symbol s_46_22[6] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB8 };
+static const symbol s_46_23[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xB8 };
+static const symbol s_46_24[6] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBA };
+static const symbol s_46_25[8] = { 0xCF, 0x89, 0xCF, 0x86, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_46_26[6] = { 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBB };
+static const symbol s_46_27[6] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_46_28[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBD };
+static const symbol s_46_29[6] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_46_30[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_46[31] =
+{
+/*  0 */ { 6, s_46_0, -1, 1, 0},
+/*  1 */ { 6, s_46_1, -1, 1, 0},
+/*  2 */ { 6, s_46_2, -1, 1, 0},
+/*  3 */ { 6, s_46_3, -1, 1, 0},
+/*  4 */ { 4, s_46_4, -1, 1, 0},
+/*  5 */ { 6, s_46_5, -1, 1, 0},
+/*  6 */ { 6, s_46_6, -1, 1, 0},
+/*  7 */ { 6, s_46_7, -1, 1, 0},
+/*  8 */ { 4, s_46_8, -1, 1, 0},
+/*  9 */ { 8, s_46_9, -1, 1, 0},
+/* 10 */ { 6, s_46_10, -1, 1, 0},
+/* 11 */ { 4, s_46_11, -1, 1, 0},
+/* 12 */ { 10, s_46_12, -1, 1, 0},
+/* 13 */ { 4, s_46_13, -1, 1, 0},
+/* 14 */ { 6, s_46_14, -1, 1, 0},
+/* 15 */ { 6, s_46_15, -1, 1, 0},
+/* 16 */ { 6, s_46_16, -1, 1, 0},
+/* 17 */ { 8, s_46_17, -1, 1, 0},
+/* 18 */ { 6, s_46_18, -1, 1, 0},
+/* 19 */ { 6, s_46_19, -1, 1, 0},
+/* 20 */ { 6, s_46_20, -1, 1, 0},
+/* 21 */ { 8, s_46_21, -1, 1, 0},
+/* 22 */ { 6, s_46_22, -1, 1, 0},
+/* 23 */ { 6, s_46_23, -1, 1, 0},
+/* 24 */ { 6, s_46_24, -1, 1, 0},
+/* 25 */ { 8, s_46_25, -1, 1, 0},
+/* 26 */ { 6, s_46_26, -1, 1, 0},
+/* 27 */ { 6, s_46_27, -1, 1, 0},
+/* 28 */ { 6, s_46_28, -1, 1, 0},
+/* 29 */ { 6, s_46_29, -1, 1, 0},
+/* 30 */ { 6, s_46_30, -1, 1, 0}
+};
+
+static const symbol s_47_0[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x80 };
+static const symbol s_47_1[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_47_2[8] = { 0xCE, 0xB8, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 };
+static const symbol s_47_3[6] = { 0xCE, 0xBD, 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_47_4[8] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_47_5[8] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_47_6[6] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCF, 0x81 };
+static const symbol s_47_7[8] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_47_8[2] = { 0xCF, 0x85 };
+static const symbol s_47_9[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCF, 0x81, 0xCF, 0x86 };
+static const symbol s_47_10[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x86 };
+static const symbol s_47_11[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_47_12[2] = { 0xCE, 0xB4 };
+static const symbol s_47_13[4] = { 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_47_14[2] = { 0xCE, 0xB8 };
+static const symbol s_47_15[4] = { 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_47_16[4] = { 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_47_17[6] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBA };
+static const symbol s_47_18[6] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_47_19[14] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_47_20[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_47_21[4] = { 0xCE, 0xB5, 0xCE, 0xBC };
+static const symbol s_47_22[4] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_47_23[6] = { 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBD };
+static const symbol s_47_24[10] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_47[25] =
+{
+/*  0 */ { 8, s_47_0, -1, 1, 0},
+/*  1 */ { 6, s_47_1, -1, 1, 0},
+/*  2 */ { 8, s_47_2, -1, 1, 0},
+/*  3 */ { 6, s_47_3, -1, 1, 0},
+/*  4 */ { 8, s_47_4, -1, 1, 0},
+/*  5 */ { 8, s_47_5, -1, 1, 0},
+/*  6 */ { 6, s_47_6, -1, 1, 0},
+/*  7 */ { 8, s_47_7, -1, 1, 0},
+/*  8 */ { 2, s_47_8, -1, 1, 0},
+/*  9 */ { 8, s_47_9, -1, 1, 0},
+/* 10 */ { 6, s_47_10, -1, 1, 0},
+/* 11 */ { 6, s_47_11, -1, 1, 0},
+/* 12 */ { 2, s_47_12, -1, 1, 0},
+/* 13 */ { 4, s_47_13, 12, 1, 0},
+/* 14 */ { 2, s_47_14, -1, 1, 0},
+/* 15 */ { 4, s_47_15, 14, 1, 0},
+/* 16 */ { 4, s_47_16, -1, 1, 0},
+/* 17 */ { 6, s_47_17, -1, 1, 0},
+/* 18 */ { 6, s_47_18, -1, 1, 0},
+/* 19 */ { 14, s_47_19, -1, 1, 0},
+/* 20 */ { 8, s_47_20, -1, 1, 0},
+/* 21 */ { 4, s_47_21, -1, 1, 0},
+/* 22 */ { 4, s_47_22, -1, 1, 0},
+/* 23 */ { 6, s_47_23, -1, 1, 0},
+/* 24 */ { 10, s_47_24, -1, 1, 0}
+};
+
+static const symbol s_48_0[10] = { 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_48_1[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 };
+
+static const struct among a_48[2] =
+{
+/*  0 */ { 10, s_48_0, -1, 1, 0},
+/*  1 */ { 10, s_48_1, -1, 1, 0}
+};
+
+static const symbol s_49_0[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_49_1[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+
+static const struct among a_49[2] =
+{
+/*  0 */ { 12, s_49_0, -1, 1, 0},
+/*  1 */ { 14, s_49_1, 0, 1, 0}
+};
+
+static const symbol s_50_0[2] = { 0xCF, 0x80 };
+static const symbol s_50_1[4] = { 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_50_2[12] = { 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x80 };
+static const symbol s_50_3[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_50_4[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_50_5[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x86 };
+
+static const struct among a_50[6] =
+{
+/*  0 */ { 2, s_50_0, -1, 1, 0},
+/*  1 */ { 4, s_50_1, 0, 1, 0},
+/*  2 */ { 12, s_50_2, 1, 1, 0},
+/*  3 */ { 8, s_50_3, 0, 1, 0},
+/*  4 */ { 10, s_50_4, 3, 1, 0},
+/*  5 */ { 14, s_50_5, -1, 1, 0}
+};
+
+static const symbol s_51_0[4] = { 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_51_1[6] = { 0xCE, 0xBD, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_51_2[2] = { 0xCE, 0xB6 };
+static const symbol s_51_3[4] = { 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_51_4[14] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_51_5[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_51_6[2] = { 0xCE, 0xBC };
+static const symbol s_51_7[2] = { 0xCE, 0xBE };
+static const symbol s_51_8[6] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF };
+
+static const struct among a_51[9] =
+{
+/*  0 */ { 4, s_51_0, -1, 1, 0},
+/*  1 */ { 6, s_51_1, -1, 1, 0},
+/*  2 */ { 2, s_51_2, -1, 1, 0},
+/*  3 */ { 4, s_51_3, -1, 1, 0},
+/*  4 */ { 14, s_51_4, 3, 1, 0},
+/*  5 */ { 10, s_51_5, -1, 1, 0},
+/*  6 */ { 2, s_51_6, -1, 1, 0},
+/*  7 */ { 2, s_51_7, -1, 1, 0},
+/*  8 */ { 6, s_51_8, -1, 1, 0}
+};
+
+static const symbol s_52_0[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_52_1[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_52_2[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 };
+
+static const struct among a_52[3] =
+{
+/*  0 */ { 12, s_52_0, -1, 1, 0},
+/*  1 */ { 10, s_52_1, -1, 1, 0},
+/*  2 */ { 10, s_52_2, -1, 1, 0}
+};
+
+static const symbol s_53_0[4] = { 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_53_1[8] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB8 };
+static const symbol s_53_2[6] = { 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_53_3[4] = { 0xCE, 0xBF, 0xCE, 0xB8 };
+static const symbol s_53_4[10] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB };
+static const symbol s_53_5[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBB };
+
+static const struct among a_53[6] =
+{
+/*  0 */ { 4, s_53_0, -1, 1, 0},
+/*  1 */ { 8, s_53_1, -1, 1, 0},
+/*  2 */ { 6, s_53_2, -1, 1, 0},
+/*  3 */ { 4, s_53_3, -1, 1, 0},
+/*  4 */ { 10, s_53_4, -1, 1, 0},
+/*  5 */ { 8, s_53_5, -1, 1, 0}
+};
+
+static const symbol s_54_0[2] = { 0xCE, 0xB8 };
+static const symbol s_54_1[10] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB8 };
+static const symbol s_54_2[18] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_54_3[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCE, 0xB8 };
+static const symbol s_54_4[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 };
+
+static const struct among a_54[5] =
+{
+/*  0 */ { 2, s_54_0, -1, 1, 0},
+/*  1 */ { 10, s_54_1, 0, 1, 0},
+/*  2 */ { 18, s_54_2, 0, 1, 0},
+/*  3 */ { 8, s_54_3, 0, 1, 0},
+/*  4 */ { 8, s_54_4, 0, 1, 0}
+};
+
+static const symbol s_55_0[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_55_1[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_55_2[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 };
+
+static const struct among a_55[3] =
+{
+/*  0 */ { 8, s_55_0, -1, 1, 0},
+/*  1 */ { 6, s_55_1, -1, 1, 0},
+/*  2 */ { 6, s_55_2, -1, 1, 0}
+};
+
+static const symbol s_56_0[8] = { 0xCE, 0xB2, 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x80 };
+static const symbol s_56_1[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB4, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_56_2[8] = { 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x89, 0xCF, 0x84 };
+static const symbol s_56_3[10] = { 0xCE, 0xBA, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_56_4[12] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x87 };
+static const symbol s_56_5[6] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCF, 0x87 };
+static const symbol s_56_6[6] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_56_7[6] = { 0xCE, 0xBB, 0xCE, 0xB7, 0xCE, 0xB3 };
+static const symbol s_56_8[8] = { 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x85, 0xCE, 0xB4 };
+static const symbol s_56_9[12] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB9, 0xCE, 0xBB };
+static const symbol s_56_10[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB };
+static const symbol s_56_11[4] = { 0xCE, 0xBF, 0xCE, 0xBC };
+
+static const struct among a_56[12] =
+{
+/*  0 */ { 8, s_56_0, -1, 1, 0},
+/*  1 */ { 10, s_56_1, -1, 1, 0},
+/*  2 */ { 8, s_56_2, -1, 1, 0},
+/*  3 */ { 10, s_56_3, -1, 1, 0},
+/*  4 */ { 12, s_56_4, -1, 1, 0},
+/*  5 */ { 6, s_56_5, -1, 1, 0},
+/*  6 */ { 6, s_56_6, -1, 1, 0},
+/*  7 */ { 6, s_56_7, -1, 1, 0},
+/*  8 */ { 8, s_56_8, -1, 1, 0},
+/*  9 */ { 12, s_56_9, -1, 1, 0},
+/* 10 */ { 8, s_56_10, -1, 1, 0},
+/* 11 */ { 4, s_56_11, -1, 1, 0}
+};
+
+static const symbol s_57_0[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_57_1[2] = { 0xCF, 0x81 };
+static const symbol s_57_2[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x81 };
+static const symbol s_57_3[16] = { 0xCE, 0xB5, 0xCE, 0xBD, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x86, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_57_4[6] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_57_5[14] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x85 };
+static const symbol s_57_6[16] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x85 };
+static const symbol s_57_7[6] = { 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x87 };
+static const symbol s_57_8[6] = { 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_57_9[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_57_10[6] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB4 };
+static const symbol s_57_11[12] = { 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_57_12[4] = { 0xCE, 0xB4, 0xCE, 0xB5 };
+static const symbol s_57_13[6] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5 };
+static const symbol s_57_14[10] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB6 };
+static const symbol s_57_15[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB6 };
+static const symbol s_57_16[6] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xB8 };
+static const symbol s_57_17[12] = { 0xCF, 0x86, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_57_18[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBA };
+static const symbol s_57_19[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB7, 0xCE, 0xBA };
+static const symbol s_57_20[2] = { 0xCE, 0xBB };
+static const symbol s_57_21[2] = { 0xCE, 0xBC };
+static const symbol s_57_22[4] = { 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_57_23[8] = { 0xCE, 0xB2, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBC };
+static const symbol s_57_24[14] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xBD };
+
+static const struct among a_57[25] =
+{
+/*  0 */ { 10, s_57_0, -1, 1, 0},
+/*  1 */ { 2, s_57_1, -1, 1, 0},
+/*  2 */ { 10, s_57_2, 1, 1, 0},
+/*  3 */ { 16, s_57_3, 1, 1, 0},
+/*  4 */ { 6, s_57_4, -1, 1, 0},
+/*  5 */ { 14, s_57_5, -1, 1, 0},
+/*  6 */ { 16, s_57_6, -1, 1, 0},
+/*  7 */ { 6, s_57_7, -1, 1, 0},
+/*  8 */ { 6, s_57_8, -1, 1, 0},
+/*  9 */ { 6, s_57_9, -1, 1, 0},
+/* 10 */ { 6, s_57_10, -1, 1, 0},
+/* 11 */ { 12, s_57_11, -1, 1, 0},
+/* 12 */ { 4, s_57_12, -1, 1, 0},
+/* 13 */ { 6, s_57_13, -1, 1, 0},
+/* 14 */ { 10, s_57_14, -1, 1, 0},
+/* 15 */ { 12, s_57_15, -1, 1, 0},
+/* 16 */ { 6, s_57_16, -1, 1, 0},
+/* 17 */ { 12, s_57_17, -1, 1, 0},
+/* 18 */ { 6, s_57_18, -1, 1, 0},
+/* 19 */ { 8, s_57_19, -1, 1, 0},
+/* 20 */ { 2, s_57_20, -1, 1, 0},
+/* 21 */ { 2, s_57_21, -1, 1, 0},
+/* 22 */ { 4, s_57_22, 21, 1, 0},
+/* 23 */ { 8, s_57_23, 21, 1, 0},
+/* 24 */ { 14, s_57_24, -1, 1, 0}
+};
+
+static const symbol s_58_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_58_1[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_58_2[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5 };
+
+static const struct among a_58[3] =
+{
+/*  0 */ { 10, s_58_0, -1, 1, 0},
+/*  1 */ { 8, s_58_1, -1, 1, 0},
+/*  2 */ { 8, s_58_2, -1, 1, 0}
+};
+
+static const symbol s_59_0[6] = { 0xCF, 0x88, 0xCE, 0xBF, 0xCF, 0x86 };
+static const symbol s_59_1[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x87 };
+
+static const struct among a_59[2] =
+{
+/*  0 */ { 6, s_59_0, -1, -1, 0},
+/*  1 */ { 12, s_59_1, -1, -1, 0}
+};
+
+static const symbol s_60_0[4] = { 0xCF, 0x81, 0xCF, 0x80 };
+static const symbol s_60_1[4] = { 0xCF, 0x80, 0xCF, 0x81 };
+static const symbol s_60_2[4] = { 0xCF, 0x86, 0xCF, 0x81 };
+static const symbol s_60_3[8] = { 0xCF, 0x87, 0xCE, 0xBF, 0xCF, 0x81, 0xCF, 0x84 };
+static const symbol s_60_4[4] = { 0xCF, 0x83, 0xCF, 0x86 };
+static const symbol s_60_5[4] = { 0xCE, 0xBF, 0xCF, 0x86 };
+static const symbol s_60_6[6] = { 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x87 };
+static const symbol s_60_7[6] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCE, 0xBB };
+static const symbol s_60_8[4] = { 0xCE, 0xBB, 0xCE, 0xBB };
+static const symbol s_60_9[8] = { 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD };
+
+static const struct among a_60[10] =
+{
+/*  0 */ { 4, s_60_0, -1, 1, 0},
+/*  1 */ { 4, s_60_1, -1, 1, 0},
+/*  2 */ { 4, s_60_2, -1, 1, 0},
+/*  3 */ { 8, s_60_3, -1, 1, 0},
+/*  4 */ { 4, s_60_4, -1, 1, 0},
+/*  5 */ { 4, s_60_5, -1, 1, 0},
+/*  6 */ { 6, s_60_6, -1, 1, 0},
+/*  7 */ { 6, s_60_7, -1, 1, 0},
+/*  8 */ { 4, s_60_8, -1, 1, 0},
+/*  9 */ { 8, s_60_9, -1, 1, 0}
+};
+
+static const symbol s_61_0[2] = { 0xCF, 0x80 };
+static const symbol s_61_1[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 };
+static const symbol s_61_2[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x80 };
+static const symbol s_61_3[10] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x84, 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_61_4[8] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x80 };
+static const symbol s_61_5[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBC, 0xCF, 0x80 };
+static const symbol s_61_6[16] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x89, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_61_7[14] = { 0xCF, 0x83, 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_61_8[12] = { 0xCE, 0xB4, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_61_9[8] = { 0xCE, 0xBD, 0xCE, 0xB5, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_61_10[16] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_61_11[8] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_61_12[2] = { 0xCF, 0x81 };
+static const symbol s_61_13[4] = { 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_61_14[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x81 };
+static const symbol s_61_15[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_61_16[6] = { 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_61_17[8] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xB1, 0xCF, 0x81 };
+static const symbol s_61_18[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_61_19[2] = { 0xCF, 0x84 };
+static const symbol s_61_20[10] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_61_21[10] = { 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_61_22[10] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_61_23[12] = { 0xCE, 0xB1, 0xCE, 0xB9, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_61_24[8] = { 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_61_25[8] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCE, 0xB9, 0xCF, 0x84 };
+static const symbol s_61_26[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_61_27[8] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_61_28[8] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_61_29[8] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_61_30[10] = { 0xCE, 0xBD, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x84 };
+static const symbol s_61_31[6] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85 };
+static const symbol s_61_32[10] = { 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xBB, 0xCF, 0x85, 0xCF, 0x86 };
+static const symbol s_61_33[4] = { 0xCE, 0xB1, 0xCF, 0x86 };
+static const symbol s_61_34[6] = { 0xCE, 0xBE, 0xCE, 0xB5, 0xCF, 0x86 };
+static const symbol s_61_35[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB7, 0xCF, 0x86 };
+static const symbol s_61_36[8] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x86 };
+static const symbol s_61_37[12] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xB9 };
+static const symbol s_61_38[2] = { 0xCE, 0xBB };
+static const symbol s_61_39[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBB };
+static const symbol s_61_40[2] = { 0xCE, 0xBC };
+static const symbol s_61_41[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_61_42[4] = { 0xCE, 0xB5, 0xCE, 0xBD };
+static const symbol s_61_43[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB2, 0xCE, 0xB5, 0xCE, 0xBD };
+
+static const struct among a_61[44] =
+{
+/*  0 */ { 2, s_61_0, -1, 1, 0},
+/*  1 */ { 6, s_61_1, 0, 1, 0},
+/*  2 */ { 8, s_61_2, 0, 1, 0},
+/*  3 */ { 10, s_61_3, 0, 1, 0},
+/*  4 */ { 8, s_61_4, 0, 1, 0},
+/*  5 */ { 8, s_61_5, 0, 1, 0},
+/*  6 */ { 16, s_61_6, 0, 1, 0},
+/*  7 */ { 14, s_61_7, 0, 1, 0},
+/*  8 */ { 12, s_61_8, 0, 1, 0},
+/*  9 */ { 8, s_61_9, 0, 1, 0},
+/* 10 */ { 16, s_61_10, 0, 1, 0},
+/* 11 */ { 8, s_61_11, 0, 1, 0},
+/* 12 */ { 2, s_61_12, -1, 1, 0},
+/* 13 */ { 4, s_61_13, 12, 1, 0},
+/* 14 */ { 6, s_61_14, 12, 1, 0},
+/* 15 */ { 10, s_61_15, 12, 1, 0},
+/* 16 */ { 6, s_61_16, 12, 1, 0},
+/* 17 */ { 8, s_61_17, 16, 1, 0},
+/* 18 */ { 8, s_61_18, 12, 1, 0},
+/* 19 */ { 2, s_61_19, -1, 1, 0},
+/* 20 */ { 10, s_61_20, 19, 1, 0},
+/* 21 */ { 10, s_61_21, 19, 1, 0},
+/* 22 */ { 10, s_61_22, 19, 1, 0},
+/* 23 */ { 12, s_61_23, 19, 1, 0},
+/* 24 */ { 8, s_61_24, 19, 1, 0},
+/* 25 */ { 8, s_61_25, 19, 1, 0},
+/* 26 */ { 8, s_61_26, 19, 1, 0},
+/* 27 */ { 8, s_61_27, 19, 1, 0},
+/* 28 */ { 8, s_61_28, 19, 1, 0},
+/* 29 */ { 8, s_61_29, 19, 1, 0},
+/* 30 */ { 10, s_61_30, 29, 1, 0},
+/* 31 */ { 6, s_61_31, -1, 1, 0},
+/* 32 */ { 10, s_61_32, -1, 1, 0},
+/* 33 */ { 4, s_61_33, -1, 1, 0},
+/* 34 */ { 6, s_61_34, -1, 1, 0},
+/* 35 */ { 8, s_61_35, -1, 1, 0},
+/* 36 */ { 8, s_61_36, -1, 1, 0},
+/* 37 */ { 12, s_61_37, -1, 1, 0},
+/* 38 */ { 2, s_61_38, -1, 1, 0},
+/* 39 */ { 8, s_61_39, 38, 1, 0},
+/* 40 */ { 2, s_61_40, -1, 1, 0},
+/* 41 */ { 10, s_61_41, 40, 1, 0},
+/* 42 */ { 4, s_61_42, -1, 1, 0},
+/* 43 */ { 12, s_61_43, 42, 1, 0}
+};
+
+static const symbol s_62_0[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_62_1[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1 };
+static const symbol s_62_2[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5 };
+
+static const struct among a_62[3] =
+{
+/*  0 */ { 8, s_62_0, -1, 1, 0},
+/*  1 */ { 6, s_62_1, -1, 1, 0},
+/*  2 */ { 6, s_62_2, -1, 1, 0}
+};
+
+static const symbol s_63_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_63_1[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_63_2[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5 };
+
+static const struct among a_63[3] =
+{
+/*  0 */ { 8, s_63_0, -1, 1, 0},
+/*  1 */ { 6, s_63_1, -1, 1, 0},
+/*  2 */ { 6, s_63_2, -1, 1, 0}
+};
+
+static const symbol s_64_0[2] = { 0xCE, 0xBD };
+static const symbol s_64_1[10] = { 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_64_2[14] = { 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_64_3[12] = { 0xCF, 0x87, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x83, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_64_4[14] = { 0xCE, 0xBC, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_64_5[12] = { 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCE, 0xBC, 0xCE, 0xBF, 0xCE, 0xBD };
+
+static const struct among a_64[6] =
+{
+/*  0 */ { 2, s_64_0, -1, 1, 0},
+/*  1 */ { 10, s_64_1, 0, 1, 0},
+/*  2 */ { 14, s_64_2, 0, 1, 0},
+/*  3 */ { 12, s_64_3, 0, 1, 0},
+/*  4 */ { 14, s_64_4, 0, 1, 0},
+/*  5 */ { 12, s_64_5, 0, 1, 0}
+};
+
+static const symbol s_65_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+
+static const struct among a_65[1] =
+{
+/*  0 */ { 8, s_65_0, -1, 1, 0}
+};
+
+static const symbol s_66_0[4] = { 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_66_1[10] = { 0xCE, 0xB4, 0xCF, 0x85, 0xCF, 0x83, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_66_2[8] = { 0xCE, 0xB5, 0xCF, 0x85, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_66_3[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_66_4[14] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xB9, 0xCE, 0xBD, 0xCE, 0xBF, 0xCF, 0x87, 0xCF, 0x81 };
+static const symbol s_66_5[12] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB9, 0xCE, 0xBC, 0xCF, 0x88 };
+static const symbol s_66_6[4] = { 0xCF, 0x83, 0xCE, 0xB2 };
+static const symbol s_66_7[6] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB2 };
+static const symbol s_66_8[6] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBB };
+static const symbol s_66_9[10] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xBC, 0xCE, 0xBD };
+
+static const struct among a_66[10] =
+{
+/*  0 */ { 4, s_66_0, -1, 1, 0},
+/*  1 */ { 10, s_66_1, 0, 1, 0},
+/*  2 */ { 8, s_66_2, 0, 1, 0},
+/*  3 */ { 6, s_66_3, 0, 1, 0},
+/*  4 */ { 14, s_66_4, 0, 1, 0},
+/*  5 */ { 12, s_66_5, -1, 1, 0},
+/*  6 */ { 4, s_66_6, -1, 1, 0},
+/*  7 */ { 6, s_66_7, 6, 1, 0},
+/*  8 */ { 6, s_66_8, -1, 1, 0},
+/*  9 */ { 10, s_66_9, -1, 1, 0}
+};
+
+static const symbol s_67_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_67_1[12] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_67_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 };
+
+static const struct among a_67[3] =
+{
+/*  0 */ { 8, s_67_0, -1, 1, 0},
+/*  1 */ { 12, s_67_1, 0, 1, 0},
+/*  2 */ { 12, s_67_2, 0, 1, 0}
+};
+
+static const symbol s_68_0[2] = { 0xCF, 0x81 };
+static const symbol s_68_1[22] = { 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_68_2[18] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_68_3[6] = { 0xCF, 0x83, 0xCF, 0x80, 0xCE, 0xB9 };
+static const symbol s_68_4[2] = { 0xCE, 0xBD };
+static const symbol s_68_5[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_68[6] =
+{
+/*  0 */ { 2, s_68_0, -1, 1, 0},
+/*  1 */ { 22, s_68_1, -1, 1, 0},
+/*  2 */ { 18, s_68_2, -1, 1, 0},
+/*  3 */ { 6, s_68_3, -1, 1, 0},
+/*  4 */ { 2, s_68_4, -1, 1, 0},
+/*  5 */ { 8, s_68_5, 4, 1, 0}
+};
+
+static const symbol s_69_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_69_1[12] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_69_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 };
+
+static const struct among a_69[3] =
+{
+/*  0 */ { 8, s_69_0, -1, 1, 0},
+/*  1 */ { 12, s_69_1, 0, 1, 0},
+/*  2 */ { 12, s_69_2, 0, 1, 0}
+};
+
+static const symbol s_70_0[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_70_1[16] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_70_2[16] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xBB, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_70_3[2] = { 0xCF, 0x86 };
+static const symbol s_70_4[2] = { 0xCF, 0x87 };
+static const symbol s_70_5[4] = { 0xCE, 0xB1, 0xCE, 0xB6 };
+static const symbol s_70_6[12] = { 0xCF, 0x89, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xBB };
+
+static const struct among a_70[7] =
+{
+/*  0 */ { 10, s_70_0, -1, 1, 0},
+/*  1 */ { 16, s_70_1, 0, 1, 0},
+/*  2 */ { 16, s_70_2, -1, 1, 0},
+/*  3 */ { 2, s_70_3, -1, 1, 0},
+/*  4 */ { 2, s_70_4, -1, 1, 0},
+/*  5 */ { 4, s_70_5, -1, 1, 0},
+/*  6 */ { 12, s_70_6, -1, 1, 0}
+};
+
+static const symbol s_71_0[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_71_1[8] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1 };
+static const symbol s_71_2[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x89, 0xCE, 0xBD };
+
+static const struct among a_71[3] =
+{
+/*  0 */ { 10, s_71_0, -1, 1, 0},
+/*  1 */ { 8, s_71_1, -1, 1, 0},
+/*  2 */ { 10, s_71_2, -1, 1, 0}
+};
+
+static const symbol s_72_0[4] = { 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_72_1[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_72_2[4] = { 0xCE, 0xB1, 0xCF, 0x83 };
+static const symbol s_72_3[4] = { 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_72_4[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_72_5[8] = { 0xCE, 0xB7, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 };
+static const symbol s_72_6[4] = { 0xCE, 0xB7, 0xCF, 0x83 };
+static const symbol s_72_7[6] = { 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_72_8[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_72_9[4] = { 0xCE, 0xBF, 0xCF, 0x83 };
+static const symbol s_72_10[2] = { 0xCF, 0x85 };
+static const symbol s_72_11[4] = { 0xCE, 0xBF, 0xCF, 0x85 };
+static const symbol s_72_12[2] = { 0xCF, 0x89 };
+static const symbol s_72_13[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x89 };
+static const symbol s_72_14[4] = { 0xCE, 0xB1, 0xCF, 0x89 };
+static const symbol s_72_15[6] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCF, 0x89 };
+static const symbol s_72_16[2] = { 0xCE, 0xB1 };
+static const symbol s_72_17[10] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1 };
+static const symbol s_72_18[12] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_72_19[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_72_20[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_72_21[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 };
+static const symbol s_72_22[2] = { 0xCE, 0xB5 };
+static const symbol s_72_23[14] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_24[12] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_25[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_26[14] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_27[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_28[14] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_29[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_30[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_31[10] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_32[10] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_33[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_34[8] = { 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_35[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_72_36[2] = { 0xCE, 0xB7 };
+static const symbol s_72_37[2] = { 0xCE, 0xB9 };
+static const symbol s_72_38[8] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_39[8] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_40[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_41[8] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_42[8] = { 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_43[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_44[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_45[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_46[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_47[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_48[8] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_49[10] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_50[8] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xB9 };
+static const symbol s_72_51[4] = { 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_72_52[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_72_53[6] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_72_54[8] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB9 };
+static const symbol s_72_55[4] = { 0xCE, 0xBF, 0xCE, 0xB9 };
+static const symbol s_72_56[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_57[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_58[10] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_59[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_60[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_61[10] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_62[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_72_63[4] = { 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_72_64[8] = { 0xCE, 0xB7, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_72_65[4] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_66[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_67[16] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_68[18] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_69[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_70[14] = { 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_71[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_72[14] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_73[16] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_74[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_75[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_76[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_77[12] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_78[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_79[10] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_80[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_81[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_82[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_72_83[2] = { 0xCE, 0xBF };
+
+static const struct among a_72[84] =
+{
+/*  0 */ { 4, s_72_0, -1, 1, 0},
+/*  1 */ { 6, s_72_1, 0, 1, 0},
+/*  2 */ { 4, s_72_2, -1, 1, 0},
+/*  3 */ { 4, s_72_3, -1, 1, 0},
+/*  4 */ { 8, s_72_4, 3, 1, 0},
+/*  5 */ { 8, s_72_5, 3, 1, 0},
+/*  6 */ { 4, s_72_6, -1, 1, 0},
+/*  7 */ { 6, s_72_7, -1, 1, 0},
+/*  8 */ { 10, s_72_8, 7, 1, 0},
+/*  9 */ { 4, s_72_9, -1, 1, 0},
+/* 10 */ { 2, s_72_10, -1, 1, 0},
+/* 11 */ { 4, s_72_11, 10, 1, 0},
+/* 12 */ { 2, s_72_12, -1, 1, 0},
+/* 13 */ { 6, s_72_13, 12, 1, 0},
+/* 14 */ { 4, s_72_14, 12, 1, 0},
+/* 15 */ { 6, s_72_15, 12, 1, 0},
+/* 16 */ { 2, s_72_16, -1, 1, 0},
+/* 17 */ { 10, s_72_17, 16, 1, 0},
+/* 18 */ { 12, s_72_18, 16, 1, 0},
+/* 19 */ { 14, s_72_19, 18, 1, 0},
+/* 20 */ { 12, s_72_20, 16, 1, 0},
+/* 21 */ { 14, s_72_21, 20, 1, 0},
+/* 22 */ { 2, s_72_22, -1, 1, 0},
+/* 23 */ { 14, s_72_23, 22, 1, 0},
+/* 24 */ { 12, s_72_24, 22, 1, 0},
+/* 25 */ { 14, s_72_25, 24, 1, 0},
+/* 26 */ { 14, s_72_26, 22, 1, 0},
+/* 27 */ { 16, s_72_27, 26, 1, 0},
+/* 28 */ { 14, s_72_28, 22, 1, 0},
+/* 29 */ { 12, s_72_29, 22, 1, 0},
+/* 30 */ { 10, s_72_30, 22, 1, 0},
+/* 31 */ { 10, s_72_31, 22, 1, 0},
+/* 32 */ { 10, s_72_32, 22, 1, 0},
+/* 33 */ { 14, s_72_33, 32, 1, 0},
+/* 34 */ { 8, s_72_34, 22, 1, 0},
+/* 35 */ { 12, s_72_35, 34, 1, 0},
+/* 36 */ { 2, s_72_36, -1, 1, 0},
+/* 37 */ { 2, s_72_37, -1, 1, 0},
+/* 38 */ { 8, s_72_38, 37, 1, 0},
+/* 39 */ { 8, s_72_39, 37, 1, 0},
+/* 40 */ { 10, s_72_40, 39, 1, 0},
+/* 41 */ { 8, s_72_41, 37, 1, 0},
+/* 42 */ { 8, s_72_42, 37, 1, 0},
+/* 43 */ { 10, s_72_43, 42, 1, 0},
+/* 44 */ { 12, s_72_44, 37, 1, 0},
+/* 45 */ { 14, s_72_45, 44, 1, 0},
+/* 46 */ { 10, s_72_46, 37, 1, 0},
+/* 47 */ { 10, s_72_47, 37, 1, 0},
+/* 48 */ { 8, s_72_48, 37, 1, 0},
+/* 49 */ { 10, s_72_49, 37, 1, 0},
+/* 50 */ { 8, s_72_50, 37, 1, 0},
+/* 51 */ { 4, s_72_51, 37, 1, 0},
+/* 52 */ { 8, s_72_52, 51, 1, 0},
+/* 53 */ { 6, s_72_53, 51, 1, 0},
+/* 54 */ { 8, s_72_54, 51, 1, 0},
+/* 55 */ { 4, s_72_55, 37, 1, 0},
+/* 56 */ { 6, s_72_56, -1, 1, 0},
+/* 57 */ { 10, s_72_57, 56, 1, 0},
+/* 58 */ { 10, s_72_58, 56, 1, 0},
+/* 59 */ { 12, s_72_59, 58, 1, 0},
+/* 60 */ { 10, s_72_60, 56, 1, 0},
+/* 61 */ { 10, s_72_61, 56, 1, 0},
+/* 62 */ { 12, s_72_62, 61, 1, 0},
+/* 63 */ { 4, s_72_63, -1, 1, 0},
+/* 64 */ { 8, s_72_64, 63, 1, 0},
+/* 65 */ { 4, s_72_65, -1, 1, 0},
+/* 66 */ { 10, s_72_66, 65, 1, 0},
+/* 67 */ { 16, s_72_67, 66, 1, 0},
+/* 68 */ { 18, s_72_68, 67, 1, 0},
+/* 69 */ { 8, s_72_69, 65, 1, 0},
+/* 70 */ { 14, s_72_70, 65, 1, 0},
+/* 71 */ { 16, s_72_71, 70, 1, 0},
+/* 72 */ { 14, s_72_72, 65, 1, 0},
+/* 73 */ { 16, s_72_73, 72, 1, 0},
+/* 74 */ { 12, s_72_74, 65, 1, 0},
+/* 75 */ { 14, s_72_75, 74, 1, 0},
+/* 76 */ { 10, s_72_76, 65, 1, 0},
+/* 77 */ { 12, s_72_77, 76, 1, 0},
+/* 78 */ { 8, s_72_78, 65, 1, 0},
+/* 79 */ { 10, s_72_79, 78, 1, 0},
+/* 80 */ { 8, s_72_80, 65, 1, 0},
+/* 81 */ { 8, s_72_81, 65, 1, 0},
+/* 82 */ { 12, s_72_82, 81, 1, 0},
+/* 83 */ { 2, s_72_83, -1, 1, 0}
+};
+
+static const symbol s_73_0[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_73_1[8] = { 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_73_2[8] = { 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_73_3[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_73_4[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_73_5[8] = { 0xCF, 0x85, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_73_6[8] = { 0xCF, 0x89, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+static const symbol s_73_7[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 };
+
+static const struct among a_73[8] =
+{
+/*  0 */ { 10, s_73_0, -1, 1, 0},
+/*  1 */ { 8, s_73_1, -1, 1, 0},
+/*  2 */ { 8, s_73_2, -1, 1, 0},
+/*  3 */ { 8, s_73_3, -1, 1, 0},
+/*  4 */ { 10, s_73_4, -1, 1, 0},
+/*  5 */ { 8, s_73_5, -1, 1, 0},
+/*  6 */ { 8, s_73_6, -1, 1, 0},
+/*  7 */ { 8, s_73_7, -1, 1, 0}
+};
+
+static const unsigned char g_v[] = { 81, 65, 16, 1 };
+
+static const unsigned char g_v2[] = { 81, 65, 0, 1 };
+
+static const symbol s_0[] = { 0xCE, 0xB1 };
+static const symbol s_1[] = { 0xCE, 0xB2 };
+static const symbol s_2[] = { 0xCE, 0xB3 };
+static const symbol s_3[] = { 0xCE, 0xB4 };
+static const symbol s_4[] = { 0xCE, 0xB5 };
+static const symbol s_5[] = { 0xCE, 0xB6 };
+static const symbol s_6[] = { 0xCE, 0xB7 };
+static const symbol s_7[] = { 0xCE, 0xB8 };
+static const symbol s_8[] = { 0xCE, 0xB9 };
+static const symbol s_9[] = { 0xCE, 0xBA };
+static const symbol s_10[] = { 0xCE, 0xBB };
+static const symbol s_11[] = { 0xCE, 0xBC };
+static const symbol s_12[] = { 0xCE, 0xBD };
+static const symbol s_13[] = { 0xCE, 0xBE };
+static const symbol s_14[] = { 0xCE, 0xBF };
+static const symbol s_15[] = { 0xCF, 0x80 };
+static const symbol s_16[] = { 0xCF, 0x81 };
+static const symbol s_17[] = { 0xCF, 0x83 };
+static const symbol s_18[] = { 0xCF, 0x84 };
+static const symbol s_19[] = { 0xCF, 0x85 };
+static const symbol s_20[] = { 0xCF, 0x86 };
+static const symbol s_21[] = { 0xCF, 0x87 };
+static const symbol s_22[] = { 0xCF, 0x88 };
+static const symbol s_23[] = { 0xCF, 0x89 };
+static const symbol s_24[] = { 0xCF, 0x86, 0xCE, 0xB1 };
+static const symbol s_25[] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB1 };
+static const symbol s_26[] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF };
+static const symbol s_27[] = { 0xCF, 0x83, 0xCE, 0xBF };
+static const symbol s_28[] = { 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF };
+static const symbol s_29[] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5 };
+static const symbol s_30[] = { 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_31[] = { 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 };
+static const symbol s_32[] = { 0xCF, 0x86, 0xCF, 0x89 };
+static const symbol s_33[] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_34[] = { 0xCE, 0xB3, 0xCE, 0xB5, 0xCE, 0xB3, 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_35[] = { 0xCE, 0xB9 };
+static const symbol s_36[] = { 0xCE, 0xB9, 0xCE, 0xB6 };
+static const symbol s_37[] = { 0xCF, 0x89, 0xCE, 0xBD };
+static const symbol s_38[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1 };
+static const symbol s_39[] = { 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_40[] = { 0xCE, 0xB9 };
+static const symbol s_41[] = { 0xCE, 0xB9, 0xCF, 0x83 };
+static const symbol s_42[] = { 0xCE, 0xB9 };
+static const symbol s_43[] = { 0xCE, 0xB9 };
+static const symbol s_44[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_45[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC };
+static const symbol s_46[] = { 0xCE, 0xB9 };
+static const symbol s_47[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_48[] = { 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCE, 0xBC };
+static const symbol s_49[] = { 0xCE, 0xB3, 0xCE, 0xBD, 0xCF, 0x89, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_50[] = { 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBD };
+static const symbol s_51[] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBA, 0xCF, 0x84 };
+static const symbol s_52[] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x80, 0xCF, 0x84 };
+static const symbol s_53[] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80 };
+static const symbol s_54[] = { 0xCE, 0xB1, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB4, 0xCF, 0x81 };
+static const symbol s_55[] = { 0xCE, 0xB2, 0xCF, 0x85, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_56[] = { 0xCE, 0xB8, 0xCE, 0xB5, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81 };
+static const symbol s_57[] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_58[] = { 0xCE, 0xB1, 0xCE, 0xBA };
+static const symbol s_59[] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_60[] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81 };
+static const symbol s_61[] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83 };
+static const symbol s_62[] = { 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_63[] = { 0xCE, 0xB9, 0xCE, 0xB4 };
+static const symbol s_64[] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA };
+static const symbol s_65[] = { 0xCE, 0xB1, 0xCE, 0xB4 };
+static const symbol s_66[] = { 0xCE, 0xB5, 0xCE, 0xB4 };
+static const symbol s_67[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4 };
+static const symbol s_68[] = { 0xCE, 0xB5 };
+static const symbol s_69[] = { 0xCE, 0xB9 };
+static const symbol s_70[] = { 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_71[] = { 0xCE, 0xB9, 0xCE, 0xBA };
+static const symbol s_72[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_73[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_74[] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 };
+static const symbol s_75[] = { 0xCE, 0xB1, 0xCE, 0xBC };
+static const symbol s_76[] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_77[] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 };
+static const symbol s_78[] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_79[] = { 0xCE, 0xB1, 0xCE, 0xBD };
+static const symbol s_80[] = { 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_81[] = { 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_82[] = { 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_83[] = { 0xCE, 0xB5, 0xCF, 0x84 };
+static const symbol s_84[] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCF, 0x87 };
+static const symbol s_85[] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_86[] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB5 };
+static const symbol s_87[] = { 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84 };
+static const symbol s_88[] = { 0xCE, 0xBF, 0xCE, 0xBD };
+static const symbol s_89[] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_90[] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_91[] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_92[] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 };
+static const symbol s_93[] = { 0xCE, 0xB9, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_94[] = { 0xCE, 0xB7, 0xCE, 0xBA };
+static const symbol s_95[] = { 0xCE, 0xB7, 0xCE, 0xBA };
+static const symbol s_96[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_97[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 };
+static const symbol s_98[] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBB };
+static const symbol s_99[] = { 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_100[] = { 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_101[] = { 0xCE, 0xB1, 0xCE, 0xB3 };
+static const symbol s_102[] = { 0xCE, 0xB7, 0xCF, 0x83 };
+static const symbol s_103[] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x84 };
+static const symbol s_104[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD };
+static const symbol s_105[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC };
+static const symbol s_106[] = { 0xCE, 0xBC, 0xCE, 0xB1 };
+
+static int r_has_min_length(struct SN_env * z) { /* backwardmode */
+    if (!(len_utf8(z->p) >= 3)) return 0; /* $(<integer expression> >= <integer expression>), line 111 */
+    return 1;
+}
+
+static int r_tolower(struct SN_env * z) { /* backwardmode */
+    int among_var;
+    while(1) { /* repeat, line 115 */
+        int m1 = z->l - z->c; (void)m1;
+        z->ket = z->c; /* [, line 116 */
+        among_var = find_among_b(z, a_0, 46); /* substring, line 116 */
+        if (!(among_var)) goto lab0;
+        z->bra = z->c; /* ], line 116 */
+        switch (among_var) { /* among, line 116 */
+            case 1:
+                {   int ret = slice_from_s(z, 2, s_0); /* <-, line 117 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 2:
+                {   int ret = slice_from_s(z, 2, s_1); /* <-, line 118 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 3:
+                {   int ret = slice_from_s(z, 2, s_2); /* <-, line 119 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 4:
+                {   int ret = slice_from_s(z, 2, s_3); /* <-, line 120 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                {   int ret = slice_from_s(z, 2, s_4); /* <-, line 121 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 6:
+                {   int ret = slice_from_s(z, 2, s_5); /* <-, line 122 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 7:
+                {   int ret = slice_from_s(z, 2, s_6); /* <-, line 123 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 8:
+                {   int ret = slice_from_s(z, 2, s_7); /* <-, line 124 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 9:
+                {   int ret = slice_from_s(z, 2, s_8); /* <-, line 125 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 10:
+                {   int ret = slice_from_s(z, 2, s_9); /* <-, line 126 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 11:
+                {   int ret = slice_from_s(z, 2, s_10); /* <-, line 127 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 12:
+                {   int ret = slice_from_s(z, 2, s_11); /* <-, line 128 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 13:
+                {   int ret = slice_from_s(z, 2, s_12); /* <-, line 129 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 14:
+                {   int ret = slice_from_s(z, 2, s_13); /* <-, line 130 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 15:
+                {   int ret = slice_from_s(z, 2, s_14); /* <-, line 131 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 16:
+                {   int ret = slice_from_s(z, 2, s_15); /* <-, line 132 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 17:
+                {   int ret = slice_from_s(z, 2, s_16); /* <-, line 133 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 18:
+                {   int ret = slice_from_s(z, 2, s_17); /* <-, line 134 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 19:
+                {   int ret = slice_from_s(z, 2, s_18); /* <-, line 135 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 20:
+                {   int ret = slice_from_s(z, 2, s_19); /* <-, line 136 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 21:
+                {   int ret = slice_from_s(z, 2, s_20); /* <-, line 137 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 22:
+                {   int ret = slice_from_s(z, 2, s_21); /* <-, line 138 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 23:
+                {   int ret = slice_from_s(z, 2, s_22); /* <-, line 139 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 24:
+                {   int ret = slice_from_s(z, 2, s_23); /* <-, line 140 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 25:
+                {   int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
+                    if (ret < 0) goto lab0;
+                    z->c = ret; /* next, line 162 */
+                }
+                break;
+        }
+        continue;
+    lab0:
+        z->c = z->l - m1;
+        break;
+    }
+    return 1;
+}
+
+static int r_step1(struct SN_env * z) { /* backwardmode */
+    int among_var;
+    z->ket = z->c; /* [, line 168 */
+    among_var = find_among_b(z, a_1, 40); /* substring, line 168 */
+    if (!(among_var)) return 0;
+    z->bra = z->c; /* ], line 168 */
+    switch (among_var) { /* among, line 168 */
+        case 1:
+            {   int ret = slice_from_s(z, 4, s_24); /* <-, line 169 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 2:
+            {   int ret = slice_from_s(z, 6, s_25); /* <-, line 170 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 3:
+            {   int ret = slice_from_s(z, 6, s_26); /* <-, line 171 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 4:
+            {   int ret = slice_from_s(z, 4, s_27); /* <-, line 172 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 5:
+            {   int ret = slice_from_s(z, 8, s_28); /* <-, line 173 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 6:
+            {   int ret = slice_from_s(z, 6, s_29); /* <-, line 174 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 7:
+            {   int ret = slice_from_s(z, 6, s_30); /* <-, line 175 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 8:
+            {   int ret = slice_from_s(z, 6, s_31); /* <-, line 176 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 9:
+            {   int ret = slice_from_s(z, 4, s_32); /* <-, line 177 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 10:
+            {   int ret = slice_from_s(z, 12, s_33); /* <-, line 178 */
+                if (ret < 0) return ret;
+            }
+            break;
+        case 11:
+            {   int ret = slice_from_s(z, 10, s_34); /* <-, line 179 */
+                if (ret < 0) return ret;
+            }
+            break;
+    }
+    z->B[0] = 0; /* unset test1, line 181 */
+    return 1;
+}
+
+static int r_steps1(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 185 */
+    if (!(find_among_b(z, a_4, 14))) return 0; /* substring, line 185 */
+    z->bra = z->c; /* ], line 185 */
+    {   int ret = slice_del(z); /* delete, line 188 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 189 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 193 */
+        z->ket = z->c; /* [, line 190 */
+        if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1; /* substring, line 190 */
+        if (!(find_among_b(z, a_2, 9))) goto lab1;
+        z->bra = z->c; /* ], line 190 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 190 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 192 */
+        if (z->S[0] == 0) return -1; /* -> s, line 192 */
+        {   int ret = slice_from_s(z, 2, s_35); /* <-, line 192 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 192 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 194 */
+        if (!(find_among_b(z, a_3, 22))) return 0; /* substring, line 194 */
+        z->bra = z->c; /* ], line 194 */
+        if (z->c > z->lb) return 0; /* atlimit, line 194 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 198 */
+        if (z->S[0] == 0) return -1; /* -> s, line 198 */
+        {   int ret = slice_from_s(z, 4, s_36); /* <-, line 198 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 198 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_steps2(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 205 */
+    if (!(find_among_b(z, a_6, 7))) return 0; /* substring, line 205 */
+    z->bra = z->c; /* ], line 205 */
+    {   int ret = slice_del(z); /* delete, line 207 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 208 */
+    z->ket = z->c; /* [, line 209 */
+    if (!(find_among_b(z, a_5, 8))) return 0; /* substring, line 209 */
+    z->bra = z->c; /* ], line 209 */
+    if (z->c > z->lb) return 0; /* atlimit, line 209 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 210 */
+    if (z->S[0] == 0) return -1; /* -> s, line 210 */
+    {   int ret = slice_from_s(z, 4, s_37); /* <-, line 210 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 210 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_steps3(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 217 */
+    if (!(find_among_b(z, a_9, 7))) return 0; /* substring, line 217 */
+    z->bra = z->c; /* ], line 217 */
+    {   int ret = slice_del(z); /* delete, line 219 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 220 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 221 */
+        if (!(eq_s_b(z, 6, s_38))) goto lab1; /* literal, line 221 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 221 */
+        {   int ret = slice_from_s(z, 4, s_39); /* <-, line 221 */
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 222 */
+        if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 222 */
+        if (!(find_among_b(z, a_7, 19))) goto lab2;
+        z->bra = z->c; /* ], line 222 */
+        if (z->c > z->lb) goto lab2; /* atlimit, line 222 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 226 */
+        if (z->S[0] == 0) return -1; /* -> s, line 226 */
+        {   int ret = slice_from_s(z, 2, s_40); /* <-, line 226 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 226 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab2:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 228 */
+        if (!(find_among_b(z, a_8, 13))) return 0; /* substring, line 228 */
+        z->bra = z->c; /* ], line 228 */
+        if (z->c > z->lb) return 0; /* atlimit, line 228 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 231 */
+        if (z->S[0] == 0) return -1; /* -> s, line 231 */
+        {   int ret = slice_from_s(z, 4, s_41); /* <-, line 231 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 231 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_steps4(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 238 */
+    if (!(find_among_b(z, a_11, 7))) return 0; /* substring, line 238 */
+    z->bra = z->c; /* ], line 238 */
+    {   int ret = slice_del(z); /* delete, line 240 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 241 */
+    z->ket = z->c; /* [, line 242 */
+    if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 242 */
+    if (!(find_among_b(z, a_10, 19))) return 0;
+    z->bra = z->c; /* ], line 242 */
+    if (z->c > z->lb) return 0; /* atlimit, line 242 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 246 */
+    if (z->S[0] == 0) return -1; /* -> s, line 246 */
+    {   int ret = slice_from_s(z, 2, s_42); /* <-, line 246 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 246 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_steps5(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 253 */
+    if (!(find_among_b(z, a_14, 11))) return 0; /* substring, line 253 */
+    z->bra = z->c; /* ], line 253 */
+    {   int ret = slice_del(z); /* delete, line 256 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 257 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 261 */
+        z->ket = z->c; /* [, line 258 */
+        if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 191)) goto lab1; /* substring, line 258 */
+        if (!(find_among_b(z, a_12, 7))) goto lab1;
+        z->bra = z->c; /* ], line 258 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 258 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 260 */
+        if (z->S[0] == 0) return -1; /* -> s, line 260 */
+        {   int ret = slice_from_s(z, 2, s_43); /* <-, line 260 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 260 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 262 */
+        if (!(find_among_b(z, a_13, 33))) return 0; /* substring, line 262 */
+        z->bra = z->c; /* ], line 262 */
+        if (z->c > z->lb) return 0; /* atlimit, line 262 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 266 */
+        if (z->S[0] == 0) return -1; /* -> s, line 266 */
+        {   int ret = slice_from_s(z, 6, s_44); /* <-, line 266 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 266 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_steps6(struct SN_env * z) { /* backwardmode */
+    int among_var;
+    z->ket = z->c; /* [, line 273 */
+    if (!(find_among_b(z, a_18, 6))) return 0; /* substring, line 273 */
+    z->bra = z->c; /* ], line 273 */
+    {   int ret = slice_del(z); /* delete, line 275 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 276 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 280 */
+        z->ket = z->c; /* [, line 277 */
+        if (z->c - 3 <= z->lb || z->p[z->c - 1] != 181) goto lab1; /* substring, line 277 */
+        if (!(find_among_b(z, a_15, 5))) goto lab1;
+        z->bra = z->c; /* ], line 277 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 277 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 279 */
+        if (z->S[0] == 0) return -1; /* -> s, line 279 */
+        {   int ret = slice_from_s(z, 6, s_45); /* <-, line 279 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 279 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 281 */
+        if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) goto lab2; /* substring, line 281 */
+        if (!(find_among_b(z, a_16, 2))) goto lab2;
+        z->bra = z->c; /* ], line 281 */
+        if (z->c > z->lb) goto lab2; /* atlimit, line 281 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 283 */
+        if (z->S[0] == 0) return -1; /* -> s, line 283 */
+        {   int ret = slice_from_s(z, 2, s_46); /* <-, line 283 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 283 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab2:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 285 */
+        if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 186 && z->p[z->c - 1] != 189)) return 0; /* substring, line 285 */
+        among_var = find_among_b(z, a_17, 10);
+        if (!(among_var)) return 0;
+        z->bra = z->c; /* ], line 285 */
+        switch (among_var) { /* among, line 285 */
+            case 1:
+                {   int ret = slice_from_s(z, 12, s_47); /* <-, line 286 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 2:
+                {   int ret = slice_from_s(z, 8, s_48); /* <-, line 287 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 3:
+                {   int ret = slice_from_s(z, 10, s_49); /* <-, line 288 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 4:
+                {   int ret = slice_from_s(z, 6, s_50); /* <-, line 289 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 5:
+                {   int ret = slice_from_s(z, 12, s_51); /* <-, line 290 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 6:
+                {   int ret = slice_from_s(z, 10, s_52); /* <-, line 291 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 7:
+                {   int ret = slice_from_s(z, 6, s_53); /* <-, line 292 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 8:
+                {   int ret = slice_from_s(z, 16, s_54); /* <-, line 293 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 9:
+                {   int ret = slice_from_s(z, 12, s_55); /* <-, line 294 */
+                    if (ret < 0) return ret;
+                }
+                break;
+            case 10:
+                {   int ret = slice_from_s(z, 10, s_56); /* <-, line 295 */
+                    if (ret < 0) return ret;
+                }
+                break;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_steps7(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 302 */
+    if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 177 && z->p[z->c - 1] != 185)) return 0; /* substring, line 302 */
+    if (!(find_among_b(z, a_20, 4))) return 0;
+    z->bra = z->c; /* ], line 302 */
+    {   int ret = slice_del(z); /* delete, line 304 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 305 */
+    z->ket = z->c; /* [, line 306 */
+    if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 135)) return 0; /* substring, line 306 */
+    if (!(find_among_b(z, a_19, 2))) return 0;
+    z->bra = z->c; /* ], line 306 */
+    if (z->c > z->lb) return 0; /* atlimit, line 306 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 308 */
+    if (z->S[0] == 0) return -1; /* -> s, line 308 */
+    {   int ret = slice_from_s(z, 8, s_57); /* <-, line 308 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 308 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_steps8(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 315 */
+    if (!(find_among_b(z, a_23, 8))) return 0; /* substring, line 315 */
+    z->bra = z->c; /* ], line 315 */
+    {   int ret = slice_del(z); /* delete, line 317 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 318 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 325 */
+        z->ket = z->c; /* [, line 319 */
+        if (!(find_among_b(z, a_21, 33))) goto lab1; /* substring, line 319 */
+        z->bra = z->c; /* ], line 319 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 319 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 324 */
+        if (z->S[0] == 0) return -1; /* -> s, line 324 */
+        {   int ret = slice_from_s(z, 4, s_58); /* <-, line 324 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 324 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 326 */
+        if (!(find_among_b(z, a_22, 15))) goto lab2; /* substring, line 326 */
+        z->bra = z->c; /* ], line 326 */
+        if (z->c > z->lb) goto lab2; /* atlimit, line 326 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 329 */
+        if (z->S[0] == 0) return -1; /* -> s, line 329 */
+        {   int ret = slice_from_s(z, 6, s_59); /* <-, line 329 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 329 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab2:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 331 */
+        if (!(eq_s_b(z, 6, s_60))) return 0; /* literal, line 331 */
+        z->bra = z->c; /* ], line 331 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 331 */
+        if (z->S[0] == 0) return -1; /* -> s, line 331 */
+        {   int ret = slice_from_s(z, 6, s_61); /* <-, line 331 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 331 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_steps9(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 337 */
+    if (z->c - 7 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-1610481664 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 337 */
+    if (!(find_among_b(z, a_26, 3))) return 0;
+    z->bra = z->c; /* ], line 337 */
+    {   int ret = slice_del(z); /* delete, line 339 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 340 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 343 */
+        z->ket = z->c; /* [, line 341 */
+        if (!(find_among_b(z, a_24, 4))) goto lab1; /* substring, line 341 */
+        z->bra = z->c; /* ], line 341 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 341 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 342 */
+        if (z->S[0] == 0) return -1; /* -> s, line 342 */
+        {   int ret = slice_from_s(z, 4, s_62); /* <-, line 342 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 342 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 344 */
+        if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 189)) return 0; /* substring, line 344 */
+        if (!(find_among_b(z, a_25, 2))) return 0;
+        z->bra = z->c; /* ], line 344 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 345 */
+        if (z->S[0] == 0) return -1; /* -> s, line 345 */
+        {   int ret = slice_from_s(z, 4, s_63); /* <-, line 345 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 345 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_steps10(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 352 */
+    if (!(find_among_b(z, a_28, 4))) return 0; /* substring, line 352 */
+    z->bra = z->c; /* ], line 352 */
+    {   int ret = slice_del(z); /* delete, line 354 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 355 */
+    z->ket = z->c; /* [, line 356 */
+    if (!(find_among_b(z, a_27, 7))) return 0; /* substring, line 356 */
+    z->bra = z->c; /* ], line 356 */
+    if (z->c > z->lb) return 0; /* atlimit, line 356 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 358 */
+    if (z->S[0] == 0) return -1; /* -> s, line 358 */
+    {   int ret = slice_from_s(z, 6, s_64); /* <-, line 358 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 358 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step2a(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 365 */
+    if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 365 */
+    if (!(find_among_b(z, a_29, 2))) return 0;
+    z->bra = z->c; /* ], line 365 */
+    {   int ret = slice_del(z); /* delete, line 366 */
+        if (ret < 0) return ret;
+    }
+    {   int m1 = z->l - z->c; (void)m1; /* not, line 368 */
+        z->ket = z->c; /* [, line 368 */
+        if (!(find_among_b(z, a_30, 10))) goto lab0; /* substring, line 368 */
+        z->bra = z->c; /* ], line 368 */
+        return 0;
+    lab0:
+        z->c = z->l - m1;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_s(z, z->c, z->c, 4, s_65); /* <+, line 371 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step2b(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 375 */
+    if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 375 */
+    if (!(find_among_b(z, a_31, 2))) return 0;
+    z->bra = z->c; /* ], line 375 */
+    {   int ret = slice_del(z); /* delete, line 376 */
+        if (ret < 0) return ret;
+    }
+    z->ket = z->c; /* [, line 378 */
+    if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 187)) return 0; /* substring, line 378 */
+    if (!(find_among_b(z, a_32, 8))) return 0;
+    z->bra = z->c; /* ], line 378 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 379 */
+    if (z->S[0] == 0) return -1; /* -> s, line 379 */
+    {   int ret = slice_from_s(z, 4, s_66); /* <-, line 379 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 379 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step2c(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 384 */
+    if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 384 */
+    if (!(find_among_b(z, a_33, 2))) return 0;
+    z->bra = z->c; /* ], line 384 */
+    {   int ret = slice_del(z); /* delete, line 385 */
+        if (ret < 0) return ret;
+    }
+    z->ket = z->c; /* [, line 387 */
+    if (!(find_among_b(z, a_34, 15))) return 0; /* substring, line 387 */
+    z->bra = z->c; /* ], line 387 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 389 */
+    if (z->S[0] == 0) return -1; /* -> s, line 389 */
+    {   int ret = slice_from_s(z, 6, s_67); /* <-, line 389 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 389 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step2d(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 394 */
+    if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 394 */
+    if (!(find_among_b(z, a_35, 2))) return 0;
+    z->bra = z->c; /* ], line 394 */
+    {   int ret = slice_del(z); /* delete, line 395 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 395 */
+    z->ket = z->c; /* [, line 397 */
+    if (!(find_among_b(z, a_36, 8))) return 0; /* substring, line 397 */
+    z->bra = z->c; /* ], line 397 */
+    if (z->c > z->lb) return 0; /* atlimit, line 397 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 398 */
+    if (z->S[0] == 0) return -1; /* -> s, line 398 */
+    {   int ret = slice_from_s(z, 2, s_68); /* <-, line 398 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 398 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step3(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 403 */
+    if (!(find_among_b(z, a_37, 3))) return 0; /* substring, line 403 */
+    z->bra = z->c; /* ], line 403 */
+    {   int ret = slice_del(z); /* delete, line 404 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 404 */
+    z->ket = z->c; /* [, line 406 */
+    if (in_grouping_b_U(z, g_v, 945, 969, 0)) return 0; /* grouping v, line 406 */
+    z->bra = z->c; /* ], line 406 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 406 */
+    if (z->S[0] == 0) return -1; /* -> s, line 406 */
+    {   int ret = slice_from_s(z, 2, s_69); /* <-, line 406 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 406 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step4(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 410 */
+    if (!(find_among_b(z, a_38, 4))) return 0; /* substring, line 410 */
+    z->bra = z->c; /* ], line 410 */
+    {   int ret = slice_del(z); /* delete, line 411 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 411 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 413 */
+        z->ket = z->c; /* [, line 413 */
+        if (in_grouping_b_U(z, g_v, 945, 969, 0)) goto lab1; /* grouping v, line 413 */
+        z->bra = z->c; /* ], line 413 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 413 */
+        if (z->S[0] == 0) return -1; /* -> s, line 413 */
+        {   int ret = slice_from_s(z, 4, s_70); /* <-, line 413 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 413 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 414 */
+    }
+lab0:
+    if (!(find_among_b(z, a_39, 36))) return 0; /* substring, line 414 */
+    z->bra = z->c; /* ], line 414 */
+    if (z->c > z->lb) return 0; /* atlimit, line 414 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 419 */
+    if (z->S[0] == 0) return -1; /* -> s, line 419 */
+    {   int ret = slice_from_s(z, 4, s_71); /* <-, line 419 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 419 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5a(struct SN_env * z) { /* backwardmode */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 424 */
+        if (!(eq_s_b(z, 10, s_72))) goto lab0; /* literal, line 424 */
+        if (z->c > z->lb) goto lab0; /* atlimit, line 424 */
+        {   int ret = slice_from_s(z, 8, s_73); /* <-, line 424 */
+            if (ret < 0) return ret;
+        }
+    lab0:
+        z->c = z->l - m1;
+    }
+    {   int m2 = z->l - z->c; (void)m2; /* do, line 425 */
+        z->ket = z->c; /* [, line 426 */
+        if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab1; /* substring, line 426 */
+        if (!(find_among_b(z, a_40, 5))) goto lab1;
+        z->bra = z->c; /* ], line 426 */
+        {   int ret = slice_del(z); /* delete, line 427 */
+            if (ret < 0) return ret;
+        }
+        z->B[0] = 0; /* unset test1, line 427 */
+    lab1:
+        z->c = z->l - m2;
+    }
+    z->ket = z->c; /* [, line 430 */
+    if (!(eq_s_b(z, 6, s_74))) return 0; /* literal, line 430 */
+    z->bra = z->c; /* ], line 430 */
+    {   int ret = slice_del(z); /* delete, line 431 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 432 */
+    z->ket = z->c; /* [, line 433 */
+    if (!(find_among_b(z, a_41, 12))) return 0; /* substring, line 433 */
+    z->bra = z->c; /* ], line 433 */
+    if (z->c > z->lb) return 0; /* atlimit, line 433 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 435 */
+    if (z->S[0] == 0) return -1; /* -> s, line 435 */
+    {   int ret = slice_from_s(z, 4, s_75); /* <-, line 435 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 435 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5b(struct SN_env * z) { /* backwardmode */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 440 */
+        z->ket = z->c; /* [, line 441 */
+        if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; /* substring, line 441 */
+        if (!(find_among_b(z, a_43, 11))) goto lab0;
+        z->bra = z->c; /* ], line 441 */
+        {   int ret = slice_del(z); /* delete, line 444 */
+            if (ret < 0) return ret;
+        }
+        z->B[0] = 0; /* unset test1, line 445 */
+        z->ket = z->c; /* [, line 446 */
+        if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 131)) goto lab0; /* substring, line 446 */
+        if (!(find_among_b(z, a_42, 2))) goto lab0;
+        z->bra = z->c; /* ], line 446 */
+        if (z->c > z->lb) goto lab0; /* atlimit, line 446 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 447 */
+        if (z->S[0] == 0) return -1; /* -> s, line 447 */
+        {   int ret = slice_from_s(z, 8, s_76); /* <-, line 447 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 447 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    lab0:
+        z->c = z->l - m1;
+    }
+    z->ket = z->c; /* [, line 452 */
+    if (!(eq_s_b(z, 6, s_77))) return 0; /* literal, line 452 */
+    z->bra = z->c; /* ], line 452 */
+    {   int ret = slice_del(z); /* delete, line 453 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 454 */
+    {   int m2 = z->l - z->c; (void)m2; /* or, line 455 */
+        z->ket = z->c; /* [, line 455 */
+        if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; /* grouping v2, line 455 */
+        z->bra = z->c; /* ], line 455 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 455 */
+        if (z->S[0] == 0) return -1; /* -> s, line 455 */
+        {   int ret = slice_from_s(z, 4, s_78); /* <-, line 455 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 455 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab1;
+    lab2:
+        z->c = z->l - m2;
+        z->ket = z->c; /* [, line 456 */
+    }
+lab1:
+    if (!(find_among_b(z, a_44, 95))) return 0; /* substring, line 456 */
+    z->bra = z->c; /* ], line 456 */
+    if (z->c > z->lb) return 0; /* atlimit, line 456 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 473 */
+    if (z->S[0] == 0) return -1; /* -> s, line 473 */
+    {   int ret = slice_from_s(z, 4, s_79); /* <-, line 473 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 473 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5c(struct SN_env * z) { /* backwardmode */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 478 */
+        z->ket = z->c; /* [, line 479 */
+        if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; /* substring, line 479 */
+        if (!(find_among_b(z, a_45, 1))) goto lab0;
+        z->bra = z->c; /* ], line 479 */
+        {   int ret = slice_del(z); /* delete, line 480 */
+            if (ret < 0) return ret;
+        }
+        z->B[0] = 0; /* unset test1, line 480 */
+    lab0:
+        z->c = z->l - m1;
+    }
+    z->ket = z->c; /* [, line 483 */
+    if (!(eq_s_b(z, 6, s_80))) return 0; /* literal, line 483 */
+    z->bra = z->c; /* ], line 483 */
+    {   int ret = slice_del(z); /* delete, line 484 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 485 */
+    {   int m2 = z->l - z->c; (void)m2; /* or, line 486 */
+        z->ket = z->c; /* [, line 486 */
+        if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; /* grouping v2, line 486 */
+        z->bra = z->c; /* ], line 486 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 486 */
+        if (z->S[0] == 0) return -1; /* -> s, line 486 */
+        {   int ret = slice_from_s(z, 4, s_81); /* <-, line 486 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 486 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab1;
+    lab2:
+        z->c = z->l - m2;
+        z->ket = z->c; /* [, line 487 */
+        if (!(find_among_b(z, a_46, 31))) goto lab3; /* substring, line 487 */
+        z->bra = z->c; /* ], line 487 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 491 */
+        if (z->S[0] == 0) return -1; /* -> s, line 491 */
+        {   int ret = slice_from_s(z, 4, s_82); /* <-, line 491 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 491 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab1;
+    lab3:
+        z->c = z->l - m2;
+        z->ket = z->c; /* [, line 493 */
+    }
+lab1:
+    if (!(find_among_b(z, a_47, 25))) return 0; /* substring, line 493 */
+    z->bra = z->c; /* ], line 493 */
+    if (z->c > z->lb) return 0; /* atlimit, line 493 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 497 */
+    if (z->S[0] == 0) return -1; /* -> s, line 497 */
+    {   int ret = slice_from_s(z, 4, s_83); /* <-, line 497 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 497 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5d(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 502 */
+    if (z->c - 9 <= z->lb || z->p[z->c - 1] != 131) return 0; /* substring, line 502 */
+    if (!(find_among_b(z, a_48, 2))) return 0;
+    z->bra = z->c; /* ], line 502 */
+    {   int ret = slice_del(z); /* delete, line 504 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 505 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 506 */
+        z->ket = z->c; /* [, line 506 */
+        if (!(eq_s_b(z, 6, s_84))) goto lab1; /* literal, line 506 */
+        z->bra = z->c; /* ], line 506 */
+        if (z->c > z->lb) goto lab1; /* atlimit, line 506 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 506 */
+        if (z->S[0] == 0) return -1; /* -> s, line 506 */
+        {   int ret = slice_from_s(z, 6, s_85); /* <-, line 506 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 506 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 507 */
+        if (!(eq_s_b(z, 6, s_86))) return 0; /* literal, line 507 */
+        z->bra = z->c; /* ], line 507 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 507 */
+        if (z->S[0] == 0) return -1; /* -> s, line 507 */
+        {   int ret = slice_from_s(z, 6, s_87); /* <-, line 507 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 507 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_step5e(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 513 */
+    if (z->c - 11 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 513 */
+    if (!(find_among_b(z, a_49, 2))) return 0;
+    z->bra = z->c; /* ], line 513 */
+    {   int ret = slice_del(z); /* delete, line 515 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 516 */
+    z->ket = z->c; /* [, line 517 */
+    if (!(eq_s_b(z, 4, s_88))) return 0; /* literal, line 517 */
+    z->bra = z->c; /* ], line 517 */
+    if (z->c > z->lb) return 0; /* atlimit, line 517 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 517 */
+    if (z->S[0] == 0) return -1; /* -> s, line 517 */
+    {   int ret = slice_from_s(z, 10, s_89); /* <-, line 517 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 517 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5f(struct SN_env * z) { /* backwardmode */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 523 */
+        z->ket = z->c; /* [, line 524 */
+        if (!(eq_s_b(z, 10, s_90))) goto lab0; /* literal, line 524 */
+        z->bra = z->c; /* ], line 524 */
+        {   int ret = slice_del(z); /* delete, line 525 */
+            if (ret < 0) return ret;
+        }
+        z->B[0] = 0; /* unset test1, line 526 */
+        z->ket = z->c; /* [, line 527 */
+        if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 134)) goto lab0; /* substring, line 527 */
+        if (!(find_among_b(z, a_50, 6))) goto lab0;
+        z->bra = z->c; /* ], line 527 */
+        if (z->c > z->lb) goto lab0; /* atlimit, line 527 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 528 */
+        if (z->S[0] == 0) return -1; /* -> s, line 528 */
+        {   int ret = slice_from_s(z, 8, s_91); /* <-, line 528 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 528 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    lab0:
+        z->c = z->l - m1;
+    }
+    z->ket = z->c; /* [, line 531 */
+    if (!(eq_s_b(z, 8, s_92))) return 0; /* literal, line 531 */
+    z->bra = z->c; /* ], line 531 */
+    {   int ret = slice_del(z); /* delete, line 532 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 533 */
+    z->ket = z->c; /* [, line 534 */
+    if (!(find_among_b(z, a_51, 9))) return 0; /* substring, line 534 */
+    z->bra = z->c; /* ], line 534 */
+    if (z->c > z->lb) return 0; /* atlimit, line 534 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 536 */
+    if (z->S[0] == 0) return -1; /* -> s, line 536 */
+    {   int ret = slice_from_s(z, 8, s_93); /* <-, line 536 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 536 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5g(struct SN_env * z) { /* backwardmode */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 541 */
+        z->ket = z->c; /* [, line 542 */
+        if (!(find_among_b(z, a_52, 3))) goto lab0; /* substring, line 542 */
+        z->bra = z->c; /* ], line 542 */
+        {   int ret = slice_del(z); /* delete, line 543 */
+            if (ret < 0) return ret;
+        }
+        z->B[0] = 0; /* unset test1, line 543 */
+    lab0:
+        z->c = z->l - m1;
+    }
+    z->ket = z->c; /* [, line 546 */
+    if (!(find_among_b(z, a_55, 3))) return 0; /* substring, line 546 */
+    z->bra = z->c; /* ], line 546 */
+    {   int ret = slice_del(z); /* delete, line 548 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 549 */
+    {   int m2 = z->l - z->c; (void)m2; /* or, line 552 */
+        z->ket = z->c; /* [, line 550 */
+        if (!(find_among_b(z, a_53, 6))) goto lab2; /* substring, line 550 */
+        z->bra = z->c; /* ], line 550 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 551 */
+        if (z->S[0] == 0) return -1; /* -> s, line 551 */
+        {   int ret = slice_from_s(z, 4, s_94); /* <-, line 551 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 551 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab1;
+    lab2:
+        z->c = z->l - m2;
+        z->ket = z->c; /* [, line 553 */
+        if (z->c - 1 <= z->lb || z->p[z->c - 1] != 184) return 0; /* substring, line 553 */
+        if (!(find_among_b(z, a_54, 5))) return 0;
+        z->bra = z->c; /* ], line 553 */
+        if (z->c > z->lb) return 0; /* atlimit, line 553 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 554 */
+        if (z->S[0] == 0) return -1; /* -> s, line 554 */
+        {   int ret = slice_from_s(z, 4, s_95); /* <-, line 554 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 554 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab1:
+    return 1;
+}
+
+static int r_step5h(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 561 */
+    if (!(find_among_b(z, a_58, 3))) return 0; /* substring, line 561 */
+    z->bra = z->c; /* ], line 561 */
+    {   int ret = slice_del(z); /* delete, line 563 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 564 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 569 */
+        z->ket = z->c; /* [, line 565 */
+        if (!(find_among_b(z, a_56, 12))) goto lab1; /* substring, line 565 */
+        z->bra = z->c; /* ], line 565 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 567 */
+        if (z->S[0] == 0) return -1; /* -> s, line 567 */
+        {   int ret = slice_from_s(z, 6, s_96); /* <-, line 567 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 567 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        z->ket = z->c; /* [, line 570 */
+        if (!(find_among_b(z, a_57, 25))) return 0; /* substring, line 570 */
+        z->bra = z->c; /* ], line 570 */
+        if (z->c > z->lb) return 0; /* atlimit, line 570 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 574 */
+        if (z->S[0] == 0) return -1; /* -> s, line 574 */
+        {   int ret = slice_from_s(z, 6, s_97); /* <-, line 574 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 574 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+    }
+lab0:
+    return 1;
+}
+
+static int r_step5i(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 581 */
+    if (!(find_among_b(z, a_62, 3))) return 0; /* substring, line 581 */
+    z->bra = z->c; /* ], line 581 */
+    {   int ret = slice_del(z); /* delete, line 583 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 584 */
+    {   int m1 = z->l - z->c; (void)m1; /* or, line 585 */
+        z->ket = z->c; /* [, line 585 */
+        if (!(eq_s_b(z, 8, s_98))) goto lab1; /* literal, line 585 */
+        z->bra = z->c; /* ], line 585 */
+        z->S[0] = slice_to(z, z->S[0]); /* -> s, line 585 */
+        if (z->S[0] == 0) return -1; /* -> s, line 585 */
+        {   int ret = slice_from_s(z, 4, s_99); /* <-, line 585 */
+            if (ret < 0) return ret;
+        }
+        {   int ret;
+            {   int saved_c = z->c;
+                ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 585 */
+                z->c = saved_c;
+            }
+            if (ret < 0) return ret;
+        }
+        goto lab0;
+    lab1:
+        z->c = z->l - m1;
+        {   int m2 = z->l - z->c; (void)m2; /* not, line 586 */
+            z->ket = z->c; /* [, line 586 */
+            if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 134 && z->p[z->c - 1] != 135)) goto lab2; /* substring, line 586 */
+            if (!(find_among_b(z, a_59, 2))) goto lab2;
+            z->bra = z->c; /* ], line 586 */
+            return 0;
+        lab2:
+            z->c = z->l - m2;
+        }
+        {   int m3 = z->l - z->c; (void)m3; /* or, line 590 */
+            z->ket = z->c; /* [, line 587 */
+            if (!(find_among_b(z, a_60, 10))) goto lab4; /* substring, line 587 */
+            z->bra = z->c; /* ], line 587 */
+            z->S[0] = slice_to(z, z->S[0]); /* -> s, line 589 */
+            if (z->S[0] == 0) return -1; /* -> s, line 589 */
+            {   int ret = slice_from_s(z, 4, s_100); /* <-, line 589 */
+                if (ret < 0) return ret;
+            }
+            {   int ret;
+                {   int saved_c = z->c;
+                    ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 589 */
+                    z->c = saved_c;
+                }
+                if (ret < 0) return ret;
+            }
+            goto lab3;
+        lab4:
+            z->c = z->l - m3;
+            z->ket = z->c; /* [, line 591 */
+            if (!(find_among_b(z, a_61, 44))) return 0; /* substring, line 591 */
+            z->bra = z->c; /* ], line 591 */
+            if (z->c > z->lb) return 0; /* atlimit, line 591 */
+            z->S[0] = slice_to(z, z->S[0]); /* -> s, line 597 */
+            if (z->S[0] == 0) return -1; /* -> s, line 597 */
+            {   int ret = slice_from_s(z, 4, s_101); /* <-, line 597 */
+                if (ret < 0) return ret;
+            }
+            {   int ret;
+                {   int saved_c = z->c;
+                    ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 597 */
+                    z->c = saved_c;
+                }
+                if (ret < 0) return ret;
+            }
+        }
+    lab3:
+        ;
+    }
+lab0:
+    return 1;
+}
+
+static int r_step5j(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 605 */
+    if (!(find_among_b(z, a_63, 3))) return 0; /* substring, line 605 */
+    z->bra = z->c; /* ], line 605 */
+    {   int ret = slice_del(z); /* delete, line 606 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 606 */
+    z->ket = z->c; /* [, line 608 */
+    if (z->c - 1 <= z->lb || z->p[z->c - 1] != 189) return 0; /* substring, line 608 */
+    if (!(find_among_b(z, a_64, 6))) return 0;
+    z->bra = z->c; /* ], line 608 */
+    if (z->c > z->lb) return 0; /* atlimit, line 608 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 609 */
+    if (z->S[0] == 0) return -1; /* -> s, line 609 */
+    {   int ret = slice_from_s(z, 4, s_102); /* <-, line 609 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 609 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5k(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 614 */
+    if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 614 */
+    if (!(find_among_b(z, a_65, 1))) return 0;
+    z->bra = z->c; /* ], line 614 */
+    {   int ret = slice_del(z); /* delete, line 615 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 615 */
+    z->ket = z->c; /* [, line 617 */
+    if (!(find_among_b(z, a_66, 10))) return 0; /* substring, line 617 */
+    z->bra = z->c; /* ], line 617 */
+    if (z->c > z->lb) return 0; /* atlimit, line 617 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 619 */
+    if (z->S[0] == 0) return -1; /* -> s, line 619 */
+    {   int ret = slice_from_s(z, 6, s_103); /* <-, line 619 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 619 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5l(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 624 */
+    if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 624 */
+    if (!(find_among_b(z, a_67, 3))) return 0;
+    z->bra = z->c; /* ], line 624 */
+    {   int ret = slice_del(z); /* delete, line 625 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 625 */
+    z->ket = z->c; /* [, line 627 */
+    if (!(find_among_b(z, a_68, 6))) return 0; /* substring, line 627 */
+    z->bra = z->c; /* ], line 627 */
+    if (z->c > z->lb) return 0; /* atlimit, line 627 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 628 */
+    if (z->S[0] == 0) return -1; /* -> s, line 628 */
+    {   int ret = slice_from_s(z, 6, s_104); /* <-, line 628 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 628 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step5m(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 633 */
+    if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 633 */
+    if (!(find_among_b(z, a_69, 3))) return 0;
+    z->bra = z->c; /* ], line 633 */
+    {   int ret = slice_del(z); /* delete, line 634 */
+        if (ret < 0) return ret;
+    }
+    z->B[0] = 0; /* unset test1, line 634 */
+    z->ket = z->c; /* [, line 636 */
+    if (!(find_among_b(z, a_70, 7))) return 0; /* substring, line 636 */
+    z->bra = z->c; /* ], line 636 */
+    if (z->c > z->lb) return 0; /* atlimit, line 636 */
+    z->S[0] = slice_to(z, z->S[0]); /* -> s, line 638 */
+    if (z->S[0] == 0) return -1; /* -> s, line 638 */
+    {   int ret = slice_from_s(z, 6, s_105); /* <-, line 638 */
+        if (ret < 0) return ret;
+    }
+    {   int ret;
+        {   int saved_c = z->c;
+            ret = insert_v(z, z->c, z->c, z->S[0]); /* <+ s, line 638 */
+            z->c = saved_c;
+        }
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step6(struct SN_env * z) { /* backwardmode */
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 643 */
+        z->ket = z->c; /* [, line 644 */
+        if (!(find_among_b(z, a_71, 3))) goto lab0; /* substring, line 644 */
+        z->bra = z->c; /* ], line 644 */
+        {   int ret = slice_from_s(z, 4, s_106); /* <-, line 645 */
+            if (ret < 0) return ret;
+        }
+    lab0:
+        z->c = z->l - m1;
+    }
+    if (!(z->B[0])) return 0; /* Boolean test test1, line 648 */
+    z->ket = z->c; /* [, line 649 */
+    if (!(find_among_b(z, a_72, 84))) return 0; /* substring, line 649 */
+    z->bra = z->c; /* ], line 649 */
+    {   int ret = slice_del(z); /* delete, line 659 */
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+static int r_step7(struct SN_env * z) { /* backwardmode */
+    z->ket = z->c; /* [, line 664 */
+    if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 132)) return 0; /* substring, line 664 */
+    if (!(find_among_b(z, a_73, 8))) return 0;
+    z->bra = z->c; /* ], line 664 */
+    {   int ret = slice_del(z); /* delete, line 665 */
+        if (ret < 0) return ret;
+    }
+    return 1;
+}
+
+extern int greek_UTF_8_stem(struct SN_env * z) { /* forwardmode */
+    z->lb = z->c; z->c = z->l; /* backwards, line 671 */
+
+    {   int m1 = z->l - z->c; (void)m1; /* do, line 672 */
+        {   int ret = r_tolower(z); /* call tolower, line 672 */
+            if (ret == 0) goto lab0;
+            if (ret < 0) return ret;
+        }
+    lab0:
+        z->c = z->l - m1;
+    }
+    {   int ret = r_has_min_length(z); /* call has_min_length, line 673 */
+        if (ret <= 0) return ret;
+    }
+    z->B[0] = 1; /* set test1, line 674 */
+    {   int m2 = z->l - z->c; (void)m2; /* do, line 675 */
+        {   int ret = r_step1(z); /* call step1, line 675 */
+            if (ret == 0) goto lab1;
+            if (ret < 0) return ret;
+        }
+    lab1:
+        z->c = z->l - m2;
+    }
+    {   int m3 = z->l - z->c; (void)m3; /* do, line 676 */
+        {   int ret = r_steps1(z); /* call steps1, line 676 */
+            if (ret == 0) goto lab2;
+            if (ret < 0) return ret;
+        }
+    lab2:
+        z->c = z->l - m3;
+    }
+    {   int m4 = z->l - z->c; (void)m4; /* do, line 677 */
+        {   int ret = r_steps2(z); /* call steps2, line 677 */
+            if (ret == 0) goto lab3;
+            if (ret < 0) return ret;
+        }
+    lab3:
+        z->c = z->l - m4;
+    }
+    {   int m5 = z->l - z->c; (void)m5; /* do, line 678 */
+        {   int ret = r_steps3(z); /* call steps3, line 678 */
+            if (ret == 0) goto lab4;
+            if (ret < 0) return ret;
+        }
+    lab4:
+        z->c = z->l - m5;
+    }
+    {   int m6 = z->l - z->c; (void)m6; /* do, line 679 */
+        {   int ret = r_steps4(z); /* call steps4, line 679 */
+            if (ret == 0) goto lab5;
+            if (ret < 0) return ret;
+        }
+    lab5:
+        z->c = z->l - m6;
+    }
+    {   int m7 = z->l - z->c; (void)m7; /* do, line 680 */
+        {   int ret = r_steps5(z); /* call steps5, line 680 */
+            if (ret == 0) goto lab6;
+            if (ret < 0) return ret;
+        }
+    lab6:
+        z->c = z->l - m7;
+    }
+    {   int m8 = z->l - z->c; (void)m8; /* do, line 681 */
+        {   int ret = r_steps6(z); /* call steps6, line 681 */
+            if (ret == 0) goto lab7;
+            if (ret < 0) return ret;
+        }
+    lab7:
+        z->c = z->l - m8;
+    }
+    {   int m9 = z->l - z->c; (void)m9; /* do, line 682 */
+        {   int ret = r_steps7(z); /* call steps7, line 682 */
+            if (ret == 0) goto lab8;
+            if (ret < 0) return ret;
+        }
+    lab8:
+        z->c = z->l - m9;
+    }
+    {   int m10 = z->l - z->c; (void)m10; /* do, line 683 */
+        {   int ret = r_steps8(z); /* call steps8, line 683 */
+            if (ret == 0) goto lab9;
+            if (ret < 0) return ret;
+        }
+    lab9:
+        z->c = z->l - m10;
+    }
+    {   int m11 = z->l - z->c; (void)m11; /* do, line 684 */
+        {   int ret = r_steps9(z); /* call steps9, line 684 */
+            if (ret == 0) goto lab10;
+            if (ret < 0) return ret;
+        }
+    lab10:
+        z->c = z->l - m11;
+    }
+    {   int m12 = z->l - z->c; (void)m12; /* do, line 685 */
+        {   int ret = r_steps10(z); /* call steps10, line 685 */
+            if (ret == 0) goto lab11;
+            if (ret < 0) return ret;
+        }
+    lab11:
+        z->c = z->l - m12;
+    }
+    {   int m13 = z->l - z->c; (void)m13; /* do, line 686 */
+        {   int ret = r_step2a(z); /* call step2a, line 686 */
+            if (ret == 0) goto lab12;
+            if (ret < 0) return ret;
+        }
+    lab12:
+        z->c = z->l - m13;
+    }
+    {   int m14 = z->l - z->c; (void)m14; /* do, line 687 */
+        {   int ret = r_step2b(z); /* call step2b, line 687 */
+            if (ret == 0) goto lab13;
+            if (ret < 0) return ret;
+        }
+    lab13:
+        z->c = z->l - m14;
+    }
+    {   int m15 = z->l - z->c; (void)m15; /* do, line 688 */
+        {   int ret = r_step2c(z); /* call step2c, line 688 */
+            if (ret == 0) goto lab14;
+            if (ret < 0) return ret;
+        }
+    lab14:
+        z->c = z->l - m15;
+    }
+    {   int m16 = z->l - z->c; (void)m16; /* do, line 689 */
+        {   int ret = r_step2d(z); /* call step2d, line 689 */
+            if (ret == 0) goto lab15;
+            if (ret < 0) return ret;
+        }
+    lab15:
+        z->c = z->l - m16;
+    }
+    {   int m17 = z->l - z->c; (void)m17; /* do, line 690 */
+        {   int ret = r_step3(z); /* call step3, line 690 */
+            if (ret == 0) goto lab16;
+            if (ret < 0) return ret;
+        }
+    lab16:
+        z->c = z->l - m17;
+    }
+    {   int m18 = z->l - z->c; (void)m18; /* do, line 691 */
+        {   int ret = r_step4(z); /* call step4, line 691 */
+            if (ret == 0) goto lab17;
+            if (ret < 0) return ret;
+        }
+    lab17:
+        z->c = z->l - m18;
+    }
+    {   int m19 = z->l - z->c; (void)m19; /* do, line 692 */
+        {   int ret = r_step5a(z); /* call step5a, line 692 */
+            if (ret == 0) goto lab18;
+            if (ret < 0) return ret;
+        }
+    lab18:
+        z->c = z->l - m19;
+    }
+    {   int m20 = z->l - z->c; (void)m20; /* do, line 693 */
+        {   int ret = r_step5b(z); /* call step5b, line 693 */
+            if (ret == 0) goto lab19;
+            if (ret < 0) return ret;
+        }
+    lab19:
+        z->c = z->l - m20;
+    }
+    {   int m21 = z->l - z->c; (void)m21; /* do, line 694 */
+        {   int ret = r_step5c(z); /* call step5c, line 694 */
+            if (ret == 0) goto lab20;
+            if (ret < 0) return ret;
+        }
+    lab20:
+        z->c = z->l - m21;
+    }
+    {   int m22 = z->l - z->c; (void)m22; /* do, line 695 */
+        {   int ret = r_step5d(z); /* call step5d, line 695 */
+            if (ret == 0) goto lab21;
+            if (ret < 0) return ret;
+        }
+    lab21:
+        z->c = z->l - m22;
+    }
+    {   int m23 = z->l - z->c; (void)m23; /* do, line 696 */
+        {   int ret = r_step5e(z); /* call step5e, line 696 */
+            if (ret == 0) goto lab22;
+            if (ret < 0) return ret;
+        }
+    lab22:
+        z->c = z->l - m23;
+    }
+    {   int m24 = z->l - z->c; (void)m24; /* do, line 697 */
+        {   int ret = r_step5f(z); /* call step5f, line 697 */
+            if (ret == 0) goto lab23;
+            if (ret < 0) return ret;
+        }
+    lab23:
+        z->c = z->l - m24;
+    }
+    {   int m25 = z->l - z->c; (void)m25; /* do, line 698 */
+        {   int ret = r_step5g(z); /* call step5g, line 698 */
+            if (ret == 0) goto lab24;
+            if (ret < 0) return ret;
+        }
+    lab24:
+        z->c = z->l - m25;
+    }
+    {   int m26 = z->l - z->c; (void)m26; /* do, line 699 */
+        {   int ret = r_step5h(z); /* call step5h, line 699 */
+            if (ret == 0) goto lab25;
+            if (ret < 0) return ret;
+        }
+    lab25:
+        z->c = z->l - m26;
+    }
+    {   int m27 = z->l - z->c; (void)m27; /* do, line 700 */
+        {   int ret = r_step5j(z); /* call step5j, line 700 */
+            if (ret == 0) goto lab26;
+            if (ret < 0) return ret;
+        }
+    lab26:
+        z->c = z->l - m27;
+    }
+    {   int m28 = z->l - z->c; (void)m28; /* do, line 701 */
+        {   int ret = r_step5i(z); /* call step5i, line 701 */
+            if (ret == 0) goto lab27;
+            if (ret < 0) return ret;
+        }
+    lab27:
+        z->c = z->l - m28;
+    }
+    {   int m29 = z->l - z->c; (void)m29; /* do, line 702 */
+        {   int ret = r_step5k(z); /* call step5k, line 702 */
+            if (ret == 0) goto lab28;
+            if (ret < 0) return ret;
+        }
+    lab28:
+        z->c = z->l - m29;
+    }
+    {   int m30 = z->l - z->c; (void)m30; /* do, line 703 */
+        {   int ret = r_step5l(z); /* call step5l, line 703 */
+            if (ret == 0) goto lab29;
+            if (ret < 0) return ret;
+        }
+    lab29:
+        z->c = z->l - m30;
+    }
+    {   int m31 = z->l - z->c; (void)m31; /* do, line 704 */
+        {   int ret = r_step5m(z); /* call step5m, line 704 */
+            if (ret == 0) goto lab30;
+            if (ret < 0) return ret;
+        }
+    lab30:
+        z->c = z->l - m31;
+    }
+    {   int m32 = z->l - z->c; (void)m32; /* do, line 705 */
+        {   int ret = r_step6(z); /* call step6, line 705 */
+            if (ret == 0) goto lab31;
+            if (ret < 0) return ret;
+        }
+    lab31:
+        z->c = z->l - m32;
+    }
+    {   int m33 = z->l - z->c; (void)m33; /* do, line 706 */
+        {   int ret = r_step7(z); /* call step7, line 706 */
+            if (ret == 0) goto lab32;
+            if (ret < 0) return ret;
+        }
+    lab32:
+        z->c = z->l - m33;
+    }
+    z->c = z->lb;
+    return 1;
+}
+
+extern struct SN_env * greek_UTF_8_create_env(void) { return SN_create_env(1, 0, 1); }
+
+extern void greek_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); }
+
index 920b8dbe6dd42fcfeb33866ded3e5e9fe4597ee1..d64d92231795ae05d979c6ffde94c14adc9e19fc 100644 (file)
@@ -59,31 +59,49 @@ extern int skip_utf8(const symbol * p, int c, int lb, int l, int n) {
 /* Code for character groupings: utf8 cases */
 
 static int get_utf8(const symbol * p, int c, int l, int * slot) {
-    int b0, b1;
+    int b0, b1, b2;
     if (c >= l) return 0;
     b0 = p[c++];
     if (b0 < 0xC0 || c == l) {   /* 1100 0000 */
-        * slot = b0; return 1;
+        *slot = b0;
+        return 1;
     }
-    b1 = p[c++];
+    b1 = p[c++] & 0x3F;
     if (b0 < 0xE0 || c == l) {   /* 1110 0000 */
-        * slot = (b0 & 0x1F) << 6 | (b1 & 0x3F); return 2;
+        *slot = (b0 & 0x1F) << 6 | b1;
+        return 2;
     }
-    * slot = (b0 & 0xF) << 12 | (b1 & 0x3F) << 6 | (p[c] & 0x3F); return 3;
+    b2 = p[c++] & 0x3F;
+    if (b0 < 0xF0 || c == l) {   /* 1111 0000 */
+        *slot = (b0 & 0xF) << 12 | b1 << 6 | b2;
+        return 3;
+    }
+    *slot = (b0 & 0xE) << 18 | b1 << 12 | b2 << 6 | (p[c] & 0x3F);
+    return 4;
 }
 
 static int get_b_utf8(const symbol * p, int c, int lb, int * slot) {
-    int b0, b1;
+    int a, b;
     if (c <= lb) return 0;
-    b0 = p[--c];
-    if (b0 < 0x80 || c == lb) {   /* 1000 0000 */
-        * slot = b0; return 1;
+    b = p[--c];
+    if (b < 0x80 || c == lb) {   /* 1000 0000 */
+        *slot = b;
+        return 1;
+    }
+    a = b & 0x3F;
+    b = p[--c];
+    if (b >= 0xC0 || c == lb) {   /* 1100 0000 */
+        *slot = (b & 0x1F) << 6 | a;
+        return 2;
     }
-    b1 = p[--c];
-    if (b1 >= 0xC0 || c == lb) {   /* 1100 0000 */
-        * slot = (b1 & 0x1F) << 6 | (b0 & 0x3F); return 2;
+    a |= (b & 0x3F) << 6;
+    b = p[--c];
+    if (b >= 0xE0 || c == lb) {   /* 1110 0000 */
+        *slot = (b & 0xF) << 12 | a;
+        return 3;
     }
-    * slot = (p[--c] & 0xF) << 12 | (b1 & 0x3F) << 6 | (b0 & 0x3F); return 3;
+    *slot = (p[--c] & 0xE) << 18 | (b & 0x3F) << 12 | a;
+    return 4;
 }
 
 extern int in_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat) {
@@ -230,8 +248,13 @@ extern int find_among(struct SN_env * z, const struct among * v, int v_size) {
                 common++;
             }
         }
-        if (diff < 0) { j = k; common_j = common; }
-                 else { i = k; common_i = common; }
+        if (diff < 0) {
+            j = k;
+            common_j = common;
+        } else {
+            i = k;
+            common_i = common;
+        }
         if (j - i <= 1) {
             if (i > 0) break; /* v->s has been inspected */
             if (j == i) break; /* only one item in v */
@@ -360,9 +383,8 @@ extern int replace_s(struct SN_env * z, int c_bra, int c_ket, int s_size, const
         z->l += adjustment;
         if (z->c >= c_ket)
             z->c += adjustment;
-        else
-            if (z->c > c_bra)
-                z->c = c_bra;
+        else if (z->c > c_bra)
+            z->c = c_bra;
     }
     if (s_size) memmove(z->p + c_bra, s, s_size * sizeof(symbol));
     if (adjptr != NULL)
index 70273be783a4a14a634934a93a5dff8bdd96772b..f1acbdfcf2f7f7cd15813134a8c5d3bd587c54fc 100644 (file)
@@ -716,6 +716,8 @@ static const struct tsearch_config_match tsearch_config_languages[] =
        {"french", "French"},
        {"german", "de"},
        {"german", "German"},
+       {"greek", "el"},
+       {"greek", "Greek"},
        {"hungarian", "hu"},
        {"hungarian", "Hungarian"},
        {"indonesian", "id"},
index fe44cae3ff453ccc02e6c56548c9311b5777bf1f..190093ec1ded15b41a43946597adf221ad5ec0dc 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     201906161
+#define CATALOG_VERSION_NO     201907041
 
 #endif
index 8b997f0c29863444ad8956e9e2d097a385b045d0..7ed7995f9e1f3a3d35ff18e31353d6322f3bdf0e 100644 (file)
@@ -19,8 +19,15 @@ struct SN_env {
     unsigned char * B;
 };
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size);
 extern void SN_close_env(struct SN_env * z, int S_size);
 
 extern int SN_set_current(struct SN_env * z, int size, const symbol * s);
 
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/include/snowball/libstemmer/stem_UTF_8_greek.h b/src/include/snowball/libstemmer/stem_UTF_8_greek.h
new file mode 100644 (file)
index 0000000..bf1cc6c
--- /dev/null
@@ -0,0 +1,16 @@
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern struct SN_env * greek_UTF_8_create_env(void);
+extern void greek_UTF_8_close_env(struct SN_env * z);
+
+extern int greek_UTF_8_stem(struct SN_env * z);
+
+#ifdef __cplusplus
+}
+#endif
+